Index: EcnlProtoTool/trunk/asp3_dcre/Debug/Makefile
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/Debug/Makefile	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/Debug/Makefile	(revision 321)
@@ -9,63 +9,48 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 # 
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 # 
-#  $Id: Makefile 735 2016-04-03 14:11:07Z ertl-hiro $
+#  $Id$
 # 
 
 #
-#  ã¿ã¼ã²ããã®æå®ï¼Makefile.targetã§ä¸æ¸ããããã®ãé²ãããï¼
+#  ターゲットの指定（Makefile.targetで上書きされるのを防ぐため）
 #
 all:
 
 #
-#  ã¿ã¼ã²ããç¥ç§°ã®å®ç¾©
+#  ターゲット略称の定義
 #
 TARGET = gr_peach_gcc
 
 #
-#  ãã­ã°ã©ãã³ã°è¨èªã®å®ç¾©
+#  プログラミング言語の定義
 #
 SRCLANG = c
@@ -80,41 +65,41 @@
 
 #
-#  ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  ソースファイルのディレクトリの定義
 #
 SRCDIR = ..
 
 #
-#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®æ¡å¼µå­ã®è¨­å®
+#  オブジェクトファイル名の拡張子の設定
 #
 OBJEXT = elf
 
 #
-#  ã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ã®ãã£ã¬ã¯ããªå
-#  ï¼ã«ã¼ãã«ã©ã¤ãã©ãªãmakeå¯¾è±¡ã«ããæã¯ï¼ç©ºã«å®ç¾©ããï¼
+#  カーネルライブラリ（libkernel.a）のディレクトリ名
+#  （カーネルライブラリもmake対象にする時は，空に定義する）
 #
 KERNEL_LIB = 
 
 #
-#  ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®å®ç¾©
+#  カーネルを関数単位でコンパイルするかどうかの定義
 #
 KERNEL_FUNCOBJS = 
 
 #
-#  TECSãå¤ããã©ããã®å®ç¾©
+#  TECSを外すかどうかの定義
 #
 OMIT_TECS = 
 
 #
-#  ãã¬ã¼ã¹ã­ã°ãåå¾ãããã©ããã®å®ç¾©
+#  トレースログを取得するかどうかの定義
 #
 ENABLE_TRACE = 
 
 #
-#  éçºãã¼ã«ï¼ã³ã³ãã¤ã©ç­ï¼ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  開発ツール（コンパイラ等）のディレクトリの定義
 #
 DEVTOOLDIR = 
 
 #
-#  ã¦ã¼ãã£ãªãã£ãã­ã°ã©ã ã®åç§°
+#  ユーティリティプログラムの名称
 #
 CFG = ruby -Eutf-8 $(SRCDIR)/cfg/cfg.rb
@@ -122,5 +107,5 @@
 
 #
-#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®å®ç¾©
+#  オブジェクトファイル名の定義
 #
 OBJNAME = asp
@@ -134,20 +119,20 @@
 
 #
-#  ä¾å­é¢ä¿ãã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã®å®ç¾©
+#  依存関係ファイルを置くディレクトリの定義
 #
 DEPDIR = deps
 
 #
-#  ã¿ã¼ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  ターゲット依存部のディレクトリの定義
 #
 TARGETDIR = $(SRCDIR)/target/$(TARGET)
 
 #
-#  ã¿ã¼ã²ããä¾å­ã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+#  ターゲット依存の定義のインクルード
 #
 include $(TARGETDIR)/Makefile.target
 
 #
-#  TECSçæãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  TECS生成ファイルのディレクトリの定義
 #
 TECSGENDIR = ./gen
@@ -158,5 +143,5 @@
 
 #
-#  TECSãçæããå®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+#  TECSが生成する定義のインクルード
 #
 ifndef OMIT_TECS
@@ -166,5 +151,5 @@
 
 #
-#  mbedãµã¼ãã¹ã®å®ç¾©
+#  mbedサービスの定義
 #
 
@@ -172,6 +157,5 @@
 
 #
-#  å
-±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©
+#  共通コンパイルオプションの定義
 #
 COPTS := -g -std=gnu99 $(COPTS)
@@ -192,5 +176,5 @@
 
 #
-#  ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã«é¢ããå®ç¾©
+#  アプリケーションプログラムに関する定義
 #
 APPLNAME = sample1n
@@ -214,27 +198,27 @@
 
 #
-#  ãããã¯ã¼ã¯ãµã¼ãã¹ã®å®ç¾©
+#  ネットワークサービスの定義
 #
 
 NO_USE_TINET_LIBRARY = true
 
-#  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãä½ããä¸ã¤é¸æããã
+#  ネットワークインタフェースの選択、何れか一つ選択する。
 
 NET_IF = ether
 
-#  ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ
+#  イーサネット・ディバイスドライバの選択
 
 NET_DEV = if_mbed
 
-#  ãããã¯ã¼ã¯å±¤ã®é¸æ
+#  ネットワーク層の選択
 
 #SUPPORT_INET6 = true
 SUPPORT_INET4 = true
 
-#  API ã«çµè¾¼ãæ©è½ã®é¸æ
+#  API に組込む機能の選択
 
 #API_CFG_IP4MAPPED_ADDR = true
 
-#  ãã©ã³ã¹ãã¼ãå±¤ã®é¸æ
+#  トランスポート層の選択
 
 SUPPORT_TCP = true
@@ -242,10 +226,10 @@
 
 #
-#  ã·ã¹ãã ãµã¼ãã¹ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã
+#  システムサービスの Makefile のインクルード
 #
 include $(SRCDIR)/tinet/Makefile.tinet
 
 #
-#  ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
+#  システムサービスに関する定義
 #
 SYSSVC_DIRS := $(TECSGENDIR) $(SRCDIR)/tecs_kernel \
@@ -258,5 +242,5 @@
 
 #
-#  ã¿ã¼ã²ãããã¡ã¤ã«
+#  ターゲットファイル
 #
 .PHONY: all
@@ -272,8 +256,8 @@
 endif
 
-##### ä»¥ä¸ã¯ç·¨éããªããã¨ #####
-
-#
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«é¢ããå®ç¾©
+##### 以下は編集しないこと #####
+
+#
+#  コンフィギュレータに関する定義
 #
 CFG_TABS := --api-table $(SRCDIR)/tinet/tcpip_api.def:tcpip \
@@ -288,14 +272,14 @@
 
 #
-#  ã«ã¼ãã«ã«é¢ããå®ç¾©
-#
-#  KERNEL_ASMOBJS: ã«ã¼ãã«ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãã¢ã»ã³ããªè¨èªã®
-#				   ãªãã¸ã§ã¯ããã¡ã¤ã«ï¼
-#  KERNEL_COBJS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãCè¨èªã§ï¼ã½ã¼ã¹
-#				 ãã¡ã¤ã«ã¨1å¯¾1ã«å¯¾å¿ãããªãã¸ã§ã¯ããã¡ã¤ã«ï¼
-#  KERNEL_LCSRCS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããCè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ã§ï¼
-#				  1ã¤ã®ã½ã¼ã¹ãã¡ã¤ã«ããè¤æ°ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãç
-#				  æãããã®ï¼
-#  KERNEL_LCOBJS: ä¸ã®ã½ã¼ã¹ãã¡ã¤ã«ããçæããããªãã¸ã§ã¯ããã¡ã¤ã«ï¼
+#  カーネルに関する定義
+#
+#  KERNEL_ASMOBJS: カーネルライブラリに含める，ソースがアセンブリ言語の
+#				   オブジェクトファイル．
+#  KERNEL_COBJS: カーネルのライブラリに含める，ソースがC言語で，ソース
+#				 ファイルと1対1に対応するオブジェクトファイル．
+#  KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで，
+#				  1つのソースファイルから複数のオブジェクトファイルを生
+#				  成するもの．
+#  KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル．
 #
 KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/kernel
@@ -305,5 +289,5 @@
 
 #
-#  ã«ã¼ãã«ã®ãã¡ã¤ã«æ§æã®å®ç¾©
+#  カーネルのファイル構成の定義
 #
 include $(SRCDIR)/kernel/Makefile.kernel
@@ -338,5 +322,5 @@
 
 #
-#  ã½ã¼ã¹ãã¡ã¤ã«ã®ãããã£ã¬ã¯ããªã«é¢ããå®ç¾©
+#  ソースファイルのあるディレクトリに関する定義
 #
 vpath %.c $(KERNEL_DIRS) $(SYSSVC_DIRS) $(APPL_DIRS)
@@ -346,5 +330,5 @@
 
 #
-#  ã³ã³ãã¤ã«ã®ããã®å¤æ°ã®å®ç¾©
+#  コンパイルのための変数の定義
 #
 KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
@@ -374,10 +358,10 @@
 
 #
-#  tecsgenããCããªãã­ã»ããµãå¼ã³åºãéã®ãªãã·ã§ã³ã®å®ç¾©
+#  tecsgenからCプリプロセッサを呼び出す際のオプションの定義
 #
 TECS_CPP = $(CC) $(CDEFS) $(INCLUDES) $(SYSSVC_CFLAGS) -D TECSGEN -E
 
 #
-#  tecsgenã®å¼åºã
+#  tecsgenの呼出し
 #
 .PHONY: tecs
@@ -387,5 +371,5 @@
 
 #
-#  ã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®çæ
+#  カーネルのコンフィギュレーションファイルの生成
 #
 cfg1_out.c cfg1_out.db: cfg1_out.timestamp ;
@@ -409,5 +393,5 @@
 
 #
-#  ãªãã»ãããã¡ã¤ã«ï¼offset.hï¼ã®çæè¦å
+#  オフセットファイル（offset.h）の生成規則
 #
 $(OFFSET_H): offset.timestamp ;
@@ -417,5 +401,5 @@
 
 #
-#  ã«ã¼ãã«ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ
+#  カーネルライブラリファイルの生成
 #
 libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
@@ -425,11 +409,10 @@
 
 #
-#  ç¹å¥ãªä¾å­é¢ä¿ã®å®ç¾©
+#  特別な依存関係の定義
 #
 tBannerMain.o: $(filter-out tBannerMain.o,$(ALL_OBJS)) $(LIBS_DEP)
 
 #
-#  å
-¨ä½ã®ãªã³ã¯
+#  全体のリンク
 #
 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
@@ -439,5 +422,5 @@
 
 #
-#  ã·ã³ãã«ãã¡ã¤ã«ã®çæ
+#  シンボルファイルの生成
 #
 $(OBJNAME).syms: $(OBJFILE)
@@ -445,5 +428,5 @@
 
 #
-#  ãã¤ããªãã¡ã¤ã«ã®çæ
+#  バイナリファイルの生成
 #
 $(OBJNAME).bin: $(OBJFILE)
@@ -453,5 +436,5 @@
 
 #
-#  Sã¬ã³ã¼ããã¡ã¤ã«ã®çæ
+#  Sレコードファイルの生成
 #
 $(OBJNAME).srec: $(OBJFILE)
@@ -459,5 +442,5 @@
 
 #
-#  ã¨ã©ã¼ãã§ãã¯å¦ç
+#  エラーチェック処理
 #
 .PHONY: check
@@ -469,5 +452,5 @@
 
 #
-#  ã³ã³ãã¤ã«çµæã®æ¶å»
+#  コンパイル結果の消去
 #
 .PHONY: clean
@@ -494,9 +477,8 @@
 
 #
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
-#
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã¯ï¼å
-±éã®ã³ã³ãã¤ã«ãªãã·ã§ã³
-#  ã®ã¿ãä»ãã¦ã³ã³ãã¤ã«ããï¼
+#  コンフィギュレータが生成したファイルのコンパイルルールの定義
+#
+#  コンフィギュレータが生成したファイルは，共通のコンパイルオプション
+#  のみを付けてコンパイルする．
 #
 ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o
@@ -513,14 +495,14 @@
 
 #
-#  ä¾å­é¢ä¿ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+#  依存関係ファイルのインクルード
 #
 -include $(DEPDIR)/*.d
 
 #
-#  éçºãã¼ã«ã®ã³ãã³ãåã®å®ç¾©
+#  開発ツールのコマンド名の定義
 #
 ifeq ($(TOOL),gcc)
 	#
-	#  GNUéçºç°å¢ç¨
+	#  GNU開発環境用
 	#
 	ifdef GCC_TARGET
@@ -560,5 +542,5 @@
 
 #
-#  ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
+#  コンパイルルールの定義
 #
 $(KERNEL_COBJS): %.o: %.c
@@ -603,5 +585,5 @@
 
 #
-#  ããã©ã«ãã³ã³ãã¤ã«ã«ã¼ã«ãä¸æ¸ã
+#  デフォルトコンパイルルールを上書き
 #
 %.o: %.c
Index: EcnlProtoTool/trunk/asp3_dcre/README.txt
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/README.txt	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/README.txt	(revision 321)
@@ -1,56 +1,53 @@
 
-	TOPPERS/ASP3 Kernelï¼Release 3.1ï¼
+	TOPPERS/ASP3 Kernel（Release 3.1）
 		Toyohashi Open Platform for Embedded Real-Time Systems/
 		Advanced Standard Profile Kernel
 
-TOPPERS/ASP3ã«ã¼ãã«ï¼TOPPERS/ASPã«ã¼ãã« Release 3.Xï¼ä»¥ä¸ï¼ASP3ã«ã¼ã
-ã«ï¼ã¯ï¼TOPPERS/ASPã«ã¼ãã«ãæ¡å¼µã»æ¹è¯ãããã®ã§ï¼TOPPERSç¬¬3ä¸ä»£ã«ã¼ã
-ã«ï¼ITRONç³»ï¼ã®åºç¤ã¨ãªããã®ã¨ãã¦éçºãããªã¢ã«ã¿ã¤ã ã«ã¼ãã«ã§ãï¼
+TOPPERS/ASP3カーネル（TOPPERS/ASPカーネル Release 3.X．以下，ASP3カーネ
+ル）は，TOPPERS/ASPカーネルを拡張・改良したもので，TOPPERS第3世代カーネ
+ル（ITRON系）の基盤となるものとして開発したリアルタイムカーネルです．
 
-TOPPERS/ASPã«ã¼ãã«ã¯ï¼Î¼ITRON4.0ä»æ§ã®ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«æºæ ã®ãª
-ã¢ã«ã¿ã¤ã ã«ã¼ãã«ã§ããTOPPERS/JSPã«ã¼ãã«ãæ¡å¼µã»æ¹è¯ããå½¢ã§éçºãã
-ãã®ã§ãï¼
+TOPPERS/ASPカーネルは，μITRON4.0仕様のスタンダードプロファイル準拠のリ
+アルタイムカーネルであるTOPPERS/JSPカーネルを拡張・改良する形で開発した
+ものです．
 
-ãæåã«èª­ãã¹ããã­ã¥ã¡ã³ãã
+【最初に読むべきドキュメント】
 
-ASP3ã«ã¼ãã«ã®ä»æ§æ¦è¦ãdoc/asp_spec.txtã«ï¼ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã
-doc/user.txtã«ããã¾ãï¼ã¾ãï¼å¾æ¥ã®TOPPERSã«ã¼ãã«ããASP3ã«ã¼ãã«ã¸ç§»
-è¡ããããã®æ¹æ³ãè¨è¿°ãããã¤ã°ã¬ã¼ã·ã§ã³ã¬ã¤ããdoc/migration.txtã«ã
-ãã¾ãï¼ASP3ã«ã¼ãã«ãä½¿ç¨ããå ´åã«ã¯ï¼ã¾ãã¯ãããã®ãã­ã¥ã¡ã³ããã
-èª­ã¿ä¸ããï¼
+ASP3カーネルの仕様概要がdoc/asp_spec.txtに，ユーザーズマニュアルが
+doc/user.txtにあります．また，従来のTOPPERSカーネルからASP3カーネルへ移
+行するための方法を記述したマイグレーションガイドがdoc/migration.txtにあ
+ります．ASP3カーネルを使用する場合には，まずはこれらのドキュメントをお
+読み下さい．
 
-ããã¡ã¤ã«ã®é²è¦§ã«ããã£ã¦ã
+【ファイルの閲覧にあたって】
 
-ASP3ã«ã¼ãã«ã®ãã­ã¥ã¡ã³ãï¼ãã¬ã¼ã³ãã­ã¹ããã¡ã¤ã«ï¼ããã³ã½ã¼ã¹ãã¡
-ã¤ã«ãèª­ãéã«ã¯ï¼TABã4ã«è¨­å®ãã¦ãã ããï¼
+ASP3カーネルのドキュメント（プレーンテキストファイル）およびソースファ
+イルを読む際には，TABを4に設定してください．
 
-ãå©ç¨æ¡ä»¶ã
+【利用条件】
 
-ASP3ã«ã¼ãã«ã®å©ç¨æ¡ä»¶ã¯ï¼åãã¡ã¤ã«ã®å
-é ­ã«è¡¨ç¤ºããã¦ããTOPPERSã©ã¤ã»
-ã³ã¹ã§ãï¼TOPPERSã©ã¤ã»ã³ã¹ã«é¢ããFAQãï¼ä»¥ä¸ã®ãã¼ã¸ã«ããã¾ãï¼
+ASP3カーネルの利用条件は，各ファイルの先頭に表示されているTOPPERSライセ
+ンスです．TOPPERSライセンスに関するFAQが，以下のページにあります．
 
 	http://www.toppers.jp/faq/faq_ct12.html
 
-ãè³ªåã»ãã°ã¬ãã¼ãã»æè¦ç­ã®éä»å
-ã
+【質問・バグレポート・意見等の送付先】
 
-ASP3ã«ã¼ãã«ãããè¯ããã®ã«ããããã®ãæè¦ç­ãæ­è¿ãã¾ãï¼ASP3ã«ã¼ã
-ã«ã«é¢ããè³ªåããã°ã¬ãã¼ãï¼ãæè¦ç­ã¯ï¼TOPPERSãã­ã¸ã§ã¯ãã®ä¼å¡ã¯
-TOPPERSéçºè
-ã¡ã¼ãªã³ã°ãªã¹ãï¼dev@toppers.jpï¼å®ã¾ãã¯ASP3ã«ã¼ãã«ã®ã
-ã°ãã©ãã­ã³ã°ã·ã¹ãã ï¼Tracï¼ã«ï¼ãã®ä»ã®æ¹ã¯TOPPERSã¦ã¼ã¶ã¼ãºã¡ã¼ãªã³
-ã°ãªã¹ãï¼users@toppers.jpï¼å®ã«ãé¡ããã¾ãï¼
+ASP3カーネルをより良いものにするためのご意見等を歓迎します．ASP3カーネ
+ルに関する質問やバグレポート，ご意見等は，TOPPERSプロジェクトの会員は
+TOPPERS開発者メーリングリスト（dev@toppers.jp）宛またはASP3カーネルのバ
+グトラッキングシステム（Trac）に，その他の方はTOPPERSユーザーズメーリン
+グリスト（users@toppers.jp）宛にお願いします．
 
-TOPPERSã¦ã¼ã¶ã¼ãºã¡ã¼ãªã³ã°ãªã¹ãã¸ã®ç»é²æ¹æ³ã«ã¤ãã¦ã¯ï¼ä»¥ä¸ã®ãã¼ã¸ã«
-èª¬æãããã¾ãï¼
+TOPPERSユーザーズメーリングリストへの登録方法については，以下のページに
+説明があります．
 
 	http://www.toppers.jp/community.html
 
-ããã¼ãã£ã³ã°ã«ããã£ã¦ã
+【ポーティングにあたって】
 
-ASP3ã«ã¼ãã«ãï¼TOPPERSãã­ã¸ã§ã¯ããããªã¼ãã³ã½ã¼ã¹ã«ãããã¨ãåæã«ï¼
-æªãµãã¼ãã®ã¿ã¼ã²ããã«ãã¼ãã£ã³ã°ãããå ´åã«ã¯ï¼ããããããç¸è«ã
-ã ããã¨å¹¸ãã§ãï¼
+ASP3カーネルを，TOPPERSプロジェクトからオープンソースにすることを前提に，
+未サポートのターゲットにポーティングされる場合には，あらかじめご相談く
+ださると幸いです．
 
-ä»¥ä¸
+以上
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/Makefile.core
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/Makefile.core	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/Makefile.core	(revision 321)
@@ -1,20 +1,20 @@
 #
-#		Makefileã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+#		Makefileのコア依存部（ARM用）
 #
-#  $Id: Makefile.core 572 2016-02-01 14:40:09Z ertl-hiro $
+#  $Id$
 #
 
 #
-#  ã³ã¢ä¾å­é¨ãã£ã¬ã¯ããªåã®å®ç¾©
+#  コア依存部ディレクトリ名の定義
 #
 COREDIR = $(SRCDIR)/arch/$(CORE)_$(TOOL)/common
 
 #
-#  ãã¼ã«ä¾å­é¨ãã£ã¬ã¯ããªåã®å®ç¾© 
+#  ツール依存部ディレクトリ名の定義 
 #
 TOOLDIR = $(SRCDIR)/arch/$(TOOL)
 
 #
-#  GNUéçºç°å¢ã®ã¿ã¼ã²ããã¢ã¼ã­ãã¯ãã£ã®å®ç¾©
+#  GNU開発環境のターゲットアーキテクチャの定義
 #
 ifndef GCC_TARGET
@@ -23,5 +23,5 @@
 
 #
-#  ã³ã³ãã¤ã«ãªãã·ã§ã³
+#  コンパイルオプション
 #
 INCLUDES := $(INCLUDES) -I$(COREDIR) -I$(TOOLDIR)
@@ -29,5 +29,5 @@
 
 #
-#  ã«ã¼ãã«ã«é¢ããå®ç¾©
+#  カーネルに関する定義
 #
 KERNEL_DIRS := $(KERNEL_DIRS) $(COREDIR)
@@ -36,17 +36,17 @@
 
 #
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©
+#  コンフィギュレータ関係の変数の定義
 #
 CFG_TABS := $(CFG_TABS) --symval-table $(COREDIR)/core_sym.def
 
 #
-#  ãªãã»ãããã¡ã¤ã«çæã®ããã®å®ç¾©
+#  オフセットファイル生成のための定義
 #
 TARGET_OFFSET_TRB = $(COREDIR)/core_offset.trb
 
 #
-#  ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã«é¢ããå®ç¾©
+#  スタートアップモジュールに関する定義
 #
-#  START_OBJSãstart.oã«è¨­å®ãï¼LDFLAGSã«-nostdlibãè¿½å ããï¼
+#  START_OBJSをstart.oに設定し，LDFLAGSに-nostdlibを追加する．
 #
 START_OBJS = start.o
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.c	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		ARMã³ã¢ãµãã¼ãã¢ã¸ã¥ã¼ã«
+ *		ARMコアサポートモジュール
  */
 
@@ -60,9 +45,9 @@
 
 /*
- *  ã­ã£ãã·ã¥ã®æä½
+ *  キャッシュの操作
  */
 
 /*
- *  ãã¼ã¿ã­ã£ãã·ã¥ã®ã¤ãã¼ãã«
+ *  データキャッシュのイネーブル
  */
 void
@@ -81,11 +66,9 @@
 
 /*
- *  ãã¼ã¿ã­ã£ãã·ã¥ã®ãã£ã¹ã¨ã¼ãã«
+ *  データキャッシュのディスエーブル
  *
- *  ãã¼ã¿ã­ã£ãã·ã¥ãç¡å¹ãªç¶æ
-ã§clean_and_invalidateãå®è¡ããã¨æ´èµ°
- *  ããå ´åãããããï¼ãã¼ã¿ã­ã£ãã·ã¥ã®ç¶æ
-ãå¤æ­ãã¦ï¼ç¡å¹ãªå ´åã¯ï¼
- *  ç¡å¹åã®ã¿ãè¡ãï¼
+ *  データキャッシュが無効な状態でclean_and_invalidateを実行すると暴走
+ *  する場合があるため，データキャッシュの状態を判断して，無効な場合は，
+ *  無効化のみを行う．
  */
 void
@@ -107,5 +90,5 @@
 
 /*
- *  å½ä»¤ã­ã£ãã·ã¥ã®ã¤ãã¼ãã«
+ *  命令キャッシュのイネーブル
  */
 void
@@ -124,5 +107,5 @@
 
 /*
- *  å½ä»¤ã­ã£ãã·ã¥ã®ãã£ã¹ã¨ã¼ãã«
+ *  命令キャッシュのディスエーブル
  */
 void
@@ -139,5 +122,5 @@
 
 /*
- *  ARMv5ã«ããããã¼ã¿ã­ã£ãã·ã¥ã®ã¯ãªã¼ã³ã¨ç¡å¹å
+ *  ARMv5におけるデータキャッシュのクリーンと無効化
  */
 #if __TARGET_ARCH_ARM <= 5
@@ -152,7 +135,7 @@
 
 /*
- *  ARMv7ã«ããããã¼ã¿ã­ã£ãã·ã¥ã®ç¡å¹å
+ *  ARMv7におけるデータキャッシュの無効化
  *
- *  ã¬ãã«0ã®ã­ã£ãã·ã¥ã®ã¿ãç¡å¹åããï¼
+ *  レベル0のキャッシュのみを無効化する．
  */
 #if __TARGET_ARCH_ARM == 7
@@ -183,7 +166,7 @@
 
 /*
- *  ARMv7ã«ããããã¼ã¿ã­ã£ãã·ã¥ã®ã¯ãªã¼ã³ã¨ç¡å¹å
+ *  ARMv7におけるデータキャッシュのクリーンと無効化
  *
- *  ã¬ãã«0ã®ã­ã£ãã·ã¥ã®ã¿ãã¯ãªã¼ã³ã¨ç¡å¹åããï¼
+ *  レベル0のキャッシュのみをクリーンと無効化する．
  */
 #if __TARGET_ARCH_ARM == 7
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,5 +41,5 @@
 
 /*
- *		ARMã³ã¢ãµãã¼ãã¢ã¸ã¥ã¼ã«
+ *		ARMコアサポートモジュール
  */
 
@@ -65,14 +50,14 @@
 
 /*
- *  ARMã³ã¢ã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©
+ *  ARMコアの特殊命令のインライン関数定義
  */
 #ifndef TOPPERS_MACRO_ONLY
 #ifndef TECSGEN
-#include "arm_insn.h"				/* tecsgenãè§£éã§ããªãããã¹ã­ãã */
+#include "arm_insn.h"				/* tecsgenが解釈できないためスキップ */
 #endif /* TECSGEN */
 #endif /*  TOPPERS_MACRO_ONLY */
 
 /*
- *  ARMä¾å¤ãã¯ã¿
+ *  ARM例外ベクタ
  */
 #define RESET_VECTOR	UINT_C(0x00)
@@ -85,5 +70,5 @@
 
 /*
- *  ARMä¾å¤ãã¯ã¿çªå·
+ *  ARM例外ベクタ番号
  */
 #define RESET_NUMBER	UINT_C(0)
@@ -96,5 +81,5 @@
 
 /*
- *  CPSRã®å²è¾¼ã¿ç¦æ­¢ããã
+ *  CPSRの割込み禁止ビット
  */
 #define CPSR_INT_MASK	UINT_C(0xc0)
@@ -103,10 +88,10 @@
 
 /*
- *  CPSRã®Thumbããã
+ *  CPSRのThumbビット
  */
 #define CPSR_THUMB_BIT	UINT_C(0x20)
 
 /*
- *  CPSRã®ã¢ã¼ãããã
+ *  CPSRのモードビット
  */
 #define CPSR_MODE_MASK	UINT_C(0x1f)
@@ -120,7 +105,7 @@
 
 /*
- *  CP15ã®ã·ã¹ãã å¶å¾¡ã¬ã¸ã¹ã¿ï¼SCTLRï¼ã®è¨­å®å¤
+ *  CP15のシステム制御レジスタ（SCTLR）の設定値
  *
- *  ARMv7ã§ã¯ï¼CP15_SCTLR_EXTPAGEã¯å¸¸ã«1ã«ãªã£ã¦ããï¼
+ *  ARMv7では，CP15_SCTLR_EXTPAGEは常に1になっている．
  */
 #if __TARGET_ARCH_ARM == 6
@@ -134,7 +119,5 @@
 
 /*
- *  CP15ã®ãã©ã¼ã«ãç¶æ
-ã¬ã¸ã¹ã¿ã®åç
-§å¤
+ *  CP15のフォールト状態レジスタの参照値
  */
 #define CP15_FSR_FS_MASK			UINT_C(0x0000040f)
@@ -146,5 +129,5 @@
 
 /*
- *  CP15ã®ããã©ã¼ãã³ã¹ã¢ãã¿å¶å¾¡ã¬ã¸ã¹ã¿ï¼PMCRï¼ã®è¨­å®å¤
+ *  CP15のパフォーマンスモニタ制御レジスタ（PMCR）の設定値
  */
 #define CP15_PMCR_ALLCNTR_ENABLE		UINT_C(0x01)
@@ -152,11 +135,11 @@
 
 /*
- *  CP15ã®ããã©ã¼ãã³ã¹ã¢ãã¿ã«ã¦ã³ãã¤ãã¼ãã«ã»ããã¬ã¸ã¹ã¿ï¼PMCNTENSETï¼
- *  ã®è¨­å®å¤
+ *  CP15のパフォーマンスモニタカウントイネーブルセットレジスタ（PMCNTENSET）
+ *  の設定値
  */
 #define CP15_PMCNTENSET_CCNTR_ENABLE	UINT_C(0x80000000)
 
 /*
- *  CP15ã®å¤æãã¼ãã«ãã¼ã¹ã¬ã¸ã¹ã¿ï¼TTBRï¼ã®è¨­å®å¤
+ *  CP15の変換テーブルベースレジスタ（TTBR）の設定値
  */
 #define CP15_TTBR_RGN_SHAREABLE		UINT_C(0x00000002)
@@ -175,9 +158,9 @@
 
 /*
- *  MMUé¢é£ã®å®ç¾©ï¼VMSAï¼
- */
-
-/*
- *  ã»ã¯ã·ã§ã³ã¨ãã¼ã¸ã®ãµã¤ãº
+ *  MMU関連の定義（VMSA）
+ */
+
+/*
+ *  セクションとページのサイズ
  */
 #define ARM_SSECTION_SIZE			UINT_C(0x1000000)
@@ -187,5 +170,5 @@
 
 /*
- *  ã»ã¯ã·ã§ã³ãã¼ãã«ã¨ãã¼ã¸ãã¼ãã«ã®ãµã¤ãº
+ *  セクションテーブルとページテーブルのサイズ
  */
 #define ARM_SECTION_TABLE_SIZE		UINT_C(0x4000)
@@ -198,81 +181,79 @@
 
 /*
- *  ç¬¬1ã¬ãã«ãã£ã¹ã¯ãªãã¿ã®è¨­å®å¤
- */
-#define ARM_MMU_DSCR1_FAULT			0x00000U	/* ãã©ã«ã */
-#define ARM_MMU_DSCR1_PAGETABLE		0x00001U	/* ã³ã¢ã¼ã¹ãã¼ã¸ãã¼ãã« */
-#define ARM_MMU_DSCR1_SECTION		0x00002U	/* ã»ã¯ã·ã§ã³ */
-#define ARM_MMU_DSCR1_SSECTION		0x40002U	/* ã¹ã¼ãã¼ã»ã¯ã·ã§ã³ */
-
-#define ARM_MMU_DSCR1_SHARED		0x10000U	/* ãã­ã»ããµéã§å
-±æ */
-#define ARM_MMU_DSCR1_TEX000		0x00000U	/* TEXãããã000 */
-#define ARM_MMU_DSCR1_TEX001		0x01000U	/* TEXãããã001 */
-#define ARM_MMU_DSCR1_TEX010		0x02000U	/* TEXãããã010 */
-#define ARM_MMU_DSCR1_TEX100		0x04000U	/* TEXãããã100 */
-#define ARM_MMU_DSCR1_AP01			0x00400U	/* APãããã01 */
-#define ARM_MMU_DSCR1_AP10			0x00800U	/* APãããã10 */
-#define ARM_MMU_DSCR1_AP11			0x00c00U	/* APãããã11 */
-#define ARM_MMU_DSCR1_CB00			0x00000U	/* Cãããã0ï¼Bãããã0 */
-#define ARM_MMU_DSCR1_CB01			0x00004U	/* Cãããã0ï¼Bãããã1 */
-#define ARM_MMU_DSCR1_CB10			0x00008U	/* Cãããã1ï¼Bãããã0 */
-#define ARM_MMU_DSCR1_CB11			0x0000cU	/* Cãããã1ï¼Bãããã1 */
+ *  第1レベルディスクリプタの設定値
+ */
+#define ARM_MMU_DSCR1_FAULT			0x00000U	/* フォルト */
+#define ARM_MMU_DSCR1_PAGETABLE		0x00001U	/* コアースページテーブル */
+#define ARM_MMU_DSCR1_SECTION		0x00002U	/* セクション */
+#define ARM_MMU_DSCR1_SSECTION		0x40002U	/* スーパーセクション */
+
+#define ARM_MMU_DSCR1_SHARED		0x10000U	/* プロセッサ間で共有 */
+#define ARM_MMU_DSCR1_TEX000		0x00000U	/* TEXビットが000 */
+#define ARM_MMU_DSCR1_TEX001		0x01000U	/* TEXビットが001 */
+#define ARM_MMU_DSCR1_TEX010		0x02000U	/* TEXビットが010 */
+#define ARM_MMU_DSCR1_TEX100		0x04000U	/* TEXビットが100 */
+#define ARM_MMU_DSCR1_AP01			0x00400U	/* APビットが01 */
+#define ARM_MMU_DSCR1_AP10			0x00800U	/* APビットが10 */
+#define ARM_MMU_DSCR1_AP11			0x00c00U	/* APビットが11 */
+#define ARM_MMU_DSCR1_CB00			0x00000U	/* Cビットが0，Bビットが0 */
+#define ARM_MMU_DSCR1_CB01			0x00004U	/* Cビットが0，Bビットが1 */
+#define ARM_MMU_DSCR1_CB10			0x00008U	/* Cビットが1，Bビットが0 */
+#define ARM_MMU_DSCR1_CB11			0x0000cU	/* Cビットが1，Bビットが1 */
 
 #if __TARGET_ARCH_ARM >= 6
-#define ARMV6_MMU_DSCR1_NONGLOBAL	0x20000U	/* ã°ã­ã¼ãã«ã§ãªã */
-#define ARMV6_MMU_DSCR1_APX0		0x00000U	/* APXãããã0 */
-#define ARMV6_MMU_DSCR1_APX1		0x08000U	/* APXãããã1 */
-#define ARMV6_MMU_DSCR1_ECC			0x00200U	/* ECCãæå¹ï¼MPCoreï¼*/
-#define ARMV6_MMU_DSCR1_NOEXEC		0x00010U	/* å®è¡ä¸å¯ */
+#define ARMV6_MMU_DSCR1_NONGLOBAL	0x20000U	/* グローバルでない */
+#define ARMV6_MMU_DSCR1_APX0		0x00000U	/* APXビットが0 */
+#define ARMV6_MMU_DSCR1_APX1		0x08000U	/* APXビットが1 */
+#define ARMV6_MMU_DSCR1_ECC			0x00200U	/* ECCが有効（MPCore）*/
+#define ARMV6_MMU_DSCR1_NOEXEC		0x00010U	/* 実行不可 */
 #endif /* __TARGET_ARCH_ARM >= 6 */
 
 /*
- *  ç¬¬2ã¬ãã«ãã£ã¹ã¯ãªãã¿ã®è¨­å®å¤
- */
-#define ARM_MMU_DSCR2_FAULT			0x0000U		/* ãã©ã«ã */
-#define ARM_MMU_DSCR2_LARGE			0x0001U		/* ã©ã¼ã¸ãã¼ã¸ */
-#define ARM_MMU_DSCR2_SMALL			0x0002U		/* ã¹ã¢ã¼ã«ãã¼ã¸ */
-
-#define ARM_MMU_DSCR2_CB00			0x0000U		/* Cãããã0ï¼Bãããã0 */
-#define ARM_MMU_DSCR2_CB01			0x0004U		/* Cãããã0ï¼Bãããã1 */
-#define ARM_MMU_DSCR2_CB10			0x0008U		/* Cãããã1ï¼Bãããã0 */
-#define ARM_MMU_DSCR2_CB11			0x000cU		/* Cãããã1ï¼Bãããã1 */
+ *  第2レベルディスクリプタの設定値
+ */
+#define ARM_MMU_DSCR2_FAULT			0x0000U		/* フォルト */
+#define ARM_MMU_DSCR2_LARGE			0x0001U		/* ラージページ */
+#define ARM_MMU_DSCR2_SMALL			0x0002U		/* スモールページ */
+
+#define ARM_MMU_DSCR2_CB00			0x0000U		/* Cビットが0，Bビットが0 */
+#define ARM_MMU_DSCR2_CB01			0x0004U		/* Cビットが0，Bビットが1 */
+#define ARM_MMU_DSCR2_CB10			0x0008U		/* Cビットが1，Bビットが0 */
+#define ARM_MMU_DSCR2_CB11			0x000cU		/* Cビットが1，Bビットが1 */
 
 #if __TARGET_ARCH_ARM < 6
 
-#define ARMV5_MMU_DSCR2_AP01		0x0550U		/* AP[0-3]ãããã01 */
-#define ARMV5_MMU_DSCR2_AP10		0x0aa0U		/* AP[0-3]ãããã10 */
-#define ARMV5_MMU_DSCR2_AP11		0x0ff0U		/* AP[0-3]ãããã11 */
-
-/* ã©ã¼ã¸ãã¼ã¸ã®ãã£ã¹ã¯ãªãã¿ç¨ */
-#define ARMV5_MMU_DSCR2L_TEX000		0x0000U		/* TEXãããã000 */
-#define ARMV5_MMU_DSCR2L_TEX001		0x1000U		/* TEXãããã001 */
-#define ARMV5_MMU_DSCR2L_TEX010		0x2000U		/* TEXãããã010 */
-#define ARMV5_MMU_DSCR2L_TEX100		0x4000U		/* TEXãããã100 */
+#define ARMV5_MMU_DSCR2_AP01		0x0550U		/* AP[0-3]ビットが01 */
+#define ARMV5_MMU_DSCR2_AP10		0x0aa0U		/* AP[0-3]ビットが10 */
+#define ARMV5_MMU_DSCR2_AP11		0x0ff0U		/* AP[0-3]ビットが11 */
+
+/* ラージページのディスクリプタ用 */
+#define ARMV5_MMU_DSCR2L_TEX000		0x0000U		/* TEXビットが000 */
+#define ARMV5_MMU_DSCR2L_TEX001		0x1000U		/* TEXビットが001 */
+#define ARMV5_MMU_DSCR2L_TEX010		0x2000U		/* TEXビットが010 */
+#define ARMV5_MMU_DSCR2L_TEX100		0x4000U		/* TEXビットが100 */
 
 #else /* __TARGET_ARCH_ARM < 6 */
 
-#define ARMV6_MMU_DSCR2_NONGLOBAL	0x0800U		/* ã°ã­ã¼ãã«ã§ãªã */
-#define ARMV6_MMU_DSCR2_SHARED		0x0400U		/* ãã­ã»ããµéã§å
-±æ */
-#define ARMV6_MMU_DSCR2_APX0		0x0000U		/* APXãããã0 */
-#define ARMV6_MMU_DSCR2_APX1		0x0200U		/* APXãããã1 */
-#define ARMV6_MMU_DSCR2_AP01		0x0010U		/* APãããã01 */
-#define ARMV6_MMU_DSCR2_AP10		0x0020U		/* APãããã10 */
-#define ARMV6_MMU_DSCR2_AP11		0x0030U		/* APãããã11 */
-
-/* ã©ã¼ã¸ãã¼ã¸ã®ãã£ã¹ã¯ãªãã¿ç¨ */
-#define ARMV6_MMU_DSCR2L_TEX000		0x0000U		/* TEXãããã000 */
-#define ARMV6_MMU_DSCR2L_TEX001		0x1000U		/* TEXãããã001 */
-#define ARMV6_MMU_DSCR2L_TEX010		0x2000U		/* TEXãããã010 */
-#define ARMV6_MMU_DSCR2L_TEX100		0x4000U		/* TEXãããã100 */
-#define ARMV6_MMU_DSCR2L_NOEXEC		0x8000U		/* å®è¡ä¸å¯ */
-
-/* ã¹ã¢ã¼ã«ãã¼ã¸ã®ãã£ã¹ã¯ãªãã¿ç¨ */
-#define ARMV6_MMU_DSCR2S_TEX000		0x0000U		/* TEXãããã000 */
-#define ARMV6_MMU_DSCR2S_TEX001		0x0040U		/* TEXãããã001 */
-#define ARMV6_MMU_DSCR2S_TEX010		0x0080U		/* TEXãããã010 */
-#define ARMV6_MMU_DSCR2S_TEX100		0x0100U		/* TEXãããã100 */
-#define ARMV6_MMU_DSCR2S_NOEXEC		0x0001U		/* å®è¡ä¸å¯ */
+#define ARMV6_MMU_DSCR2_NONGLOBAL	0x0800U		/* グローバルでない */
+#define ARMV6_MMU_DSCR2_SHARED		0x0400U		/* プロセッサ間で共有 */
+#define ARMV6_MMU_DSCR2_APX0		0x0000U		/* APXビットが0 */
+#define ARMV6_MMU_DSCR2_APX1		0x0200U		/* APXビットが1 */
+#define ARMV6_MMU_DSCR2_AP01		0x0010U		/* APビットが01 */
+#define ARMV6_MMU_DSCR2_AP10		0x0020U		/* APビットが10 */
+#define ARMV6_MMU_DSCR2_AP11		0x0030U		/* APビットが11 */
+
+/* ラージページのディスクリプタ用 */
+#define ARMV6_MMU_DSCR2L_TEX000		0x0000U		/* TEXビットが000 */
+#define ARMV6_MMU_DSCR2L_TEX001		0x1000U		/* TEXビットが001 */
+#define ARMV6_MMU_DSCR2L_TEX010		0x2000U		/* TEXビットが010 */
+#define ARMV6_MMU_DSCR2L_TEX100		0x4000U		/* TEXビットが100 */
+#define ARMV6_MMU_DSCR2L_NOEXEC		0x8000U		/* 実行不可 */
+
+/* スモールページのディスクリプタ用 */
+#define ARMV6_MMU_DSCR2S_TEX000		0x0000U		/* TEXビットが000 */
+#define ARMV6_MMU_DSCR2S_TEX001		0x0040U		/* TEXビットが001 */
+#define ARMV6_MMU_DSCR2S_TEX010		0x0080U		/* TEXビットが010 */
+#define ARMV6_MMU_DSCR2S_TEX100		0x0100U		/* TEXビットが100 */
+#define ARMV6_MMU_DSCR2S_NOEXEC		0x0001U		/* 実行不可 */
 
 #endif /* __TARGET_ARCH_ARM < 6 */
@@ -281,9 +262,9 @@
 
 /*
- *	ã³ãã­ã»ããµ15ã®æä½é¢æ°
- */
-
-/*
- *  High exception vectorsãä½¿ãããã«è¨­å®
+ *	コプロセッサ15の操作関数
+ */
+
+/*
+ *  High exception vectorsを使うように設定
  */
 Inline void
@@ -298,5 +279,5 @@
 
 /*
- *  Low exception vectorsãä½¿ãããã«è¨­å®
+ *  Low exception vectorsを使うように設定
  */
 Inline void
@@ -311,5 +292,5 @@
 
 /*
- *  åå²äºæ¸¬ãã¤ãã¼ãã«
+ *  分岐予測をイネーブル
  */
 Inline void
@@ -324,5 +305,5 @@
 
 /*
- *  åå²äºæ¸¬ããã£ã¹ã¨ã¼ãã«
+ *  分岐予測をディスエーブル
  */
 Inline void
@@ -337,8 +318,8 @@
 
 /*
- *  ãã­ã»ããµçªå·ã®åå¾
+ *  プロセッサ番号の取得
  *
- *  ãã«ããã­ã»ããµã¢ãã£ããã£ã¬ã¸ã¹ã¿ãèª­ãã§ï¼ãã®ä¸ä½8ããããè¿ãï¼
- *  ARMv6ã§ã¯ï¼ãã«ããã­ã»ããµããµãã¼ããã¦ããå ´åã«ã®ã¿ä½¿ç¨ã§ããï¼
+ *  マルチプロセッサアフィニティレジスタを読んで，その下位8ビットを返す．
+ *  ARMv6では，マルチプロセッサをサポートしている場合にのみ使用できる．
  */
 #if __TARGET_ARCH_ARM >= 6
@@ -356,9 +337,9 @@
 
 /*
- *  ã­ã£ãã·ã¥ã®æä½
- */
-
-/*
- *  å½ä»¤ï¼ãã¼ã¿ã­ã£ãã·ã¥ã®ã¤ãã¼ãã«ï¼ãã£ã¹ã¨ã¼ãã«
+ *  キャッシュの操作
+ */
+
+/*
+ *  命令／データキャッシュのイネーブル／ディスエーブル
  */
 extern void arm_enable_icache(void);
@@ -368,5 +349,5 @@
 
 /*
- *  ã­ã£ãã·ã¥ã®ã¤ãã¼ãã«
+ *  キャッシュのイネーブル
  */
 Inline void
@@ -378,5 +359,5 @@
 
 /*
- *  ã­ã£ãã·ã¥ã®ãã£ã¹ã¨ã¼ãã«
+ *  キャッシュのディスエーブル
  */
 Inline void
@@ -388,5 +369,5 @@
 
 /*
- *  ARMv5ã«ããããã¼ã¿ã­ã£ãã·ã¥ã®ç¡å¹åï¼ã¯ãªã¼ã³
+ *  ARMv5におけるデータキャッシュの無効化／クリーン
  */
 #if __TARGET_ARCH_ARM <= 5
@@ -395,5 +376,5 @@
 
 /*
- *  ARMv7ã«ããããã¼ã¿ã­ã£ãã·ã¥ã®ç¡å¹åï¼ã¯ãªã¼ã³
+ *  ARMv7におけるデータキャッシュの無効化／クリーン
  */
 #if __TARGET_ARCH_ARM == 7
@@ -403,5 +384,5 @@
 
 /*
- *  ãã¼ã¿ã­ã£ãã·ã¥ã¨çµ±åã­ã£ãã·ã¥ã®ç¡å¹å
+ *  データキャッシュと統合キャッシュの無効化
  */
 Inline void
@@ -417,5 +398,5 @@
 
 /*
- *  ãã¼ã¿ã­ã£ãã·ã¥ã¨çµ±åã­ã£ãã·ã¥ã®ã¯ãªã¼ã³ã¨ç¡å¹å
+ *  データキャッシュと統合キャッシュのクリーンと無効化
  */
 Inline void
@@ -433,5 +414,5 @@
 
 /*
- *  å½ä»¤ã­ã£ãã·ã¥ã®ç¡å¹å
+ *  命令キャッシュの無効化
  */
 Inline void
@@ -442,5 +423,5 @@
 
 /*
- *  åå²äºæ¸¬ã®ç¡å¹å
+ *  分岐予測の無効化
  */
 Inline void
@@ -453,5 +434,5 @@
 
 /*
- *  TLBã®ç¡å¹å
+ *  TLBの無効化
  */
 Inline void
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm_insn.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm_insn.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm_insn.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,10 +41,10 @@
 
 /*
- *		ARMã³ã¢ã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©
- *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼arm.hããã¤ã³ã¯ã«ã¼ããããï¼arm.hããåé¢ã
- *  ã¦ããã®ã¯ï¼ã³ã³ãã¤ã©ã«ããã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ã®è¨è¿°æ¹æ³ã®éãã
- *  å¸åããããã«ï¼ãã®ãã¡ã¤ã«ã®ã¿ãç½®ãæããã°ããããã«ããããã§
- *  ããï¼
+ *		ARMコアの特殊命令のインライン関数定義
+ *
+ *  このヘッダファイルは，arm.hからインクルードされる．arm.hから分離し
+ *  ているのは，コンパイラによるインラインアセンブラの記述方法の違いを
+ *  吸収するために，このファイルのみを置き換えればよいようにするためで
+ *  ある．
  */
 
@@ -70,5 +55,5 @@
 
 /*
- *  CLZï¼Count Leading Zeroï¼å½ä»¤
+ *  CLZ（Count Leading Zero）命令
  */
 #if __TARGET_ARCH_ARM >= 6
@@ -86,15 +71,15 @@
 
 /*
- *  ã¡ã¢ãªãå¤æ´ããããã¨ãã³ã³ãã¤ã©ã«ä¼ããããã®ãã¯ã­
+ *  メモリが変更されることをコンパイラに伝えるためのマクロ
  */
 #define ARM_MEMORY_CHANGED	Asm("":::"memory")
 
 /*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ã®æä½é¢æ°
+ *  ステータスレジスタの操作関数
  */
 #ifndef __thumb__
 
 /*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼CPSRï¼ã®ç¾å¨å¤ã®èª­åºã
+ *  ステータスレジスタ（CPSR）の現在値の読出し
  */
 Inline uint32_t
@@ -108,5 +93,5 @@
 
 /*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼CPSRï¼ã®ç¾å¨å¤ã®å¤æ´
+ *  ステータスレジスタ（CPSR）の現在値の変更
  */
 Inline void
@@ -118,15 +103,15 @@
 #else /* __thumb__ */
 /*
- *  Thumbã¢ã¼ãã§ã¯mrs/msrå½ä»¤ãä½¿ç¨ã§ããªãããï¼é¢æ°ã¨ãã¦å®ç¾ãã¦ï¼
- *  ARMã¢ã¼ãã«ç§»è¡ãã¦å®è¡ããï¼
- */
-
-/*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼CPSRï¼ã®ç¾å¨å¤ã®èª­åºã
+ *  Thumbモードではmrs/msr命令が使用できないため，関数として実現して，
+ *  ARMモードに移行して実行する．
+ */
+
+/*
+ *  ステータスレジスタ（CPSR）の現在値の読出し
  */
 extern uint32_t current_cpsr(void);
 
 /*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼CPSRï¼ã®ç¾å¨å¤ã®å¤æ´
+ *  ステータスレジスタ（CPSR）の現在値の変更
  */
 extern void set_cpsr(uint32_t cpsr);
@@ -135,14 +120,13 @@
 
 /*
- *  å²è¾¼ã¿ç¦æ­¢ï¼è¨±å¯é¢æ°
- *
- *  ARMv6ããè¿½å ãããã·ã¹ãã ç¶æ
-ãå¤æ´ããå½ä»¤ãä½¿ã£ãå²è¾¼ã¿ç¦æ­¢ï¼è¨±
- *  å¯ã®ããã®é¢æ°ï¼
- */
-#if __TARGET_ARCH_ARM >= 6
-
-/*
- *  IRQã®ç¦æ­¢
+ *  割込み禁止／許可関数
+ *
+ *  ARMv6から追加されたシステム状態を変更する命令を使った割込み禁止／許
+ *  可のための関数．
+ */
+#if __TARGET_ARCH_ARM >= 6
+
+/*
+ *  IRQの禁止
  */
 Inline void
@@ -153,5 +137,5 @@
 
 /*
- *  IRQã®è¨±å¯
+ *  IRQの許可
  */
 Inline void
@@ -162,5 +146,5 @@
 
 /*
- *  FIQã®ç¦æ­¢
+ *  FIQの禁止
  */
 Inline void
@@ -171,5 +155,5 @@
 
 /*
- *  FIQã®è¨±å¯
+ *  FIQの許可
  */
 Inline void
@@ -180,5 +164,5 @@
 
 /*
- *  FIQã¨IRQã®ç¦æ­¢
+ *  FIQとIRQの禁止
  */
 Inline void
@@ -189,5 +173,5 @@
 
 /*
- *  FIQã¨IRQã®è¨±å¯
+ *  FIQとIRQの許可
  */
 Inline void
@@ -200,68 +184,63 @@
 
 /*
- *  CP15ã®IDã¬ã¸ã¹ã¿æä½ãã¯ã­
- */
-
-/* ã¡ã¤ã³IDã¬ã¸ã¹ã¿ */
+ *  CP15のIDレジスタ操作マクロ
+ */
+
+/* メインIDレジスタ */
 #define CP15_READ_MIDR(reg)		Asm("mrc p15, 0, %0, c0, c0, 0":"=r"(reg))
 
-/* ãã«ããã­ã»ããµã¢ãã£ããã£ã¬ã¸ã¹ã¿ï¼ARMv6ä»¥éï¼*/
+/* マルチプロセッサアフィニティレジスタ（ARMv6以降）*/
 #if __TARGET_ARCH_ARM >= 6
 #define CP15_READ_MPIDR(reg)	Asm("mrc p15, 0, %0, c0, c0, 5":"=r"(reg))
 #endif /* __TARGET_ARCH_ARM >= 6 */
 
-/* ã­ã£ãã·ã¥ã¿ã¤ãã¬ã¸ã¹ã¿ */
+/* キャッシュタイプレジスタ */
 #define CP15_READ_CTR(reg)		Asm("mrc p15, 0, %0, c0, c0, 1":"=r"(reg))
 
 #if __TARGET_ARCH_ARM == 7
-/* ã­ã£ãã·ã¥ã¬ãã«IDã¬ã¸ã¹ã¿ï¼ARMv7ï¼ */
+/* キャッシュレベルIDレジスタ（ARMv7） */
 #define CP15_READ_CLIDR(reg)	Asm("mrc p15, 1, %0, c0, c0, 1":"=r"(reg))
 
-/* ã­ã£ãã·ã¥ãµã¤ãºé¸æã¬ã¸ã¹ã¿ï¼ARMv7ï¼*/
+/* キャッシュサイズ選択レジスタ（ARMv7）*/
 #define CP15_WRITE_CSSELR(reg)	Asm("mcr p15, 2, %0, c0, c0, 0"::"r"(reg))
 
-/* ã­ã£ãã·ã¥ãµã¤ãºIDã¬ã¸ã¹ã¿ï¼ARMv7ï¼*/
+/* キャッシュサイズIDレジスタ（ARMv7）*/
 #define CP15_READ_CCSIDR(reg)	Asm("mrc p15, 1, %0, c0, c0, 0":"=r"(reg))
 #endif /* __TARGET_ARCH_ARM == 7 */
 
 /*
- *  CP15ã®ã·ã¹ãã å¶å¾¡ã¬ã¸ã¹ã¿æä½ãã¯ã­
- */
-
-/* ã·ã¹ãã å¶å¾¡ã¬ã¸ã¹ã¿ */
+ *  CP15のシステム制御レジスタ操作マクロ
+ */
+
+/* システム制御レジスタ */
 #define CP15_READ_SCTLR(reg)	Asm("mrc p15, 0, %0, c1, c0, 0":"=r"(reg))
 #define CP15_WRITE_SCTLR(reg)	Asm("mcr p15, 0, %0, c1, c0, 0"::"r"(reg))
 
-/* è£å©å¶å¾¡ã¬ã¸ã¹ã¿ï¼æ©è½ã¯ãããä¾å­ï¼*/
+/* 補助制御レジスタ（機能はチップ依存）*/
 #define CP15_READ_ACTLR(reg)	Asm("mrc p15, 0, %0, c1, c0, 1":"=r"(reg))
 #define CP15_WRITE_ACTLR(reg)	Asm("mcr p15, 0, %0, c1, c0, 1"::"r"(reg))
 
 /*
- *  CP15ã«ããã­ã£ãã·ã¥æä½ãã¯ã­
- */
-
-/* å½ä»¤ã­ã£ãã·ã¥å
-¨ä½ã®ç¡å¹å */
+ *  CP15によるキャッシュ操作マクロ
+ */
+
+/* 命令キャッシュ全体の無効化 */
 #define CP15_INVALIDATE_ICACHE() \
 								Asm("mcr p15, 0, %0, c7, c5, 0"::"r"(0))
 
-/* åå²äºæ¸¬å
-¨ä½ã®ç¡å¹å */
+/* 分岐予測全体の無効化 */
 #define CP15_INVALIDATE_BP()	Asm("mcr p15, 0, %0, c7, c5, 6"::"r"(0))
 
-/* ãã¼ã¿ã­ã£ãã·ã¥å
-¨ä½ã®ç¡å¹åï¼ARMv6ä»¥åï¼*/
+/* データキャッシュ全体の無効化（ARMv6以前）*/
 #if __TARGET_ARCH_ARM <= 6
 #define CP15_INVALIDATE_DCACHE() Asm("mcr p15, 0, %0, c7, c6, 0"::"r"(0))
 #endif /* __TARGET_ARCH_ARM <= 6 */
 
-/* çµ±åã­ã£ãã·ã¥å
-¨ä½ã®ç¡å¹åï¼ARMv6ä»¥åï¼*/
+/* 統合キャッシュ全体の無効化（ARMv6以前）*/
 #if __TARGET_ARCH_ARM <= 6
 #define CP15_INVALIDATE_UCACHE() Asm("mcr p15, 0, %0, c7, c7, 0"::"r"(0))
 #endif /* __TARGET_ARCH_ARM <= 6 */
 
-/* ãã¼ã¿ã­ã£ãã·ã¥å
-¨ä½ã®ã¯ãªã¼ã³ã¨ç¡å¹åï¼ARMv5ã®ã¿ï¼*/
+/* データキャッシュ全体のクリーンと無効化（ARMv5のみ）*/
 #if __TARGET_ARCH_ARM <= 5
 #define ARMV5_CLEAN_AND_INVALIDATE_DCACHE() \
@@ -269,6 +248,5 @@
 #endif /* __TARGET_ARCH_ARM <= 5 */
 
-/* ãã¼ã¿ã­ã£ãã·ã¥å
-¨ä½ã®ã¯ãªã¼ã³ã¨ç¡å¹åï¼ARMv6ã®ã¿ï¼*/
+/* データキャッシュ全体のクリーンと無効化（ARMv6のみ）*/
 #if __TARGET_ARCH_ARM == 6
 #define CP15_CLEAN_AND_INVALIDATE_DCACHE() \
@@ -276,6 +254,5 @@
 #endif /* __TARGET_ARCH_ARM == 6 */
 
-/* çµ±åã­ã£ãã·ã¥å
-¨ä½ã®ã¯ãªã¼ã³ã¨ç¡å¹åï¼ARMv6ã®ã¿ï¼*/
+/* 統合キャッシュ全体のクリーンと無効化（ARMv6のみ）*/
 #if __TARGET_ARCH_ARM == 6
 #define CP15_CLEAN_AND_INVALIDATE_UCACHE() \
@@ -283,13 +260,12 @@
 #endif /* __TARGET_ARCH_ARM == 6 */
 
-/* ãã¼ã¿ã­ã£ãã·ã¥ã®ã»ããï¼ã¦ã§ã¤åä½ã®ç¡å¹å */
+/* データキャッシュのセット／ウェイ単位の無効化 */
 #define CP15_WRITE_DCISW(reg)	Asm("mcr p15, 0, %0, c7, c6, 2"::"r"(reg))
 
-/* ãã¼ã¿ã­ã£ãã·ã¥ã®ã»ããï¼ã¦ã§ã¤åä½ã®ã¯ãªã¼ã³ã¨ç¡å¹å */
+/* データキャッシュのセット／ウェイ単位のクリーンと無効化 */
 #define CP15_WRITE_DCCISW(reg)	Asm("mcr p15, 0, %0, c7, c14, 2"::"r"(reg))
 
 /*
- *  CP15ã®ãã©ã¼ã«ãç¶æ
-ï¼ã¢ãã¬ã¹ã®æä½ãã¯ã­
+ *  CP15のフォールト状態／アドレスの操作マクロ
  */
 #if __TARGET_ARCH_ARM >= 6
@@ -304,20 +280,20 @@
 
 /*
- *  CP15ã«ããMMUã®æä½ãã¯ã­ï¼VMSAï¼
- */
-
-/* å¤æãã¼ãã«ãã¼ã¹å¶å¾¡ã¬ã¸ã¹ã¿ï¼ARMv6ä»¥éï¼*/
+ *  CP15によるMMUの操作マクロ（VMSA）
+ */
+
+/* 変換テーブルベース制御レジスタ（ARMv6以降）*/
 #if __TARGET_ARCH_ARM >= 6
 #define CP15_WRITE_TTBCR(reg)	Asm("mcr p15, 0, %0, c2, c0, 2"::"r"(reg))
 #endif /* __TARGET_ARCH_ARM >= 6 */
 
-/* å¤æãã¼ãã«ãã¼ã¹ã¬ã¸ã¹ã¿0 */
+/* 変換テーブルベースレジスタ0 */
 #define CP15_READ_TTBR0(reg)	Asm("mrc p15, 0, %0, c2, c0, 0":"=r"(reg))
 #define CP15_WRITE_TTBR0(reg)	Asm("mcr p15, 0, %0, c2, c0, 0"::"r"(reg))
 
-/* ãã¡ã¤ã³ã¢ã¯ã»ã¹å¶å¾¡ã¬ã¸ã¹ã¿ */
+/* ドメインアクセス制御レジスタ */
 #define CP15_WRITE_DACR(reg)	Asm("mcr p15, 0, %0, c3, c0, 0":: "r"(reg))
 
-/* ã³ã³ãã­ã¹ãIDã¬ã¸ã¹ã¿ï¼ARMv6ä»¥éï¼*/
+/* コンテキストIDレジスタ（ARMv6以降）*/
 #if __TARGET_ARCH_ARM >= 6
 #define CP15_WRITE_CONTEXTIDR(reg) Asm("mcr p15, 0, %0, c13, c0, 1" ::"r"(reg))
@@ -325,25 +301,24 @@
 
 /*
- *  CP15ã«ããTLBæä½ãã¯ã­ï¼VMSAï¼
- */
-
-/* TLBå
-¨ä½ã®ç¡å¹å */
+ *  CP15によるTLB操作マクロ（VMSA）
+ */
+
+/* TLB全体の無効化 */
 #define CP15_INVALIDATE_TLB()	Asm("mcr p15, 0, %0, c8, c7, 0"::"r"(0))
 
 /*
- *  CP15ã®ããã©ã¼ãã³ã¹ã¢ãã¿æä½ãã¯ã­ï¼ARMv7ã®ã¿ï¼
+ *  CP15のパフォーマンスモニタ操作マクロ（ARMv7のみ）
  */
 #if __TARGET_ARCH_ARM == 7
 
-/* ããã©ã¼ãã³ã¹ã¢ãã¿å¶å¾¡ã¬ã¸ã¹ã¿ */
+/* パフォーマンスモニタ制御レジスタ */
 #define CP15_READ_PMCR(reg)		Asm("mrc p15, 0, %0, c9, c12, 0":"=r"(reg))
 #define CP15_WRITE_PMCR(reg)	Asm("mcr p15, 0, %0, c9, c12, 0"::"r"(reg))
 
-/* ããã©ã¼ãã³ã¹ã¢ãã¿ã«ã¦ã³ãã¤ãã¼ãã«ã»ããã¬ã¸ã¹ã¿ */
+/* パフォーマンスモニタカウントイネーブルセットレジスタ */
 #define CP15_READ_PMCNTENSET(reg)  Asm("mrc p15, 0, %0, c9, c12, 1":"=r"(reg))
 #define CP15_WRITE_PMCNTENSET(reg) Asm("mcr p15, 0, %0, c9, c12, 1"::"r"(reg))
 
-/* ããã©ã¼ãã³ã¹ã¢ãã¿ã«ã¦ã³ã¿ãµã¤ã¯ã«ã¬ã¸ã¹ã¿ */
+/* パフォーマンスモニタカウンタサイクルレジスタ */
 #define CP15_READ_PMCCNTR(reg)	Asm("mrc p15, 0, %0, c9, c13, 0":"=r"(reg))
 #define CP15_WRITE_PMCCNTR(reg)	Asm("mcr p15, 0, %0, c9, c13, 0"::"r"(reg))
@@ -352,5 +327,5 @@
 
 /*
- *  CP15ã«ããã¡ã¢ãªããªã¢æä½ãã¯ã­
+ *  CP15によるメモリバリア操作マクロ
  */
 #define CP15_INST_SYNC_BARRIER() \
@@ -362,26 +337,21 @@
 
 /*
- *  ã¡ã¢ãªããªã¢
- *
- *  ARMv6ã¨ARMv7ãæã¤3ã¤ã®ã¡ã¢ãªããªã¢æ©è½ãä½¿ç¨ããããã®é¢æ°ï¼ã¡ã¢ãª
- *  ããªã¢ã¯ï¼ARMv7ã§ã¯å°ç¨å½ä»¤ï¼ARMv6ã§ã¯CP15ã¸ã®æ¸è¾¼ã¿ã§å®ç¾ãããï¼
- *  ARMv7ã®ã¡ã¢ãªããªã¢å½ä»¤ã¯ï¼åæãåãç¯å²ãæå®ã§ãããï¼ä»¥ä¸ã®é¢æ°
- *  ã§ã¯æå¤§ç¯å²ï¼ã·ã¹ãã å
-¨ä½ï¼ãªã¼ãï¼ã©ã¤ãã®ä¸¡æ¹ï¼ã§åæãåãï¼
- *
- *  ARMv5ä»¥åã§ã¯ï¼ã¡ã¢ãªããªã¢æ©è½ã¯å®è£
-ä¾å­ã§ããããï¼ããããï¼
- *  DATA_MEMORY_BARRIERï¼DATA_SYNC_BARRIERï¼INST_SYNC_BARRIERãå®ç¾©ãã
- *  ãã¨ã«ãã£ã¦ï¼é¢æ°ã®å
-å®¹ãå
-¥ãæããããããã«ãã¦ããï¼
- */
-
-/*
- *  ãã¼ã¿ã¡ã¢ãªããªã¢
- *
- *  ãã®ããªã¢ã®åå¾ã§ï¼ã¡ã¢ãªã¢ã¯ã»ã¹ã®é åºãå
-¥ãæãããªãããã«ããï¼
- *  ãã«ãã³ã¢ï¼å³å¯ã«ã¯ãã«ããã¹ã¿ï¼ã§ã®ä½¿ç¨ãæ³å®ããå½ä»¤ï¼
+ *  メモリバリア
+ *
+ *  ARMv6とARMv7が持つ3つのメモリバリア機能を使用するための関数．メモリ
+ *  バリアは，ARMv7では専用命令，ARMv6ではCP15への書込みで実現される．
+ *  ARMv7のメモリバリア命令は，同期を取る範囲を指定できるが，以下の関数
+ *  では最大範囲（システム全体，リード／ライトの両方）で同期を取る．
+ *
+ *  ARMv5以前では，メモリバリア機能は実装依存であるため，それぞれ，
+ *  DATA_MEMORY_BARRIER，DATA_SYNC_BARRIER，INST_SYNC_BARRIERを定義する
+ *  ことによって，関数の内容を入れ換えられるようにしている．
+ */
+
+/*
+ *  データメモリバリア
+ *
+ *  このバリアの前後で，メモリアクセスの順序が入れ換わらないようにする．
+ *  マルチコア（厳密にはマルチマスタ）での使用を想定した命令．
  */
 Inline void
@@ -398,11 +368,8 @@
 
 /*
- *  ãã¼ã¿åæããªã¢
- *
- *  å
-è¡ããã¡ã¢ãªã¢ã¯ã»ã¹ãå®äºããã®ãå¾
-ã¤ï¼ã¡ã¢ãªã¢ã¯ã»ã¹ãå¯ä½ç¨ã
- *  æã¤æã«ï¼ãã®å¯ä½ç¨ãèµ·ããã®ãå¾
-ã¤ããã®ä½¿ç¨ãæ³å®ããå½ä»¤ï¼
+ *  データ同期バリア
+ *
+ *  先行するメモリアクセスが完了するのを待つ．メモリアクセスが副作用を
+ *  持つ時に，その副作用が起こるのを待つための使用を想定した命令．
  */
 Inline void
@@ -419,11 +386,10 @@
 
 /*
- *  å½ä»¤åæããªã¢
- *
- *  ãã­ã°ã©ã ãæ¸ãæããããï¼ã¾ãã¯ï¼ã·ã¹ãã ç¶æ
-ã®å¤åã«ããå®è¡ã
- *  ã¹ããã­ã°ã©ã ãå¤ãã£ãï¼æã«ï¼ãã¤ãã©ã¤ã³ããã©ãã·ã¥ãããªã©ï¼
- *  æ°ãããã­ã°ã©ã ãèª­ã¿è¾¼ãããã«ããï¼ARMv6ã§ã¯ï¼ããªãã§ãããã©ã
- *  ã·ã¥ã¨å¼ã°ãã¦ããï¼
+ *  命令同期バリア
+ *
+ *  プログラムが書き換えられた（または，システム状態の変化により実行す
+ *  べきプログラムが変わった）時に，パイプラインをフラッシュするなど，
+ *  新しいプログラムを読み込むようにする．ARMv6では，プリフェッチフラッ
+ *  シュと呼ばれている．
  */
 Inline void
@@ -440,9 +406,9 @@
 
 /*
- *  CP15ã®ã»ã­ã¥ãªãã£æ¡å¼µã¬ã¸ã¹ã¿æä½ãã¯ã­ï¼ARMv7ã®ã¿ï¼
+ *  CP15のセキュリティ拡張レジスタ操作マクロ（ARMv7のみ）
  */
 #if __TARGET_ARCH_ARM == 7
 
-/* ãã¯ã¿ãã¼ã¹ã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */
+/* ベクタベースアドレスレジスタ */
 #define CP15_READ_VBAR(reg)		Asm("mrc p15, 0, %0, c12, c0, 0":"=r"(reg))
 #define CP15_WRITE_VBAR(reg)	Asm("mcr p15, 0, %0, c12, c0, 0"::"r"(reg))
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_cfg1_out.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_cfg1_out.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_cfg1_out.h	(revision 321)
@@ -1,5 +1,4 @@
 /*
- *		cfg1_out.cã®ãªã³ã¯ã«å¿
-è¦ãªã¹ã¿ãã®å®ç¾©
+ *		cfg1_out.cのリンクに必要なスタブの定義
  *
  *  $Id$
@@ -7,6 +6,5 @@
 
 /*
- *  cfg1_out.cã®ãªã³ã¯ã«å¿
-è¦ãªå®ç¾©
+ *  cfg1_out.cのリンクに必要な定義
  */
 
@@ -17,5 +15,5 @@
 
 /*
- *  offset.hãçæããããã®å®ç¾©
+ *  offset.hを生成するための定義
  */
 const uint8_t	MAGIC_1 = 0x12;
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_check.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_check.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_check.trb	(revision 321)
@@ -1,20 +1,20 @@
 # -*- coding: utf-8 -*-
 # 
-#		ãã¹3ã®çæã¹ã¯ãªããã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+#		パス3の生成スクリプトのコア依存部（ARM用）
 # 
-#  $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $
+#  $Id$
 #
 
 #
-#  ã¿ã¼ã²ããéä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#  ターゲット非依存部のインクルード
 #
 IncludeTrb("kernel/kernel_check.trb")
 
 #
-#  å²è¾¼ã¿ãã³ãã©ãã¼ãã«ã«é¢ãããã§ãã¯
+#  割込みハンドラテーブルに関するチェック
 #
-# DEF_INHã§ç»é²ããå²è¾¼ã¿ãã³ãã©ã®ã¿ãã§ãã¯ããï¼éã«è¨ãã¨ï¼ã³ã³ãã£
-# ã®ã¥ã¬ã¼ã¿ã§çæããå²è¾¼ã¿ãã³ãã©ãï¼default_int_handlerã®ãã§ãã¯ã¯
-# è¡ããªãï¼
+# DEF_INHで登録した割込みハンドラのみチェックする．逆に言うと，コンフィ
+# ギュレータで生成した割込みハンドラや，default_int_handlerのチェックは
+# 行わない．
 #
 inhTable = SYMBOL("_kernel_inh_table")
@@ -23,6 +23,5 @@
   inthdr = PEEK(inhTable + offset + params[:inhno] * $sizeof_FP, $sizeof_FP)
 
-  #	å²è¾¼ã¿ãã³ãã©ã®å
-é ­çªå°ã®ãã§ãã¯ï¼»NGKI3056ï¼½
+  #	割込みハンドラの先頭番地のチェック［NGKI3056］
   if (inthdr & ($CHECK_FUNC_ALIGN - 1)) != 0
     error_wrong_id("E_PAR", params, :inthdr, :inhno, "not aligned")
@@ -34,8 +33,8 @@
 
 #
-#  CPUä¾å¤ãã³ãã©ãã¼ãã«ã«é¢ãããã§ãã¯
+#  CPU例外ハンドラテーブルに関するチェック
 #
-# DEF_EXCã§ç»é²ããCPUä¾å¤ãã³ãã©ã®ã¿ãã§ãã¯ããï¼éã«è¨ãã¨ï¼
-# default_exc_handlerã®ãã§ãã¯ã¯è¡ããªãï¼
+# DEF_EXCで登録したCPU例外ハンドラのみチェックする．逆に言うと，
+# default_exc_handlerのチェックは行わない．
 #
 excTable = SYMBOL("_kernel_exc_table")
@@ -43,6 +42,5 @@
   exchdr = PEEK(excTable + params[:excno] * $sizeof_FP, $sizeof_FP)
 
-  # CPUä¾å¤ãã³ãã©ã®å
-é ­çªå°ã®ãã§ãã¯ï¼»NGKI3135ï¼½
+  # CPU例外ハンドラの先頭番地のチェック［NGKI3135］
   if (exchdr & ($CHECK_FUNC_ALIGN - 1)) != 0
     error_wrong_id("E_PAR", params, :exchdr, :excno, "not aligned")
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,9 +42,9 @@
 
 /*
- *		kernel.hã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+ *		kernel.hのコア依存部（ARM用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼target_kernel.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ã
- *  ããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ããç´æ¥ã¤
- *  ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ *  このヘッダファイルは，target_kernel.h（または，そこからインクルード
+ *  されるファイル）のみからインクルードされる．他のファイルから直接イ
+ *  ンクルードしてはならない．
  */
 
@@ -68,19 +53,17 @@
 
 /*
- *  ã¹ã¿ãã¯ã®å
+ *  スタックの型
  *
- *  ARMã§ã¯ï¼ã¹ã¿ãã¯ã8ãã¤ãå¢çã«é
-ç½®ããå¿
-è¦ãããï¼
+ *  ARMでは，スタックを8バイト境界に配置する必要がある．
  */
 #define TOPPERS_STK_T	long long
 
 /*
- *  CPUä¾å¤ãã³ãã©çªå·ã®æ°
+ *  CPU例外ハンドラ番号の数
  */  
 #define TNUM_EXCNO		6
 
 /*
- *  CPUä¾å¤ãã³ãã©çªå·ã®å®ç¾©
+ *  CPU例外ハンドラ番号の定義
  */
 #define EXCNO_UNDEF		0
@@ -94,14 +77,12 @@
 
 /*
- *  CPUä¾å¤ã®æ
-å ±ãè¨æ¶ãã¦ããã¡ã¢ãªé åã®æ§é 
+ *  CPU例外の情報を記憶しているメモリ領域の構造
  */
 #if __TARGET_ARCH_ARM < 6
 
 typedef struct t_excinf {
-	uint32_t	nest_count;				/* ä¾å¤ãã¹ãã«ã¦ã³ã */
-	uint32_t	intpri;					/* å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ */
-	uint32_t	cpsr;					/* CPUä¾å¤çºçæã®CPSR */
+	uint32_t	nest_count;				/* 例外ネストカウント */
+	uint32_t	intpri;					/* 割込み優先度マスク */
+	uint32_t	cpsr;					/* CPU例外発生時のCPSR */
 	uint32_t	r0;
 	uint32_t	r1;
@@ -112,5 +93,5 @@
 	uint32_t	r12;
 	uint32_t	lr;
-	uint32_t	pc;						/* æ»ãçªå° */
+	uint32_t	pc;						/* 戻り番地 */
 } T_EXCINF;
 
@@ -118,7 +99,6 @@
 
 typedef struct t_excinf {
-	uint32_t	nest_count;				/* ä¾å¤ãã¹ãã«ã¦ã³ã */
-	uint32_t	intpri;					/* å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ */
+	uint32_t	nest_count;				/* 例外ネストカウント */
+	uint32_t	intpri;					/* 割込み優先度マスク */
 	uint32_t	r0;
 	uint32_t	r1;
@@ -129,6 +109,6 @@
 	uint32_t	r12;
 	uint32_t	lr;
-	uint32_t	pc;						/* æ»ãçªå° */
-	uint32_t	cpsr;					/* CPUä¾å¤çºçæã®CPSR */
+	uint32_t	pc;						/* 戻り番地 */
+	uint32_t	cpsr;					/* CPU例外発生時のCPSR */
 } T_EXCINF;
 
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.trb	(revision 321)
@@ -9,72 +9,57 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		ãã¹2ã®çæã¹ã¯ãªããã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+#		パス2の生成スクリプトのコア依存部（ARM用）
 #
 
 #
-#  æå¹ãªCPUä¾å¤ãã³ãã©çªå·
+#  有効なCPU例外ハンドラ番号
 #
 $EXCNO_VALID = [ 0, 1, 2, 3, 4, 5 ]
 
 #
-#  DEF_EXCã§ä½¿ç¨ã§ããCPUä¾å¤ãã³ãã©çªå·
+#  DEF_EXCで使用できるCPU例外ハンドラ番号
 #
 $EXCNO_DEFEXC_VALID = [ 0, 1, 2, 3, 5 ]
 
 #
-#  ã¿ã¼ã²ããéä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#  ターゲット非依存部のインクルード
 #
 IncludeTrb("kernel/kernel.trb")
 
 #
-#  å²è¾¼ã¿ãã³ãã©ãã¼ãã«
+#  割込みハンドラテーブル
 #
 $kernelCfgC.comment_header("Interrupt Handler Table")
@@ -94,5 +79,5 @@
 
 #
-#  å²è¾¼ã¿è¦æ±ã©ã¤ã³è¨­å®ãã¼ãã«
+#  割込み要求ライン設定テーブル
 #
 if $USE_INTCFG_TABLE
@@ -114,5 +99,5 @@
 
 #
-#  CPUä¾å¤ãã³ãã©ãã¼ãã«
+#  CPU例外ハンドラテーブル
 #
 $kernelCfgC.comment_header("CPU Exception Handler Table")
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã«ã¼ãã«ã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+ *		カーネルのコア依存部（ARM用）
  */
 
@@ -66,19 +51,18 @@
 
 /*
- *  ã³ã³ãã­ã¹ãåç
-§ã®ããã®å¤æ°
- */
-uint32_t	excpt_nest_count;		/* ä¾å¤ãã¹ãã«ã¦ã³ã */
-
-/*
- *  MMUé¢é£ã®æä½ï¼VMSAï¼
+ *  コンテキスト参照のための変数
+ */
+uint32_t	excpt_nest_count;		/* 例外ネストカウント */
+
+/*
+ *  MMU関連の操作（VMSA）
  */
 #ifdef USE_ARM_MMU
 
-#define CP15_DACR_D0_CLIENT	0x01U	/* å¤æãã¼ãã«ã«å¾ããã¡ã¤ã³0ã«ã¢ã¯ã»ã¹ */
-#define DEFAULT_ASID		1		/* ä½¿ç¨ããASID */
-
-/*
- *  ã»ã¯ã·ã§ã³ãã¼ãã«
+#define CP15_DACR_D0_CLIENT	0x01U	/* 変換テーブルに従いドメイン0にアクセス */
+#define DEFAULT_ASID		1		/* 使用するASID */
+
+/*
+ *  セクションテーブル
  */
 static uint32_t section_table[ARM_SECTION_TABLE_ENTRY]
@@ -86,5 +70,5 @@
 
 /*
- *  MMUã®ã»ã¯ã·ã§ã³ãã¼ãã«ã¨ã³ããªã®è¨­å®
+ *  MMUのセクションテーブルエントリの設定
  */
 Inline void
@@ -121,5 +105,5 @@
 
 /*
- *  MMUã®åæå
+ *  MMUの初期化
  */
 void
@@ -130,5 +114,5 @@
 
 	/*
-	 *  MMUã®ã»ã¯ã·ã§ã³ãã¼ãã«ã®è¨­å®
+	 *  MMUのセクションテーブルの設定
 	 */
 	for (i = 0; i < ARM_SECTION_TABLE_ENTRY; i++) {
@@ -140,5 +124,5 @@
 
 	/*
-	 *  TTBR0ãç¨ããããã«æå®ï¼ARMv6ä»¥éï¼
+	 *  TTBR0を用いるように指定（ARMv6以降）
 	 */
 #if __TARGET_ARCH_ARM >= 6
@@ -147,5 +131,5 @@
 
 	/*
-	 *  å¤æãã¼ãã«ã¨ãã¦ï¼section_tableãä½¿ç¨ããï¼
+	 *  変換テーブルとして，section_tableを使用する．
 	 */
 	reg = ((uint32_t) &(section_table[0])) | TTBR_CONFIG;
@@ -153,10 +137,10 @@
 
 	/*
-	 * ãã¡ã¤ã³ã¢ã¯ã»ã¹å¶å¾¡ã®è¨­å®
+	 * ドメインアクセス制御の設定
 	 */
 	CP15_WRITE_DACR(CP15_DACR_D0_CLIENT);
 
 	/*
-	 *  ASIDã®è¨­å®
+	 *  ASIDの設定
 	 */
 #if __TARGET_ARCH_ARM >= 6
@@ -165,12 +149,11 @@
 
 	/*
-	 *  TLBå
-¨ä½ã®ç¡å¹å
+	 *  TLB全体の無効化
 	 */
 	arm_invalidate_tlb();
 
 	/*
-	 *  MMUãæå¹ã«ããï¼ARMv6ã§ã¯ï¼æ¡å¼µãã¼ã¸ãã¼ãã«è¨­å®ãä½¿ãï¼ãµã
-	 *  ãã¼ã¸ã¯ä½¿ããªãï¼ããã«è¨­å®ããï¼
+	 *  MMUを有効にする．ARMv6では，拡張ページテーブル設定を使う（サブ
+	 *  ページは使わない）ように設定する．
 	 */
 	CP15_READ_SCTLR(reg);
@@ -187,5 +170,5 @@
 
 /*
- *  ã³ã¢ä¾å­ã®åæå
+ *  コア依存の初期化
  */
 void
@@ -193,11 +176,11 @@
 {
 	/*
-	 *  ã«ã¼ãã«èµ·åæã¯éã¿ã¹ã¯ã³ã³ãã­ã¹ãã¨ãã¦åä½ãããããã«ï¼ä¾å¤
-	 *  ã®ãã¹ãåæ°ã1ã«åæåããï¼
+	 *  カーネル起動時は非タスクコンテキストとして動作させるために，例外
+	 *  のネスト回数を1に初期化する．
 	 */ 
 	excpt_nest_count = 1U;
 
 	/*
-	 *  MMUãæå¹ã«
+	 *  MMUを有効に
 	 */
 #ifdef USE_ARM_MMU
@@ -206,5 +189,5 @@
 
 	/*
-	 *  ããã©ã¼ãã³ã¹ã¢ãã¿ã®åæå
+	 *  パフォーマンスモニタの初期化
 	 */
 #if defined(USE_ARM_PM_HIST) && __TARGET_ARCH_ARM == 7
@@ -214,5 +197,5 @@
 
 /*
- *  ã³ã¢ä¾å­ã®çµäºå¦ç
+ *  コア依存の終了処理
  */
 void
@@ -222,12 +205,11 @@
 
 /*
- *  CPUä¾å¤ã®çºçç¶æ³ã®ã­ã°åºå
+ *  CPU例外の発生状況のログ出力
  */
 #ifndef OMIT_XLOG_SYS
 
 /*
- *  CPUä¾å¤ãã³ãã©ã®ä¸­ããï¼CPUä¾å¤æ
-å ±ãã¤ã³ã¿ï¼p_excinfï¼ãå¼æ°ã¨ã
- *  ã¦å¼ã³åºããã¨ã§ï¼CPUä¾å¤ã®çºçç¶æ³ãã·ã¹ãã ã­ã°ã«åºåããï¼
+ *  CPU例外ハンドラの中から，CPU例外情報ポインタ（p_excinf）を引数とし
+ *  て呼び出すことで，CPU例外の発生状況をシステムログに出力する．
  */
 void
@@ -246,7 +228,6 @@
 
 /*
- *  ããªãã§ããï¼ãã¼ã¿ã¢ãã¼ããçºçããç¶æ³ï¼ç¶æ
-ã¨ã¢ãã¬ã¹ï¼ãã·ã¹
- *  ãã ã­ã°ã«åºåããï¼
+ *  プリフェッチ／データアボートが発生した状況（状態とアドレス）をシス
+ *  テムログに出力する．
  */
 void
@@ -282,6 +263,5 @@
 
 /*
- *  æªå®ç¾©ã®å²è¾¼ã¿ãå
-¥ã£ãå ´åã®å¦ç
+ *  未定義の割込みが入った場合の処理
  */
 #ifndef OMIT_DEFAULT_INT_HANDLER
@@ -297,6 +277,5 @@
 
 /*
- *  æªå®ç¾©ã®ä¾å¤ãå
-¥ã£ãå ´åã®å¦ç
+ *  未定義の例外が入った場合の処理
  */
 #ifndef OMIT_DEFAULT_EXC_HANDLER
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,9 +42,9 @@
 
 /*
- *		kernel_impl.hã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
- *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼target_kernel_impl.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
- *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
- *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ *		kernel_impl.hのコア依存部（ARM用）
+ *
+ *  このヘッダファイルは，target_kernel_impl.h（または，そこからインク
+ *  ルードされるファイル）のみからインクルードされる．他のファイルから
+ *  直接インクルードしてはならない．
  */
 
@@ -70,27 +55,26 @@
 
 /*
- *  ã¨ã©ã¼ãã§ãã¯æ¹æ³ã®æå®
- */
-#define CHECK_STKSZ_ALIGN	8		/* ã¹ã¿ãã¯ãµã¤ãºã®ã¢ã©ã¤ã³åä½ */
-#define CHECK_INTPTR_ALIGN	4		/* intptr_tåã®å¤æ°ã®ã¢ã©ã¤ã³åä½ */
-#define CHECK_INTPTR_NONNULL		/* intptr_tåã®å¤æ°ã®éNULLãã§ãã¯ */
+ *  エラーチェック方法の指定
+ */
+#define CHECK_STKSZ_ALIGN	8		/* スタックサイズのアライン単位 */
+#define CHECK_INTPTR_ALIGN	4		/* intptr_t型の変数のアライン単位 */
+#define CHECK_INTPTR_NONNULL		/* intptr_t型の変数の非NULLチェック */
 #ifndef  __thumb__
-#define CHECK_FUNC_ALIGN	4		/* é¢æ°ã®ã¢ã©ã¤ã³åä½ */
+#define CHECK_FUNC_ALIGN	4		/* 関数のアライン単位 */
 #endif /* __thumb__ */
-#define CHECK_FUNC_NONNULL			/* é¢æ°ã®éNULLãã§ãã¯ */
-#define CHECK_STACK_ALIGN	8		/* ã¹ã¿ãã¯é åã®ã¢ã©ã¤ã³åä½ */
-#define CHECK_STACK_NONNULL			/* ã¹ã¿ãã¯é åã®éNULLãã§ãã¯ */
-#define CHECK_MPF_ALIGN		4		/* åºå®é·ã¡ã¢ãªãã¼ã«é åã®ã¢ã©ã¤ã³åä½ */
-#define CHECK_MPF_NONNULL			/* åºå®é·ã¡ã¢ãªãã¼ã«é åã®éNULLãã§ãã¯ */
-#define CHECK_MB_ALIGN		4		/* ç®¡çé åã®ã¢ã©ã¤ã³åä½ */
+#define CHECK_FUNC_NONNULL			/* 関数の非NULLチェック */
+#define CHECK_STACK_ALIGN	8		/* スタック領域のアライン単位 */
+#define CHECK_STACK_NONNULL			/* スタック領域の非NULLチェック */
+#define CHECK_MPF_ALIGN		4		/* 固定長メモリプール領域のアライン単位 */
+#define CHECK_MPF_NONNULL			/* 固定長メモリプール領域の非NULLチェック */
+#define CHECK_MB_ALIGN		4		/* 管理領域のアライン単位 */
 
 #ifndef TOPPERS_MACRO_ONLY
 
 /*
- *  ã¬ãã£ã­ã¥ã¼ãµã¼ãã®ããã®ãããããããµã¼ãé¢æ°
- *
- *  CLZå½ä»¤ã¯æä¸ä½ããããããµã¼ãããããï¼æä¸ä½ããããæé«åªå
-åº¦ã«
- *  å¯¾å¿ãããï¼
+ *  レディキューサーチのためのビットマップサーチ関数
+ *
+ *  CLZ命令は最上位ビットからサーチするため，最上位ビットを最高優先度に
+ *  対応させる．
  */
 #if __TARGET_ARCH_ARM >= 6
@@ -108,15 +92,14 @@
 
 /*
- *  ã³ã³ãã­ã¹ãã®åç
-§
- *
- *  ARMä¾å­é¨ã§ã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã¨éã¿ã¹ã¯ã³ã³ãã­ã¹ãã®ä¸¡æ¹ãã¹ã¼
- *  ããã¤ã¶ã¢ã¼ãã§åä½ãããããï¼ãã­ã»ããµã¢ã¼ãã§å¤æ­ãããã¨ãã§
- *  ããªãï¼ãã®ããï¼å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®ãã¹ãæ®µæ°ï¼ãã
- *  ãï¼ä¾å¤ãã¹ãã«ã¦ã³ãã¨å¼ã¶ï¼ã§ç®¡çãï¼ä¾å¤ãã¹ãã«ã¦ã³ãã0ã®æã«
- *  ã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼0ããå¤§ããå ´åã«éã¿ã¹ã¯ã³ã³ãã­ã¹ãã§ããã¨å¤
- *  æ­ããï¼
- */
-extern uint32_t	excpt_nest_count;		/* ä¾å¤ãã¹ãã«ã¦ã³ã */
+ *  コンテキストの参照
+ *
+ *  ARM依存部では，タスクコンテキストと非タスクコンテキストの両方をスー
+ *  パバイザモードで動作させるため，プロセッサモードで判断することがで
+ *  きない．そのため，割込みハンドラ／CPU例外ハンドラのネスト段数（これ
+ *  を，例外ネストカウントと呼ぶ）で管理し，例外ネストカウントが0の時に
+ *  タスクコンテキスト，0より大きい場合に非タスクコンテキストであると判
+ *  断する．
+ */
+extern uint32_t	excpt_nest_count;		/* 例外ネストカウント */
 
 Inline bool_t
@@ -129,25 +112,24 @@
 
 /*
- *  TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã®å®ç¾
- *
- *  ARMã³ã¢ä¾å­é¨ã§ã¯ï¼å²è¾¼ã¿ã®æ±ãã«é¢ãã¦ï¼æ¬¡ã®2ã¤ã®æ¹æ³ããµãã¼ãã
- *  ãï¼
- *
- *  (1) ã«ã¼ãã«ãåä½ã§ä½¿ç¨ããå ´åãSafeGã®ãã³ã»ã­ã¥ã¢ã¢ã¼ãã§ä½¿ç¨ã
- *  ãå ´åï¼IRQãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ï¼FIQãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ã
- *  ãï¼ããã©ã«ãã§ã¯ï¼ãã®æ¹æ³ãä½¿ç¨ãããï¼
- *
- *  (2) SafeGã®ã»ã­ã¥ã¢ã¢ã¼ãã§ä½¿ç¨ããå ´åï¼FIQãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿
- *  ã¨ãï¼ã«ã¼ãã«ã®åä½ä¸­ã¯IRQãå¸¸ã«ãã¹ã¯ããï¼ãã®æ¹æ³ãä½¿ç¨ããå ´å
- *  ã«ã¯ï¼TOPPERS_SAFEG_SECUREããã¯ã­å®ç¾©ããï¼
- * 
- *  TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã®ä¸­ã§ï¼å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã¨å²è¾¼ã¿è¦æ±ç¦
- *  æ­¢ãã©ã°ã«é¢ãã¦ã¯ï¼å²è¾¼ã¿ã³ã³ãã­ã¼ã©ã«ãã£ã¦å®ç¾æ¹æ³ãç°ãªãããï¼
- *  ARMã³ã¢ä¾å­é¨ã§ã¯æ±ããªãï¼
- */
-
-/*
- *  FIQã¨IRQã®ä¸¡æ¹ãç¦æ­¢ããCPSRã®ããããã¿ã¼ã³
+ *  TOPPERS標準割込み処理モデルの実現
+ *
+ *  ARMコア依存部では，割込みの扱いに関して，次の2つの方法をサポートす
+ *  る．
+ *
+ *  (1) カーネルを単体で使用する場合やSafeGのノンセキュアモードで使用す
+ *  る場合：IRQをカーネル管理の割込み，FIQをカーネル管理外の割込みとす
+ *  る．デフォルトでは，この方法が使用される．
+ *
+ *  (2) SafeGのセキュアモードで使用する場合：FIQをカーネル管理の割込み
+ *  とし，カーネルの動作中はIRQを常にマスクする．この方法を使用する場合
+ *  には，TOPPERS_SAFEG_SECUREをマクロ定義する．
+ * 
+ *  TOPPERS標準割込み処理モデルの中で，割込み優先度マスクと割込み要求禁
+ *  止フラグに関しては，割込みコントローラによって実現方法が異なるため，
+ *  ARMコア依存部では扱わない．
+ */
+
+/*
+ *  FIQとIRQの両方を禁止するCPSRのビットパターン
  */
 #ifndef TOPPERS_MACRO_ONLY
@@ -158,6 +140,5 @@
 
 /*
- *  CPUã­ãã¯ã»å²è¾¼ã¿ã­ãã¯ã§ãªãç¶æ
-ã§ã®CPSRã®ããããã¿ã¼ã³
+ *  CPUロック・割込みロックでない状態でのCPSRのビットパターン
  */
 #ifndef TOPPERS_SAFEG_SECURE
@@ -168,6 +149,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã§ã®CPSRã®ããããã¿ã¼ã³
+ *  CPUロック状態でのCPSRのビットパターン
  */
 #ifndef TOPPERS_SAFEG_SECURE
@@ -178,6 +158,5 @@
 
 /*
- *  å²è¾¼ã¿ã­ãã¯ç¶æ
-ã§ã®CPSRã®ããããã¿ã¼ã³
+ *  割込みロック状態でのCPSRのビットパターン
  */
 #define CPSR_INTLOCK		CPSR_FIQ_IRQ_BIT
@@ -186,6 +165,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã¸ã®é·ç§»
+ *  CPUロック状態への遷移
  */
 Inline void
@@ -203,7 +181,5 @@
 
 	/*
-	 *  ã¡ã¢ãªåç
-§ãï¼ãã®é¢æ°ãè¶
-ãã¦æé©åããããã¨ãææ­¢
+	 *  メモリ参照が，この関数を超えて最適化されることを抑止
 	 */
 	ARM_MEMORY_CHANGED;
@@ -211,13 +187,10 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã¸ã®ç§»è¡ï¼ãã£ã¹ãããã§ããç¶æ
-ï¼
+ *  CPUロック状態への移行（ディスパッチできる状態）
  */
 #define lock_cpu_dsp()		lock_cpu()
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®è§£é¤
+ *  CPUロック状態の解除
  */
 Inline void
@@ -225,7 +198,5 @@
 {
 	/*
-	 *  ã¡ã¢ãªåç
-§ãï¼ãã®é¢æ°ãè¶
-ãã¦æé©åããããã¨ãææ­¢
+	 *  メモリ参照が，この関数を超えて最適化されることを抑止
 	 */
 	ARM_MEMORY_CHANGED;
@@ -243,14 +214,10 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®è§£é¤ï¼ãã£ã¹ãããã§ããç¶æ
-ï¼
+ *  CPUロック状態の解除（ディスパッチできる状態）
  */
 #define unlock_cpu_dsp()	unlock_cpu()
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®åç
-§
+ *  CPUロック状態の参照
  */
 Inline bool_t
@@ -265,6 +232,5 @@
 
 /*
- *  å²è¾¼ã¿ãåãä»ããããã®é
-å»¶å¦ç
+ *  割込みを受け付けるための遅延処理
  */
 Inline void
@@ -274,86 +240,70 @@
 
 /*
- *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯åæå¤
+ *  非タスクコンテキスト用のスタック初期値
  */
 #define TOPPERS_ISTKPT(istk, istksz)	((STK_T *)((char *)(istk) + (istksz)))
 
 /*
- *  ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯ã®å®ç¾©
+ *  タスクコンテキストブロックの定義
  */
 typedef struct task_context_block {
-	void	*sp;		/* ã¹ã¿ãã¯ãã¤ã³ã¿ */
-	FP		pc;			/* å®è¡åéçªå° */
+	void	*sp;		/* スタックポインタ */
+	FP		pc;			/* 実行再開番地 */
 } TSKCTXB;
 
 /*
- *  ã¿ã¹ã¯ãã£ã¹ãããã£
- */
-
-/*
- *  æé«åªå
-é ä½ã¿ã¹ã¯ã¸ã®ãã£ã¹ãããï¼core_support.Sï¼
- *
- *  dispatchã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãããå¼ã³åºããããµã¼ãã¹ã³ã¼ã«å¦çã
- *  ãå¼ã³åºãã¹ããã®ã§ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
-ã»ãã£ã¹ãã
- *  ãè¨±å¯ç¶æ
-ã»ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
-åº¦ãã¹ã¯å
-¨è§£é¤ç¶æ
-ã§å¼ã³åºããª
- *  ããã°ãªããªãï¼
+ *  タスクディスパッチャ
+ */
+
+/*
+ *  最高優先順位タスクへのディスパッチ（core_support.S）
+ *
+ *  dispatchは，タスクコンテキストから呼び出されたサービスコール処理か
+ *  ら呼び出すべきもので，タスクコンテキスト・CPUロック状態・ディスパッ
+ *  チ許可状態・（モデル上の）割込み優先度マスク全解除状態で呼び出さな
+ *  ければならない．
  */
 extern void dispatch(void);
 
 /*
- *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®ãã£ã¹ãããè¦æ±
+ *  非タスクコンテキストからのディスパッチ要求
  */
 #define request_dispatch()
 
 /*
- *  ãã£ã¹ãããã£ã®åä½éå§ï¼core_support.Sï¼
- *
- *  start_dispatchã¯ï¼ã«ã¼ãã«èµ·åæã«å¼ã³åºãã¹ããã®ã§ï¼ãã¹ã¦ã®å²è¾¼
- *  ã¿ãç¦æ­¢ããç¶æ
-ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
-ã¨åç­ã®ç¶æ
-ï¼ã§å¼ã³åºããªããã°
- *  ãªããªãï¼
+ *  ディスパッチャの動作開始（core_support.S）
+ *
+ *  start_dispatchは，カーネル起動時に呼び出すべきもので，すべての割込
+ *  みを禁止した状態（割込みロック状態と同等の状態）で呼び出さなければ
+ *  ならない．
  */
 extern void start_dispatch(void) NoReturn;
 
 /*
- *  ç¾å¨ã®ã³ã³ãã­ã¹ããæ¨ã¦ã¦ãã£ã¹ãããï¼core_support.Sï¼
- *
- *  exit_and_dispatchã¯ï¼ext_tskããå¼ã³åºãã¹ããã®ã§ï¼ã¿ã¹ã¯ã³ã³ãã­
- *  ã¹ãã»CPUã­ãã¯ç¶æ
-ã»ãã£ã¹ãããè¨±å¯ç¶æ
-ã»ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
-
- *  åº¦ãã¹ã¯å
-¨è§£é¤ç¶æ
-ã§å¼ã³åºããªããã°ãªããªãï¼
+ *  現在のコンテキストを捨ててディスパッチ（core_support.S）
+ *
+ *  exit_and_dispatchは，ext_tskから呼び出すべきもので，タスクコンテキ
+ *  スト・CPUロック状態・ディスパッチ許可状態・（モデル上の）割込み優先
+ *  度マスク全解除状態で呼び出さなければならない．
  */
 extern void exit_and_dispatch(void) NoReturn;
 
 /*
- *  ã«ã¼ãã«ã®çµäºå¦çã®å¼åºãï¼core_support.Sï¼
- *
- *  call_exit_kernelã¯ï¼ã«ã¼ãã«ã®çµäºæã«å¼ã³åºãã¹ããã®ã§ï¼éã¿ã¹ã¯
- *  ã³ã³ãã­ã¹ãã«åãæãã¦ï¼ã«ã¼ãã«ã®çµäºå¦çï¼exit_kernelï¼ãå¼ã³åº
- *  ãï¼
+ *  カーネルの終了処理の呼出し（core_support.S）
+ *
+ *  call_exit_kernelは，カーネルの終了時に呼び出すべきもので，非タスク
+ *  コンテキストに切り換えて，カーネルの終了処理（exit_kernel）を呼び出
+ *  す．
  */
 extern void call_exit_kernel(void) NoReturn;
      
 /*
- *  ã¿ã¹ã¯ã³ã³ãã­ã¹ãã®åæå
- *
- *  ã¿ã¹ã¯ãä¼æ­¢ç¶æ
-ããå®è¡ã§ããç¶æ
-ã«é·ç§»ããæã«å¼ã°ããï¼ãã®æç¹
- *  ã§ã¹ã¿ãã¯é åãä½¿ã£ã¦ã¯ãªããªãï¼
- *
- *  activate_contextãï¼ã¤ã³ã©ã¤ã³é¢æ°ã§ã¯ãªããã¯ã­å®ç¾©ã¨ãã¦ããã®ã¯ï¼
- *  ãã®æç¹ã§ã¯TCBãå®ç¾©ããã¦ããªãããã§ããï¼
+ *  タスクコンテキストの初期化
+ *
+ *  タスクが休止状態から実行できる状態に遷移する時に呼ばれる．この時点
+ *  でスタック領域を使ってはならない．
+ *
+ *  activate_contextを，インライン関数ではなくマクロ定義としているのは，
+ *  この時点ではTCBが定義されていないためである．
  */
 extern void start_r(void);
@@ -367,18 +317,18 @@
 
 /*
- *  æ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããªã
+ *  標準の割込み管理機能の初期化処理を用いない
  */
 #define OMIT_INITIALIZE_INTERRUPT
 
 /*
- *  å²è¾¼ã¿ãã³ãã©ãã¼ãã«ï¼kernel_cfg.cï¼
+ *  割込みハンドラテーブル（kernel_cfg.c）
  */
 extern FP inh_table[TNUM_INHNO];
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³è¨­å®ãã¼ãã«ï¼kernel_cfg.cï¼
- * 
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦å²è¾¼ã¿å±æ§ãè¨­å®ããã¦ããã°1ï¼è¨­å®ããã¦ã
- *  ãªããã°0ãä¿æãããã¼ãã«ï¼
+ *  割込み要求ライン設定テーブル（kernel_cfg.c）
+ * 
+ *  割込み要求ラインに対して割込み属性が設定されていれば1，設定されてい
+ *  なければ0を保持するテーブル．
  */
 #ifdef USE_INTCFG_TABLE
@@ -387,15 +337,15 @@
 
 /*
- *  æ¨æºã®ä¾å¤ç®¡çæ©è½ã®åæåå¦çãç¨ããªã
+ *  標準の例外管理機能の初期化処理を用いない
  */
 #define OMIT_INITIALIZE_EXCEPTION
 
 /*
- *  CPUä¾å¤ãã³ãã©ãã¼ãã«ï¼kernel_cfg.cï¼
+ *  CPU例外ハンドラテーブル（kernel_cfg.c）
  */
 extern const FP exc_table[TNUM_EXCNO];
 
 /*
- *  CPUä¾å¤ãã³ãã©ã®åæå
+ *  CPU例外ハンドラの初期化
  */
 Inline void
@@ -405,9 +355,8 @@
 
 /*
- *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ãã®åç
-§
- *
- *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ããï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã®æã«falseï¼
- *  ããã§ãªãæã«trueãè¿ãï¼
+ *  CPU例外の発生した時のコンテキストの参照
+ *
+ *  CPU例外の発生した時のコンテキストが，タスクコンテキストの時にfalse，
+ *  そうでない時にtrueを返す．
  */
 Inline bool_t
@@ -418,7 +367,5 @@
 
 /*
- *  CPUä¾å¤ã®çºçããæã®å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã®åç
-§
+ *  CPU例外の発生した時の割込み優先度マスクの参照
  */
 Inline PRI
@@ -429,8 +376,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã¾ãã¯å²è¾¼ã¿ã­ãã¯ç¶æ
-ãã®åç
-§
+ *  CPUロック状態または割込みロック状態かの参照
  */
 Inline bool_t
@@ -446,20 +390,11 @@
 
 /*
- *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ãã¨å²è¾¼ã¿ã®ãã¹ã¯ç¶æ
-ã®åç
-§
- *
- *  CPUä¾å¤ã®çºçããæã®ã·ã¹ãã ç¶æ
-ãï¼ã«ã¼ãã«å®è¡ä¸­ã§ãªãï¼ã¿ã¹ã¯ã³
- *  ã³ãã­ã¹ãã§ããï¼å
-¨å²è¾¼ã¿ã­ãã¯ç¶æ
-ã§ãªãï¼CPUã­ãã¯ç¶æ
-ã§ãªãï¼å²
- *  è¾¼ã¿åªå
-åº¦ãã¹ã¯å
-¨è§£é¤ç¶æ
-ã§ããæã«trueï¼ããã§ãªãæã«falseãè¿ã
- *  ï¼CPUä¾å¤ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦çä¸­ã§çºçããå ´åã«ãfalseãè¿
- *  ãï¼ï¼
+ *  CPU例外の発生した時のコンテキストと割込みのマスク状態の参照
+ *
+ *  CPU例外の発生した時のシステム状態が，カーネル実行中でなく，タスクコ
+ *  ンテキストであり，全割込みロック状態でなく，CPUロック状態でなく，割
+ *  込み優先度マスク全解除状態である時にtrue，そうでない時にfalseを返す
+ *  （CPU例外がカーネル管理外の割込み処理中で発生した場合にもfalseを返
+ *  す）．
  *
  */
@@ -475,10 +410,10 @@
 
 /*
- *  MMUé¢é£ã®æä½ï¼VMSAï¼
+ *  MMU関連の操作（VMSA）
  */
 #ifdef USE_ARM_MMU
 
 /*
- *  å¤æãã¼ãã«ãã¼ã¹ã¬ã¸ã¹ã¿ï¼TTBRï¼ã®è¨­å®å¤
+ *  変換テーブルベースレジスタ（TTBR）の設定値
  */
 #if __TARGET_ARCH_ARM < 6
@@ -495,29 +430,25 @@
 
 /*
- *  MMUã®è¨­å®æ
-å ±ã®ãã¼ã¿å
+ *  MMUの設定情報のデータ型
  */
 typedef struct arm_mmu_config {
-	uint32_t	vaddr;			/* ä»®æ³ã¢ãã¬ã¹ */
-	uint32_t	paddr;			/* ç©çã¢ãã¬ã¹ */
-	uint32_t	size;			/* ãµã¤ãº */
-	uint32_t	attr;			/* ã»ã¯ã·ã§ã³å±æ§ */
+	uint32_t	vaddr;			/* 仮想アドレス */
+	uint32_t	paddr;			/* 物理アドレス */
+	uint32_t	size;			/* サイズ */
+	uint32_t	attr;			/* セクション属性 */
 } ARM_MMU_CONFIG;
 
 /*
- *  MMUã®è¨­å®æ
-å ±ã®æ°ï¼ã¡ã¢ãªã¨ãªã¢ã®æ°ï¼ï¼target_kernel_impl.cï¼
+ *  MMUの設定情報の数（メモリエリアの数）（target_kernel_impl.c）
  */
 extern const uint_t arm_tnum_memory_area;
 
 /*
- *  MMUã®è¨­å®æ
-å ±ï¼ã¡ã¢ãªã¨ãªã¢ã®æ
-å ±ï¼ï¼target_kernel_impl.cï¼
+ *  MMUの設定情報（メモリエリアの情報）（target_kernel_impl.c）
  */
 extern ARM_MMU_CONFIG arm_memory_area[];
 
 /*
- *  MMUã®åæå
+ *  MMUの初期化
  */
 extern void arm_mmu_initialize(void);
@@ -529,15 +460,15 @@
 
 /*
- *  ã³ã¢ä¾å­ã®åæå
+ *  コア依存の初期化
  */
 extern void core_initialize(void);
 
 /*
- *  ã³ã¢ä¾å­ã®çµäºå¦ç
+ *  コア依存の終了処理
  */
 extern void core_terminate(void);
 
 /*
- *  CPUä¾å¤ã®çºçç¶æ³ã®ã­ã°åºå
+ *  CPU例外の発生状況のログ出力
  */
 #ifndef OMIT_XLOG_SYS
@@ -547,12 +478,10 @@
 
 /*
- *  æªå®ç¾©ã®å²è¾¼ã¿ãå
-¥ã£ãå ´åã®å¦ç
+ *  未定義の割込みが入った場合の処理
  */
 extern void default_int_handler(void);
 
 /*
- *  æªå®ç¾©ã®ä¾å¤ãå
-¥ã£ãå ´åã®å¦ç
+ *  未定義の例外が入った場合の処理
  */
 extern void default_exc_handler(void *p_excinf, EXCNO excno);
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_offset.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_offset.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_offset.trb	(revision 321)
@@ -1,16 +1,16 @@
 # -*- coding: utf-8 -*-
 #
-#		ãªãã»ãããã¡ã¤ã«çæç¨Rubyãã³ãã¬ã¼ãï¼ARMç¨ï¼
+#		オフセットファイル生成用Rubyテンプレート（ARM用）
 #
-#  $Id: core_offset.trb 572 2016-02-01 14:40:09Z ertl-hiro $
+#  $Id$
 #
 
 #
-#  ã¿ã¼ã²ããéä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#  ターゲット非依存部のインクルード
 #
 IncludeTrb("kernel/genoffset.trb")
 
 #
-#  ãã£ã¼ã«ãã®ãªãã»ããã®å®ç¾©ã®çæ
+#  フィールドのオフセットの定義の生成
 #
 GenerateDefine("TCB_p_tinib", $offsetof_TCB_p_tinib)
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.c	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		L2ã­ã£ãã·ã¥ã³ã³ãã­ã¼ã©ï¼PL310ï¼ã®æä½ã©ã¤ãã©ãª
+ *		L2キャッシュコントローラ（PL310）の操作ライブラリ
  */
 
@@ -67,9 +52,9 @@
 	aux = sil_rew_mem(PL310_AUX_CTRL);
 	if ((aux & PL310_AUX_CTRL_ASSOCIATIVITY) != 0U) {
-		/* 16ã¦ã§ã¤ */
+		/* 16ウェイ */
 		return(0x0000ffffU);
 	}
 	else {
-		/* 8ã¦ã§ã¤ */
+		/* 8ウェイ */
 		return(0x000000ffU);
 	}
@@ -87,5 +72,5 @@
 	uint32_t	way_mask = get_way_mask();
 
-	/* ãã¹ã¦ã®ã¦ã§ã¤ãç¡å¹åãã */
+	/* すべてのウェイを無効化する */
 	sil_wrw_mem(PL310_INV_WAY, 0xffff);
 	while ((sil_rew_mem(PL310_INV_WAY) & way_mask) != 0U) ;
@@ -100,5 +85,5 @@
 
 /*
- *  PL310ã®åæå
+ *  PL310の初期化
  */
 void
@@ -109,38 +94,36 @@
 	uint32_t	prefetch_val = 0U;
 
-	/* L2ã­ã£ãã·ã¥ããã£ã¹ã¨ã¼ãã«ã®å ´åã®ã¿åæåãè¡ã */
+	/* L2キャッシュがディスエーブルの場合のみ初期化を行う */
 	if ((sil_rew_mem(PL310_CTRL) & 0x01) == 0U) {
-		/* å
-±æå±æ§ãç¡è¦ãã */
+		/* 共有属性を無視する */
 		aux_val |= PL310_AUX_CTRL_IGNORE_SHARE;
 
-		/* å½ä»¤ããªãã§ãããã¤ãã¼ãã« */
+		/* 命令プリフェッチをイネーブル */
 		aux_val |= PL310_AUX_CTRL_INST_PREFETCH;
 		prefetch_val |= PL310_AUX_CTRL_INST_PREFETCH;
 
-		/* ãã¼ã¿ããªãã§ãããã¤ãã¼ãã« */
+		/* データプリフェッチをイネーブル */
 		aux_val |= PL310_AUX_CTRL_DATA_PREFETCH;
 		prefetch_val |= PL310_AUX_CTRL_DATA_PREFETCH;
 
-		/* ããã«ã©ã¤ã³ãã£ã«ãã¤ãã¼ãã« */
+		/* ダブルラインフィルをイネーブル */
 		prefetch_val |= PL310_PREFETCH_CTRL_DLINEFILL;
 		prefetch_val |= PL310_PREFETCH_CTRL_INCR_DLINEFILL;
                 
-		/* è£å©å¶å¾¡ã¬ã¸ã¹ã¿ãè¨­å® */
+		/* 補助制御レジスタを設定 */
 		aux = sil_rew_mem(PL310_AUX_CTRL);
 		sil_wrw_mem(PL310_AUX_CTRL, ((aux & aux_mask) | aux_val));
 
-		/* ããªãã§ããå¶å¾¡ã¬ã¸ã¹ã¿ãè¨­å® */
+		/* プリフェッチ制御レジスタを設定 */
 		prefetch = sil_rew_mem(PL310_PREFETCH_CTRL);
 		sil_wrw_mem(PL310_PREFETCH_CTRL, (prefetch | prefetch_val));
 
-		/* L2ã­ã£ãã·ã¥ã®å
-¨ä½ã®ç¡å¹å */
+		/* L2キャッシュの全体の無効化 */
 		pl310_inv_all();
         
-		/* ã¯ã­ãã¯ã²ã¼ãã£ã³ã°ã¨ã¹ã¿ã³ãã¤ã¢ã¼ããã¤ãã¼ãã« */
+		/* クロックゲーティングとスタンバイモードをイネーブル */
 		sil_wrw_mem(PL310_POWER_CTRL, 0x03);
         
-		/* L2ã­ã£ãã·ã¥ã®ã¤ãã¼ãã« */
+		/* L2キャッシュのイネーブル */
 		sil_wrw_mem(PL310_CTRL, 0x01);
 	}    
@@ -148,5 +131,5 @@
 
 /*
- *  L2ã­ã£ãã·ã¥ã®ãã£ã¹ã¨ã¼ãã«
+ *  L2キャッシュのディスエーブル
  */
 void
@@ -158,6 +141,5 @@
 
 /*
- *  L2ã­ã£ãã·ã¥å
-¨ä½ã®ç¡å¹åï¼æ¸ãæ»ããªãï¼
+ *  L2キャッシュ全体の無効化（書き戻さない）
  */
 void
@@ -170,6 +152,5 @@
 
 /*
- *  L2ã­ã£ãã·ã¥å
-¨ä½ã®ã¯ãªã¼ã³ã¨ç¡å¹å
+ *  L2キャッシュ全体のクリーンと無効化
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.h	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		L2ã­ã£ãã·ã¥ã³ã³ãã­ã¼ã©ï¼PL310ï¼ã«é¢ããå®ç¾©
+ *		L2キャッシュコントローラ（PL310）に関する定義
  */
 
@@ -61,5 +46,5 @@
 
 /*
- *  åã­ã£ã¹ããè¡ããã¯ã­ã®å®ç¾©
+ *  型キャストを行うマクロの定義
  */
 #ifndef CAST
@@ -68,5 +53,5 @@
 
 /*
- *  PL310ã®ã¬ã¸ã¹ã¿ã®çªå°ã®å®ç¾©
+ *  PL310のレジスタの番地の定義
  */
 #define PL310_CACHE_ID			CAST(uint32_t *, PL310_BASE + 0x000)
@@ -101,5 +86,5 @@
 
 /*
- *  ã­ã£ãã·ã¥è£å©å¶å¾¡ã¬ã¸ã¹ã¿ï¼PL310_AUX_CTRLï¼ã®è¨­å®å¤
+ *  キャッシュ補助制御レジスタ（PL310_AUX_CTRL）の設定値
  */
 #define PL310_AUX_CTRL_ASSOCIATIVITY		0x00010000
@@ -114,5 +99,5 @@
 
 /*
- *  ããªãã§ããå¶å¾¡ã¬ã¸ã¹ã¿ï¼PL310_PREFETCH_CTRLï¼ã®è¨­å®å¤
+ *  プリフェッチ制御レジスタ（PL310_PREFETCH_CTRL）の設定値
  */
 #define PL310_PREFETCH_CTRL_INCR_DLINEFILL	0x00800000
@@ -124,22 +109,20 @@
 
 /*
- *  L2ã­ã£ãã·ã¥ã®åæåã¨ã¤ãã¼ãã«
+ *  L2キャッシュの初期化とイネーブル
  */
 extern void pl310_initialize(uint32_t aux_val, uint32_t aux_mask);
 
 /*
- *  L2ã­ã£ãã·ã¥ã®ãã£ã¹ã¨ã¼ãã«
+ *  L2キャッシュのディスエーブル
  */
 extern void pl310_disable(void);
 
 /*
- *  L2ã­ã£ãã·ã¥å
-¨ä½ã®ç¡å¹åï¼æ¸ãæ»ããªãï¼
+ *  L2キャッシュ全体の無効化（書き戻さない）
  */
 extern void pl310_invalidate_all(void);
 
 /*
- *  L2ã­ã£ãã·ã¥å
-¨ä½ã®ã¯ãªã¼ã³ã¨ç¡å¹å
+ *  L2キャッシュ全体のクリーンと無効化
  */
 extern void pl310_clean_and_invalidate_all(void);
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sil.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sil.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sil.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,9 +41,9 @@
 
 /*
- *		sil.hã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+ *		sil.hのコア依存部（ARM用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼target_sil.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãã
- *  ãããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ããç´æ¥ã¤ã³
- *  ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ *  このヘッダファイルは，target_sil.h（または，そこからインクルードさ
+ *  れるファイル）のみからインクルードされる．他のファイルから直接イン
+ *  クルードしてはならない．
  */
 
@@ -72,5 +57,5 @@
 
 /*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼CPSRï¼ã®ç¾å¨å¤ã®èª­åºã
+ *  ステータスレジスタ（CPSR）の現在値の読出し
  */
 Inline uint32_t
@@ -84,5 +69,5 @@
 
 /*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼CPSRï¼ã®ç¾å¨å¤ã®å¤æ´
+ *  ステータスレジスタ（CPSR）の現在値の変更
  */
 Inline void
@@ -94,10 +79,10 @@
 #else /* __thumb__ */
 /*
- *  Thumbã¢ã¼ãã§ã¯mrs/msrå½ä»¤ãä½¿ç¨ã§ããªãããï¼é¢æ°ã¨ãã¦å®ç¾ãã¦ï¼
- *  ARMã¢ã¼ãã«ç§»è¡ãã¦å®è¡ããï¼
+ *  Thumbモードではmrs/msr命令が使用できないため，関数として実現して，
+ *  ARMモードに移行して実行する．
  */
 
 /*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼CPSRï¼ã®ç¾å¨å¤ã®èª­åºã
+ *  ステータスレジスタ（CPSR）の現在値の読出し
  */
 extern uint32_t current_cpsr(void);
@@ -105,5 +90,5 @@
 
 /*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼CPSRï¼ã®ç¾å¨å¤ã®å¤æ´
+ *  ステータスレジスタ（CPSR）の現在値の変更
  */
 extern void set_cpsr(uint32_t cpsr);
@@ -113,5 +98,5 @@
 
 /*
- *  ãã¹ã¦ã®å²è¾¼ã¿ï¼FIQã¨IRQï¼ã®ç¦æ­¢
+ *  すべての割込み（FIQとIRQ）の禁止
  */
 Inline uint32_t
@@ -133,5 +118,5 @@
 
 /*
- *  FIQã¨IRQã®ç¦æ­¢ãããã®å¾©å¸°
+ *  FIQとIRQの禁止ビットの復帰
  */
 Inline void
@@ -147,7 +132,5 @@
 
 /*
- *  å
-¨å²è¾¼ã¿ã­ãã¯ç¶æ
-ã®å¶å¾¡
+ *  全割込みロック状態の制御
  */
 #define SIL_PRE_LOC		uint32_t TOPPERS_fiq_irq_mask
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_stddef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_stddef.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_stddef.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,9 +41,9 @@
 
 /*
- *		t_stddef.hã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+ *		t_stddef.hのコア依存部（ARM用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼target_stddef.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ã
- *  ããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ããç´æ¥ã¤
- *  ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ *  このヘッダファイルは，target_stddef.h（または，そこからインクルード
+ *  されるファイル）のみからインクルードされる．他のファイルから直接イ
+ *  ンクルードしてはならない．
  */
 
@@ -67,7 +52,7 @@
 
 /*
- *  ã¿ã¼ã²ãããè­å¥ããããã®ãã¯ã­ã®å®ç¾©
+ *  ターゲットを識別するためのマクロの定義
  */
-#define TOPPERS_ARM						/* ã³ã¢ç¥ç§° */
+#define TOPPERS_ARM						/* コア略称 */
 
 #endif /* TOPPERS_CORE_STDDEF_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_support.S
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_support.S	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_support.S	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,12 +42,12 @@
 
 /*
- *		ã«ã¼ãã«ã®ã³ã¢ä¾å­é¨ã®ã¢ã»ã³ããªè¨èªé¨ï¼ARMç¨ï¼
+ *		カーネルのコア依存部のアセンブリ言語部（ARM用）
  */
 
 #define TOPPERS_MACRO_ONLY
 #define TOPPERS_ASM_MACRO
-#define UINT_C(val)			(val)		/* uint_tåã®å®æ°ãä½ããã¯ã­ */
-#define ULONG_C(val)		(val)		/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
-#define CAST(type, val)		(val)		/* åã­ã£ã¹ããè¡ããã¯ã­ */
+#define UINT_C(val)			(val)		/* uint_t型の定数を作るマクロ */
+#define ULONG_C(val)		(val)		/* ulong_t型の定数を作るマクロ */
+#define CAST(type, val)		(val)		/* 型キャストを行うマクロ */
 #include "kernel_impl.h"
 #include "offset.h"
@@ -70,5 +55,5 @@
 
 /*
- *  ä¾å¤ãã¯ã¿
+ *  例外ベクタ
  */
 	ASECTION(.vector)
@@ -76,17 +61,15 @@
 	AGLOBAL(vector_table)
 ALABEL(vector_table)
-	ldr		pc, reset_vector		/* ãªã»ãã */
-	ldr		pc, undef_vector		/* æªå®ç¾©å½ä»¤ */
-	ldr		pc, svc_vector			/* ã½ããã¦ã§ã¢å²è¾¼ã¿ */
-	ldr		pc, pabort_vector		/* ããªãã§ããã¢ãã¼ã */
-	ldr		pc, dabort_vector		/* ãã¼ã¿ã¢ãã¼ã */
-	ldr		pc, reset_vector		/* æªä½¿ç¨ */
+	ldr		pc, reset_vector		/* リセット */
+	ldr		pc, undef_vector		/* 未定義命令 */
+	ldr		pc, svc_vector			/* ソフトウェア割込み */
+	ldr		pc, pabort_vector		/* プリフェッチアボート */
+	ldr		pc, dabort_vector		/* データアボート */
+	ldr		pc, reset_vector		/* 未使用 */
 	ldr		pc, irq_vector			/* IRQ */
 	ldr		pc, fiq_vector			/* FIQ */
 
 /*
- *  ä¾å¤ãã¯ã¿ã®å½ä»¤ããåç
-§ãããã¸ã£ã³ãå
-ã¢ãã¬ã¹
+ *  例外ベクタの命令から参照されるジャンプ先アドレス
  */
 	AGLOBAL(vector_ref_table)
@@ -108,5 +91,5 @@
 
 /*
- *  ã¿ã¹ã¯ãã£ã¹ãããã£
+ *  タスクディスパッチャ
  */
 	ATEXT
@@ -115,66 +98,54 @@
 ALABEL(dispatch)
 	/*
-	 *  ãã®ã«ã¼ãã³ã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
-ã»å²è¾¼ã¿åªå
-åº¦
-	 *  ãã¹ã¯å
-¨è§£é¤ç¶æ
-ã»ãã£ã¹ãããè¨±å¯ç¶æ
-ã§å¼ã³åºãããï¼
-	 */
-	push	{r12,lr}				/* æ»ãçªå°ãä¿å­ï¼r12ã¯ããã¼ */
+	 *  このルーチンは，タスクコンテキスト・CPUロック状態・割込み優先度
+	 *  マスク全解除状態・ディスパッチ許可状態で呼び出される．
+	 */
+	push	{r12,lr}				/* 戻り番地を保存，r12はダミー */
 #ifdef TOPPERS_SUPPORT_OVRHDR
 	bl		ovrtimer_stop
 #endif /* TOPPERS_SUPPORT_OVRHDR */
-	stmfd	sp!, {r4-r11}			/* éã¹ã¯ã©ããã¬ã¸ã¹ã¿ã®ä¿å­ */
-	ldr		r0, =p_runtsk			/* p_runtsk â r0 */
+	stmfd	sp!, {r4-r11}			/* 非スクラッチレジスタの保存 */
+	ldr		r0, =p_runtsk			/* p_runtsk → r0 */
 	ldr		r0, [r0]
-	str		sp, [r0,#TCB_sp]		/* ã¹ã¿ãã¯ãã¤ã³ã¿ãä¿å­ */
+	str		sp, [r0,#TCB_sp]		/* スタックポインタを保存 */
 	adr		r1, dispatch_r
-	str		r1, [r0,#TCB_pc]		/* å®è¡åéçªå°ãä¿å­ */
-	b		dispatcher				/* r0ã«ã¯p_runtskãæ ¼ç´ããã¦ãã */
+	str		r1, [r0,#TCB_pc]		/* 実行再開番地を保存 */
+	b		dispatcher				/* r0にはp_runtskが格納されている */
 
 ALABEL(dispatch_r)
-	ldmfd	sp!, {r4-r11}			/* éã¹ã¯ã©ããã¬ã¸ã¹ã¿ã®å¾©å¸° */
+	ldmfd	sp!, {r4-r11}			/* 非スクラッチレジスタの復帰 */
 #ifdef TOPPERS_SUPPORT_OVRHDR
 	bl		ovrtimer_start
 #endif /* TOPPERS_SUPPORT_OVRHDR */
-	pop		{r12,lr}				/* æ»ãçªå°ãå¾©å¸° */
+	pop		{r12,lr}				/* 戻り番地を復帰 */
 	bx		lr
 
 /*
- *  ãã£ã¹ãããã£ã®åä½éå§
+ *  ディスパッチャの動作開始
  */
 	AGLOBAL(start_dispatch)
 ALABEL(start_dispatch)
 	/*
-	 *  ãã®ã«ã¼ãã³ã¯ï¼ã«ã¼ãã«èµ·åæã«ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã§ï¼NMIã
-	 *  é¤ããã¹ã¦ã®å²è¾¼ã¿ãç¦æ­¢ããç¶æ
-ï¼å
-¨å²è¾¼ã¿ã­ãã¯ç¶æ
-ã¨åç­ï¼ã§
-	 *  å¼ã³åºãããï¼
+	 *  このルーチンは，カーネル起動時に，非タスクコンテキストで，NMIを
+	 *  除くすべての割込みを禁止した状態（全割込みロック状態と同等）で
+	 *  呼び出される．
 	 *
-	 *  dispatcher_0ã¸åå²ããåã«ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
-ã»
-	 *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯å
-¨è§£é¤ç¶æ
-ã«ãï¼ä½¿ç¨ããã¹ã¿ãã¯ãï¼IDã1ã®ã¿
-	 *  ã¹ã¯ã®ã¹ã¿ãã¯é åã«åãæããªããã°ãªããªãï¼
-	 */
-
-	/*
-	 *	ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæããï¼
-	 */
-	ldr		r2, =excpt_nest_count	/* ä¾å¤ãã¹ãã«ã¦ã³ãã0ã« */
+	 *  dispatcher_0へ分岐する前に，タスクコンテキスト・CPUロック状態・
+	 *  割込み優先度マスク全解除状態にし，使用するスタックを，IDが1のタ
+	 *  スクのスタック領域に切り換えなければならない．
+	 */
+
+	/*
+	 *	タスクコンテキストに切り換える．
+	 */
+	ldr		r2, =excpt_nest_count	/* 例外ネストカウントを0に */
 	mov		r0, #0
 	str		r0, [r2]
 
 	/*
-	 *  IDã1ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã«åãæããï¼
-	 */
-	ldr		r0, =tcb_table			/* tcb_table[0] â r0 */
-	ldr		r2, [r0,#TCB_p_tinib]	/* tcb_table[0].p_tinib â r2 */
+	 *  IDが1のタスクのスタック領域に切り換える．
+	 */
+	ldr		r0, =tcb_table			/* tcb_table[0] → r0 */
+	ldr		r2, [r0,#TCB_p_tinib]	/* tcb_table[0].p_tinib → r2 */
 	ldr		r0, [r2,#TINIB_stk]
 	ldr		r1, [r2,#TINIB_stksz]
@@ -182,6 +153,5 @@
 
 	/*
-	 *  CPUã­ãã¯ç¶æ
-ã«ãã¦ï¼ãã£ã¹ãããã£æ¬ä½ã¸åå²ããï¼
+	 *  CPUロック状態にして，ディスパッチャ本体へ分岐する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_CPULOCK)
@@ -189,32 +159,26 @@
 
 /*
- *  ç¾å¨ã®ã³ã³ãã­ã¹ããæ¨ã¦ã¦ãã£ã¹ããã
+ *  現在のコンテキストを捨ててディスパッチ
  */
 	AGLOBAL(exit_and_dispatch)
 ALABEL(exit_and_dispatch)
 	/*
-	 *  ãã®ã«ã¼ãã³ã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
-ã»å²è¾¼ã¿åªå
-åº¦
-	 *  ãã¹ã¯å
-¨è§£é¤ç¶æ
-ã»ãã£ã¹ãããè¨±å¯ç¶æ
-ã§å¼ã³åºãããï¼
+	 *  このルーチンは，タスクコンテキスト・CPUロック状態・割込み優先度
+	 *  マスク全解除状態・ディスパッチ許可状態で呼び出される．
 	 */
 #ifdef LOG_DSP_ENTER
-	ldr		r0, =p_runtsk			/* p_runtsk â r0 */
+	ldr		r0, =p_runtsk			/* p_runtsk → r0 */
 	ldr		r0, [r0]
 #endif /* LOG_DSP_ENTER */
-	/* ãã£ã¹ãããã£æ¬ä½ï¼dispatcherï¼ã¸ */
-
-/*
- *  ãã£ã¹ãããã£æ¬ä½
+	/* ディスパッチャ本体（dispatcher）へ */
+
+/*
+ *  ディスパッチャ本体
  */
 ALABEL(dispatcher)
 #ifdef LOG_DSP_ENTER
 	/*
-	 * ããã®æç¹ã®ã¬ã¸ã¹ã¿ç¶æ
-ã
-	 *  r0ï¼p_runtskï¼ã¿ã¹ã¯åæãåï¼
+	 * 【この時点のレジスタ状態】
+	 *  r0：p_runtsk（タスク切換え前）
 	 */
 	bl		log_dsp_enter
@@ -223,42 +187,31 @@
 ALABEL(dispatcher_0)
 	/*
-	 *  ãã®ã«ã¼ãã³ã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
-ã»å²è¾¼ã¿åªå
-åº¦
-	 *  ãã¹ã¯å
-¨è§£é¤ç¶æ
-ã»ãã£ã¹ãããè¨±å¯ç¶æ
-ã§å¼ã³åºãããï¼å®è¡åéçª
-	 *  å°ã¸ããã®ç¶æ
-ã®ã¾ã¾åå²ããï¼
-	 */
-	ldr		r0, =p_schedtsk		/* p_schedtsk â r4 â p_runtsk */
+	 *  このルーチンは，タスクコンテキスト・CPUロック状態・割込み優先度
+	 *  マスク全解除状態・ディスパッチ許可状態で呼び出される．実行再開番
+	 *  地へもこの状態のまま分岐する．
+	 */
+	ldr		r0, =p_schedtsk		/* p_schedtsk → r4 → p_runtsk */
 	ldr		r4, [r0]
 	ldr		r1, =p_runtsk
 	str		r4, [r1]
-	tst		r4, r4				/* p_runtskãNULLãªãdispatcher_1ã¸ */
+	tst		r4, r4				/* p_runtskがNULLならdispatcher_1へ */
 	beq		dispatcher_1
-	ldr		sp, [r4,#TCB_sp]	/* ã¿ã¹ã¯ã¹ã¿ãã¯ãå¾©å¸° */
+	ldr		sp, [r4,#TCB_sp]	/* タスクスタックを復帰 */
 #ifdef LOG_DSP_LEAVE
-	mov		r0, r4				/* p_runtskããã©ã¡ã¼ã¿ã«æ¸¡ã */
+	mov		r0, r4				/* p_runtskをパラメータに渡す */
 	bl		log_dsp_leave
 #endif /* LOG_DSP_LEAVE */
-	ldr		r0, [r4,#TCB_pc]	/* å®è¡åéçªå°ãå¾©å¸° */
-	bx		r0					/* p_runtskãr4ã«å
-¥ããç¶æ
-ã§åå²ãã */
-
-	/*
-	 *  ã¢ã¤ãã«å¦ç
+	ldr		r0, [r4,#TCB_pc]	/* 実行再開番地を復帰 */
+	bx		r0					/* p_runtskをr4に入れた状態で分岐する */
+
+	/*
+	 *  アイドル処理
 	 *
-	 *  å²è¾¼ã¿ããã¹ã¦è¨±å¯ãï¼CPUã­ãã¯è§£é¤ç¶æ
-ã«ãã¦å²è¾¼ã¿ãå¾
-ã¤ï¼
+	 *  割込みをすべて許可し，CPUロック解除状態にして割込みを待つ．
 	 *
-	 *  ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼çé»åã¢ã¼ãç­ã«ç§»è¡ããããï¼æ¨æºã®æ¹æ³
-	 *  ã¨ç°ãªãæé ãå¿
-è¦ãªå ´åãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼ã¿ã¼
-	 *  ã²ããä¾å­é¨ã§TOPPERS_CUSTOM_IDLEãå®ç¾©ãï¼ã¢ã»ã³ãã©ãã¯ã­ã¨ã
-	 *  ã¦ï¼toppers_asm_custom_idleãç¨æããã°ããï¼
+	 *  ターゲットによっては，省電力モード等に移行するため，標準の方法
+	 *  と異なる手順が必要な場合がある．そのようなターゲットでは，ター
+	 *  ゲット依存部でTOPPERS_CUSTOM_IDLEを定義し，アセンブラマクロとし
+	 *  て，toppers_asm_custom_idleを用意すればよい．
 	 */
 ALABEL(dispatcher_1)
@@ -266,25 +219,23 @@
 	toppers_asm_custom_idle
 #else /* TOPPERS_CUSTOM_IDLE */
-	msr		cpsr_c, #CPSR_SVC_MODE	/* å²è¾¼ã¿ãè¨±å¯ï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãï¼*/
+	msr		cpsr_c, #CPSR_SVC_MODE	/* 割込みを許可（スーパバイザモード）*/
 #endif /* TOPPERS_CUSTOM_IDLE */
-	b		dispatcher_1			/* å²è¾¼ã¿å¾
-ã¡ */
-
-/*
- *  ã«ã¼ãã«ã®çµäºå¦çã®å¼åºã
+	b		dispatcher_1			/* 割込み待ち */
+
+/*
+ *  カーネルの終了処理の呼出し
  *
- *  å²è¾¼ã¿ã­ãã¯ç¶æ
-ã«ãï¼ä½¿ç¨ããã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ã
- *  ã¯é åã«åãæ¿ãï¼exit_kernelãå¼ã³åºãï¼
+ *  割込みロック状態にし，使用するスタックを非タスクコンテキスト用のスタッ
+ *  ク領域に切り替え，exit_kernelを呼び出す．
  */
 	AGLOBAL(call_exit_kernel)
 ALABEL(call_exit_kernel)
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_INTLOCK)
-	ldr		r0, =istkpt				/* éã¿ã¹ã¯ã³ã³ãã­ã¹ãã®ã¹ã¿ãã¯ã¸ */
+	ldr		r0, =istkpt				/* 非タスクコンテキストのスタックへ */
 	ldr		sp, [r0]
 	b		exit_kernel
 
 /*
- *  ã¿ã¹ã¯ã®å®è¡éå§æå¦ç
+ *  タスクの実行開始時処理
  */
 	ATEXT
@@ -292,6 +243,5 @@
 	AGLOBAL(start_r)
 	/*
-	 *  ãã£ã¹ãããã£æ¬ä½ããå¼ã³åºãããããï¼p_runtskã¯r4ã«å
-¥ã£ã¦ããï¼
+	 *  ディスパッチャ本体から呼び出されるため，p_runtskはr4に入っている．
 	 */
 ALABEL(start_r)
@@ -300,15 +250,13 @@
 #endif /* TOPPERS_SUPPORT_OVRHDR */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_UNLOCK)
-									/* CPUã­ãã¯è§£é¤ç¶æ
-ã« */
-	ldr		lr, =ext_tsk			/* ã¿ã¹ã¯æ¬ä½ããã®æ»ãçªå°ãè¨­å® */
-	ldr		r2, [r4,#TCB_p_tinib]	/* p_runtsk->p_tinib â r2 */
-	ldr		r0, [r2,#TINIB_exinf]	/* exinfããã©ã¡ã¼ã¿ã« */
-	ldr		r1, [r2,#TINIB_task]	/* ã¿ã¹ã¯èµ·åçªå°ã«ã¸ã£ã³ã */
+									/* CPUロック解除状態に */
+	ldr		lr, =ext_tsk			/* タスク本体からの戻り番地を設定 */
+	ldr		r2, [r4,#TCB_p_tinib]	/* p_runtsk->p_tinib → r2 */
+	ldr		r0, [r2,#TINIB_exinf]	/* exinfをパラメータに */
+	ldr		r1, [r2,#TINIB_task]	/* タスク起動番地にジャンプ */
 	bx		r1
 
 /*
- *  å²è¾¼ã¿ãã³ãã©ã®åºå
-¥å£å¦ç
+ *  割込みハンドラの出入口処理
  */
 #ifndef OMIT_IRQ_HANDLER
@@ -318,16 +266,15 @@
 ALABEL(irq_handler)
 	/*
-	 *  ããã«ã¯ï¼IRQã¢ã¼ãã§åå²ãã¦ããï¼
-	 */
-#if __TARGET_ARCH_ARM < 6
-	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  ここには，IRQモードで分岐してくる．
+	 */
+#if __TARGET_ARCH_ARM < 6
+	/*
+	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
-
-	/*
-	 *  IRQã¢ã¼ãã«æ»ãã¦ï¼æ»ãçªå°ã¨spsrï¼æ»ãå
-ã®cpsrï¼ãåå¾ããï¼
+	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  IRQモードに戻して，戻り番地とspsr（戻り先のcpsr）を取得する．
 	 */
 	msr		cpsr_c, #(CPSR_IRQ_MODE AOR CPSR_IRQ_BIT)
@@ -336,20 +283,19 @@
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼æ»ãçªå°ã¨spsrãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* æ»ãçªå°ãã¹ã¿ãã¯ã«ä¿å­ */
-	push	{r1}					/* spsrãã¹ã¿ãã¯ã«ä¿å­ */
-#else /* __TARGET_ARCH_ARM < 6 */
-	/*
-	 *  æ»ãå
-ï¼lrï¼ã¨spsrï¼cpsr_svcï¼ãã¹ã¼ããã¤ã¶ã¢ã¼ãã®ã¹ã¿ãã¯ã«
-	 *  ä¿å­ããï¼
-	 */
-	sub		lr, lr, #4				/* æ»ãçªå°ã®ç®åº */
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
+	push	{r1}					/* spsrをスタックに保存 */
+#else /* __TARGET_ARCH_ARM < 6 */
+	/*
+	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
+	 *  保存する．
+	 */
+	sub		lr, lr, #4				/* 戻り番地の算出 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
@@ -358,13 +304,13 @@
 
 	/*
-	 *  ã¹ã¿ãã¯ãã¤ã³ã¿ã®èª¿æ´
+	 *  スタックポインタの調整
 	 */
 	and		r1, sp, #4
 	sub		sp, sp, r1
-	push	{r0,r1}					/* r0ã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
-
-	/*
-	 *  ä¾å¤ãã¹ãã«ã¦ã³ããã¤ã³ã¯ãªã¡ã³ãããï¼å²è¾¼ã¿ãéã¿ã¹ã¯ã³ã³ãã­
-	 *  ã¹ãã§çºçããå ´åã«ã¯ï¼irq_handler_1ã¸åå²ããï¼
+	push	{r0,r1}					/* r0はスペース確保のため */
+
+	/*
+	 *  例外ネストカウントをインクリメントする．割込みが非タスクコンテキ
+	 *  ストで発生した場合には，irq_handler_1へ分岐する．
 	 */
 	ldr		r2, =excpt_nest_count
@@ -372,10 +318,10 @@
 	add		r3, r3, #1
 	str		r3, [r2]
-	teq		r3, #1					/* å²è¾¼ã¿ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãã§çºç */
-	bne		irq_handler_1			/*			  ãªãirq_handler_1ã«åå² */
+	teq		r3, #1					/* 割込みが非タスクコンテキストで発生 */
+	bne		irq_handler_1			/*			  ならirq_handler_1に分岐 */
 
 #ifdef TOPPERS_SUPPORT_OVRHDR
 	/*
-	 *  ãªã¼ãã©ã³ã¿ã¤ããåæ­¢ããï¼
+	 *  オーバランタイマを停止する．
 	 */
 	bl		ovrtimer_stop
@@ -383,27 +329,26 @@
 
 	/*
-	 *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæããï¼
-	 */
-	mov		r3, sp					/* ãã®æç¹ã®ã¹ã¿ãã¯ãã¤ã³ã¿ãr3ã« */
-	ldr		r2, =istkpt				/* éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã« */
+	 *  非タスクコンテキスト用のスタックに切り換える．
+	 */
+	mov		r3, sp					/* この時点のスタックポインタをr3に */
+	ldr		r2, =istkpt				/* 非タスクコンテキスト用のスタックに */
 	ldr		sp, [r2]
-	push	{r0,r3}					/* åæãåã®ã¹ã¿ãã¯ãã¤ã³ã¿ãä¿å­ */
-									/* r0ã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
+	push	{r0,r3}					/* 切換え前のスタックポインタを保存 */
+									/* r0はスペース確保のため */
 ALABEL(irq_handler_1)
 	/*
-	 *  å²è¾¼ã¿ã³ã³ãã­ã¼ã©ãæä½ãï¼å²è¾¼ã¿çªå·ãåå¾ããï¼
+	 *  割込みコントローラを操作し，割込み番号を取得する．
 	 */
 	bl		irc_begin_int
 #if TNUM_INHNO <= 256 || __TARGET_ARCH_ARM <= 6
-	cmp		r4, #TNUM_INHNO			/* TNUM_INHNOã®å¤ã«ãã£ã¦ã¯ã¨ã©ã¼ã«ãªã */
+	cmp		r4, #TNUM_INHNO			/* TNUM_INHNOの値によってはエラーになる */
 #else /* TNUM_INHNO <= 256 || __TARGET_ARCH_ARM <= 6 */
 	movw	r3, #TNUM_INHNO
 	cmp		r4, r3			
 #endif /* TNUM_INHNO <= 256 || __TARGET_ARCH_ARM <= 6 */
-	bhs		irq_handler_2			/* ã¹ããªã¢ã¹å²è¾¼ã¿ãªã */
-									/*  irq_handler_2ã«åå² */
-	/*
-	 *  CPUã­ãã¯è§£é¤ç¶æ
-ã«ããï¼
+	bhs		irq_handler_2			/* スプリアス割込みなら */
+									/*  irq_handler_2に分岐 */
+	/*
+	 *  CPUロック解除状態にする．
 	 */
 #if __TARGET_ARCH_ARM < 6
@@ -419,28 +364,28 @@
 #ifdef LOG_INH_ENTER
 	/*
-	 *  ã­ã°åºåã®å¼åºã
-	 */
-	mov		r0, r4					/* å²è¾¼ã¿çªå·ããã©ã¡ã¼ã¿ã«æ¸¡ã */
+	 *  ログ出力の呼出し
+	 */
+	mov		r0, r4					/* 割込み番号をパラメータに渡す */
 	bl		log_inh_enter
 #endif /* LOG_INH_ENTER */
 
 	/*
-	 *  å²è¾¼ã¿ãã³ãã©ã®å¼åºã
-	 */
-	ldr		r2, =inh_table			/* å²è¾¼ã¿ãã³ãã©ãã¼ãã«ã®èª­è¾¼ã¿ */
-	ldr		r1, [r2,r4,lsl #2]		/* å²è¾¼ã¿ãã³ãã©ã®çªå° â r1 */
-	mov		lr, pc					/* å²è¾¼ã¿ãã³ãã©ã®å¼åºã */
+	 *  割込みハンドラの呼出し
+	 */
+	ldr		r2, =inh_table			/* 割込みハンドラテーブルの読込み */
+	ldr		r1, [r2,r4,lsl #2]		/* 割込みハンドラの番地 → r1 */
+	mov		lr, pc					/* 割込みハンドラの呼出し */
 	bx		r1
 
 #ifdef LOG_INH_LEAVE
 	/*
-	 *  ã­ã°åºåã®å¼åºã
-	 */
-	mov		r0, r4					/* å²è¾¼ã¿çªå·ããã©ã¡ã¼ã¿ã«æ¸¡ã */
+	 *  ログ出力の呼出し
+	 */
+	mov		r0, r4					/* 割込み番号をパラメータに渡す */
 	bl		log_inh_leave
 #endif /* LOG_INH_LEAVE */
 
 	/*
-	 *  ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ­¢ããï¼
+	 *  カーネル管理の割込みを禁止する．
 	 */
 #if __TARGET_ARCH_ARM < 6
@@ -455,5 +400,5 @@
 
 	/*
-	 *  å²è¾¼ã¿ã³ã³ãã­ã¼ã©ãæä½ããï¼
+	 *  割込みコントローラを操作する．
 	 */
 ALABEL(irq_handler_2)
@@ -461,15 +406,14 @@
 
 	/*
-	 *  ä¾å¤ãã¹ãã«ã¦ã³ãããã¯ãªã¡ã³ãããï¼
+	 *  例外ネストカウントをデクリメントする．
 	 */
 	ldr		r2, =excpt_nest_count
 	ldr		r3, [r2]
 	subs	r3, r3, #1
-	str		r3, [r2]				/* æ»ãå
-ãéã¿ã¹ã¯ã³ã³ãã­ã¹ããªã */
-	bne		irq_handler_5			/*				irq_handler_5ã«åå² */
-
-	/*
-	 *  ã¿ã¹ã¯ç¨ã®ã¹ã¿ãã¯ã«æ»ãï¼
+	str		r3, [r2]				/* 戻り先が非タスクコンテキストなら */
+	bne		irq_handler_5			/*				irq_handler_5に分岐 */
+
+	/*
+	 *  タスク用のスタックに戻す．
 	 */
 	pop		{r0,r3}
@@ -477,49 +421,47 @@
 
 	/*
-	 *  p_runtskãNULLãå¤å®ããï¼
-	 */
-	ldr		r0, =p_runtsk			/* p_runtsk â r0 */
+	 *  p_runtskがNULLか判定する．
+	 */
+	ldr		r0, =p_runtsk			/* p_runtsk → r0 */
 	ldr		r0, [r0]
-	tst		r0, r0					/* p_runtskãNULLã§ãªããã° */
-	bne		irq_handler_3			/*		irq_handler_3ã«åå² */
-
-	/*
-	 *  ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã«ä¿å­ããã¹ã¯ã©ããã¬ã¸ã¹ã¿ç­ãæ¨ã¦ãï¼
-	 */
-	pop		{r0,r1}					/* ã¹ã¿ãã¯ãã¤ã³ã¿ã®èª¿æ´ãå
-ã«æ»ã */
+	tst		r0, r0					/* p_runtskがNULLでなければ */
+	bne		irq_handler_3			/*		irq_handler_3に分岐 */
+
+	/*
+	 *  タスクのスタックに保存したスクラッチレジスタ等を捨てる．
+	 */
+	pop		{r0,r1}					/* スタックポインタの調整を元に戻す */
 	add		sp, sp, r1
-	add		sp, sp, #40				/* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãæ¨ã¦ã */
+	add		sp, sp, #40				/* スクラッチレジスタを捨てる */
 	b		dispatcher_0
 
 	/*
-	 *  ãã£ã¹ããããå¿
-è¦ãå¤å®ããï¼
+	 *  ディスパッチが必要か判定する．
 	 */
 ALABEL(irq_handler_3)
-	ldr		r1, =p_schedtsk			/* p_schedtsk â r1 */
+	ldr		r1, =p_schedtsk			/* p_schedtsk → r1 */
 	ldr		r1, [r1]
-	teq		r0, r1					/* p_runtskã¨p_schedtskãåããªã */
-	beq		irq_handler_4			/*				  irq_handler_4ã¸ */
-
-	/*
-	 *  ã³ã³ãã­ã¹ããä¿å­ããï¼
-	 */
-	stmfd	sp!, {r6-r11}			/* éã¹ã¯ã©ããã¬ã¸ã¹ã¿ã®ä¿å­ */
-	str		sp, [r0,#TCB_sp]		/* ã¹ã¿ãã¯ãã¤ã³ã¿ãä¿å­ */
-	adr		r1, ret_int_r			/* å®è¡åéçªå°ãä¿å­ */
+	teq		r0, r1					/* p_runtskとp_schedtskが同じなら */
+	beq		irq_handler_4			/*				  irq_handler_4へ */
+
+	/*
+	 *  コンテキストを保存する．
+	 */
+	stmfd	sp!, {r6-r11}			/* 非スクラッチレジスタの保存 */
+	str		sp, [r0,#TCB_sp]		/* スタックポインタを保存 */
+	adr		r1, ret_int_r			/* 実行再開番地を保存 */
 	str		r1, [r0,#TCB_pc]
-	b		dispatcher				/* r0ã«ã¯p_runtskãæ ¼ç´ããã¦ãã */
+	b		dispatcher				/* r0にはp_runtskが格納されている */
 
 ALABEL(ret_int_r)
 	/*
-	 *  ã³ã³ãã­ã¹ããå¾©å¸°ããï¼
-	 */
-	ldmfd	sp!, {r6-r11}			/* éã¹ã¯ã©ããã¬ã¸ã¹ã¿ã®å¾©å¸° */
+	 *  コンテキストを復帰する．
+	 */
+	ldmfd	sp!, {r6-r11}			/* 非スクラッチレジスタの復帰 */
 
 ALABEL(irq_handler_4)
 #ifdef TOPPERS_SUPPORT_OVRHDR
 	/*
-	 *  ãªã¼ãã©ã³ã¿ã¤ããåä½éå§ããï¼
+	 *  オーバランタイマを動作開始する．
 	 */
 	bl		ovrtimer_start
@@ -527,25 +469,19 @@
 
 	/*
-	 *  å²è¾¼ã¿ï¼CPUä¾å¤å¦çããã®ãªã¿ã¼ã³
+	 *  割込み／CPU例外処理からのリターン
 	 *
-	 *  å²è¾¼ã¿ï¼CPUä¾å¤å¦çããã®ãªã¿ã¼ã³ã«ããï¼CPUã­ãã¯è§£é¤ç¶æ
-ã«é·
-	 *  ç§»ããããã«ããå¿
-è¦ããããï¼ARMã¯CPSRã®ãããã«ãã£ã¦CPUã­ã
-	 *  ã¯ç¶æ
-ãè¡¨ãã¦ããããï¼CPSRãå
-ã«æ»ãã¦ãªã¿ã¼ã³ããã°ããï¼
+	 *  割込み／CPU例外処理からのリターンにより，CPUロック解除状態に遷
+	 *  移するようにする必要があるが，ARMはCPSRのビットによってCPUロッ
+	 *  ク状態を表しているため，CPSRを元に戻してリターンすればよい．
 	 */
 ALABEL(irq_handler_5)
-	pop		{r0,r1}					/* ã¹ã¿ãã¯ãã¤ã³ã¿ã®èª¿æ´ãå
-ã«æ»ã */
+	pop		{r0,r1}					/* スタックポインタの調整を元に戻す */
 	add		sp, sp, r1
 
 #if __TARGET_ARCH_ARM < 6
-	ldmfd	sp!, {r0}				/* æ»ãå
-ã®cpsrãspsrã«è¨­å® */
+	ldmfd	sp!, {r0}				/* 戻り先のcpsrをspsrに設定 */
 	msr		spsr_cxsf, r0
-	ldmfd	sp!, {r0-r5,r12,lr,pc}^	/* ã³ã³ãã­ã¹ãã®å¾©å¸° */
-									/* ^ä»ããªã®ã§ï¼spsr â cpsr */
+	ldmfd	sp!, {r0-r5,r12,lr,pc}^	/* コンテキストの復帰 */
+									/* ^付きなので，spsr → cpsr */
 #else /* __TARGET_ARCH_ARM < 6 */
 	ldmfd	sp!, {r0-r5,r12,lr}
@@ -555,11 +491,10 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©åºå
-¥å£å¦ç
+ *  CPU例外ハンドラ出入口処理
  */
 ALABEL(start_exc_entry)
 
 /*
- *  æªå®ç¾©å½ä»¤
+ *  未定義命令
  */
 #ifndef OMIT_UNDEF_HANDLER
@@ -569,16 +504,16 @@
 ALABEL(undef_handler)
 	/*
-	 *  ããã«ã¯ï¼æªå®ç¾©ã¢ã¼ãã§åå²ãã¦ããï¼
-	 */
-#if __TARGET_ARCH_ARM < 6
-	/*
-	 *  Iãããã¨Fããããã»ãããï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯
-	 *  ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  ここには，未定義モードで分岐してくる．
+	 */
+#if __TARGET_ARCH_ARM < 6
+	/*
+	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スク
+	 *  ラッチレジスタを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
-
-	/*
-	 *  æªå®ç¾©ã¢ã¼ãã«æ»ãã¦ï¼æ»ãçªå°ã¨spsrãåå¾ããï¼
+	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  未定義モードに戻して，戻り番地とspsrを取得する．
 	 */
 	msr		cpsr_c, #(CPSR_UND_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -587,19 +522,18 @@
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼æ»ãçªå°ã¨spsrãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* æ»ãçªå°ãã¹ã¿ãã¯ã«ä¿å­ */
-	push	{r1}					/* spsrãã¹ã¿ãã¯ã«ä¿å­ */
-#else /* __TARGET_ARCH_ARM < 6 */
-	/*
-	 *  æ»ãå
-ï¼lrï¼ã¨spsrï¼cpsr_svcï¼ãã¹ã¼ããã¤ã¶ã¢ã¼ãã®ã¹ã¿ãã¯ã«
-	 *  ä¿å­ããï¼
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
+	push	{r1}					/* spsrをスタックに保存 */
+#else /* __TARGET_ARCH_ARM < 6 */
+	/*
+	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
+	 *  保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
@@ -611,5 +545,5 @@
 
 /*
- *  ã¹ã¼ããã¤ã¶ã³ã¼ã«
+ *  スーパバイザコール
  */
 #ifndef OMIT_SVC_HANDLER
@@ -619,15 +553,15 @@
 ALABEL(svc_handler)
 	/*
-	 *  ããã«ã¯ï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãã§åå²ãã¦ããï¼
-	 */
-#if __TARGET_ARCH_ARM < 6
-	/*
-	 *  Iãããã¨Fããããã»ãããï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  ここには，スーパバイザモードで分岐してくる．
+	 */
+#if __TARGET_ARCH_ARM < 6
+	/*
+	 *  IビットとFビットをセットし，スクラッチレジスタを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
-
-	/*
-	 *  æ»ãçªå°ã¨spsrãåå¾ããï¼
+	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  戻り番地とspsrを取得する．
 	 */
 	mov		r2, lr
@@ -635,20 +569,19 @@
 
 	/*
-	 *  æ»ãçªå°ã¨spsrãä¿å­ããï¼
-	 */
-	str		r2, [sp,#0x20]			/* æ»ãçªå°ãã¹ã¿ãã¯ã«ä¿å­ */
-	push	{r1}					/* spsrãã¹ã¿ãã¯ã«ä¿å­ */
-#else /* __TARGET_ARCH_ARM < 6 */
-	/*
-	 *  æ»ãå
-ï¼lrï¼ã¨spsrï¼cpsr_svcï¼ãã¹ã¼ããã¤ã¶ã¢ã¼ãã®ã¹ã¿ãã¯ã«
-	 *  ä¿å­ããï¼
+	 *  戻り番地とspsrを保存する．
+	 */
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
+	push	{r1}					/* spsrをスタックに保存 */
+#else /* __TARGET_ARCH_ARM < 6 */
+	/*
+	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
+	 *  保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã§ï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
-	 */
-	cps		#CPSR_SVC_MODE			/* ä¸è¦ã¨æããã */
+	 *  スーパバイザモードで，スクラッチレジスタを保存する．
+	 */
+	cps		#CPSR_SVC_MODE			/* 不要と思われる */
 	stmfd	sp!, {r0-r5,r12,lr}
 #endif /* __TARGET_ARCH_ARM < 6 */
@@ -658,5 +591,5 @@
 
 /*
- *  ããªãã§ããã¢ãã¼ã
+ *  プリフェッチアボート
  */
 #ifndef OMIT_PABORT_HANDLER
@@ -666,16 +599,16 @@
 ALABEL(pabort_handler)
 	/*
-	 *  ããã«ã¯ï¼ã¢ãã¼ãã¢ã¼ãã§åå²ãã¦ããï¼
-	 */
-#if __TARGET_ARCH_ARM < 6
-	/*
-	 *  Iãããã¨Fããããã»ãããï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯
-	 *  ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  ここには，アボートモードで分岐してくる．
+	 */
+#if __TARGET_ARCH_ARM < 6
+	/*
+	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スク
+	 *  ラッチレジスタを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
-
-	/*
-	 *  ã¢ãã¼ãã¢ã¼ãã«æ»ãã¦ï¼æ»ãçªå°ã¨spsrãåå¾ããï¼
+	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  アボートモードに戻して，戻り番地とspsrを取得する．
 	 */
 	msr		cpsr_c, #(CPSR_ABT_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -684,19 +617,18 @@
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼æ»ãçªå°ã¨spsrãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* æ»ãçªå°ãã¹ã¿ãã¯ã«ä¿å­ */
-	push	{r1}					/* spsrãã¹ã¿ãã¯ã«ä¿å­ */
-#else /* __TARGET_ARCH_ARM < 6 */
-	/*
-	 *  æ»ãå
-ï¼lrï¼ã¨spsrï¼cpsr_svcï¼ãã¹ã¼ããã¤ã¶ã¢ã¼ãã®ã¹ã¿ãã¯ã«
-	 *  ä¿å­ããï¼
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
+	push	{r1}					/* spsrをスタックに保存 */
+#else /* __TARGET_ARCH_ARM < 6 */
+	/*
+	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
+	 *  保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
@@ -708,5 +640,5 @@
 
 /*
- *  ãã¼ã¿ã¢ãã¼ã
+ *  データアボート
  */
 #ifndef OMIT_DABORT_HANDLER
@@ -716,10 +648,9 @@
 ALABEL(dabort_handler)
 	/*
-	 *  ããã«ã¯ï¼ã¢ãã¼ãã¢ã¼ãã§åå²ãã¦ããï¼
+	 *  ここには，アボートモードで分岐してくる．
 	 *
-	 *  ãã¼ã¿ã¢ãã¼ããï¼CPUä¾å¤ã®å
-¥å£ï¼start_exc_entryã¨end_exc_entry
-	 *  ã®éï¼ã§çºçããå ´åã«ã¯ï¼fatal_dabort_handlerã«åå²ããï¼ã¢ãã¼
-	 *  ãã¢ã¼ãã®spãæ±ç¨ã¬ã¸ã¹ã¿ã®ä»£ããã«ä½¿ç¨ããï¼
+	 *  データアボートが，CPU例外の入口（start_exc_entryとend_exc_entry
+	 *  の間）で発生した場合には，fatal_dabort_handlerに分岐する．アボー
+	 *  トモードのspを汎用レジスタの代わりに使用する．
 	 */
 	ldr		sp, =start_exc_entry+8
@@ -733,12 +664,12 @@
 #if __TARGET_ARCH_ARM < 6
 	/*
-	 *  Iãããã¨Fããããã»ãããï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯
-	 *  ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スク
+	 *  ラッチレジスタを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
-
-	/*
-	 *  ã¢ãã¼ãã¢ã¼ãã«æ»ãã¦ï¼æ»ãçªå°ã¨spsrãåå¾ããï¼
+	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  アボートモードに戻して，戻り番地とspsrを取得する．
 	 */
 	msr		cpsr_c, #(CPSR_ABT_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -747,19 +678,18 @@
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼æ»ãçªå°ã¨spsrãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* æ»ãçªå°ãã¹ã¿ãã¯ã«ä¿å­ */
-	push	{r1}					/* spsrãã¹ã¿ãã¯ã«ä¿å­ */
-#else /* __TARGET_ARCH_ARM < 6 */
-	/*
-	 *  æ»ãå
-ï¼lrï¼ã¨spsrï¼cpsr_svcï¼ãã¹ã¼ããã¤ã¶ã¢ã¼ãã®ã¹ã¿ãã¯ã«
-	 *  ä¿å­ããï¼
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
+	push	{r1}					/* spsrをスタックに保存 */
+#else /* __TARGET_ARCH_ARM < 6 */
+	/*
+	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
+	 *  保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
@@ -771,20 +701,19 @@
 
 /*
- *  CPUä¾å¤ã®å
-¥å£ã§çºçãããã¼ã¿ã¢ãã¼ã
+ *  CPU例外の入口で発生したデータアボート
  */
 ALABEL(fatal_dabort_handler)
 #if __TARGET_ARCH_ARM < 6
 	/*
-	 *  Iãããã¨Fããããã»ãããï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¿ã
-	 *  ã¯ãã¤ã³ã¿ãåæåãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スタッ
+	 *  クポインタを初期化し，スクラッチレジスタを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
 	ldr		sp, =istkpt
 	ldr		sp, [sp]
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
-
-	/*
-	 *  ã¢ãã¼ãã¢ã¼ãã«æ»ãã¦ï¼æ»ãçªå°ã¨spsrãåå¾ããï¼
+	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  アボートモードに戻して，戻り番地とspsrを取得する．
 	 */
 	msr		cpsr_c, #(CPSR_ABT_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -793,13 +722,13 @@
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼æ»ãçªå°ã¨spsrãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* æ»ãçªå°ãã¹ã¿ãã¯ã«ä¿å­ */
-	push	{r1}					/* spsrãã¹ã¿ãã¯ã«ä¿å­ */
-#else /* __TARGET_ARCH_ARM < 6 */
-	/*
-	 *  Iãããã¨Fããããã»ãããï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¿ã
-	 *  ã¯ãã¤ã³ã¿ãåæåããï¼
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
+	push	{r1}					/* spsrをスタックに保存 */
+#else /* __TARGET_ARCH_ARM < 6 */
+	/*
+	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スタッ
+	 *  クポインタを初期化する．
 	 */
 	cpsid	if, #CPSR_SVC_MODE
@@ -808,7 +737,6 @@
 
 	/*
-	 *  ã¢ãã¼ãã¢ã¼ãã«æ»ãã¦ï¼æ»ãå
-ï¼lrï¼ã¨spsrï¼cpsr_svcï¼ãã¹ã¼ã
-	 *  ãã¤ã¶ã¢ã¼ãã®ã¹ã¿ãã¯ã«ä¿å­ããï¼
+	 *  アボートモードに戻して，戻り先（lr）とspsr（cpsr_svc）をスーパ
+	 *  バイザモードのスタックに保存する．
 	 */
 	cps		#CPSR_ABT_MODE
@@ -816,5 +744,5 @@
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
@@ -823,5 +751,5 @@
 
 	/*
-	 *  ä¾å¤ãã¹ãã«ã¦ã³ãã®æä¸ä½ãããã1ã«ããï¼
+	 *  例外ネストカウントの最上位ビットを1にする．
 	 */
 	ldr		r2, =excpt_nest_count
@@ -842,16 +770,16 @@
 ALABEL(fiq_handler)
 	/*
-	 *  ããã«ã¯ï¼FIQã¢ã¼ãã§åå²ãã¦ããï¼
-	 */
-#if __TARGET_ARCH_ARM < 6
-	/*
-	 *  Iãããã¨Fããããã»ãããï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯
-	 *  ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  ここには，FIQモードで分岐してくる．
+	 */
+#if __TARGET_ARCH_ARM < 6
+	/*
+	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スク
+	 *  ラッチレジスタを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
-
-	/*
-	 *  FIQã¢ã¼ãã«æ»ãã¦ï¼æ»ãçªå°ã¨spsrãåå¾ããï¼
+	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  FIQモードに戻して，戻り番地とspsrを取得する．
 	 */
 	msr		cpsr_c, #(CPSR_FIQ_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -860,19 +788,18 @@
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼æ»ãçªå°ã¨spsrãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* æ»ãçªå°ãã¹ã¿ãã¯ã«ä¿å­ */
-	push	{r1}					/* spsrãã¹ã¿ãã¯ã«ä¿å­ */
-#else /* __TARGET_ARCH_ARM < 6 */
-	/*
-	 *  æ»ãå
-ï¼lrï¼ã¨spsrï¼cpsr_svcï¼ãã¹ã¼ããã¤ã¶ã¢ã¼ãã®ã¹ã¿ãã¯ã«
-	 *  ä¿å­ããï¼
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
+	push	{r1}					/* spsrをスタックに保存 */
+#else /* __TARGET_ARCH_ARM < 6 */
+	/*
+	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
+	 *  保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãã«åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å­ããï¼
+	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
@@ -886,73 +813,59 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©åºå
-¥å£å¦çã®å
-±éé¨å
+ *  CPU例外ハンドラ出入口処理の共通部分
  *
- * ããã®æç¹ã®ã¬ã¸ã¹ã¿ç¶æ
-ã
- *  r4ï¼CPUä¾å¤ãã³ãã©çªå·
+ * 【この時点のレジスタ状態】
+ *  r4：CPU例外ハンドラ番号
  */
 ALABEL(exc_handler_1)
 	/*
-	 *  CPUä¾å¤ãçºçããç¶æ³ã®å¤æ­ã«ç¨ããããã«ï¼CPUä¾å¤çºçåã®å²
-	 *  è¾¼ã¿åªå
-åº¦ãã¹ã¯ã¨ä¾å¤ãã¹ãã«ã¦ã³ããã¹ã¿ãã¯ã«ä¿å­ããï¼
+	 *  CPU例外が発生した状況の判断に用いるために，CPU例外発生前の割
+	 *  込み優先度マスクと例外ネストカウントをスタックに保存する．
 	 */
 	bl		irc_get_intpri
-	push	{r0}					/* å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãä¿å­ */
+	push	{r0}					/* 割込み優先度マスクを保存 */
 	ldr		r2, =excpt_nest_count
 	ldr		r3, [r2]
-	push	{r3}					/* ä¾å¤ãã¹ãã«ã¦ã³ããä¿å­ */
-	mov		r5, sp					/* CPUä¾å¤ã®æ
-å ±ãè¨æ¶ãã¦ããé åã® */
-									/*				  å
-é ­çªå°ãr5ã«ä¿å­ */
-	/*
-	 *  ã¹ã¿ãã¯ãã¤ã³ã¿ã®èª¿æ´
+	push	{r3}					/* 例外ネストカウントを保存 */
+	mov		r5, sp					/* CPU例外の情報を記憶している領域の */
+									/*				  先頭番地をr5に保存 */
+	/*
+	 *  スタックポインタの調整
 	 */
 	and		r1, sp, #4
 	sub		sp, sp, r1
-	push	{r0,r1}					/* r0ã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
-
-	/*
-	 *  ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãå¤å®ãã
+	push	{r0,r1}					/* r0はスペース確保のため */
+
+	/*
+	 *  カーネル管理外のCPU例外か判定する
 	 *
-	 *  ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã¯ï¼ã«ã¼ãã«å®è¡ä¸­ï¼å
-¨å²è¾¼ã¿ã­ãã¯ç¶æ
-ï¼
-	 *  CPUã­ãã¯ç¶æ
-ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©å®è¡ä¸­ã«çºçãã
-	 *  CPUä¾å¤ã§ããï¼ARMã³ã¢ã®å ´åã¯ï¼æ»ãå
-ã®CPSRã®IããããFããã
-	 *  ã®ãããããã»ããããã¦ãããªãï¼ããè©²å½ããï¼
-	 */
-	ldr		r1, [r5,#T_EXCINF_cpsr]		/* ä¾å¤ãã¬ã¼ã ããcpsrãåå¾ */
+	 *  カーネル管理外のCPU例外は，カーネル実行中，全割込みロック状態，
+	 *  CPUロック状態，カーネル管理外の割込みハンドラ実行中に発生した
+	 *  CPU例外である．ARMコアの場合は，戻り先のCPSRのIビットかFビット
+	 *  のいずれかがセットされているなら，これ該当する．
+	 */
+	ldr		r1, [r5,#T_EXCINF_cpsr]		/* 例外フレームからcpsrを取得 */
 	ands	r1, r1, #CPSR_FIQ_IRQ_BIT
-	bne		nk_exc_handler_1		/* ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã®å¦çã¸ */
-
-	/*
-	 * ããã®æç¹ã®ã¬ã¸ã¹ã¿ç¶æ
-ã
-	 *  r2ï¼excpt_nest_countã®çªå°
-	 *  r3ï¼excpt_nest_countã®å¤
-	 *  r4ï¼CPUä¾å¤ãã³ãã©çªå·
-	 *  r5ï¼CPUä¾å¤ã®æ
-å ±ãè¨æ¶ãã¦ããé åã®å
-é ­çªå°
-	 */
-
-	/*
-	 *  ä¾å¤ãã¹ãã«ã¦ã³ããã¤ã³ã¯ãªã¡ã³ãããï¼
+	bne		nk_exc_handler_1		/* カーネル管理外のCPU例外の処理へ */
+
+	/*
+	 * 【この時点のレジスタ状態】
+	 *  r2：excpt_nest_countの番地
+	 *  r3：excpt_nest_countの値
+	 *  r4：CPU例外ハンドラ番号
+	 *  r5：CPU例外の情報を記憶している領域の先頭番地
+	 */
+
+	/*
+	 *  例外ネストカウントをインクリメントする．
 	 */
 	add		r3, r3, #1
 	str		r3, [r2]
-	teq		r3, #1					/* CPUä¾å¤çºçåãéã¿ã¹ã¯ã³ã³ãã­ã¹ã */
-	bne		exc_handler_2			/*			   ãªãexc_handler_2ã«åå² */
+	teq		r3, #1					/* CPU例外発生前が非タスクコンテキスト */
+	bne		exc_handler_2			/*			   ならexc_handler_2に分岐 */
 
 #ifdef TOPPERS_SUPPORT_OVRHDR
 	/*
-	 *  ãªã¼ãã©ã³ã¿ã¤ããåæ­¢ããï¼
+	 *  オーバランタイマを停止する．
 	 */
 	bl		ovrtimer_stop
@@ -960,33 +873,28 @@
 
 	/*
-	 *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæããï¼
-	 */
-	mov		r3, sp					/* ãã®æç¹ã®ã¹ã¿ãã¯ãã¤ã³ã¿ãr3ã« */
-	ldr		r2, =istkpt				/* éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã« */
+	 *  非タスクコンテキスト用のスタックに切り換える．
+	 */
+	mov		r3, sp					/* この時点のスタックポインタをr3に */
+	ldr		r2, =istkpt				/* 非タスクコンテキスト用のスタックに */
 	ldr		sp, [r2]
-	push	{r0,r3}					/* åæãåã®ã¹ã¿ãã¯ãã¤ã³ã¿ãä¿å­ */
-									/* r0ã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
+	push	{r0,r3}					/* 切換え前のスタックポインタを保存 */
+									/* r0はスペース確保のため */
 ALABEL(exc_handler_2)
 	/*
-	 * ããã®æç¹ã®ã¬ã¸ã¹ã¿ç¶æ
-ã
-	 *  r4ï¼CPUä¾å¤ãã³ãã©çªå·
-	 *  r5ï¼CPUä¾å¤ã®æ
-å ±ãè¨æ¶ãã¦ããé åã®å
-é ­çªå°
-	 */
-
-	/*
-	 *  ï¼å¿
-è¦ãªãï¼å²è¾¼ã¿ã³ã³ãã­ã¼ã©ãæä½ããï¼
+	 * 【この時点のレジスタ状態】
+	 *  r4：CPU例外ハンドラ番号
+	 *  r5：CPU例外の情報を記憶している領域の先頭番地
+	 */
+
+	/*
+	 *  （必要なら）割込みコントローラを操作する．
 	 */
 	bl		irc_begin_exc
 
 	/*
-	 *  CPUã­ãã¯è§£é¤ç¶æ
-ã«ããï¼
+	 *  CPUロック解除状態にする．
 	 *
-	 *  ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãã³ãã©ã¯å¥ã«ã¼ãã³ã§å¼ã³åºãããï¼åç´
-	 *  ã«å²è¾¼ã¿ãè¨±å¯ããã ãã§ããï¼
+	 *  カーネル管理外のCPU例外ハンドラは別ルーチンで呼び出すため，単純
+	 *  に割込みを許可するだけでよい．
 	 */
 #if __TARGET_ARCH_ARM < 6
@@ -1001,34 +909,32 @@
 
 	/*
-	 *  ã­ã°åºåã®å¼åºã
+	 *  ログ出力の呼出し
 	 */
 #ifdef LOG_EXC_ENTER
-	mov		r0, r4					/* CPUä¾å¤çªå·ããã©ã¡ã¼ã¿ã«æ¸¡ã */
+	mov		r0, r4					/* CPU例外番号をパラメータに渡す */
 	bl		log_exc_enter
 #endif /* LOG_EXC_ENTER */
 
 	/*
-	 *  CPUä¾å¤ãã³ãã©ã®å¼åºã
-	 */
-	ldr		r2, =exc_table			/* CPUä¾å¤ãã³ãã©ãã¼ãã«ã®èª­è¾¼ã¿ */
-	ldr		r3, [r2,r4,lsl #2]		/* CPUä¾å¤ãã³ãã©ã®çªå° â r3 */
-	mov		r0, r5					/* CPUä¾å¤ã®æ
-å ±ãè¨æ¶ãã¦ããé åã® */
-									/*		å
-é ­çªå°ãç¬¬1ãã©ã¡ã¼ã¿ã«æ¸¡ã */
-	mov		r1, r4					/* CPUä¾å¤çªå·ãç¬¬2ãã©ã¡ã¼ã¿ã«æ¸¡ã */
-	mov		lr, pc					/* CPUä¾å¤ãã³ãã©ã®å¼åºã */
+	 *  CPU例外ハンドラの呼出し
+	 */
+	ldr		r2, =exc_table			/* CPU例外ハンドラテーブルの読込み */
+	ldr		r3, [r2,r4,lsl #2]		/* CPU例外ハンドラの番地 → r3 */
+	mov		r0, r5					/* CPU例外の情報を記憶している領域の */
+									/*		先頭番地を第1パラメータに渡す */
+	mov		r1, r4					/* CPU例外番号を第2パラメータに渡す */
+	mov		lr, pc					/* CPU例外ハンドラの呼出し */
 	bx		r3
 
 	/*
-	 *  ã­ã°åºåã®å¼åºã
+	 *  ログ出力の呼出し
 	 */
 #ifdef LOG_EXC_LEAVE
-	mov		r0, r4					/* CPUä¾å¤çªå·ããã©ã¡ã¼ã¿ã«æ¸¡ã */
+	mov		r0, r4					/* CPU例外番号をパラメータに渡す */
 	bl		log_exc_leave
 #endif /* LOG_EXC_LEAVE */
 
 	/*
-	 *  ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ­¢ããï¼
+	 *  カーネル管理の割込みを禁止する．
 	 */
 #if __TARGET_ARCH_ARM < 6
@@ -1043,22 +949,20 @@
 
 	/*
-	 *  å²è¾¼ã¿ã³ã³ãã­ã¼ã©ãæä½ãã¦ï¼å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãï¼CPUä¾å¤çº
-	 *  çæã®å¤ã«è¨­å®ããï¼
+	 *  割込みコントローラを操作して，割込み優先度マスクを，CPU例外発
+	 *  生時の値に設定する．
 	 */
 	bl		irc_end_exc
 
 	/*
-	 *  ä¾å¤ãã¹ãã«ã¦ã³ãããã¯ãªã¡ã³ãããï¼
+	 *  例外ネストカウントをデクリメントする．
 	 */
 	ldr		r2, =excpt_nest_count
 	ldr		r3, [r2]
 	subs	r3, r3, #1
-	str		r3, [r2]				/* æ»ãå
-ãéã¿ã¹ã¯ã³ã³ãã­ã¹ããªã */
-	bne		exc_handler_5			/*				exc_handler_5ã«åå² */
-
-	/*
-	 *  ã¿ã¹ã¯ç¨ã®ã¹ã¿ãã¯ã«æ»ãï¼
+	str		r3, [r2]				/* 戻り先が非タスクコンテキストなら */
+	bne		exc_handler_5			/*				exc_handler_5に分岐 */
+
+	/*
+	 *  タスク用のスタックに戻す．
 	 */
 	pop		{r0,r3}
@@ -1066,50 +970,47 @@
 
 	/*
-	 *  p_runtskãNULLãå¤å®ããï¼
-	 */
-	ldr		r0, =p_runtsk			/* p_runtsk â r0 */
+	 *  p_runtskがNULLか判定する．
+	 */
+	ldr		r0, =p_runtsk			/* p_runtsk → r0 */
 	ldr		r0, [r0]
-	tst		r0, r0					/* p_runtskãNULLã§ãªããã° */
-	bne		exc_handler_3			/*		exc_handler_3ã«åå² */
-
-	/*
-	 *  ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã«ä¿å­ããã¹ã¯ã©ããã¬ã¸ã¹ã¿ç­ãæ¨ã¦ãï¼
-	 */
-	pop		{r0,r1}					/* ã¹ã¿ãã¯ãã¤ã³ã¿ã®èª¿æ´ãå
-ã«æ»ã */
+	tst		r0, r0					/* p_runtskがNULLでなければ */
+	bne		exc_handler_3			/*		exc_handler_3に分岐 */
+
+	/*
+	 *  タスクのスタックに保存したスクラッチレジスタ等を捨てる．
+	 */
+	pop		{r0,r1}					/* スタックポインタの調整を元に戻す */
 	add		sp, sp, r1
-	add		sp, sp, #48				/* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã¨CPUä¾å¤ãçºçãã */
-	b		dispatcher_0			/*	ç¶æ³ãå¤æ­ããããã®è¿½å æ
-å ±ãæ¨ã¦ã */
-
-	/*
-	 *  ãã£ã¹ããããå¿
-è¦ãå¤å®ããï¼
+	add		sp, sp, #48				/* スクラッチレジスタとCPU例外が発生した */
+	b		dispatcher_0			/*	状況を判断するための追加情報を捨てる */
+
+	/*
+	 *  ディスパッチが必要か判定する．
 	 */
 ALABEL(exc_handler_3)
-	ldr		r1, =p_schedtsk			/* p_schedtsk â r1 */
+	ldr		r1, =p_schedtsk			/* p_schedtsk → r1 */
 	ldr		r1, [r1]
-	teq		r0, r1					/* p_runtskã¨p_schedtskãåããªã */
-	beq		exc_handler_4			/*				  exc_handler_4ã¸ */
-
-	/*
-	 *  ã³ã³ãã­ã¹ããä¿å­ããï¼
-	 */
-	stmfd	sp!, {r6-r11}			/* éã¹ã¯ã©ããã¬ã¸ã¹ã¿ã®ä¿å­ */
-	str		sp, [r0,#TCB_sp]		/* ã¹ã¿ãã¯ãã¤ã³ã¿ãä¿å­ */
-	adr		r1, ret_exc_r			/* å®è¡åéçªå°ãä¿å­ */
+	teq		r0, r1					/* p_runtskとp_schedtskが同じなら */
+	beq		exc_handler_4			/*				  exc_handler_4へ */
+
+	/*
+	 *  コンテキストを保存する．
+	 */
+	stmfd	sp!, {r6-r11}			/* 非スクラッチレジスタの保存 */
+	str		sp, [r0,#TCB_sp]		/* スタックポインタを保存 */
+	adr		r1, ret_exc_r			/* 実行再開番地を保存 */
 	str		r1, [r0,#TCB_pc]
-	b		dispatcher				/* r0ã«ã¯p_runtskãæ ¼ç´ããã¦ãã */
+	b		dispatcher				/* r0にはp_runtskが格納されている */
 
 ALABEL(ret_exc_r)
 	/*
-	 *  ã³ã³ãã­ã¹ããå¾©å¸°ããï¼
-	 */
-	ldmfd	sp!, {r6-r11}			/* éã¹ã¯ã©ããã¬ã¸ã¹ã¿ã®å¾©å¸° */
+	 *  コンテキストを復帰する．
+	 */
+	ldmfd	sp!, {r6-r11}			/* 非スクラッチレジスタの復帰 */
 
 ALABEL(exc_handler_4)
 #ifdef TOPPERS_SUPPORT_OVRHDR
 	/*
-	 *  ãªã¼ãã©ã³ã¿ã¤ããåä½éå§ããï¼
+	 *  オーバランタイマを動作開始する．
 	 */
 	bl		ovrtimer_start
@@ -1117,27 +1018,20 @@
 
 	/*
-	 *  CPUä¾å¤å¦çããã®ãªã¿ã¼ã³
+	 *  CPU例外処理からのリターン
 	 *
-	 *  CPUä¾å¤å¦çããã®ãªã¿ã¼ã³ã«ããï¼CPUã­ãã¯è§£é¤ç¶æ
-ã«é·ç§»ããã
-	 *  ãã«ããå¿
-è¦ããããï¼ARMã¯CPSRã®ãããã«ãã£ã¦CPUã­ãã¯ç¶æ
-ã
-	 *  è¡¨ãã¦ããããï¼CPSRãå
-ã«æ»ãã¦ãªã¿ã¼ã³ããã°ããï¼
+	 *  CPU例外処理からのリターンにより，CPUロック解除状態に遷移するよ
+	 *  うにする必要があるが，ARMはCPSRのビットによってCPUロック状態を
+	 *  表しているため，CPSRを元に戻してリターンすればよい．
 	 */
 ALABEL(exc_handler_5)
-	pop		{r0,r1}					/* ã¹ã¿ãã¯ãã¤ã³ã¿ã®èª¿æ´ãå
-ã«æ»ã */
+	pop		{r0,r1}					/* スタックポインタの調整を元に戻す */
 	add		sp, sp, r1
-	add		sp, sp, #8				/* ã¹ã¿ãã¯ä¸ã®æ
-å ±ãæ¨ã¦ã */
-
-#if __TARGET_ARCH_ARM < 6
-	ldmfd	sp!, {r0}				/* æ»ãå
-ã®cpsrãspsrã«è¨­å® */
+	add		sp, sp, #8				/* スタック上の情報を捨てる */
+
+#if __TARGET_ARCH_ARM < 6
+	ldmfd	sp!, {r0}				/* 戻り先のcpsrをspsrに設定 */
 	msr		spsr_cxsf, r0
-	ldmfd	sp!, {r0-r5,r12,lr,pc}^	/* ã³ã³ãã­ã¹ãã®å¾©å¸° */
-									/* ^ä»ããªã®ã§ï¼spsr â cpsr */
+	ldmfd	sp!, {r0-r5,r12,lr,pc}^	/* コンテキストの復帰 */
+									/* ^付きなので，spsr → cpsr */
 #else /* __TARGET_ARCH_ARM < 6 */
 	ldmfd	sp!, {r0-r5,r12,lr}
@@ -1146,41 +1040,35 @@
 
 /*
- *  ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã®åºå
-¥å£å¦ç
+ *  カーネル管理外のCPU例外の出入口処理
  */
 ALABEL(nk_exc_handler_1)
 	/*
-	 * ããã®æç¹ã®ã¬ã¸ã¹ã¿ç¶æ
-ã
-	 *  r1ï¼CPUä¾å¤çºçåã®CPSRã®Fãããã¨Iãããã®å¤
-	 *  r2ï¼excpt_nest_countã®çªå°
-	 *  r3ï¼excpt_nest_countã®å¤
-	 *  r4ï¼CPUä¾å¤ãã³ãã©çªå·
-	 *  r5ï¼CPUä¾å¤ã®æ
-å ±ãè¨æ¶ãã¦ããé åã®å
-é ­çªå°
-	 */
-
-	/*
-	 *  ä¾å¤ãã¹ãã«ã¦ã³ããã¤ã³ã¯ãªã¡ã³ãããï¼
+	 * 【この時点のレジスタ状態】
+	 *  r1：CPU例外発生前のCPSRのFビットとIビットの値
+	 *  r2：excpt_nest_countの番地
+	 *  r3：excpt_nest_countの値
+	 *  r4：CPU例外ハンドラ番号
+	 *  r5：CPU例外の情報を記憶している領域の先頭番地
+	 */
+
+	/*
+	 *  例外ネストカウントをインクリメントする．
 	 */
 	add		r3, r3, #1
 	str		r3, [r2]
-	teq		r3, #1					/* CPUä¾å¤çºçåãéã¿ã¹ã¯ã³ã³ãã­ã¹ã */
-	bne		nk_exc_handler_2		/*		 	ãªãnk_exc_handler_2ã«åå² */
-
-	/*
-	 *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæããï¼
-	 */
-	mov		r3, sp					/* ãã®æç¹ã®ã¹ã¿ãã¯ãã¤ã³ã¿ãr3ã« */
-	ldr		r2, =istkpt				/* éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã« */
+	teq		r3, #1					/* CPU例外発生前が非タスクコンテキスト */
+	bne		nk_exc_handler_2		/*		 	ならnk_exc_handler_2に分岐 */
+
+	/*
+	 *  非タスクコンテキスト用のスタックに切り換える．
+	 */
+	mov		r3, sp					/* この時点のスタックポインタをr3に */
+	ldr		r2, =istkpt				/* 非タスクコンテキスト用のスタックに */
 	ldr		sp, [r2]
-	push	{r0,r3}					/* åæãåã®ã¹ã¿ãã¯ãã¤ã³ã¿ãä¿å­ */
-									/* r0ã¯ã¹ãã¼ã¹ç¢ºä¿ã®ãã */
+	push	{r0,r3}					/* 切換え前のスタックポインタを保存 */
+									/* r0はスペース確保のため */
 ALABEL(nk_exc_handler_2)
 	/*
-	 *  ã·ã¹ãã ç¶æ
-ï¼ã³ã³ãã­ã¹ãã¯é¤ãï¼ãï¼CPUä¾å¤çºçæã®ç¶æ
-ã¸
+	 *  システム状態（コンテキストは除く）を，CPU例外発生時の状態へ
 	 */
 	orr		r1, r1, #CPSR_SVC_MODE
@@ -1188,28 +1076,25 @@
 
 	/*
-	 *  CPUä¾å¤ãã³ãã©ã®å¼åºã
-	 */
-	ldr		r2, =exc_table			/* CPUä¾å¤ãã³ãã©ãã¼ãã«ã®èª­è¾¼ã¿ */
-	ldr		r3, [r2,r4,lsl #2]		/* CPUä¾å¤ãã³ãã©ã®çªå° â r3 */
-	mov		r0, r5					/* CPUä¾å¤ã®æ
-å ±ãè¨æ¶ãã¦ããé åã® */
-									/*		å
-é ­çªå°ãç¬¬1ãã©ã¡ã¼ã¿ã«æ¸¡ã */
-	mov		r1, r4					/* CPUä¾å¤çªå·ãç¬¬2ãã©ã¡ã¼ã¿ã«æ¸¡ã */
-	mov		lr, pc					/* CPUä¾å¤ãã³ãã©ã®å¼åºã */
+	 *  CPU例外ハンドラの呼出し
+	 */
+	ldr		r2, =exc_table			/* CPU例外ハンドラテーブルの読込み */
+	ldr		r3, [r2,r4,lsl #2]		/* CPU例外ハンドラの番地 → r3 */
+	mov		r0, r5					/* CPU例外の情報を記憶している領域の */
+									/*		先頭番地を第1パラメータに渡す */
+	mov		r1, r4					/* CPU例外番号を第2パラメータに渡す */
+	mov		lr, pc					/* CPU例外ハンドラの呼出し */
 	bx		r3
 
 	/*
-	 *  ä¾å¤ãã¹ãã«ã¦ã³ãããã¯ãªã¡ã³ãããï¼
+	 *  例外ネストカウントをデクリメントする．
 	 */
 	ldr		r2, =excpt_nest_count
 	ldr		r3, [r2]
 	subs	r3, r3, #1
-	str		r3, [r2]				/* æ»ãå
-ãéã¿ã¹ã¯ã³ã³ãã­ã¹ããªã */
-	bne		exc_handler_5			/*				exc_handler_5ã«åå² */
-
-	/*
-	 *  ã¿ã¹ã¯ç¨ã®ã¹ã¿ãã¯ã«æ»ãï¼
+	str		r3, [r2]				/* 戻り先が非タスクコンテキストなら */
+	bne		exc_handler_5			/*				exc_handler_5に分岐 */
+
+	/*
+	 *  タスク用のスタックに戻す．
 	 */
 	pop		{r0,r3}
@@ -1218,8 +1103,8 @@
 
 /*
- *  ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ã®æä½é¢æ°
+ *  ステータスレジスタの操作関数
  *
- *  Thumbã¢ã¼ãã§ã¯mrs/msrå½ä»¤ãä½¿ç¨ã§ããªãããï¼é¢æ°ã¨ãã¦å®ç¾ãã¦ï¼
- *  ARMã¢ã¼ãã«ç§»è¡ãã¦å®è¡ããï¼
+ *  Thumbモードではmrs/msr命令が使用できないため，関数として実現して，
+ *  ARMモードに移行して実行する．
  */
 #ifdef __thumb__
@@ -1241,9 +1126,8 @@
 
 /*
- *  å¾®å°æéå¾
-ã¡
+ *  微少時間待ち
  *
- *  ã­ã£ãã·ã¥ã©ã¤ã³ã®ã©ã®å ´æã«ãããã®ãã£ã¦å®è¡æéãå¤ããããï¼å¤§
- *  ããã®åä½ã§ã¢ã©ã¤ã³ãã¦ããï¼
+ *  キャッシュラインのどの場所にあるかのよって実行時間が変わるため，大
+ *  きめの単位でアラインしている．
  */
 	ATEXT
@@ -1252,12 +1136,10 @@
 ALABEL(sil_dly_nse)
 	mov		r1, #0
-	mcr		p15, 0, r1, c7, c5, 6		/* åå²äºæ¸¬å
-¨ä½ã®ç¡å¹å */
+	mcr		p15, 0, r1, c7, c5, 6		/* 分岐予測全体の無効化 */
 	asm_inst_sync_barrier r3
 	subs	r0, r0, #SIL_DLY_TIM1
 	bxls	lr
 ALABEL(sil_dly_nse1)
-	mcr		p15, 0, r1, c7, c5, 6		/* åå²äºæ¸¬å
-¨ä½ã®ç¡å¹å */
+	mcr		p15, 0, r1, c7, c5, 6		/* 分岐予測全体の無効化 */
 	asm_inst_sync_barrier r3
 	subs	r0, r0, #SIL_DLY_TIM2
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_syssvc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_syssvc.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_syssvc.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,9 +40,9 @@
 
 /*
- *		ã·ã¹ãã ãµã¼ãã¹ã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+ *		システムサービスのコア依存部（ARM用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼target_syssvc.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ã
- *  ããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ããç´æ¥ã¤
- *  ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ *  このヘッダファイルは，target_syssvc.h（または，そこからインクルード
+ *  されるファイル）のみからインクルードされる．他のファイルから直接イ
+ *  ンクルードしてはならない．
  */
 
@@ -69,15 +54,15 @@
 
 /*
- *  ããã©ã¼ãã³ã¹ã¢ãã¿ã«ããæ§è½è©ä¾¡
+ *  パフォーマンスモニタによる性能評価
  */
 #if defined(USE_ARM_PM_HIST) && __TARGET_ARCH_ARM == 7
 
 /*
- *  ããã©ã¼ãã³ã¹ã¢ãã¿ã®ã«ã¦ã³ã¿ã®ãã¼ã¿å
+ *  パフォーマンスモニタのカウンタのデータ型
  */
 typedef uint32_t	PMCNT;
 
 /*
- *  ããã©ã¼ãã³ã¹ã¢ãã¿ã®åæå
+ *  パフォーマンスモニタの初期化
  */
 Inline void
@@ -87,8 +72,8 @@
 
 	/*
-	 *  ããã©ã¼ãã³ã¹ã¢ãã¿ã®æå¹å
+	 *  パフォーマンスモニタの有効化
 	 *
-	 *  TOPPERS_ARM_PMCNT_DIV64ãå®ç¾©ããã¦ããå ´åã¯ï¼64ã¯ã­ãã¯æ¯ã«ã«
-	 *  ã¦ã³ãã¢ããããï¼é·ãæéãè¨æ¸¬ãããå ´åã«æå¹ï¼ï¼
+	 *  TOPPERS_ARM_PMCNT_DIV64が定義されている場合は，64クロック毎にカ
+	 *  ウントアップする（長い時間を計測したい場合に有効）．
 	 */
 	CP15_READ_PMCR(reg);
@@ -104,5 +89,5 @@
 
 	/*
-	 *  ããã©ã¼ãã³ã¹ã¢ãã¿ã®ã«ã¦ã³ã¿ã®æå¹å
+	 *  パフォーマンスモニタのカウンタの有効化
 	 */
 	CP15_READ_PMCNTENSET(reg);
@@ -112,5 +97,5 @@
 
 /*
- *  ããã©ã¼ãã³ã¹ã¢ãã¿ã®ã«ã¦ã³ã¿ã®èª­ã¿è¾¼ã¿
+ *  パフォーマンスモニタのカウンタの読み込み
  */
 Inline void 
@@ -121,7 +106,7 @@
 
 /*
- *  ã«ã¦ã³ã¿å¤ã®æéè¨æ¸¬åä½ã¸ã®å¤æ
+ *  カウンタ値の時間計測単位への変換
  *
- *  æéè¨æ¸¬ã®åä½ã¯ï¼0.1ãã¤ã¯ã­ç§ã¨ãã¦ããï¼
+ *  時間計測の単位は，0.1マイクロ秒としている．
  */
 Inline uint_t
@@ -135,5 +120,5 @@
 
 /*
- *  å®è¡æéåå¸éè¨ãµã¼ãã¹ã®è¨­å®
+ *  実行時間分布集計サービスの設定
  */
 #define HISTTIM					PMCNT
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_test.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_test.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_test.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,9 +40,9 @@
 
 /*
- *		ãã¹ããã­ã°ã©ã ã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+ *		テストプログラムのコア依存部（ARM用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼target_test.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãã
- *  ãããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ããç´æ¥ã¤ã³
- *  ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ *  このヘッダファイルは，target_test.h（または，そこからインクルードさ
+ *  れるファイル）のみからインクルードされる．他のファイルから直接イン
+ *  クルードしてはならない．
  */
 
@@ -69,77 +54,76 @@
 
 /*
- *  CPUä¾å¤ã®çºç
+ *  CPU例外の発生
  */
 
 #ifndef ILLEGAL_IADDR
-#define ILLEGAL_IADDR			0xd0000000U		/* ä¸æ­£å½ä»¤ã¢ãã¬ã¹ */
+#define ILLEGAL_IADDR			0xd0000000U		/* 不正命令アドレス */
 #endif /* ILLEGAL_IADDR */
 
 #ifndef ILLEGAL_DADDR
-#define ILLEGAL_DADDR			0xd0000000U		/* ä¸æ­£ãã¼ã¿ã¢ãã¬ã¹ */
+#define ILLEGAL_DADDR			0xd0000000U		/* 不正データアドレス */
 #endif /* ILLEGAL_DADDR */
 
 /*
- *  ã¹ã¼ããã¤ã¶ã³ã¼ã«ã«ããCPUä¾å¤ã®çºç
+ *  スーパバイザコールによるCPU例外の発生
  *
- *  CPUä¾å¤ãã³ãã©ããï¼ãã®ã¾ã¾ãªã¿ã¼ã³ãããã¨ãã§ããï¼svcå½ä»¤ã«ã
- *  ãlrã¬ã¸ã¹ã¿ãä¸æ¸ããããããï¼lrã¬ã¸ã¹ã¿ã¯ç ´å£ããããã®ã¨æå®ã
- *  ã¦ããï¼
+ *  CPU例外ハンドラから，そのままリターンすることができる．svc命令によ
+ *  りlrレジスタが上書きされるため，lrレジスタは破壊されるものと指定し
+ *  ている．
  */
 #if defined(USE_SVC_CPUEXC)
 
-#define CPUEXC1					EXCNO_SVC		/* ã¹ã¼ããã¤ã¶ã³ã¼ã« */
+#define CPUEXC1					EXCNO_SVC		/* スーパバイザコール */
 #define RAISE_CPU_EXCEPTION		Asm("svc #0":::"lr")
 #define PREPARE_RETURN_CPUEXC
 
 /*
- *  ããªãã§ããã¢ãã¼ãã«ããCPUä¾å¤ã®çºç
+ *  プリフェッチアボートによるCPU例外の発生
  *
- *  ããªãã§ããã¢ãã¼ããèµ·ãããå½ä»¤ãã¹ã­ãããã¦CPUä¾å¤ãã³ãã©ãã
- *  ãªã¿ã¼ã³ããããã«ï¼æ»ãçªå°ã¯ãã®ã¾ã¾ã§è¯ãï¼ARMã¢ã¼ãã§ä½¿ããã¨ã
- *  æ³å®ï¼ï¼
+ *  プリフェッチアボートを起こした命令をスキップしてCPU例外ハンドラから
+ *  リターンするために，戻り番地はそのままで良い（ARMモードで使うことを
+ *  想定）．
  */
 #elif defined(USE_PABORT_CPUEXC)
 
-#define CPUEXC1					EXCNO_PABORT	/* ããªãã§ããã¢ãã¼ã */
+#define CPUEXC1					EXCNO_PABORT	/* プリフェッチアボート */
 #define RAISE_CPU_EXCEPTION		((void (*)(void)) ILLEGAL_IADDR)()
 #define PREPARE_RETURN_CPUEXC
 
 /*
- *  ãã¼ã¿ã¢ãã¼ãã«ããCPUä¾å¤ã®çºç
+ *  データアボートによるCPU例外の発生
  *
- *  ãã¼ã¿ã¢ãã¼ããèµ·ãããå½ä»¤ãã¹ã­ãããã¦CPUä¾å¤ãã³ãã©ãããªã¿ã¼
- *  ã³ããããã«ï¼æ»ãçªå°ãã4ãæ¸ç®ããï¼ARMã¢ã¼ãã§ä½¿ããã¨ãæ³å®ï¼ï¼
+ *  データアボートを起こした命令をスキップしてCPU例外ハンドラからリター
+ *  ンするために，戻り番地から4を減算する（ARMモードで使うことを想定）．
  */
 #elif defined(USE_DABORT_CPUEXC)
 
 #include "arm.h"
-#define CPUEXC1					EXCNO_DABORT	/* ãã¼ã¿ã¢ãã¼ã */
+#define CPUEXC1					EXCNO_DABORT	/* データアボート */
 #define RAISE_CPU_EXCEPTION		(void)(*((volatile uint32_t *) ILLEGAL_DADDR))
 #define PREPARE_RETURN_CPUEXC	((T_EXCINF *) p_excinf)->pc -= 4U
 
 /*
- *  ãã§ã¤ã¿ã«ãã¼ã¿ã¢ãã¼ãå¦ç
+ *  フェイタルデータアボート処理
  *
- *  ã¹ã¿ãã¯ãã¤ã³ã¿ãä¸æ­£ã«ãã¦ï¼ãã§ã¤ã¿ã«ãã¼ã¿ã¢ãã¼ãå¦çãè¡ãã
- *  ãï¼CPUä¾å¤ãã³ãã©ããã¯ãªã¿ã¼ã³ã§ããªãï¼
+ *  スタックポインタを不正にして，フェイタルデータアボート処理を行わせ
+ *  る．CPU例外ハンドラからはリターンできない．
  */
 #elif defined(USE_FATAL_DABORT_CPUEXC)
 
-#define CPUEXC1					EXCNO_DABORT	/* ãã¼ã¿ã¢ãã¼ã */
+#define CPUEXC1					EXCNO_DABORT	/* データアボート */
 #define RAISE_CPU_EXCEPTION		Asm("mov sp, %0"::"I"(ILLEGAL_DADDR))
 
 /*
- *  æªå®ç¾©å½ä»¤ã«ããCPUä¾å¤ã®çºç
+ *  未定義命令によるCPU例外の発生
  *
- *  RAISE_CPU_EXCEPTIONã¯ï¼ARMã¢ã¼ãã§ä½¿ããã¨ãæ³å®ãã¦ããï¼CPUä¾å¤ã
- *  ã³ãã©ããï¼ãã®ã¾ã¾ãªã¿ã¼ã³ãããã¨ãã§ããï¼ä½¿ç¨ãã¦ããæªå®ç¾©å½
- *  ä»¤ã¯ï¼"Multiply and multiply accumulate"å½ä»¤ç¾¤ã®ã¨ã³ã³ã¼ãã£ã³ã°å
-
- *  ã«ãããæªå®ç¾©å½ä»¤ã§ããï¼
+ *  RAISE_CPU_EXCEPTIONは，ARMモードで使うことを想定している．CPU例外ハ
+ *  ンドラから，そのままリターンすることができる．使用している未定義命
+ *  令は，"Multiply and multiply accumulate"命令群のエンコーディング内
+ *  における未定義命令である．
  */
 #else
 
-#define CPUEXC1					EXCNO_UNDEF		/* æªå®ç¾©å½ä»¤ */
+#define CPUEXC1					EXCNO_UNDEF		/* 未定義命令 */
 #define RAISE_CPU_EXCEPTION		Asm(".word 0xf0500090")
 #define PREPARE_RETURN_CPUEXC
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.c	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		ã«ã¼ãã«ã®å²è¾¼ã¿ã³ã³ãã­ã¼ã©ä¾å­é¨ï¼GICç¨ï¼
+ *		カーネルの割込みコントローラ依存部（GIC用）
  */
 
@@ -63,9 +48,9 @@
 
 /*
- *  CPUã¤ã³ã¿ãã§ã¼ã¹ã®æä½
- */
-
-/*
- *  CPUã¤ã³ã¿ãã§ã¼ã¹ã®åæå
+ *  CPUインタフェースの操作
+ */
+
+/*
+ *  CPUインタフェースの初期化
  */
 void
@@ -73,29 +58,25 @@
 {
 	/*
-	 *  CPUã¤ã³ã¿ãã§ã¼ã¹ããã£ã¹ã¨ã¼ãã«
+	 *  CPUインタフェースをディスエーブル
 	 */
 	sil_wrw_mem(GICC_CTLR, GICC_CTLR_DISABLE);
 
 	/*
-	 *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãæä½åªå
-åº¦ã«è¨­å®
+	 *  割込み優先度マスクを最低優先度に設定
 	 */
 	gicc_set_priority((GIC_PRI_LEVEL - 1) << GIC_PRI_SHIFT);
 
 	/*
-	 *  å²è¾¼ã¿åªå
-åº¦ã®å
-¨ãããæå¹ã«
+	 *  割込み優先度の全ビット有効に
 	 */
 	sil_wrw_mem(GICC_BPR, 0U);
 
 	/*
-	 *  ã¢ã¯ãã£ããªå²è¾¼ã¿ãããã°ï¼EOIã«ããã¯ãªã¢ãã
+	 *  アクティブな割込みがあれば，EOIによりクリアする
 	 */
 	sil_wrw_mem(GICC_EOIR, sil_rew_mem(GICC_IAR));
 
 	/*
-	 *  CPUã¤ã³ã¿ãã§ã¼ã¹ãã¤ãã¼ãã«
+	 *  CPUインタフェースをイネーブル
 	 */
 #ifdef TOPPERS_SAFEG_SECURE
@@ -108,5 +89,5 @@
 
 /*
- *  CPUã¤ã³ã¿ãã§ã¼ã¹ã®çµäºå¦ç
+ *  CPUインタフェースの終了処理
  */
 void
@@ -117,9 +98,9 @@
 
 /*
- *  ãã£ã¹ããªãã¥ã¼ã¿ã®æä½
- */
-
-/*
- *  ãã£ã¹ããªãã¥ã¼ã¿ã®åæå
+ *  ディストリビュータの操作
+ */
+
+/*
+ *  ディストリビュータの初期化
  */
 void
@@ -129,5 +110,5 @@
 
 	/*
-	 *  ãã£ã¹ããªãã¥ã¼ã¿ããã£ã¹ã¨ã¼ãã«
+	 *  ディストリビュータをディスエーブル
 	 */
 	sil_wrw_mem(GICD_CTLR, GICD_CTLR_DISABLE);
@@ -135,5 +116,5 @@
 #ifdef TOPPERS_SAFEG_SECURE
 	/*
-	 *  ãã¹ã¦ã®å²è¾¼ã¿ãã°ã«ã¼ã1ï¼IRQï¼ã«è¨­å®
+	 *  すべての割込みをグループ1（IRQ）に設定
 	 */
 	for (i = 0; i < (GIC_TNUM_INTNO + 31) / 32; i++) {
@@ -143,5 +124,5 @@
 
 	/*
-	 *  ãã¹ã¦ã®å²è¾¼ã¿ãç¦æ­¢
+	 *  すべての割込みを禁止
 	 */
 	for (i = 0; i < (GIC_TNUM_INTNO + 31) / 32; i++) {
@@ -150,5 +131,5 @@
 
 	/*
-	 *  ãã¹ã¦ã®å²è¾¼ã¿ãã³ãã£ã³ã°ãã¯ãªã¢
+	 *  すべての割込みペンディングをクリア
 	 */
 	for (i = 0; i < (GIC_TNUM_INTNO + 31) / 32; i++) {
@@ -157,6 +138,5 @@
 
 	/*
-	 *  ãã¹ã¦ã®å²è¾¼ã¿ãæä½åªå
-åº¦ã«è¨­å®
+	 *  すべての割込みを最低優先度に設定
 	 */
 	for (i = 0; i < (GIC_TNUM_INTNO + 3) / 4; i++){
@@ -165,6 +145,5 @@
 
 	/*
-	 *  ãã¹ã¦ã®å
-±æããªãã§ã©ã«å²è¾¼ã¿ã®ã¿ã¼ã²ããããã­ã»ããµ0ã«è¨­å®
+	 *  すべての共有ペリフェラル割込みのターゲットをプロセッサ0に設定
 	 */
 	for (i = GIC_INTNO_SPI0 / 4; i < (GIC_TNUM_INTNO + 3) / 4; i++) {
@@ -173,5 +152,5 @@
 
 	/*
-	 *  ãã¹ã¦ã®ããªãã§ã©ã«å²è¾¼ã¿ãã¬ãã«ããªã¬ã«è¨­å®
+	 *  すべてのペリフェラル割込みをレベルトリガに設定
 	 */
 	for (i = GIC_INTNO_PPI0 / 16; i < (GIC_TNUM_INTNO + 15) / 16; i++) {
@@ -184,5 +163,5 @@
 
 	/*
-	 *  ãã£ã¹ããªãã¥ã¼ã¿ãã¤ãã¼ãã«
+	 *  ディストリビュータをイネーブル
 	 */
 	sil_wrw_mem(GICD_CTLR, GICD_CTLR_ENABLE);
@@ -190,5 +169,5 @@
 
 /*
- *  ãã£ã¹ããªãã¥ã¼ã¿ã®çµäºå¦ç
+ *  ディストリビュータの終了処理
  */
 void
@@ -201,8 +180,8 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®
- *
- *  ASPã«ã¼ãã«ã§ã®å©ç¨ãæ³å®ãã¦ï¼ãã©ã¡ã¼ã¿ã¨ã©ã¼ã¯ã¢ãµã¼ã·ã§ã³ã§ãã§ã
- *  ã¯ãã¦ããï¼
+ *  割込み要求ラインの属性の設定
+ *
+ *  ASPカーネルでの利用を想定して，パラメータエラーはアサーションでチェッ
+ *  クしている．
  */
 Inline void
@@ -213,15 +192,14 @@
 
 	/*
-	 *  å²è¾¼ã¿ãç¦æ­¢
+	 *  割込みを禁止
 	 *
-	 *  å²è¾¼ã¿ãåãä»ããã¾ã¾ï¼ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®è¨­å®ãï¼å²
-	 *  è¾¼ã¿åªå
-åº¦ã®è¨­å®ãè¡ãã®ã¯å±éºãªããï¼å²è¾¼ã¿å±æ§ã«ãããããï¼
-	 *  ä¸æ¦ãã¹ã¯ããï¼
+	 *  割込みを受け付けたまま，レベルトリガ／エッジトリガの設定や，割
+	 *  込み優先度の設定を行うのは危険なため，割込み属性にかかわらず，
+	 *  一旦マスクする．
 	 */
 	disable_int(intno);
 
 	/*
-	 *  å²è¾¼ã¿ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+	 *  割込みをコンフィギュレーション
 	 */
 #ifdef TOPPERS_SAFEG_SECURE
@@ -246,6 +224,5 @@
 
 	/*
-	 *  å²è¾¼ã¿åªå
-åº¦ã¨ã¿ã¼ã²ãããã­ã»ããµãè¨­å®
+	 *  割込み優先度とターゲットプロセッサを設定
 	 */
 	gicd_set_priority(intno, INT_IPM(intpri));
@@ -253,5 +230,5 @@
 
 	/*
-	 * å²è¾¼ã¿ãè¨±å¯
+	 * 割込みを許可
 	 */
 	if ((intatr & TA_ENAINT) != 0U) {
@@ -261,5 +238,5 @@
 
 /*
- *  å²è¾¼ã¿ç®¡çæ©è½ã®åæå
+ *  割込み管理機能の初期化
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.h	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,9 +39,9 @@
 
 /*
- *		ã«ã¼ãã«ã®å²è¾¼ã¿ã³ã³ãã­ã¼ã©ä¾å­é¨ï¼GICç¨ï¼
- *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼target_kernel_impl.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
- *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
- *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ *		カーネルの割込みコントローラ依存部（GIC用）
+ *
+ *  このヘッダファイルは，target_kernel_impl.h（または，そこからインク
+ *  ルードされるファイル）のみからインクルードされる．他のファイルから
+ *  直接インクルードしてはならない．
  */
 
@@ -68,5 +53,5 @@
 
 /*
- *  å²è¾¼ã¿çªå·ã®æ°ï¼æå°å¤ã¨æå¤§å¤
+ *  割込み番号の数，最小値と最大値
  */
 #define TNUM_INTNO		GIC_TNUM_INTNO
@@ -75,10 +60,10 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã©çªå·ã®æ°
+ *  割込みハンドラ番号の数
  */
 #define TNUM_INHNO		GIC_TNUM_INTNO
 
 /*
- *  å²è¾¼ã¿çªå·ã®å®ç¾©
+ *  割込み番号の定義
  */
 #define GIC_INTNO_SGI0		0U
@@ -87,15 +72,9 @@
 
 /*
- *  å²è¾¼ã¿åªå
-åº¦ã®æä½
- *
- *  å²è¾¼ã¿åªå
-åº¦ã®å
-é¨è¡¨ç¾ã¯ï¼uint_tåã§è¡¨ãï¼0ãæé«åªå
-åº¦ã§ï¼å¤ãå¤§ã
- *  ãã»ã©åªå
-åº¦ãä¸ãããã®ã¨ããï¼GICã®ã¬ã¸ã¹ã¿æ§æã¨æ´åãããããã«ï¼
- *  åªå
-åº¦ã®æ®µæ°ã256æ®µéã®æã«ãããã¦è¡¨ãï¼
+ *  割込み優先度の操作
+ *
+ *  割込み優先度の内部表現は，uint_t型で表し，0が最高優先度で，値が大き
+ *  いほど優先度が下がるものとする．GICのレジスタ構成と整合させるために，
+ *  優先度の段数が256段階の時にあわせて表す．
  */
 #define GIC_PRI_LEVEL		(TMAX_INTPRI - TMIN_INTPRI + 2)
@@ -120,19 +99,17 @@
 #endif /* GIC_PRI_LEVEL == 16 */
 
-/* å¤é¨è¡¨ç¾ã¸ã®å¤æ */
+/* 外部表現への変換 */
 #define EXT_IPM(pri) \
 			(((PRI)((pri) >> GIC_PRI_SHIFT)) - (GIC_PRI_LEVEL - 1))
 
-/* å
-é¨è¡¨ç¾ã¸ã®å¤æ */
+/* 内部表現への変換 */
 #define INT_IPM(ipm) \
 			(((uint_t)((ipm) + (GIC_PRI_LEVEL - 1))) << GIC_PRI_SHIFT)
 
 /*
- *  GICã¬ã¸ã¹ã¿ã®ã¢ãã¬ã¹ãå®ç¾©ããããã®ãã¯ã­
- *
- *  GICã¬ã¸ã¹ã¿ã®ã¢ãã¬ã¹ãï¼ã¢ã»ã³ããªè¨èªãããåç
-§ã§ããããã«ããã
- *  ãã®ãã¯ã­ï¼
+ *  GICレジスタのアドレスを定義するためのマクロ
+ *
+ *  GICレジスタのアドレスを，アセンブリ言語からも参照できるようにするた
+ *  めのマクロ．
  */
 #ifndef GIC_REG
@@ -141,5 +118,5 @@
 
 /*
- *  CPUã¤ã³ã¿ãã§ã¼ã¹é¢é£ã®å®ç¾©
+ *  CPUインタフェース関連の定義
  */
 #define GICC_CTLR		GIC_REG(GICC_BASE, 0x00)
@@ -152,6 +129,6 @@
 
 /*
- *  CPUã¤ã³ã¿ãã§ã¼ã¹å¶å¾¡ã¬ã¸ã¹ã¿ï¼GICC_CTLRï¼ã®è¨­å®å¤ï¼GICv1ã§ã»ã­ã¥ãª
- *  ãã£æ¡å¼µããªãå ´åï¼
+ *  CPUインタフェース制御レジスタ（GICC_CTLR）の設定値（GICv1でセキュリ
+ *  ティ拡張がない場合）
  */
 #define GICC_CTLR_DISABLE		UINT_C(0x00)
@@ -159,6 +136,6 @@
 
 /*
- *  CPUã¤ã³ã¿ãã§ã¼ã¹å¶å¾¡ã¬ã¸ã¹ã¿ï¼GICC_CTLRï¼ã®è¨­å®å¤ï¼GICv2ã§ã»ã­ã¥ãª
- *  ãã£æ¡å¼µããªãå ´åãï¼æ¡å¼µãããå ´åã®ã»ã­ã¥ã¢ã¢ã¼ãï¼
+ *  CPUインタフェース制御レジスタ（GICC_CTLR）の設定値（GICv2でセキュリ
+ *  ティ拡張がない場合か，拡張がある場合のセキュアモード）
  */
 #ifdef TOPPERS_SAFEG_SECURE
@@ -170,5 +147,5 @@
 
 /*
- *  ãã£ã¹ããªãã¥ã¼ã¿é¢é£ã®å®ç¾©
+ *  ディストリビュータ関連の定義
  */
 #define GICD_CTLR			GIC_REG(GICD_BASE, 0x000)
@@ -191,5 +168,5 @@
 
 /*
- *  ãã£ã¹ããªãã¥ã¼ã¿å¶å¾¡ã¬ã¸ã¹ã¿ï¼GICD_CTLRï¼ã®è¨­å®å¤
+ *  ディストリビュータ制御レジスタ（GICD_CTLR）の設定値
  */
 #define GICD_CTLR_DISABLE	UINT_C(0x00)
@@ -197,10 +174,8 @@
 
 /*
- *  å²è¾¼ã¿ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¬ã¸ã¹ã¿ï¼GICD_ICFGRnï¼ã®è¨­å®å¤
- *
- *  ç¬¬1ãããã¯ï¼ARM11 MPCoreããã³GICã®æ©ãææã®å®è£
-ã§ã¯å²è¾¼ã¿ã®éç¥
- *  å
-ãã­ã»ããµãè¨­å®ããããã«ä½¿ç¨ããã¦ããï¼
+ *  割込みコンフィギュレーションレジスタ（GICD_ICFGRn）の設定値
+ *
+ *  第1ビットは，ARM11 MPCoreおよびGICの早い時期の実装では割込みの通知
+ *  先プロセッサを設定するために使用されている．
  */
 #define GICD_ICFGRn_LEVEL	UINT_C(0x00)
@@ -214,11 +189,9 @@
 
 /*
- *  CPUã¤ã³ã¿ãã§ã¼ã¹ã®æä½
- */
-
-/*
- *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãè¨­å®ï¼priã¯å
-é¨è¡¨ç¾ï¼
+ *  CPUインタフェースの操作
+ */
+
+/*
+ *  割込み優先度マスクを設定（priは内部表現）
  */ 
 Inline void
@@ -229,7 +202,5 @@
 
 /*
- *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãåå¾ï¼å
-é¨è¡¨ç¾ã§è¿ãï¼
+ *  割込み優先度マスクを取得（内部表現で返す）
  */ 
 Inline uint_t
@@ -240,19 +211,19 @@
 
 /*
- *  CPUã¤ã³ã¿ãã§ã¼ã¹ã®åæå
+ *  CPUインタフェースの初期化
  */
 extern void gicc_initialize(void);
 
 /*
- *  CPUã¤ã³ã¿ãã§ã¼ã¹ã®çµäº
+ *  CPUインタフェースの終了
  */
 extern void gicc_terminate(void);
 
 /*
- *  ãã£ã¹ããªãã¥ã¼ã¿ã®æä½
- */
-
-/*
- *  å²è¾¼ã¿ç¦æ­¢ï¼å²è¾¼ã¿ã¤ãã¼ãã«ã®ã¯ãªã¢ï¼
+ *  ディストリビュータの操作
+ */
+
+/*
+ *  割込み禁止（割込みイネーブルのクリア）
  */
 Inline void
@@ -263,5 +234,5 @@
 
 /*
- *  å²è¾¼ã¿è¨±å¯ï¼å²è¾¼ã¿ã¤ãã¼ãã«ã®ã»ããï¼
+ *  割込み許可（割込みイネーブルのセット）
  */
 Inline void
@@ -272,5 +243,5 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã£ã³ã°ã®ã¯ãªã¢
+ *  割込みペンディングのクリア
  */
 Inline void
@@ -281,5 +252,5 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã£ã³ã°ã®ã»ãã
+ *  割込みペンディングのセット
  */
 Inline void
@@ -290,5 +261,5 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã£ã³ã°ã®ãã§ãã¯
+ *  割込みペンディングのチェック
  */
 Inline bool_t
@@ -300,5 +271,5 @@
 
 /*
- *  å²è¾¼ã¿ã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³
+ *  割込みのコンフィグレーション
  */
 Inline void
@@ -315,5 +286,5 @@
 
 /*
- *  å²è¾¼ã¿ã°ã«ã¼ãã®è¨­å®ï¼ã»ã­ã¥ãªãã£æ¡å¼µï¼
+ *  割込みグループの設定（セキュリティ拡張）
  */
 Inline void
@@ -330,7 +301,5 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿åªå
-åº¦ã®è¨­å®ï¼priã¯å
-é¨è¡¨ç¾ï¼
+ *  割込み要求ラインに対する割込み優先度の設定（priは内部表現）
  */
 Inline void
@@ -347,12 +316,12 @@
 
 /*
- *  å²è¾¼ã¿ã¿ã¼ã²ãããã­ã»ããµã®è¨­å®
- *
- *  prcsã¯ï¼ã¿ã¼ã²ããã¨ãããã­ã»ããµãè¡¨ããããã®ãããæ¯è«çåã§æ
- *  å®ããï¼
- *		ãã­ã»ããµ0 : 0x01
- *		ãã­ã»ããµ1 : 0x02
- *		ãã­ã»ããµ2 : 0x04
- *		ãã­ã»ããµ3 : 0x08
+ *  割込みターゲットプロセッサの設定
+ *
+ *  prcsは，ターゲットとするプロセッサを表すビットのビット毎論理和で指
+ *  定する．
+ *		プロセッサ0 : 0x01
+ *		プロセッサ1 : 0x02
+ *		プロセッサ2 : 0x04
+ *		プロセッサ3 : 0x08
  */
 Inline void
@@ -369,10 +338,10 @@
 
 /*
- *  ãã£ã¹ããªãã¥ã¼ã¿ã®åæå
+ *  ディストリビュータの初期化
  */
 extern void gicd_initialize(void);
 
 /*
- *  ãã£ã¹ããªãã¥ã¼ã¿ã®çµäº
+ *  ディストリビュータの終了
  */
 extern void gicd_terminate(void);
@@ -381,32 +350,30 @@
 
 /*
- *  å²è¾¼ã¿çªå·ã®ç¯å²ã®å¤å®
+ *  割込み番号の範囲の判定
  */
 #define VALID_INTNO(intno)	(TMIN_INTNO <= (intno) && (intno) <= TMAX_INTNO)
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®ããã®æ¨æºçãªåæåæ
-å ±ãçæãã
+ *  割込み要求ラインのための標準的な初期化情報を生成する
  */
 #define USE_INTINIB_TABLE
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³è¨­å®ãã¼ãã«ãçæãã
+ *  割込み要求ライン設定テーブルを生成する
  */
 #define USE_INTCFG_TABLE
 
 /*
- *  ã³ã¢ä¾å­é¨
+ *  コア依存部
  */
 #include "core_kernel_impl.h"
 
 /*
- *  ã¿ã¼ã²ããéä¾å­é¨ã«æä¾ããé¢æ°
+ *  ターゲット非依存部に提供する関数
  */
 #ifndef TOPPERS_MACRO_ONLY
 
 /*
- *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã®è¨­å®
+ *  割込み優先度マスクの設定
  */
 Inline void
@@ -417,7 +384,5 @@
 
 /*
- *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã®åç
-§
+ *  割込み優先度マスクの参照
  */
 Inline PRI
@@ -428,9 +393,9 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ã»ãã
- *
- *  intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ã»ã
- *  ããï¼å²è¾¼ã¿ãç¦æ­¢ããï¼å²è¾¼ã¿å±æ§ãè¨­å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤
- *  ã³ãæå®ãããå ´åã«ã¯ï¼falseãè¿ãï¼
+ *  割込み要求禁止フラグのセット
+ *
+ *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのセッ
+ *  トし，割込みを禁止する．割込み属性が設定されていない割込み要求ライ
+ *  ンが指定された場合には，falseを返す．
  */
 Inline bool_t
@@ -445,9 +410,9 @@
 
 /* 
- *  å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ã¯ãªã¢
- *
- *  intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ã¯ãª
- *  ã¢ãï¼å²è¾¼ã¿ãè¨±å¯ããï¼å²è¾¼ã¿å±æ§ãè¨­å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤
- *  ã³ãæå®ãããå ´åã«ã¯ï¼falseãè¿ãï¼
+ *  割込み要求禁止フラグのクリア
+ *
+ *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのクリ
+ *  アし，割込みを許可する．割込み属性が設定されていない割込み要求ライ
+ *  ンが指定された場合には，falseを返す．
  */
 Inline bool_t
@@ -462,5 +427,5 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ã®ã¯ãªã¢
+ *  割込み要求のクリア
  */
 Inline void
@@ -471,5 +436,5 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ã®ãã§ãã¯
+ *  割込み要求のチェック
  */
 Inline bool_t
@@ -480,5 +445,5 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ã®ã»ãã
+ *  割込み要求のセット
  */
 Inline void
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_support.S
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_support.S	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_support.S	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,12 +41,12 @@
 
 /*
- *		ã«ã¼ãã«ã®å²è¾¼ã¿ã³ã³ãã­ã¼ã©ä¾å­é¨ã®ã¢ã»ã³ããªè¨èªé¨ï¼GICç¨ï¼
+ *		カーネルの割込みコントローラ依存部のアセンブリ言語部（GIC用）
  */
 
 #define TOPPERS_MACRO_ONLY
 #define TOPPERS_ASM_MACRO
-#define UINT_C(val)			(val)		/* uint_tåã®å®æ°ãä½ããã¯ã­ */
-#define ULONG_C(val)		(val)		/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
-#define CAST(type, val)		(val)		/* åã­ã£ã¹ããè¡ããã¯ã­ */
+#define UINT_C(val)			(val)		/* uint_t型の定数を作るマクロ */
+#define ULONG_C(val)		(val)		/* ulong_t型の定数を作るマクロ */
+#define CAST(type, val)		(val)		/* 型キャストを行うマクロ */
 #define GIC_REG(base, offset)	((base) + (offset))
 #include "kernel_impl.h"
@@ -73,11 +58,8 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã©å¼åºãåã®å²è¾¼ã¿ã³ã³ãã­ã¼ã©æä½
+ *  割込みハンドラ呼出し前の割込みコントローラ操作
  *
- *  r4ã«å²è¾¼ã¿çªå·ãè¿ãï¼irc_end_intã§ç¨ããæ
-å ±ï¼å²è¾¼ã¿çºçåã®å²è¾¼ã¿
- *  åªå
-åº¦ãã¹ã¯ï¼ãï¼ã¹ã¿ãã¯ã®å
-é ­ã«ä¿å­ããï¼
+ *  r4に割込み番号を返す．irc_end_intで用いる情報（割込み発生前の割込み
+ *  優先度マスク）を，スタックの先頭に保存する．
  */
 	ATEXT
@@ -86,5 +68,5 @@
 ALABEL(irc_begin_int)
 	/*
-	 *  å²è¾¼ã¿è¦å ãåå¾ããï¼
+	 *  割込み要因を取得する．
 	 */
 	ldr		r1, =GICC_IAR
@@ -92,11 +74,11 @@
 
 	/*
-	 *  å²è¾¼ã¿çªå·ãæ±ããï¼
+	 *  割込み番号を求める．
 	 */
-	lsl		r4, r3, #22			/* ä¸ä½10ããããåãåºã */
+	lsl		r4, r3, #22			/* 下位10ビットを取り出す */
 	lsr		r4, r4, #22
 
 	/*
-	 *  å²è¾¼ã¿è¦æ±ãã¯ãªã¢ããï¼
+	 *  割込み要求をクリアする．
 	 */
 	and		r0, r4, #31
@@ -108,35 +90,27 @@
 
 	/*
-	 *  å²è¾¼ã¿è¦å ã®å²è¾¼ã¿åªå
-åº¦ãæ±ãï¼å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã«è¨­å®ããï¼
+	 *  割込み要因の割込み優先度を求め，割込み優先度マスクに設定する．
 	 */
-	ldr		r1, =GICC_RPR		/* åãä»ããå²è¾¼ã¿ã®å²è¾¼ã¿åªå
-åº¦ãåå¾ */
+	ldr		r1, =GICC_RPR		/* 受け付けた割込みの割込み優先度を取得 */
 	ldr		r0, [r1]
-	ldr		r1, =GICC_PMR		/* å²è¾¼ã¿çºçåã®å²è¾¼ã¿åªå
-åº¦ãåå¾ */
+	ldr		r1, =GICC_PMR		/* 割込み発生前の割込み優先度を取得 */
 	ldr		r2, [r1]
-	str		r0, [r1]			/* æ°ããå²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãã»ãããã */
-	asm_data_sync_barrier r0	/* å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãã»ãããããã®ãå¾
-ã¤ */
-	str		r2, [sp]			/* irc_end_intã§ç¨ããæ
-å ±ãä¿å­ */
+	str		r0, [r1]			/* 新しい割込み優先度マスクをセットする */
+	asm_data_sync_barrier r0	/* 割込み優先度マスクがセットされるのを待つ */
+	str		r2, [sp]			/* irc_end_intで用いる情報を保存 */
 
 	/*
-	 *  EOIãçºè¡ããï¼
+	 *  EOIを発行する．
 	 */
-	ldr		r1, =GICC_EOIR		/* EOIã¬ã¸ã¹ã¿ã¸ã®æ¸è¾¼ã¿ */
+	ldr		r1, =GICC_EOIR		/* EOIレジスタへの書込み */
 	str		r3, [r1]
 
 	/*
-	 *  å²è¾¼ã¿çªå·ãè¿å¤ã¨ãã¦ãªã¿ã¼ã³ããï¼
+	 *  割込み番号を返値としてリターンする．
 	 */
 	bx		lr
 
 /*
- *  å²è¾¼ã¿ãã³ãã©å¼åºãå¾ã®å²è¾¼ã¿ã³ã³ãã­ã¼ã©æä½
+ *  割込みハンドラ呼出し後の割込みコントローラ操作
  */
 	ATEXT
@@ -145,24 +119,16 @@
 ALABEL(irc_end_int)
 	/*
-	 *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãå
-ã«æ»ãï¼
+	 *  割込み優先度マスクを元に戻す．
 	 */
-	ldr		r2, [sp]			/* irc_begin_intã§ä¿å­ããæ
-å ±ãå¾©å¸° */
-	ldr		r1, =GICC_PMR		/* å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãå
-ã«æ»ã */
+	ldr		r2, [sp]			/* irc_begin_intで保存した情報を復帰 */
+	ldr		r1, =GICC_PMR		/* 割込み優先度マスクを元に戻す */
 	str		r2, [r1]
 	bx		lr
 
 /*
- *  CPUä¾å¤çºçåã®å²è¾¼ã¿åªå
-åº¦ã®åå¾
+ *  CPU例外発生前の割込み優先度の取得
  *
- *  CPUä¾å¤ã®çºçã§å²è¾¼ã¿åªå
-åº¦ãå¤ãããã¨ã¯ãªãããï¼ç¾å¨ã®å²è¾¼ã¿åªå
-
- *  åº¦ãè¿ãï¼
+ *  CPU例外の発生で割込み優先度が変わることはないため，現在の割込み優先
+ *  度を返す．
  */
 	ATEXT
@@ -171,6 +137,5 @@
 ALABEL(irc_get_intpri)
 	/*
-	 *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãå¤é¨è¡¨ç¾ã«å¤æãã¦è¿ãï¼
+	 *  割込み優先度マスクを外部表現に変換して返す．
 	 */
 	ldr		r1, =GICC_PMR
@@ -181,11 +146,8 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©å¼åºãåã®å²è¾¼ã¿ã³ã³ãã­ã¼ã©æä½
+ *  CPU例外ハンドラ呼出し前の割込みコントローラ操作
  *
- *  irc_end_excã§ç¨ããæ
-å ±ï¼CPUä¾å¤çºçåã®å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ï¼ãï¼ã¹ã¿ã
- *	ã¯ã®å
-é ­ã«ä¿å­ããï¼
+ *  irc_end_excで用いる情報（CPU例外発生前の割込み優先度マスク）を，スタッ
+ *	クの先頭に保存する．
  */
 	ATEXT
@@ -194,16 +156,13 @@
 ALABEL(irc_begin_exc)
 	/*
-	 *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãä¿å­ããï¼
+	 *  割込み優先度マスクを保存する．
 	 */
-	ldr		r1, =GICC_PMR		/* ç¾å¨ã®å²è¾¼ã¿åªå
-åº¦ãåå¾ */
+	ldr		r1, =GICC_PMR		/* 現在の割込み優先度を取得 */
 	ldr		r2, [r1]
-	str		r2, [sp]			/* irc_end_excã§ç¨ããæ
-å ±ãä¿å­ */
+	str		r2, [sp]			/* irc_end_excで用いる情報を保存 */
 	bx		lr
 
 /*
- *  CPUä¾å¤ãã³ãã©å¼åºãå¾ã®å²è¾¼ã¿ã³ã³ãã­ã¼ã©æä½
+ *  CPU例外ハンドラ呼出し後の割込みコントローラ操作
  */
 	ATEXT
@@ -212,13 +171,8 @@
 ALABEL(irc_end_exc)
 	/*
-	 *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãå
-ã«æ»ãï¼
+	 *  割込み優先度マスクを元に戻す．
 	 */
-	ldr		r2, [sp]			/* irc_begin_excã§ä¿å­ããæ
-å ±ãå¾©å¸° */
-	ldr		r1, =GICC_PMR		/* å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ãå
-ã«æ»ã */
+	ldr		r2, [sp]			/* irc_begin_excで保存した情報を復帰 */
+	ldr		r1, =GICC_PMR		/* 割込み優先度マスクを元に戻す */
 	str		r2, [r1]
 	bx		lr
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/sp804.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/sp804.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/sp804.h	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		ARM Dual-Timer Moduleï¼SP804ï¼ã«é¢ããå®ç¾©
+ *		ARM Dual-Timer Module（SP804）に関する定義
  */
 
@@ -61,5 +46,5 @@
 
 /*
- *  ã¿ã¤ãã¬ã¸ã¹ã¿ã®çªå°ã®å®ç¾©
+ *  タイマレジスタの番地の定義
  */
 #define SP804_LR(base)		((uint32_t *)((base) + 0x00U))
@@ -72,16 +57,16 @@
 
 /*
- *  å¶å¾¡ã¬ã¸ã¹ã¿ï¼SP804_CRï¼ã®è¨­å®å¤
+ *  制御レジスタ（SP804_CR）の設定値
  */
-#define SP804_DISABLE			UINT_C(0x00)	/* ã¿ã¤ããã£ã¹ã¨ã¼ãã« */
-#define SP804_ENABLE			UINT_C(0x80)	/* ã¿ã¤ãã¤ãã¼ãã« */
-#define SP804_INT_ENABLE		UINT_C(0x20)	/* ã¿ã¤ãå²è¾¼ã¿ã¤ãã¼ãã« */
-#define SP804_MODE_FREERUN		UINT_C(0x00)	/* ããªã¼ã©ã³ãã³ã°ã¢ã¼ã */
-#define SP804_MODE_PERIODIC		UINT_C(0x40)	/* å¨æã¢ã¼ã */
-#define SP804_MODE_ONESHOT		UINT_C(0x01)	/* ã¯ã³ã·ã§ããã¢ã¼ã */
-#define SP804_SIZE_32			UINT_C(0x02)	/* 32ããã */
-#define SP804_PRESCALE_1		UINT_C(0x00)	/* ããªã¹ã±ã¼ã© Ã1 */
-#define SP804_PRESCALE_16		UINT_C(0x04)	/* ããªã¹ã±ã¼ã© Ã16 */
-#define SP804_PRESCALE_256		UINT_C(0x08)	/* ããªã¹ã±ã¼ã© Ã256 */
+#define SP804_DISABLE			UINT_C(0x00)	/* タイマディスエーブル */
+#define SP804_ENABLE			UINT_C(0x80)	/* タイマイネーブル */
+#define SP804_INT_ENABLE		UINT_C(0x20)	/* タイマ割込みイネーブル */
+#define SP804_MODE_FREERUN		UINT_C(0x00)	/* フリーランニングモード */
+#define SP804_MODE_PERIODIC		UINT_C(0x40)	/* 周期モード */
+#define SP804_MODE_ONESHOT		UINT_C(0x01)	/* ワンショットモード */
+#define SP804_SIZE_32			UINT_C(0x02)	/* 32ビット */
+#define SP804_PRESCALE_1		UINT_C(0x00)	/* プリスケーラ ×1 */
+#define SP804_PRESCALE_16		UINT_C(0x04)	/* プリスケーラ ×16 */
+#define SP804_PRESCALE_256		UINT_C(0x08)	/* プリスケーラ ×256 */
 
 #endif /* TOPPERS_SP804_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/start.S
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/start.S	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/start.S	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,12 +41,12 @@
 
 /*
- *		ã«ã¼ãã«ç¨ã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ï¼ARMç¨ï¼
+ *		カーネル用のスタートアップモジュール（ARM用）
  */
 	
 #define TOPPERS_MACRO_ONLY
 #define TOPPERS_ASM_MACRO
-#define UINT_C(val)			(val)		/* uint_tåã®å®æ°ãä½ããã¯ã­ */
-#define ULONG_C(val)		(val)		/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
-#define CAST(type, val)		(val)		/* åã­ã£ã¹ããè¡ããã¯ã­ */
+#define UINT_C(val)			(val)		/* uint_t型の定数を作るマクロ */
+#define ULONG_C(val)		(val)		/* ulong_t型の定数を作るマクロ */
+#define CAST(type, val)		(val)		/* 型キャストを行うマクロ */
 #include "kernel_impl.h"
 #include "core_asm.inc"
@@ -72,26 +57,23 @@
 ALABEL(start)
 	/*
-	 *  ãã­ã»ããµã¢ã¼ãã®åæå
+	 *  プロセッサモードの初期化
 	 *
-	 *  ã¹ã¼ããã¤ã¶ã¢ã¼ãï¼å
-¨å²è¾¼ã¿ã­ãã¯ç¶æ
-ã«åæåããï¼
+	 *  スーパバイザモード，全割込みロック状態に初期化する．
 	 */
 	msr		cpsr_cxsf, #(CPSR_SVC_MODE AOR CPSR_INTLOCK)
 
 	/*
-	 *  ã¹ã¿ãã¯ãã¤ã³ã¿ã¨ãã¬ã¼ã ãã¤ã³ã¿ã®åæå
+	 *  スタックポインタとフレームポインタの初期化
 	 */
 	ldr		r0, =_kernel_istkpt
-	ldr		sp, [r0]			/* ã¹ã¿ãã¯ãã¤ã³ã¿ï¼spï¼*/
-	mov		fp, #0				/* ARMã¢ã¼ãç¨ãã¬ã¼ã ãã¤ã³ã¿ï¼r11ï¼*/
-	mov		r7, #0				/* Thumbã¢ã¼ãç¨ãã¬ã¼ã ãã¤ã³ã¿ï¼r7ï¼*/
+	ldr		sp, [r0]			/* スタックポインタ（sp）*/
+	mov		fp, #0				/* ARMモード用フレームポインタ（r11）*/
+	mov		r7, #0				/* Thumbモード用フレームポインタ（r7）*/
 
 	/*
-	 *  hardware_init_hookã®å¼åºãï¼0ã§ãªãå ´åï¼
+	 *  hardware_init_hookの呼出し（0でない場合）
 	 *
-	 *  ã¿ã¼ã²ãããã¼ãã¦ã§ã¢ã«ä¾å­ãã¦å¿
-è¦ãªåæåå¦çãããå ´åã¯ï¼
-	 *  hardware_init_hookã¨ããé¢æ°ãç¨æããï¼
+	 *  ターゲットハードウェアに依存して必要な初期化処理がある場合は，
+	 *  hardware_init_hookという関数を用意する．
 	 */
 	ldr		r0, =hardware_init_hook
@@ -102,7 +84,7 @@
 #ifndef TOPPERS_OMIT_BSS_INIT
 	/*
-	 *  bssã»ã¯ã·ã§ã³ã®ã¯ãªã¢
+	 *  bssセクションのクリア
 	 *
-	 *  BSS_STARTããBSS_ENDã¾ã§ãã¼ã­ã¯ãªã¢ããï¼
+	 *  BSS_STARTからBSS_ENDまでをゼロクリアする．
 	 */
 	ldr		r0, =BSS_START
@@ -125,8 +107,8 @@
 #ifndef TOPPERS_OMIT_DATA_INIT
 	/*
-	 *  dataã»ã¯ã·ã§ã³ã®åæåï¼ROMåå¯¾å¿ï¼
+	 *  dataセクションの初期化（ROM化対応）
 	 *
-	 *  DATA_STARTããDATA_ENDã¾ã§ã«ï¼IDATA_STARTä»¥éããã³ãã¼ããï¼
-	 *  IDATA_STARTããIDATA_ENDã¾ã§ãï¼DATA_STARTä»¥éã«ã³ãã¼ããï¼
+	 *  DATA_STARTからDATA_ENDまでに，IDATA_START以降からコピーする．
+	 *  IDATA_STARTからIDATA_ENDまでを，DATA_START以降にコピーする．
 	 */
 	ldr		r0, =DATA_START
@@ -149,9 +131,8 @@
 
 	/*
-	 *  software_init_hookã®å¼åºãï¼0ã§ãªãå ´åï¼
+	 *  software_init_hookの呼出し（0でない場合）
 	 *
-	 *  ã½ããã¦ã§ã¢ç°å¢ï¼ç¹ã«ã©ã¤ãã©ãªï¼ã«ä¾å­ãã¦å¿
-è¦ãªåæåå¦çã
-	 *  ããå ´åã¯ï¼software_init_hookã¨ããé¢æ°ãç¨æããã°ããï¼
+	 *  ソフトウェア環境（特にライブラリ）に依存して必要な初期化処理が
+	 *  ある場合は，software_init_hookという関数を用意すればよい．
 	 */
 	ldr		r0, =software_init_hook
@@ -161,5 +142,5 @@
 
 	/*
-	 *  ã«ã¼ãã«ã®èµ·å
+	 *  カーネルの起動
 	 */
 	b		sta_ker
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *		ARM PrimCell UARTï¼PL011ï¼ç¨ ç°¡æSIOãã©ã¤ã
+ *		ARM PrimCell UART（PL011）用 簡易SIOドライバ
  */
 
@@ -63,9 +48,9 @@
 
 /*
- *  ããªããã£ããªéä¿¡ï¼åä¿¡é¢æ°
- */
-
-/*
- *  åä¿¡ãããã¡ã«æå­ããããï¼
+ *  プリミティブな送信／受信関数
+ */
+
+/*
+ *  受信バッファに文字があるか？
  */
 Inline bool_t
@@ -76,5 +61,5 @@
 
 /*
- *  éä¿¡ãããã¡ã«ç©ºãããããï¼
+ *  送信バッファに空きがあるか？
  */
 Inline bool_t
@@ -85,5 +70,5 @@
 
 /*
- *  åä¿¡ããæå­ã®ååºã
+ *  受信した文字の取出し
  */
 Inline char
@@ -94,5 +79,5 @@
 
 /*
- *  éä¿¡ããæå­ã®æ¸è¾¼ã¿
+ *  送信する文字の書込み
  */
 Inline void
@@ -103,5 +88,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãã®ãªã¼ãã³
+ *  シリアルI/Oポートのオープン
  */
 void
@@ -111,15 +96,15 @@
 
 	/*
-	 *  UARTããã£ã¹ã¨ã¼ãã«
+	 *  UARTをディスエーブル
 	 */
 	sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U);
 
 	/*
-	 *  ã¨ã©ã¼ãã©ã°ãã¯ãªã¢
+	 *  エラーフラグをクリア
 	 */
 	sil_wrw_mem(UART_ECR(ATTR_baseAddress), 0U);
 
 	/*
-	 *  FIFOãç©ºã«ãã
+	 *  FIFOを空にする
 	 */
 	while (uart_pl011_getready(p_cellcb)) {
@@ -128,5 +113,5 @@
 
 	/*
-	 *  ãã¼ã¬ã¼ãã¨éä¿¡è¦æ ¼ãè¨­å®
+	 *  ボーレートと通信規格を設定
 	 */
 	sil_wrw_mem(UART_IBRD(ATTR_baseAddress), ATTR_ibrd);
@@ -135,5 +120,5 @@
 		
 	/*
-	 *  UARTãã¤ãã¼ãã«
+	 *  UARTをイネーブル
 	 */
 	sil_wrw_mem(UART_CR(ATTR_baseAddress),
@@ -142,5 +127,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãã®ã¯ã­ã¼ãº
+ *  シリアルI/Oポートのクローズ
  */
 void
@@ -150,5 +135,5 @@
 
 	/*
-	 *  UARTããã£ã¹ã¨ã¼ãã«
+	 *  UARTをディスエーブル
 	 */
 	sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U);
@@ -156,5 +141,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®æå­éä¿¡
+ *  シリアルI/Oポートへの文字送信
  */
 bool_t
@@ -171,5 +156,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãããã®æå­åä¿¡
+ *  シリアルI/Oポートからの文字受信
  */
 int_t
@@ -185,5 +170,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯
+ *  シリアルI/Oポートからのコールバックの許可
  */
 void
@@ -206,5 +191,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ­¢
+ *  シリアルI/Oポートからのコールバックの禁止
  */
 void
@@ -227,5 +212,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãã«å¯¾ããå²è¾¼ã¿å¦ç
+ *  シリアルI/Oポートに対する割込み処理
  */
 void
@@ -236,5 +221,5 @@
 	if (uart_pl011_getready(p_cellcb)) {
 		/*
-		 *  åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼
+		 *  受信通知コールバックルーチンを呼び出す．
 		 */
 		ciSIOCBR_readyReceive();
@@ -242,5 +227,5 @@
 	if (uart_pl011_putready(p_cellcb)) {
 		/*
-		 *  éä¿¡å¯è½ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼
+		 *  送信可能コールバックルーチンを呼び出す．
 		 */
 		ciSIOCBR_readySend();
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.cdl	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,14 +42,14 @@
 
 /*
- *		ARM PrimCell UARTï¼PL011ï¼ç¨ ç°¡æSIOãã©ã¤ãã®ã³ã³ãã¼ãã³ãè¨è¿°
+ *		ARM PrimCell UART（PL011）用 簡易SIOドライバのコンポーネント記述
  */
 
 /*
- *  ARM PrimCell UARTï¼PL011ï¼ã«é¢ããå®ç¾©ã®ã¤ã³ãã¼ã
+ *  ARM PrimCell UART（PL011）に関する定義のインポート
  */
 import_C("uart_pl011.h");
 
 /*
- *  ARM PrimCell UARTï¼PL011ï¼ç¨ ç°¡æSIOãã©ã¤ãã®ã»ã«ã¿ã¤ã
+ *  ARM PrimCell UART（PL011）用 簡易SIOドライバのセルタイプ
  */
 celltype tUartPL011 {
@@ -75,8 +60,8 @@
 
 	attr {
-		uintptr_t	baseAddress;	/* UARTã¬ã¸ã¹ã¿ã®ãã¼ã¹ã¢ãã¬ã¹ */
-		uint8_t		ibrd;			/* ãã¼ã¬ã¼ãï¼æ´æ°é¨ï¼ã¬ã¸ã¹ã¿ã®è¨­å®å¤ */
-		uint8_t		fbrd;			/* ãã¼ã¬ã¼ãï¼å°æ°é¨ï¼ã¬ã¸ã¹ã¿ã®è¨­å®å¤ */
-		uint8_t		lcr_h;			/* ã©ã¤ã³å¶å¾¡ã¬ã¸ã¹ã¿ã®è¨­å®å¤ */
+		uintptr_t	baseAddress;	/* UARTレジスタのベースアドレス */
+		uint8_t		ibrd;			/* ボーレート（整数部）レジスタの設定値 */
+		uint8_t		fbrd;			/* ボーレート（小数部）レジスタの設定値 */
+		uint8_t		lcr_h;			/* ライン制御レジスタの設定値 */
 	};
 };
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/uart_pl011.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/uart_pl011.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/uart_pl011.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ARM PrimCell UARTï¼PL011ï¼ã«é¢ããå®ç¾©
+ *		ARM PrimCell UART（PL011）に関する定義
  */
 
@@ -64,5 +49,5 @@
 
 /*
- *  UARTã¬ã¸ã¹ã¿ã®çªå°ã®å®ç¾©
+ *  UARTレジスタの番地の定義
  */
 #define UART_DR(base)		((uint32_t *)((base) + 0x00U))
@@ -81,31 +66,30 @@
 
 /*
- *  ãã©ã°ã¬ã¸ã¹ã¿ï¼UART_FRï¼ã®åç
-§å¤
+ *  フラグレジスタ（UART_FR）の参照値
  */
-#define UART_FR_RXFE		UINT_C(0x10)	/* åä¿¡ãããã¡ãç©º */
-#define UART_FR_TXFF		UINT_C(0x20)	/* éä¿¡ãããã¡ããã« */
+#define UART_FR_RXFE		UINT_C(0x10)	/* 受信バッファが空 */
+#define UART_FR_TXFF		UINT_C(0x20)	/* 送信バッファがフル */
 
 /*
- *  ã©ã¤ã³å¶å¾¡ã¬ã¸ã¹ã¿ï¼UART_LCR_Hï¼ã®è¨­å®å¤
+ *  ライン制御レジスタ（UART_LCR_H）の設定値
  */
-#define UART_LCR_H_PEN		UINT_C(0x02)	/* ããªãã£ãç¨ãã */
-#define UART_LCR_H_EPS		UINT_C(0x04)	/* å¶æ°ããªãã£ã« */
-#define UART_LCR_H_STP2		UINT_C(0x08)	/* ã¹ããããããã2ãããã« */
-#define UART_LCR_H_FEN		UINT_C(0x10)	/* FIFOãæå¹ã« */
-#define UART_LCR_H_WLEN8	UINT_C(0x60)	/* ãã¼ã¿é·ã8ãããã« */
+#define UART_LCR_H_PEN		UINT_C(0x02)	/* パリティを用いる */
+#define UART_LCR_H_EPS		UINT_C(0x04)	/* 偶数パリティに */
+#define UART_LCR_H_STP2		UINT_C(0x08)	/* ストップビットを2ビットに */
+#define UART_LCR_H_FEN		UINT_C(0x10)	/* FIFOを有効に */
+#define UART_LCR_H_WLEN8	UINT_C(0x60)	/* データ長を8ビットに */
 
 /*
- *  å¶å¾¡ã¬ã¸ã¹ã¿ï¼UART_CRï¼ã®è¨­å®å¤
+ *  制御レジスタ（UART_CR）の設定値
  */
-#define UART_CR_UARTEN	UINT_C(0x0001)		/* UARTãã¤ãã¼ãã«ã« */
-#define UART_CR_TXE		UINT_C(0x0100)		/* éä¿¡ãã¤ãã¼ãã«ã« */
-#define UART_CR_RXE		UINT_C(0x0200)		/* åä¿¡ãã¤ãã¼ãã«ã« */
+#define UART_CR_UARTEN	UINT_C(0x0001)		/* UARTをイネーブルに */
+#define UART_CR_TXE		UINT_C(0x0100)		/* 送信をイネーブルに */
+#define UART_CR_RXE		UINT_C(0x0200)		/* 受信をイネーブルに */
 
 /*
- *  å²è¾¼ã¿ãã¹ã¯ã»ããï¼ã¯ãªã¢ã¬ã¸ã¹ã¿ï¼UART_IMSCï¼ã®è¨­å®å¤
+ *  割込みマスクセット／クリアレジスタ（UART_IMSC）の設定値
  */
-#define UART_IMSC_RXIM	UINT_C(0x0010)		/* åä¿¡å²è¾¼ã¿ãã¹ã¯ */
-#define UART_IMSC_TXIM	UINT_C(0x0020)		/* éä¿¡å²è¾¼ã¿ãã¹ã¯ */
+#define UART_IMSC_RXIM	UINT_C(0x0010)		/* 受信割込みマスク */
+#define UART_IMSC_TXIM	UINT_C(0x0020)		/* 送信割込みマスク */
 
 #endif /* TOPPERS_UART_PL011_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/Makefile.chip
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/Makefile.chip	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/Makefile.chip	(revision 321)
@@ -1,15 +1,15 @@
 #
-#		Makefile ã®ãããä¾å­é¨ï¼RZ/A1ç¨ï¼
+#		Makefile のチップ依存部（RZ/A1用）
 #
-#  $Id: Makefile.chip 720 2016-04-01 22:16:17Z ertl-hiro $
+#  $Id$
 # 
 
 #
-#  ãããä¾å­é¨ãã£ã¬ã¯ããªåã®å®ç¾©
+#  チップ依存部ディレクトリ名の定義
 #
 CHIPDIR = $(SRCDIR)/arch/$(CORE)_$(TOOL)/$(CHIP)
 
 #
-#  ã³ã³ãã¤ã«ãªãã·ã§ã³
+#  コンパイルオプション
 #
 INCLUDES := $(INCLUDES) -I$(CHIPDIR)
@@ -19,5 +19,5 @@
 
 #
-#  ã«ã¼ãã«ã«é¢ããå®ç¾©
+#  カーネルに関する定義
 #
 KERNEL_DIRS := $(KERNEL_DIRS) $(CHIPDIR)
@@ -27,10 +27,10 @@
 
 #
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©
+#  コンフィギュレータ関係の変数の定義
 #
 CFG_TABS := $(CFG_TABS) --symval-table $(CHIPDIR)/chip_sym.def
 
 #
-#  ã³ã¢ä¾å­é¨
+#  コア依存部
 #
 include $(SRCDIR)/arch/$(CORE)_$(TOOL)/common/Makefile.core
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -55,9 +40,9 @@
 
 /*
- *		kernel.hã®ã¿ã¼ã²ããä¾å­é¨ï¼RZ/A1ç¨ï¼
+ *		kernel.hのターゲット依存部（RZ/A1用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼kernel.hããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«
- *  ããç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ããã
- *  åã«ï¼t_stddef.hãã¤ã³ã¯ã«ã¼ããããã®ã§ï¼ããã«ä¾å­ãã¦ãããï¼
+ *  このヘッダファイルは，kernel.hからインクルードされる．他のファイル
+ *  から直接インクルードすることはない．このファイルをインクルードする
+ *  前に，t_stddef.hがインクルードされるので，それに依存してもよい．
  */
 
@@ -66,23 +51,20 @@
 
 /*
- *  å²è¾¼ã¿åªå
-åº¦ã®ç¯å²
+ *  割込み優先度の範囲
  */
-#define TMIN_INTPRI		(-31)		/* å²è¾¼ã¿åªå
-åº¦ã®æå°å¤ï¼æé«å¤ï¼*/
-#define TMAX_INTPRI		(-1)		/* å²è¾¼ã¿åªå
-åº¦ã®æå¤§å¤ï¼æä½å¤ï¼*/
+#define TMIN_INTPRI		(-31)		/* 割込み優先度の最小値（最高値）*/
+#define TMAX_INTPRI		(-1)		/* 割込み優先度の最大値（最低値）*/
 
 /*
- *  ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§
+ *  ターゲット定義の割込み要求ライン属性
  */
-#define TA_NEGEDGE		0x04U		/* ãã¬ãã£ãã¨ãã¸ããªã¬ */
-#define TA_POSEDGE		0x08U		/* ãã¸ãã£ãã¨ãã¸ããªã¬ */
-#define TA_BOTHEDGE		0x0cU		/* ä¸¡ã¨ãã¸ããªã¬ */
+#define TA_NEGEDGE		0x04U		/* ネガティブエッジトリガ */
+#define TA_POSEDGE		0x08U		/* ポジティブエッジトリガ */
+#define TA_BOTHEDGE		0x0cU		/* 両エッジトリガ */
 
 /*
- *  ãµãã¼ãã§ããæ©è½ã®å®ç¾©
+ *  サポートできる機能の定義
  *
- *  ena_intï¼dis_intã¨ãªã¼ãã©ã³ãã³ãã©ããµãã¼ããããã¨ãã§ããï¼
+ *  ena_int／dis_intとオーバランハンドラをサポートすることができる．
  */
 #define TOPPERS_TARGET_SUPPORT_ENA_INT		/* ena_int */
@@ -91,23 +73,22 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ãã®ã¿ã¤ãå¨æ
+ *  高分解能タイマのタイマ周期
  *
- *  2^32 / 33.33â¦ãä¸¸ããå¤ã¨ããï¼
+ *  2^32 / 33.33…を丸めた値とする．
  */
 #define TCYC_HRTCNT		128849019U
 
 /*
- *  é«åè§£è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ã®é²ã¿å¹
-
+ *  高分解能タイマのカウント値の進み幅
  */
 #define TSTEP_HRTCNT	1U
 
 /*
- *  ãªã¼ãã©ã³ãã³ãã©ã®æ®ããã­ã»ããµæéã«æå®ã§ããæå¤§å¤
+ *  オーバランハンドラの残りプロセッサ時間に指定できる最大値
  *
- *  ãã®å¤ãOSã¿ã¤ãã¸ã®è¨­å®å¤ã«å¤æãã¦ã¿ã¤ãã«è¨­å®ããå¾ï¼ã¿ã¤ãã®ç¾
- *  å¨å¤ãèª­ã¿åºãã¦Î¼ç§åä½ã«å¤æã§ããå¤ã¨ãã¦ããï¼ã¿ã¤ãã®ç¾å¨å¤ã
- *  Î¼ç§åä½ã«å¤æããæã«34ãå ããããï¼ä»¥ä¸ã®æ¡ä»¶ãæºããæå¤§ã®å¤ã¨
- *  ããï¼
+ *  この値をOSタイマへの設定値に変換してタイマに設定した後，タイマの現
+ *  在値を読み出してμ秒単位に変換できる値としている．タイマの現在値を
+ *  μ秒単位に変換する時に34を加えるため，以下の条件を満たす最大の値と
+ *  する．
  *		(TMAX_OVRTIM * 33 + TMAX_OVRTIM / 3 + 1) + 34 < 2^32
  */
@@ -115,6 +96,5 @@
 
 /*
- *  ã³ã¢ã§å
-±éãªå®ç¾©
+ *  コアで共通な定義
  */
 #include "core_kernel.h"
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.trb	(revision 321)
@@ -1,9 +1,9 @@
 # -*- coding: utf-8 -*-
 # 
-#		ãã¹2ã®çæã¹ã¯ãªããã®ãããä¾å­é¨ï¼RZ/A1ç¨ï¼
+#		パス2の生成スクリプトのチップ依存部（RZ/A1用）
 # 
 
 # 
-#  ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨ããã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·
+#  使用できる割込み番号とそれに対応する割込みハンドラ番号
 # 
 if $TOPPERS_RZA1H
@@ -15,26 +15,26 @@
 
 #
-#  ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§
+#  ターゲット定義の割込み要求ライン属性
 #
 $TARGET_INTATR = $TA_NEGEDGE|$TA_POSEDGE|$TA_BOTHEDGE
 
 # 
-#  çæã¹ã¯ãªããã®ã³ã¢ä¾å­é¨
+#  生成スクリプトのコア依存部
 # 
 IncludeTrb("core_kernel.trb")
 
 #
-#  å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§ã«é¢ããã¿ã¼ã²ããä¾å­ã®ã¨ã©ã¼ãã§ãã¯
+#  割込み要求ライン属性に関するターゲット依存のエラーチェック
 #
 $cfgData[:CFG_INT].each do |key, params|
   if $INTNO_IRQ0 <= key && key <= $INTNO_IRQ7
-    # IRQå²è¾¼ã¿ã®å ´å
-    #ï¼TA_EDGEãã»ããããã¦ããå ´åï¼
+    # IRQ割込みの場合
+    #（TA_EDGEがセットされている場合）
     if (params[:intatr] & $TA_EDGE) != 0
       error_illegal_sym("E_RSATR", params, :intatr, :intno)
     end
   else
-    # ãã®ä»ã®å²è¾¼ã¿ã®å ´å
-    #ï¼TA_NEGEDGEï¼TA_POSEDGEï¼TARGET_BOTHEDGEãã»ããããã¦ããå ´åï¼
+    # その他の割込みの場合
+    #（TA_NEGEDGE，TA_POSEDGE，TARGET_BOTHEDGEがセットされている場合）
     if (params[:intatr] & $TARGET_INTATR) != 0
       error_illegal_sym("E_RSATR", params, :intatr, :intno)
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã«ã¼ãã«ã®ãããä¾å­é¨ï¼RZ/A1ç¨ï¼
+ *		カーネルのチップ依存部（RZ/A1用）
  */
 
@@ -64,5 +49,5 @@
 
 /*
- *  ãããä¾å­ã®åæå
+ *  チップ依存の初期化
  */
 void
@@ -70,30 +55,30 @@
 {
 	/*
-	 *  ã­ã£ãã·ã¥ããã£ã¹ã¨ã¼ãã«
+	 *  キャッシュをディスエーブル
 	 */
 	arm_disable_cache();
 
 	/*
-	 *  ã³ã¢ä¾å­ã®åæå
+	 *  コア依存の初期化
 	 */
 	core_initialize();
 
 	/*
-	 *  ã­ã£ãã·ã¥ãã¤ãã¼ãã«
+	 *  キャッシュをイネーブル
 	 */
 	arm_enable_cache();
 
 	/*
-	 *  GICã®ãã£ã¹ããªãã¥ã¼ã¿ã®åæå
+	 *  GICのディストリビュータの初期化
 	 */
 	gicd_initialize();
 
 	/*
-	 *  GICã®CPUã¤ã³ã¿ãã§ã¼ã¹ã®åæå
+	 *  GICのCPUインタフェースの初期化
 	 */
 	gicc_initialize();
 
 	/*
-	 *  åå²äºæ¸¬ã®ç¡å¹åã¨ã¤ãã¼ãã«
+	 *  分岐予測の無効化とイネーブル
 	 */
 	arm_invalidate_bp();
@@ -102,5 +87,5 @@
 
 /*
- *  ãããä¾å­é¨ã®çµäºå¦ç
+ *  チップ依存部の終了処理
  */
 void
@@ -111,8 +96,7 @@
 
 	/*
-	 *  software_term_hookã¸ã®ãã¤ã³ã¿ãï¼ä¸æ¦volatileæå®ã®ããfpã«ä»£
-	 *  å
-¥ãã¦ããä½¿ãã®ã¯ï¼0ã¨ã®æ¯è¼ãæé©åã§åé¤ãããªãããã«ããã
-	 *  ãã§ããï¼
+	 *  software_term_hookへのポインタを，一旦volatile指定のあるfpに代
+	 *  入してから使うのは，0との比較が最適化で削除されないようにするた
+	 *  めである．
 	 */
 	if (fp != 0) {
@@ -121,15 +105,15 @@
 
 	/*
-	 *  GICã®CPUã¤ã³ã¿ãã§ã¼ã¹ã®çµäºå¦ç
+	 *  GICのCPUインタフェースの終了処理
 	 */
 	gicc_terminate();
 
 	/*
-	 *  GICã®ãã£ã¹ããªãã¥ã¼ã¿ã®çµäºå¦ç
+	 *  GICのディストリビュータの終了処理
 	 */
 	gicd_terminate();
 
 	/*
-	 *  ã³ã¢ä¾å­ã®çµäºå¦ç
+	 *  コア依存の終了処理
 	 */
 	core_terminate();
@@ -137,8 +121,8 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®
- *
- *  ASPã«ã¼ãã«ã§ã®å©ç¨ãæ³å®ãã¦ï¼ãã©ã¡ã¼ã¿ã¨ã©ã¼ã¯ã¢ãµã¼ã·ã§ã³ã§ãã§ã
- *  ã¯ãã¦ããï¼
+ *  割込み要求ラインの属性の設定
+ *
+ *  ASPカーネルでの利用を想定して，パラメータエラーはアサーションでチェッ
+ *  クしている．
  */
 Inline void
@@ -149,15 +133,14 @@
 
 	/*
-	 *  å²è¾¼ã¿ãç¦æ­¢
+	 *  割込みを禁止
 	 *
-	 *  å²è¾¼ã¿ãåãä»ããã¾ã¾ï¼ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®è¨­å®ãï¼å²
-	 *  è¾¼ã¿åªå
-åº¦ã®è¨­å®ãè¡ãã®ã¯å±éºãªããï¼å²è¾¼ã¿å±æ§ã«ãããããï¼
-	 *  ä¸æ¦ãã¹ã¯ããï¼
+	 *  割込みを受け付けたまま，レベルトリガ／エッジトリガの設定や，割
+	 *  込み優先度の設定を行うのは危険なため，割込み属性にかかわらず，
+	 *  一旦マスクする．
 	 */
 	disable_int(intno);
 
 	/*
-	 *  å²è¾¼ã¿ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+	 *  割込みをコンフィギュレーション
 	 */
 #ifdef TOPPERS_SAFEG_SECURE
@@ -191,6 +174,5 @@
 
 	/*
-	 *  å²è¾¼ã¿åªå
-åº¦ã¨ã¿ã¼ã²ãããã­ã»ããµãè¨­å®
+	 *  割込み優先度とターゲットプロセッサを設定
 	 */
 	gicd_set_priority(intno, INT_IPM(intpri));
@@ -198,5 +180,5 @@
 
 	/*
-	 * å²è¾¼ã¿ãè¨±å¯
+	 * 割込みを許可
 	 */
 	if ((intatr & TA_ENAINT) != 0U) {
@@ -206,5 +188,5 @@
 
 /*
- *  å²è¾¼ã¿ç®¡çæ©è½ã®åæå
+ *  割込み管理機能の初期化
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -57,9 +42,9 @@
 
 /*
- *		kernel_impl.hã®ãããä¾å­é¨ï¼RZ/A1ç¨ï¼
+ *		kernel_impl.hのチップ依存部（RZ/A1用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼target_kernel_impl.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
- *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
- *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ *  このヘッダファイルは，target_kernel_impl.h（または，そこからインク
+ *  ルードされるファイル）のみからインクルードされる．他のファイルから
+ *  直接インクルードしてはならない．
  */
 
@@ -68,10 +53,10 @@
 
 /*
- *  RZ/A1ã®ãã¼ãã¦ã§ã¢è³æºã®å®ç¾©
+ *  RZ/A1のハードウェア資源の定義
  */
 #include "rza1.h"
 
 /*
- *  MMUã®ä½¿ç¨ã«é¢ããè¨­å®
+ *  MMUの使用に関する設定
  */
 #define USE_ARM_MMU
@@ -79,19 +64,18 @@
 
 /*
- *  GICã®ãã£ã¹ããªãã¥ã¼ã¿ã®å²è¾¼ã¿ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¬ã¸ã¹ã¿ã«è¨­å®
- *  ããå¤ã«é¢ããå®ç¾©
+ *  GICのディストリビュータの割込みコンフィギュレーションレジスタに設定
+ *  する値に関する定義
  */
 #define GIC_ARM11MPCORE
 
 /*
- *  GICä¾å­é¨ã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåã¯ä½¿ç¨ããªãï¼
+ *  GIC依存部の割込み管理機能の初期化は使用しない．
  */
 #define OMIT_GIC_INITIALIZE_INTERRUPT
 
 /*
- *  GICã«é¢ããå®ç¾©ï¼ã³ã¢ã§å
-±éãªå®ç¾©
+ *  GICに関する定義，コアで共通な定義
  *
- *  core_kernel_impl.hã¯ï¼gic_kernel_impl.hããã¤ã³ã¯ã«ã¼ããããï¼
+ *  core_kernel_impl.hは，gic_kernel_impl.hからインクルードされる．
  */
 #include "gic_kernel_impl.h"
@@ -100,10 +84,10 @@
 
 /*
- *  ãããä¾å­ã®åæå
+ *  チップ依存の初期化
  */
 extern void chip_initialize(void);
 
 /*
- *  ãããä¾å­ã®çµäºå¦ç
+ *  チップ依存の終了処理
  */
 extern void chip_terminate(void);
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_stddef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_stddef.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_stddef.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -56,9 +41,9 @@
 
 /*
- *		t_stddef.hã®ãããä¾å­é¨ï¼RZ/A1ç¨ï¼
+ *		t_stddef.hのチップ依存部（RZ/A1用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼target_stddef.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ã
- *  ããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ããç´æ¥ã¤
- *  ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ *  このヘッダファイルは，target_stddef.h（または，そこからインクルード
+ *  されるファイル）のみからインクルードされる．他のファイルから直接イ
+ *  ンクルードしてはならない．
  */
 
@@ -67,10 +52,10 @@
 
 /*
- *  ã¿ã¼ã²ãããè­å¥ããããã®ãã¯ã­ã®å®ç¾©
+ *  ターゲットを識別するためのマクロの定義
  */
-#define TOPPERS_RZA1					/* ãããç¥ç§° */
+#define TOPPERS_RZA1					/* チップ略称 */
 
 /*
- *  ããããéå®ãããã¯ã­ãå®ç¾©ããã¦ãããã®ãã§ãã¯
+ *  チップを限定するマクロが定義されているかのチェック
  */
 #if !defined(TOPPERS_RZA1H) && !defined(TOPPERS_RZA1L)
@@ -79,6 +64,5 @@
 
 /*
- *  ã³ã¢ã§å
-±éãªå®ç¾©
+ *  コアで共通な定義
  */
 #include "core_stddef.h"
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,9 +40,8 @@
 
 /*
- *		ã¿ã¤ããã©ã¤ãï¼RZ/A1 OSã¿ã¤ãç¨ï¼
+ *		タイマドライバ（RZ/A1 OSタイマ用）
  *
- *  RZ/A1ã¯2ãã£ã³ãã«ã®OSã¿ã¤ããæã¤ãï¼ãã®å
-ã®1ã¤ãç¨ãã¦é«åè§£è½ã¿
- *  ã¤ããï¼ãã1ã¤ãç¨ãã¦ãªã¼ãã©ã³ã¿ã¤ããå®ç¾ããï¼
+ *  RZ/A1は2チャンネルのOSタイマを持つが，その内の1つを用いて高分解能タ
+ *  イマを，もう1つを用いてオーバランタイマを実現する．
  */
 
@@ -72,5 +56,5 @@
 
 /*
- *  ã¿ã¤ãã®èµ·åå¦ç
+ *  タイマの起動処理
  */
 void
@@ -78,20 +62,20 @@
 {
 	/*
-	 *  OSã¿ã¤ããããªã¼ã©ã³ãã³ã°ã³ã³ãã¢ã¢ã¼ãã«è¨­å®ããï¼
+	 *  OSタイマをフリーランニングコンペアモードに設定する．
 	 */
 	sil_wrb_mem(OSTM_CTL(OSTM0_BASE), OSTM_CTL_FRCMP);
 
 	/*
-	 *  OSã¿ã¤ãã®è¨­å®å¤ãæå¤§å¤ã«ãã¦ããï¼
+	 *  OSタイマの設定値を最大値にしておく．
 	 */
 	sil_wrw_mem(OSTM_CMP(OSTM0_BASE), 0xffffffff);
 
 	/*
-	 *  OSã¿ã¤ããåä½éå§ããï¼
+	 *  OSタイマを動作開始する．
 	 */
 	sil_wrb_mem(OSTM_TS(OSTM0_BASE), OSTM_TS_START);
 
 	/*
-	 *  ã¿ã¤ãå²è¾¼ã¿è¦æ±ãã¯ãªã¢ããï¼
+	 *  タイマ割込み要求をクリアする．
 	 */
 	clear_int(INTNO_OSTM0);
@@ -99,5 +83,5 @@
 
 /*
- *  ã¿ã¤ãã®åæ­¢å¦ç
+ *  タイマの停止処理
  */
 void
@@ -105,10 +89,10 @@
 {
 	/*
-	 *  OSã¿ã¤ããåæ­¢ããï¼
+	 *  OSタイマを停止する．
 	 */
 	sil_wrb_mem(OSTM_TT(OSTM0_BASE), OSTM_TT_STOP);
 
 	/*
-	 *  ã¿ã¤ãå²è¾¼ã¿è¦æ±ãã¯ãªã¢ããï¼
+	 *  タイマ割込み要求をクリアする．
 	 */
 	clear_int(INTNO_OSTM0);
@@ -116,5 +100,5 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ãã¸ã®å²è¾¼ã¿ã¿ã¤ãã³ã°ã®è¨­å®
+ *  高分解能タイマへの割込みタイミングの設定
  */
 void
@@ -125,5 +109,5 @@
 
 	/*
-	 *  ç¾å¨ã®ã«ã¦ã³ãå¤ãèª­ã¿ï¼hrtcntå¾ã«å²è¾¼ã¿ãçºçããããã«è¨­å®ããï¼
+	 *  現在のカウント値を読み，hrtcnt後に割込みが発生するように設定する．
 	 */
 	current = sil_rew_mem(OSTM_CNT(OSTM0_BASE));
@@ -131,6 +115,6 @@
 
 	/*
-	 *  ä¸ã§ç¾å¨ã®ã«ã¦ã³ãå¤ãèª­ãã§ä»¥éã«ï¼cntä»¥ä¸ã«ã¦ã³ãã¢ãããã¦ã
-	 *  ãå ´åã«ã¯ï¼å²è¾¼ã¿ãçºçãããï¼
+	 *  上で現在のカウント値を読んで以降に，cnt以上カウントアップしてい
+	 *  た場合には，割込みを発生させる．
 	 */
 	if (sil_rew_mem(OSTM_CNT(OSTM0_BASE)) - current >= cnt) {
@@ -140,5 +124,5 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®è¦æ±
+ *  高分解能タイマ割込みの要求
  */
 void
@@ -149,5 +133,5 @@
 
 /*
- *  ã¿ã¤ãå²è¾¼ã¿ãã³ãã©
+ *  タイマ割込みハンドラ
  */
 void
@@ -155,15 +139,15 @@
 {
 	/*
-	 *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ãå¦çããï¼
+	 *  高分解能タイマ割込みを処理する．
 	 */
 	signal_time();
 }
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ã
+ *  オーバランタイマドライバ
  */
 #ifdef TOPPERS_SUPPORT_OVRHDR
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãã®åæåå¦ç
+ *  オーバランタイマの初期化処理
  */
 void
@@ -171,10 +155,10 @@
 {
 	/*
-	 *  OSã¿ã¤ããã¤ã³ã¿ã¼ãã«ã¿ã¤ãã¢ã¼ãã«è¨­å®ããï¼
+	 *  OSタイマをインターバルタイマモードに設定する．
 	 */
 	sil_wrb_mem(OSTM_CTL(OSTM1_BASE), OSTM_CTL_INTERVAL);
 
 	/*
-	 *  ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿è¦æ±ãã¯ãªã¢ããï¼
+	 *  オーバランタイマ割込み要求をクリアする．
 	 */
 	clear_int(INTNO_OSTM1);
@@ -182,5 +166,5 @@
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãã®åæ­¢å¦ç
+ *  オーバランタイマの停止処理
  */
 void
@@ -188,10 +172,10 @@
 {
 	/*
-	 *  OSã¿ã¤ããåæ­¢ããï¼
+	 *  OSタイマを停止する．
 	 */
 	sil_wrb_mem(OSTM_TT(OSTM1_BASE), OSTM_TT_STOP);
 
 	/*
-	 *  ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿è¦æ±ãã¯ãªã¢ããï¼
+	 *  オーバランタイマ割込み要求をクリアする．
 	 */
 	clear_int(INTNO_OSTM1);
@@ -199,5 +183,5 @@
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãã®åæ­¢
+ *  オーバランタイマの停止
  */
 PRCTIM
@@ -207,5 +191,5 @@
 
 	/*
-	 *  OSã¿ã¤ããåæ­¢ããï¼
+	 *  OSタイマを停止する．
 	 */
 	sil_wrb_mem(OSTM_TT(OSTM1_BASE), OSTM_TT_STOP);
@@ -213,5 +197,5 @@
 	if (probe_int(INTNO_OSTM1)) {
 		/*
-		 *  å²è¾¼ã¿è¦æ±ãçºçãã¦ããå ´å
+		 *  割込み要求が発生している場合
 		 */
 		clear_int(INTNO_OSTM1);
@@ -225,5 +209,5 @@
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãã®ç¾å¨å¤ã®èª­åºã
+ *  オーバランタイマの現在値の読出し
  */
 PRCTIM
@@ -234,5 +218,5 @@
 	if (probe_int(INTNO_OSTM1)) {
 		/*
-		 *  å²è¾¼ã¿è¦æ±ãçºçãã¦ããå ´å
+		 *  割込み要求が発生している場合
 		 */
 		return(0U);
@@ -245,14 +229,13 @@
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ãã³ãã©
+ *  オーバランタイマ割込みハンドラ
  *
- *  ãã®ã«ã¼ãã³ã«æ¥ãã¾ã§ã«ï¼target_ovrtimer_stopãå¼ã°ãã¦ããããï¼
- *  OSã¿ã¤ããåæ­¢ããå¿
-è¦ã¯ãªãï¼
+ *  このルーチンに来るまでに，target_ovrtimer_stopが呼ばれているため，
+ *  OSタイマを停止する必要はない．
  */
 void
 target_ovrtimer_handler(void)
 {
-	call_ovrhdr();					/* ãªã¼ãã©ã³ãã³ãã©ã®èµ·åå¦ç */
+	call_ovrhdr();					/* オーバランハンドラの起動処理 */
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.cfg	(revision 321)
@@ -1,4 +1,4 @@
 /*
- *		ã¿ã¤ããã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *		タイマドライバのコンフィギュレーションファイル
  *
  *  $Id$
@@ -6,5 +6,5 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ããã©ã¤ã
+ *  高分解能タイマドライバ
  */
 ATT_INI({ TA_NULL, 0, _kernel_target_hrt_initialize });
@@ -14,5 +14,5 @@
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ã
+ *  オーバランタイマドライバ
  */
 #ifdef TOPPERS_SUPPORT_OVRHDR
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,9 +42,8 @@
 
 /*
- *		ã¿ã¤ããã©ã¤ãï¼RZ/A1 OSã¿ã¤ãç¨ï¼
+ *		タイマドライバ（RZ/A1 OSタイマ用）
  *
- *  RZ/A1ã¯2ãã£ã³ãã«ã®OSã¿ã¤ããæã¤ãï¼ãã®å
-ã®1ã¤ãç¨ãã¦é«åè§£è½ã¿
- *  ã¤ããï¼ãã1ã¤ãç¨ãã¦ãªã¼ãã©ã³ã¿ã¤ããå®ç¾ããï¼
+ *  RZ/A1は2チャンネルのOSタイマを持つが，その内の1つを用いて高分解能タ
+ *  イマを，もう1つを用いてオーバランタイマを実現する．
  */
 
@@ -71,28 +55,25 @@
 
 /*
- *  ã¿ã¤ãå²è¾¼ã¿ãã³ãã©ç»é²ã®ããã®å®æ°
- */
-#define INHNO_TIMER		INTNO_OSTM0			/* å²è¾¼ã¿ãã³ãã©çªå· */
-#define INTNO_TIMER		INTNO_OSTM0			/* å²è¾¼ã¿çªå· */
-#define INTPRI_TIMER	(TMAX_INTPRI - 1)	/* å²è¾¼ã¿åªå
-åº¦ */
-#define INTATR_TIMER	TA_EDGE				/* å²è¾¼ã¿å±æ§ */
-
-/*
- *  ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ãã³ãã©ç»é²ã®ããã®å®æ°
+ *  タイマ割込みハンドラ登録のための定数
+ */
+#define INHNO_TIMER		INTNO_OSTM0			/* 割込みハンドラ番号 */
+#define INTNO_TIMER		INTNO_OSTM0			/* 割込み番号 */
+#define INTPRI_TIMER	(TMAX_INTPRI - 1)	/* 割込み優先度 */
+#define INTATR_TIMER	TA_EDGE				/* 割込み属性 */
+
+/*
+ *  オーバランタイマ割込みハンドラ登録のための定数
  */
 #ifdef TOPPERS_SUPPORT_OVRHDR
-#define INHNO_OVRTIMER		INTNO_OSTM1			/* å²è¾¼ã¿ãã³ãã©çªå· */
-#define INTNO_OVRTIMER		INTNO_OSTM1			/* å²è¾¼ã¿çªå· */
-#define INTPRI_OVRTIMER		TMAX_INTPRI			/* å²è¾¼ã¿åªå
-åº¦ */
-#define INTATR_OVRTIMER		TA_EDGE				/* å²è¾¼ã¿å±æ§ */
+#define INHNO_OVRTIMER		INTNO_OSTM1			/* 割込みハンドラ番号 */
+#define INTNO_OVRTIMER		INTNO_OSTM1			/* 割込み番号 */
+#define INTPRI_OVRTIMER		TMAX_INTPRI			/* 割込み優先度 */
+#define INTATR_OVRTIMER		TA_EDGE				/* 割込み属性 */
 #endif /* TOPPERS_SUPPORT_OVRHDR */
 
 /*
- *  OSã¿ã¤ãã®å¨æ³¢æ°ã®æ³å®å¤ã®ãã§ãã¯
+ *  OSタイマの周波数の想定値のチェック
  *
- *  ç¾å¨ã®å®è£
-ã¯ï¼ã¯ã­ãã¯ã33.33â¦MHzã®å ´åã®ã¿ã«å¯¾å¿ãã¦ããï¼
+ *  現在の実装は，クロックが33.33…MHzの場合のみに対応している．
  */
 #if OSTM_CLK != 33333333UL
@@ -101,5 +82,5 @@
 
 /*
- *  OSã¿ã¤ãã¬ã¸ã¹ã¿ã®çªå°ã®å®ç¾©
+ *  OSタイマレジスタの番地の定義
  */
 #define OSTM_CMP(base)		((uint32_t *)(base + 0x00U))
@@ -111,33 +92,33 @@
 
 /*
- *  OSã¿ã¤ã ã«ã¦ã³ãéå§ããªã¬ã¬ã¸ã¹ã¿ã®è¨­å®å¤ã®å®ç¾©
+ *  OSタイマ カウント開始トリガレジスタの設定値の定義
  */
 #define OSTM_TS_START		0x01U
 
 /*
- *  OSã¿ã¤ã ã«ã¦ã³ãåæ­¢ããªã¬ã¬ã¸ã¹ã¿ã®è¨­å®å¤ã®å®ç¾©
+ *  OSタイマ カウント停止トリガレジスタの設定値の定義
  */
 #define OSTM_TT_STOP		0x01U
 
 /*
- *  OSã¿ã¤ã å¶å¾¡ã¬ã¸ã¹ã¿ã®è¨­å®å¤ã®å®ç¾©
- */
-#define OSTM_CTL_INTERVAL	0x00U		/* ã¤ã³ã¿ã¼ãã«ã¿ã¤ãã¢ã¼ã */
-#define OSTM_CTL_FRCMP		0x02U		/* ããªã¼ã©ã³ãã³ã°ã³ã³ãã¢ã¢ã¼ã */
+ *  OSタイマ 制御レジスタの設定値の定義
+ */
+#define OSTM_CTL_INTERVAL	0x00U		/* インターバルタイマモード */
+#define OSTM_CTL_FRCMP		0x02U		/* フリーランニングコンペアモード */
 
 #ifndef TOPPERS_MACRO_ONLY
 
 /*
- *  é«åè§£è½ã¿ã¤ãã®èµ·åå¦ç
+ *  高分解能タイマの起動処理
  */
 extern void	target_hrt_initialize(intptr_t exinf);
 
 /*
- *  é«åè§£è½ã¿ã¤ãã®åæ­¢å¦ç
+ *  高分解能タイマの停止処理
  */
 extern void	target_hrt_terminate(intptr_t exinf);
 
 /*
- *  é«åè§£è½ã¿ã¤ãã®ç¾å¨ã®ã«ã¦ã³ãå¤ã®èª­åºã
+ *  高分解能タイマの現在のカウント値の読出し
  */
 Inline HRTCNT
@@ -148,5 +129,5 @@
 	cnt = sil_rew_mem(OSTM_CNT(OSTM0_BASE));
 
-	/* Î¼ç§åä½ã«å¤æï¼ã¯ã­ãã¯ã33.33â¦MHzã§ããåæï¼*/
+	/* μ秒単位に変換（クロックが33.33…MHzである前提）*/
 	cnt1 = cnt / 1000000000;
 	return((HRTCNT)((cnt - cnt1 * 999999999) * 3 / 100 + cnt1 * 30000000));
@@ -154,23 +135,23 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ãã¸ã®å²è¾¼ã¿ã¿ã¤ãã³ã°ã®è¨­å®
+ *  高分解能タイマへの割込みタイミングの設定
  *
- *  é«åè§£è½ã¿ã¤ããï¼hrtcntã§æå®ããå¤ã«ã¦ã³ãã¢ãããããå²è¾¼ã¿ãçº
- *  çãããããã«è¨­å®ããï¼
+ *  高分解能タイマを，hrtcntで指定した値カウントアップしたら割込みを発
+ *  生させるように設定する．
  */
 extern void target_hrt_set_event(HRTCNT hrtcnt);
 
 /*
- *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®è¦æ±
+ *  高分解能タイマ割込みの要求
  */
 extern  void target_hrt_raise_event(void);
 
 /*
- *  å²è¾¼ã¿ã¿ã¤ãã³ã°ã«æå®ããæå¤§å¤
+ *  割込みタイミングに指定する最大値
  */
 #define HRTCNT_BOUND	100000002U
 
 /*
- *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ãã³ãã©
+ *  高分解能タイマ割込みハンドラ
  */
 extern void	target_hrt_handler(void);
@@ -179,15 +160,15 @@
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãã®åæåå¦ç
+ *  オーバランタイマの初期化処理
  */
 extern void target_ovrtimer_initialize(intptr_t exinf);
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãã®åæ­¢å¦ç
+ *  オーバランタイマの停止処理
  */
 extern void target_ovrtimer_terminate(intptr_t exinf);
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§
+ *  オーバランタイマの動作開始
  */
 Inline void
@@ -201,15 +182,15 @@
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãã®åæ­¢
+ *  オーバランタイマの停止
  */
 extern PRCTIM target_ovrtimer_stop(void);
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãã®ç¾å¨å¤ã®èª­åºã
+ *  オーバランタイマの現在値の読出し
  */
 extern PRCTIM target_ovrtimer_get_current(void);
 
 /*
- *  ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ãã³ãã©
+ *  オーバランタイマ割込みハンドラ
  */
 extern void	target_ovrtimer_handler(void);
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/rza1.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/rza1.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/rza1.h	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		RZ/A1ã®ãã¼ãã¦ã§ã¢è³æºã®å®ç¾©
+ *		RZ/A1のハードウェア資源の定義
  */
 
@@ -63,5 +48,5 @@
 
 /*
- *  åã­ã£ã¹ããè¡ããã¯ã­ã®å®ç¾©
+ *  型キャストを行うマクロの定義
  */
 #ifndef CAST
@@ -70,12 +55,10 @@
 
 /*
- *  ã¡ã¢ãªãããã®å®ç¾©ï¼MMUã«è¨­å®ããããã«å¿
-è¦ï¼
- */
-#define SPI_ADDR		0x18000000		/* ã·ãªã¢ã«ãã©ãã·ã¥ã¡ã¢ãª */
+ *  メモリマップの定義（MMUに設定するために必要）
+ */
+#define SPI_ADDR		0x18000000		/* シリアルフラッシュメモリ */
 #define SPI_SIZE		0x08000000		/* 128MB */
 
-#define SRAM_ADDR		0x20000000		/* å
-èµRAM */
+#define SRAM_ADDR		0x20000000		/* 内蔵RAM */
 #ifdef TOPPERS_RZA1H
 #define SRAM_SIZE		0x00a00000		/* 10MB */
@@ -84,11 +67,11 @@
 #endif /* TOPPERS_RZA1H */
 
-#define IO1_ADDR		0x3fe00000		/* I/Oé åï¼äºç´é åãå«ãï¼*/
+#define IO1_ADDR		0x3fe00000		/* I/O領域（予約領域を含む）*/
 #define IO1_SIZE		0x00200000		/* 2MB */
-#define IO2_ADDR		0xe8000000		/* I/Oé åï¼äºç´é åãå«ãï¼*/
+#define IO2_ADDR		0xe8000000		/* I/O領域（予約領域を含む）*/
 #define IO2_SIZE		0x18000000		/* 384MB */
 
 /*
- *  åã¯ã­ãã¯å¨æ³¢æ°ã®å®ç¾©
+ *  各クロック周波数の定義
  */
 #define OSTM_CLK		RZA1_CLK_P0
@@ -96,11 +79,10 @@
 
 /*
- *  MPCore Private Memory Regionã®å
-é ­çªå°
+ *  MPCore Private Memory Regionの先頭番地
  */
 #define MPCORE_PMR_BASE		0xf0000000
 
 /*
- *  GICä¾å­é¨ãä½¿ç¨ããããã®å®ç¾©
+ *  GIC依存部を使用するための定義
  */
 #ifndef GIC_TNUM_INTNO
@@ -113,5 +95,5 @@
 
 /*
- *  å²è¾¼ã¿ã³ã³ãã­ã¼ã©ã®ãã¼ã¹ã¢ãã¬ã¹ã¨ã¬ã¸ã¹ã¿ï¼RZ/A1åºæã®ãã®ï¼
+ *  割込みコントローラのベースアドレスとレジスタ（RZ/A1固有のもの）
  */
 #define GICC_BASE			0xe8202000
@@ -123,5 +105,5 @@
 
 /*
- *  OSã¿ã¤ãã®ãã¼ã¹ã¢ãã¬ã¹
+ *  OSタイマのベースアドレス
  */
 #define OSTM0_BASE			0xfcfec000
@@ -129,10 +111,10 @@
 
 /*
- *  L2ã­ã£ãã·ã¥ã³ã³ãã­ã¼ã©ï¼PL310ï¼ã®ãã¼ã¹ã¢ãã¬ã¹
+ *  L2キャッシュコントローラ（PL310）のベースアドレス
  */
 #define PL310_BASE			0x3ffff000
 
 /*
- *  ã¯ã­ãã¯ãã«ã¹ã¸ã§ãã¬ã¼ã¿ã®ãã¼ã¹ã¢ãã¬ã¹ã¨ã¬ã¸ã¹ã¿
+ *  クロックパルスジェネレータのベースアドレスとレジスタ
  */
 #define RZA1_CPG_BASE		0xfcfe0000
@@ -141,5 +123,5 @@
 
 /*
- *  ãã¹ã¹ãã¼ãã³ã³ãã­ã¼ã©ã®ãã¼ã¹ã¢ãã¬ã¹ã¨ã¬ã¸ã¹ã¿
+ *  バスステートコントローラのベースアドレスとレジスタ
  */
 #define RZA1_BSC_BASE		0x3FFFC000
@@ -163,5 +145,5 @@
 
 /*
- *  ã·ãªã¢ã«ã³ãã¥ãã±ã¼ã·ã§ã³ã¤ã³ã¿ãã§ã¼ã¹ã®ãã¼ã¹ã¢ãã¬ã¹
+ *  シリアルコミュニケーションインタフェースのベースアドレス
  */
 #define SCIF0_BASE			0xe8007000
@@ -177,5 +159,5 @@
 
 /*
- *  ä½æ¶è²»é»åã¢ã¼ãé¢é£ã®ãã¼ã¹ã¢ãã¬ã¹ã¨ã¬ã¸ã¹ã¿
+ *  低消費電力モード関連のベースアドレスとレジスタ
  */
 #define RZA1_LOWPWR_BASE	0xfcfe0000
@@ -199,6 +181,5 @@
 
 /*
- *  æ±ç¨å
-¥åºåãã¼ãã®ãã¼ã¹ã¢ãã¬ã¹ã¨ã¬ã¸ã¹ã¿
+ *  汎用入出力ポートのベースアドレスとレジスタ
  */
 #define RZA1_PORT_BASE		0xfcfe3000
@@ -216,5 +197,5 @@
 
 /*
- *	å²è¾¼ã¿çªå·
+ *	割込み番号
  */
 #define INTNO_IRQ0			32		/* IRQ0 */
@@ -226,39 +207,39 @@
 #define INTNO_IRQ6			38		/* IRQ6 */
 #define INTNO_IRQ7			39		/* IRQ7 */
-#define INTNO_OSTM0			134		/* OSã¿ã¤ã0 */
-#define INTNO_OSTM1			135		/* OSã¿ã¤ã1 */
-#define INTNO_SCIF0_BRI		221		/* SCIF0 ãã¬ã¼ã¯å²è¾¼ã¿ */
-#define INTNO_SCIF0_ERI		222		/* SCIF0 ã¨ã©ã¼å²è¾¼ã¿ */
-#define INTNO_SCIF0_RXI		223		/* SCIF0 åä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF0_TXI		224		/* SCIF0 éä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF1_BRI		225		/* SCIF1 ãã¬ã¼ã¯å²è¾¼ã¿ */
-#define INTNO_SCIF1_ERI		226		/* SCIF1 ã¨ã©ã¼å²è¾¼ã¿ */
-#define INTNO_SCIF1_RXI		227		/* SCIF1 åä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF1_TXI		228		/* SCIF1 éä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF2_BRI		229		/* SCIF2 ãã¬ã¼ã¯å²è¾¼ã¿ */
-#define INTNO_SCIF2_ERI		230		/* SCIF2 ã¨ã©ã¼å²è¾¼ã¿ */
-#define INTNO_SCIF2_RXI		231		/* SCIF2 åä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF2_TXI		232		/* SCIF2 éä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF3_BRI		233		/* SCIF3 ãã¬ã¼ã¯å²è¾¼ã¿ */
-#define INTNO_SCIF3_ERI		234		/* SCIF3 ã¨ã©ã¼å²è¾¼ã¿ */
-#define INTNO_SCIF3_RXI		235		/* SCIF3 åä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF3_TXI		236		/* SCIF3 éä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF4_BRI		237		/* SCIF4 ãã¬ã¼ã¯å²è¾¼ã¿ */
-#define INTNO_SCIF4_ERI		238		/* SCIF4 ã¨ã©ã¼å²è¾¼ã¿ */
-#define INTNO_SCIF4_RXI		239		/* SCIF4 åä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF4_TXI		240		/* SCIF4 éä¿¡å²è¾¼ã¿ */
-#ifdef TOPPERS_RZA1H
-#define INTNO_SCIF5_BRI		241		/* SCIF5 ãã¬ã¼ã¯å²è¾¼ã¿ */
-#define INTNO_SCIF5_ERI		242		/* SCIF5 ã¨ã©ã¼å²è¾¼ã¿ */
-#define INTNO_SCIF5_RXI		243		/* SCIF5 åä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF5_TXI		244		/* SCIF5 éä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF6_BRI		245		/* SCIF6 ãã¬ã¼ã¯å²è¾¼ã¿ */
-#define INTNO_SCIF6_ERI		246		/* SCIF6 ã¨ã©ã¼å²è¾¼ã¿ */
-#define INTNO_SCIF6_RXI		247		/* SCIF6 åä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF6_TXI		248		/* SCIF6 éä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF7_BRI		249		/* SCIF7 ãã¬ã¼ã¯å²è¾¼ã¿ */
-#define INTNO_SCIF7_ERI		250		/* SCIF7 ã¨ã©ã¼å²è¾¼ã¿ */
-#define INTNO_SCIF7_RXI		251		/* SCIF7 åä¿¡å²è¾¼ã¿ */
-#define INTNO_SCIF7_TXI		252		/* SCIF7 éä¿¡å²è¾¼ã¿ */
+#define INTNO_OSTM0			134		/* OSタイマ0 */
+#define INTNO_OSTM1			135		/* OSタイマ1 */
+#define INTNO_SCIF0_BRI		221		/* SCIF0 ブレーク割込み */
+#define INTNO_SCIF0_ERI		222		/* SCIF0 エラー割込み */
+#define INTNO_SCIF0_RXI		223		/* SCIF0 受信割込み */
+#define INTNO_SCIF0_TXI		224		/* SCIF0 送信割込み */
+#define INTNO_SCIF1_BRI		225		/* SCIF1 ブレーク割込み */
+#define INTNO_SCIF1_ERI		226		/* SCIF1 エラー割込み */
+#define INTNO_SCIF1_RXI		227		/* SCIF1 受信割込み */
+#define INTNO_SCIF1_TXI		228		/* SCIF1 送信割込み */
+#define INTNO_SCIF2_BRI		229		/* SCIF2 ブレーク割込み */
+#define INTNO_SCIF2_ERI		230		/* SCIF2 エラー割込み */
+#define INTNO_SCIF2_RXI		231		/* SCIF2 受信割込み */
+#define INTNO_SCIF2_TXI		232		/* SCIF2 送信割込み */
+#define INTNO_SCIF3_BRI		233		/* SCIF3 ブレーク割込み */
+#define INTNO_SCIF3_ERI		234		/* SCIF3 エラー割込み */
+#define INTNO_SCIF3_RXI		235		/* SCIF3 受信割込み */
+#define INTNO_SCIF3_TXI		236		/* SCIF3 送信割込み */
+#define INTNO_SCIF4_BRI		237		/* SCIF4 ブレーク割込み */
+#define INTNO_SCIF4_ERI		238		/* SCIF4 エラー割込み */
+#define INTNO_SCIF4_RXI		239		/* SCIF4 受信割込み */
+#define INTNO_SCIF4_TXI		240		/* SCIF4 送信割込み */
+#ifdef TOPPERS_RZA1H
+#define INTNO_SCIF5_BRI		241		/* SCIF5 ブレーク割込み */
+#define INTNO_SCIF5_ERI		242		/* SCIF5 エラー割込み */
+#define INTNO_SCIF5_RXI		243		/* SCIF5 受信割込み */
+#define INTNO_SCIF5_TXI		244		/* SCIF5 送信割込み */
+#define INTNO_SCIF6_BRI		245		/* SCIF6 ブレーク割込み */
+#define INTNO_SCIF6_ERI		246		/* SCIF6 エラー割込み */
+#define INTNO_SCIF6_RXI		247		/* SCIF6 受信割込み */
+#define INTNO_SCIF6_TXI		248		/* SCIF6 送信割込み */
+#define INTNO_SCIF7_BRI		249		/* SCIF7 ブレーク割込み */
+#define INTNO_SCIF7_ERI		250		/* SCIF7 エラー割込み */
+#define INTNO_SCIF7_RXI		251		/* SCIF7 受信割込み */
+#define INTNO_SCIF7_TXI		252		/* SCIF7 送信割込み */
 #endif /* TOPPERS_RZA1H */
 
@@ -266,5 +247,5 @@
 
 /*
- *  IRQå²è¾¼ã¿è¦æ±ã®ã¯ãªã¢
+ *  IRQ割込み要求のクリア
  */
 Inline void
@@ -279,10 +260,8 @@
 
 /*
- *  æ±ç¨å
-¥åºåãã¼ãã®è¨­å®
- *
- *  æ±ç¨å
-¥åºåãã¼ãã®å¶å¾¡ã¬ã¸ã¹ã¿ã®ç¹å®ã®ããããï¼ã»ããï¼setã0ã§ãª
- *  ãæï¼ã¾ãã¯ã¯ãªã¢ï¼setã0ã®æï¼ããï¼
+ *  汎用入出力ポートの設定
+ *
+ *  汎用入出力ポートの制御レジスタの特定のビットを，セット（setが0でな
+ *  い時）またはクリア（setが0の時）する．
  */
 Inline void
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/scif.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/scif.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/scif.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -57,6 +42,5 @@
 
 /*
- *		FIFOå
-èµã·ãªã¢ã«ã³ãã¥ãã±ã¼ã·ã§ã³ã¤ã³ã¿ãã§ã¼ã¹ã«é¢ããå®ç¾©
+ *		FIFO内蔵シリアルコミュニケーションインタフェースに関する定義
  */
 
@@ -65,5 +49,5 @@
 
 /*
- *  SCIFã¬ã¸ã¹ã¿ã®çªå°ã®å®ç¾©
+ *  SCIFレジスタの番地の定義
  */
 #define SCIF_SCSMR(base)		((uint16_t *)(base + 0x00U))
@@ -80,90 +64,86 @@
 
 /*
- *  ã·ãªã¢ã«ã¢ã¼ãã¬ã¸ã¹ã¿ï¼SCIF_SCSMRï¼ã®è¨­å®å¤
+ *  シリアルモードレジスタ（SCIF_SCSMR）の設定値
  */
-#define SCIF_SCSMR_SYNC		0x0080U		/* ã¯ã­ãã¯åæå¼ã¢ã¼ã */
-#define SCIF_SCSMR_7BIT		0x0040U		/* 7ããããã¼ã¿ */
-#define SCIF_SCSMR_PARITY	0x0020U		/* ããªãã£ãããã®ä»å  */
-#define SCIF_SCSMR_ODD		0x0010U		/* å¥æ°ããªãã£ */
-#define SCIF_SCSMR_2STOP	0x0008U		/* 2ã¹ãããããã */
-#define SCIF_SCSMR_CKS1		0x0000U		/* P1Ïã¯ã­ãã¯1 */
-#define SCIF_SCSMR_CKS4		0x0001U		/* P1Ï/4ã¯ã­ãã¯ */
-#define SCIF_SCSMR_CKS16	0x0002U		/* P1Ï/16ã¯ã­ãã¯ */
-#define SCIF_SCSMR_CKS64	0x0003U		/* P1Ï/64ã¯ã­ãã¯ */
+#define SCIF_SCSMR_SYNC		0x0080U		/* クロック同期式モード */
+#define SCIF_SCSMR_7BIT		0x0040U		/* 7ビットデータ */
+#define SCIF_SCSMR_PARITY	0x0020U		/* パリティビットの付加 */
+#define SCIF_SCSMR_ODD		0x0010U		/* 奇数パリティ */
+#define SCIF_SCSMR_2STOP	0x0008U		/* 2ストッピビット */
+#define SCIF_SCSMR_CKS1		0x0000U		/* P1φクロック1 */
+#define SCIF_SCSMR_CKS4		0x0001U		/* P1φ/4クロック */
+#define SCIF_SCSMR_CKS16	0x0002U		/* P1φ/16クロック */
+#define SCIF_SCSMR_CKS64	0x0003U		/* P1φ/64クロック */
 
 /*
- *  ã·ãªã¢ã«ã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ï¼SCIF_SCSCRï¼ã®è¨­å®å¤
+ *  シリアルコントロールレジスタ（SCIF_SCSCR）の設定値
  */
-#define SCIF_SCSCR_TIE		0x0080U		/* éä¿¡å²è¾¼ã¿è¨±å¯ */
-#define SCIF_SCSCR_RIE		0x0040U		/* åä¿¡å²è¾¼ã¿ç­è¨±å¯ */
-#define SCIF_SCSCR_TE		0x0020U		/* éä¿¡è¨±å¯ */
-#define SCIF_SCSCR_RE		0x0010U		/* åä¿¡è¨±å¯ */
-#define SCIF_SCSCR_REIE		0x0008U		/* åä¿¡ã¨ã©ã¼å²è¾¼ã¿ç­è¨±å¯ */
-#define SCIF_SCSCR_INTCLK	0x0000U		/* å
-é¨ã¯ã­ãã¯ï¼CKSç«¯å­ã¯ç¡è¦ */
-										/*		  ï¼èª¿æ­©åæå¼ã®å ´åï¼ */
+#define SCIF_SCSCR_TIE		0x0080U		/* 送信割込み許可 */
+#define SCIF_SCSCR_RIE		0x0040U		/* 受信割込み等許可 */
+#define SCIF_SCSCR_TE		0x0020U		/* 送信許可 */
+#define SCIF_SCSCR_RE		0x0010U		/* 受信許可 */
+#define SCIF_SCSCR_REIE		0x0008U		/* 受信エラー割込み等許可 */
+#define SCIF_SCSCR_INTCLK	0x0000U		/* 内部クロック，CKS端子は無視 */
+										/*		  （調歩同期式の場合） */
 
 /*
- *  ã·ãªã¢ã«ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼SCIF_SCFSRï¼ã®åç
-§å¤
+ *  シリアルステータスレジスタ（SCIF_SCFSR）の参照値
  */
-#define SCIF_SCFSR_PER_MASK		0xf000U	/* ããªãã£ã¨ã©ã¼æ°æ½åºãã¹ã¯ */
-#define SCIF_SCFSR_PER_SHIFT	12		/* ããªãã£ã¨ã©ã¼æ°æ½åºå³ã·ããæ° */
-#define SCIF_SCFSR_FER_MASK		0x0f00U	/* ãã¬ã¼ãã³ã°ã¨ã©ã¼æ°æ½åºãã¹ã¯ */
-#define SCIF_SCFSR_FER_SHIFT	8		/* ãã¬ã¼ãã³ã°ã¨ã©ã¼æ°æ½åºå³ã·ããæ° */
-#define SCIF_SCFSR_ER		0x0080U		/* åä¿¡ã¨ã©ã¼ */
-#define SCIF_SCFSR_TEND		0x0040U		/* éä¿¡å®äº */
-#define SCIF_SCFSR_TDFE		0x0020U		/* éä¿¡FIFOãã¼ã¿ã¨ã³ããã£ */
-#define SCIF_SCFSR_BRK		0x0010U		/* ãã¬ã¼ã¯æ¤åº */
-#define SCIF_SCFSR_FER		0x0008U		/* ãã¬ã¼ãã³ã°ã¨ã©ã¼æ¤åº */
-#define SCIF_SCFSR_PER		0x0004U		/* ããªãã£ã¨ã©ã¼æ¤åº */
-#define SCIF_SCFSR_RDF		0x0002U		/* åä¿¡FIFOãã¼ã¿ãã« */
-#define SCIF_SCFSR_DR		0x0001U		/* åä¿¡ãã¼ã¿ã¬ãã£ */
+#define SCIF_SCFSR_PER_MASK		0xf000U	/* パリティエラー数抽出マスク */
+#define SCIF_SCFSR_PER_SHIFT	12		/* パリティエラー数抽出右シフト数 */
+#define SCIF_SCFSR_FER_MASK		0x0f00U	/* フレーミングエラー数抽出マスク */
+#define SCIF_SCFSR_FER_SHIFT	8		/* フレーミングエラー数抽出右シフト数 */
+#define SCIF_SCFSR_ER		0x0080U		/* 受信エラー */
+#define SCIF_SCFSR_TEND		0x0040U		/* 送信完了 */
+#define SCIF_SCFSR_TDFE		0x0020U		/* 送信FIFOデータエンプティ */
+#define SCIF_SCFSR_BRK		0x0010U		/* ブレーク検出 */
+#define SCIF_SCFSR_FER		0x0008U		/* フレーミングエラー検出 */
+#define SCIF_SCFSR_PER		0x0004U		/* パリティエラー検出 */
+#define SCIF_SCFSR_RDF		0x0002U		/* 受信FIFOデータフル */
+#define SCIF_SCFSR_DR		0x0001U		/* 受信データレディ */
 
 /*
- *  FIFOã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ï¼SCIF_SCFCRï¼ã®è¨­å®å¤
+ *  FIFOコントロールレジスタ（SCIF_SCFCR）の設定値
  */
-#define SCIF_SCFCR_RSTRG_15	0x0000U		/* RTS#åºåã¢ã¯ãã£ãããªã¬ï¼15 */
-#define SCIF_SCFCR_RSTRG_1	0x0100U		/* RTS#åºåã¢ã¯ãã£ãããªã¬ï¼1 */
-#define SCIF_SCFCR_RSTRG_4	0x0200U		/* RTS#åºåã¢ã¯ãã£ãããªã¬ï¼4 */
-#define SCIF_SCFCR_RSTRG_6	0x0300U		/* RTS#åºåã¢ã¯ãã£ãããªã¬ï¼6 */
-#define SCIF_SCFCR_RSTRG_8	0x0400U		/* RTS#åºåã¢ã¯ãã£ãããªã¬ï¼8 */
-#define SCIF_SCFCR_RSTRG_10	0x0500U		/* RTS#åºåã¢ã¯ãã£ãããªã¬ï¼10 */
-#define SCIF_SCFCR_RSTRG_12	0x0600U		/* RTS#åºåã¢ã¯ãã£ãããªã¬ï¼12 */
-#define SCIF_SCFCR_RSTRG_14	0x0700U		/* RTS#åºåã¢ã¯ãã£ãããªã¬ï¼14 */
-#define SCIF_SCFCR_RTRG_1	0x0000U		/* åä¿¡FIFOãã¼ã¿æ°ããªã¬ï¼1 */
-#define SCIF_SCFCR_RTRG_4	0x0040U		/* åä¿¡FIFOãã¼ã¿æ°ããªã¬ï¼4 */
-#define SCIF_SCFCR_RTRG_8	0x0080U		/* åä¿¡FIFOãã¼ã¿æ°ããªã¬ï¼8 */
-#define SCIF_SCFCR_RTRG_14	0x00C0U		/* åä¿¡FIFOãã¼ã¿æ°ããªã¬ï¼14 */
-#define SCIF_SCFCR_TTRG_8	0x0000U		/* éä¿¡FIFOãã¼ã¿æ°ããªã¬ï¼8 */
-#define SCIF_SCFCR_TTRG_4	0x0010U		/* éä¿¡FIFOãã¼ã¿æ°ããªã¬ï¼4 */
-#define SCIF_SCFCR_TTRG_2	0x0020U		/* éä¿¡FIFOãã¼ã¿æ°ããªã¬ï¼2 */
-#define SCIF_SCFCR_TTRG_0	0x0030U		/* éä¿¡FIFOãã¼ã¿æ°ããªã¬ï¼0 */
-#define SCIF_SCFCR_MCE		0x0008U		/* CTS#,RTS#è¨±å¯ */
-#define SCIF_SCFCR_TFRST	0x0004U		/* éä¿¡FIFOãã¼ã¿ã¬ã¸ã¹ã¿ãªã»ãã */
-#define SCIF_SCFCR_RFRST	0x0002U		/* åä¿¡FIFOãã¼ã¿ã¬ã¸ã¹ã¿ãªã»ãã */
-#define SCIF_SCFCR_LOOP		0x0001U		/* ã«ã¼ãããã¯ãã¹ã */
+#define SCIF_SCFCR_RSTRG_15	0x0000U		/* RTS#出力アクティブトリガ：15 */
+#define SCIF_SCFCR_RSTRG_1	0x0100U		/* RTS#出力アクティブトリガ：1 */
+#define SCIF_SCFCR_RSTRG_4	0x0200U		/* RTS#出力アクティブトリガ：4 */
+#define SCIF_SCFCR_RSTRG_6	0x0300U		/* RTS#出力アクティブトリガ：6 */
+#define SCIF_SCFCR_RSTRG_8	0x0400U		/* RTS#出力アクティブトリガ：8 */
+#define SCIF_SCFCR_RSTRG_10	0x0500U		/* RTS#出力アクティブトリガ：10 */
+#define SCIF_SCFCR_RSTRG_12	0x0600U		/* RTS#出力アクティブトリガ：12 */
+#define SCIF_SCFCR_RSTRG_14	0x0700U		/* RTS#出力アクティブトリガ：14 */
+#define SCIF_SCFCR_RTRG_1	0x0000U		/* 受信FIFOデータ数トリガ：1 */
+#define SCIF_SCFCR_RTRG_4	0x0040U		/* 受信FIFOデータ数トリガ：4 */
+#define SCIF_SCFCR_RTRG_8	0x0080U		/* 受信FIFOデータ数トリガ：8 */
+#define SCIF_SCFCR_RTRG_14	0x00C0U		/* 受信FIFOデータ数トリガ：14 */
+#define SCIF_SCFCR_TTRG_8	0x0000U		/* 送信FIFOデータ数トリガ：8 */
+#define SCIF_SCFCR_TTRG_4	0x0010U		/* 送信FIFOデータ数トリガ：4 */
+#define SCIF_SCFCR_TTRG_2	0x0020U		/* 送信FIFOデータ数トリガ：2 */
+#define SCIF_SCFCR_TTRG_0	0x0030U		/* 送信FIFOデータ数トリガ：0 */
+#define SCIF_SCFCR_MCE		0x0008U		/* CTS#,RTS#許可 */
+#define SCIF_SCFCR_TFRST	0x0004U		/* 送信FIFOデータレジスタリセット */
+#define SCIF_SCFCR_RFRST	0x0002U		/* 受信FIFOデータレジスタリセット */
+#define SCIF_SCFCR_LOOP		0x0001U		/* ループバックテスト */
 
 /*
- *  FIFOãã¼ã¿ã«ã¦ã³ãã¬ã¸ã¹ã¿ï¼SCIF_SCFDRï¼ã®åç
-§å¤
+ *  FIFOデータカウントレジスタ（SCIF_SCFDR）の参照値
  */
-#define SCIF_SCFDR_T_MASK	0x1f00U		/* æªéä¿¡ãã¼ã¿æ°æ½åºãã¹ã¯ */
-#define SCIF_SCFDR_T_SHIFT	8			/* æªéä¿¡ãã¼ã¿æ°æ½åºå³ã·ããæ° */
-#define SCIF_SCFDR_R_MASK	0x001fU		/* åä¿¡ãã¼ã¿æ°æ½åºãã¹ã¯ */
-#define SCIF_SCFDR_R_SHIFT	0			/* åä¿¡ãã¼ã¿æ°æ½åºå³ã·ããæ° */
+#define SCIF_SCFDR_T_MASK	0x1f00U		/* 未送信データ数抽出マスク */
+#define SCIF_SCFDR_T_SHIFT	8			/* 未送信データ数抽出右シフト数 */
+#define SCIF_SCFDR_R_MASK	0x001fU		/* 受信データ数抽出マスク */
+#define SCIF_SCFDR_R_SHIFT	0			/* 受信データ数抽出右シフト数 */
 
 /*
- *  ã©ã¤ã³ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼SCIF_SCLSRï¼ã®åç
-§å¤
+ *  ラインステータスレジスタ（SCIF_SCLSR）の参照値
  */
-#define SCIF_SCLSR_ORER		0x0001U		/* ãªã¼ãã¼ã©ã³ã¨ã©ã¼ */
+#define SCIF_SCLSR_ORER		0x0001U		/* オーバーランエラー */
 
 /*
- *  ã·ãªã¢ã«æ¡å¼µã¢ã¼ãã¬ã¸ã¹ã¿ï¼SCIF_SCEMRï¼ã®è¨­å®å¤
+ *  シリアル拡張モードレジスタ（SCIF_SCEMR）の設定値
  */
-#define SCIF_SCEMR_BGDM		0x0080U		/* ãã¼ã¬ã¼ãã¸ã§ãã¬ã¼ã¿åéã¢ã¼ã */
-#define SCIF_SCEMR_ABCS16	0x0000U		/* ãããã¬ã¼ãã®16åã®åºæ¬ã¯ã­ãã¯ */
-#define SCIF_SCEMR_ABCS8	0x0001U		/* ãããã¬ã¼ãã®8åã®åºæ¬ã¯ã­ãã¯ */
+#define SCIF_SCEMR_BGDM		0x0080U		/* ボーレートジェネレータ倍速モード */
+#define SCIF_SCEMR_ABCS16	0x0000U		/* ビットレートの16倍の基本クロック */
+#define SCIF_SCEMR_ABCS8	0x0001U		/* ビットレートの8倍の基本クロック */
 
 #endif /* TOPPERS_SCIF_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,6 +40,5 @@
 
 /*
- *		FIFOå
-èµã·ãªã¢ã«ã³ãã¥ãã±ã¼ã·ã§ã³ã¤ã³ã¿ãã§ã¼ã¹ç¨ ç°¡æSIOãã©ã¤ã
+ *		FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
  */
 
@@ -64,9 +48,9 @@
 
 /*
- *  ããªããã£ããªéä¿¡ï¼åä¿¡é¢æ°
- */
-
-/*
- *  åä¿¡ãããã¡ã«æå­ããããï¼
+ *  プリミティブな送信／受信関数
+ */
+
+/*
+ *  受信バッファに文字があるか？
  */
 Inline bool_t
@@ -90,5 +74,5 @@
 
 /*
- *  éä¿¡ãããã¡ã«ç©ºãããããï¼
+ *  送信バッファに空きがあるか？
  */
 Inline bool_t
@@ -102,5 +86,5 @@
 
 /*
- *  åä¿¡ããæå­ã®ååºã
+ *  受信した文字の取出し
  */
 Inline bool_t
@@ -130,5 +114,5 @@
 
 /*
- *  éä¿¡ããæå­ã®æ¸è¾¼ã¿
+ *  送信する文字の書込み
  */
 Inline void
@@ -141,5 +125,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãã®ãªã¼ãã³
+ *  シリアルI/Oポートのオープン
  */
 void
@@ -151,5 +135,5 @@
 	if (VAR_initialized) {
 		/*
-		 *  æ¢ã«åæåãã¦ããå ´åã¯ãäºéã«åæåããªãï¼
+		 *  既に初期化している場合は、二重に初期化しない．
 		 */
 		return;
@@ -185,5 +169,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãã®ã¯ã­ã¼ãº
+ *  シリアルI/Oポートのクローズ
  */
 void
@@ -196,5 +180,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®æå­éä¿¡
+ *  シリアルI/Oポートへの文字送信
  */
 bool_t
@@ -211,5 +195,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãããã®æå­åä¿¡
+ *  シリアルI/Oポートからの文字受信
  */
 int_t
@@ -228,5 +212,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯
+ *  シリアルI/Oポートからのコールバックの許可
  */
 void
@@ -249,5 +233,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ­¢
+ *  シリアルI/Oポートからのコールバックの禁止
  */
 void
@@ -270,5 +254,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãã«å¯¾ããåä¿¡å²è¾¼ã¿å¦ç
+ *  シリアルI/Oポートに対する受信割込み処理
  */
 void
@@ -279,5 +263,5 @@
 	if (scif_getready(p_cellcb)) {
 		/*
-		 *  åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼
+		 *  受信通知コールバックルーチンを呼び出す．
 		 */
 		ciSIOCBR_readyReceive();
@@ -286,5 +270,5 @@
 
 /*
- *  ã·ãªã¢ã«I/Oãã¼ãã«å¯¾ããéä¿¡å²è¾¼ã¿å¦ç
+ *  シリアルI/Oポートに対する送信割込み処理
  */
 void
@@ -295,5 +279,5 @@
 	if (scif_putready(p_cellcb)) {
 		/*
-		 *  éä¿¡å¯è½ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼
+		 *  送信可能コールバックルーチンを呼び出す．
 		 */
 		ciSIOCBR_readySend();
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.cdl	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,20 +41,17 @@
 
 /*
- *		FIFOå
-èµã·ãªã¢ã«ã³ãã¥ãã±ã¼ã·ã§ã³ã¤ã³ã¿ãã§ã¼ã¹ç¨ ç°¡æSIOãã©
- *		ã¤ãã®ã³ã³ãã¼ãã³ãè¨è¿°
+ *		FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドラ
+ *		イバのコンポーネント記述
  */
 
 /*
- *  FIFOå
-èµã·ãªã¢ã«ã³ãã¥ãã±ã¼ã·ã§ã³ã¤ã³ã¿ãã§ã¼ã¹ã«é¢ããå®ç¾©ã®ã¤ã³
- *  ãã¼ã
+ *  FIFO内蔵シリアルコミュニケーションインタフェースに関する定義のイン
+ *  ポート
  */
 import_C("scif.h");
 
 /*
- *  FIFOå
-èµã·ãªã¢ã«ã³ãã¥ãã±ã¼ã·ã§ã³ã¤ã³ã¿ãã§ã¼ã¹ç¨ ç°¡æSIOãã©ã¤ã
- *  ã®ã»ã«ã¿ã¤ã
+ *  FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
+ *  のセルタイプ
  */
 celltype tSCIF {
@@ -81,9 +63,9 @@
 
 	attr {
-		uintptr_t	baseAddress;	/* SCIFã¬ã¸ã¹ã¿ã®ãã¼ã¹ã¢ãã¬ã¹ */
-		uint32_t	baudRate;		/* ãã¼ã¬ã¼ãã®è¨­å®å¤ */
+		uintptr_t	baseAddress;	/* SCIFレジスタのベースアドレス */
+		uint32_t	baudRate;		/* ボーレートの設定値 */
 	};
 	var {
-		bool_t		initialized = false;	/* åæåæ¸ã¿ */
+		bool_t		initialized = false;	/* 初期化済み */
 	};
 };
Index: EcnlProtoTool/trunk/asp3_dcre/arch/gcc/tool_stddef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/gcc/tool_stddef.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/gcc/tool_stddef.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,5 +41,5 @@
 
 /*
- *		t_stddef.hã®éçºç°å¢ä¾å­é¨ï¼GCCç¨ï¼
+ *		t_stddef.hの開発環境依存部（GCC用）
  */
 
@@ -63,34 +48,33 @@
 
 /*
- *  ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ã­å®ç¾©
- */
-#ifndef __cplusplus					/* C++ã«ã¯inline ããã */
+ *  コンパイラの拡張機能のためのマクロ定義
+ */
+#ifndef __cplusplus					/* C++にはinline がある */
 #if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L
-									/* C99ã«ã¯inline ããã */
-#define inline	__inline__			/* ã¤ã³ã©ã¤ã³é¢æ° */
+									/* C99にはinline がある */
+#define inline	__inline__			/* インライン関数 */
 #endif /* !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L */
 #endif /* __cplusplus */
 
-#define Inline	static inline		/* ã¤ã³ã©ã¤ã³é¢æ° */
-
-#ifndef __cplusplus					/* C++ã«ã¯asmããã */
-#define asm		__asm__				/* ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã© */
+#define Inline	static inline		/* インライン関数 */
+
+#ifndef __cplusplus					/* C++にはasmがある */
+#define asm		__asm__				/* インラインアセンブラ */
 #endif /* __cplusplus */
 
-#define Asm		__asm__ volatile	/* ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ï¼æé©åææ­¢ï¼*/
+#define Asm		__asm__ volatile	/* インラインアセンブラ（最適化抑止）*/
 
 #define NoReturn	__attribute__((__noreturn__))
-									/* ãªã¿ã¼ã³ããªãé¢æ° */
-
-/*
- *  éçºç°å¢ã®æ¨æºã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®å©ç¨
- *
- *  NULLã®å®ç¾©ãstddef.hããï¼INT_MAXï¼INT_MINï¼UINT_MAXï¼LONG_MAXï¼
- *  LONG_MINï¼ULONG_MAXï¼CHAR_BITã®å®ç¾©ãlimits.hããåãè¾¼ãï¼
- *
- *  C++/EC++ã§ã¯ï¼æ¨æºä»æ§ä¸ã¯ãããã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç¨æããã¦
- *  ããã¨ã¯éããªãã®ã§æ³¨æãå¿
-è¦ã§ããï¼ã»ã¨ãã©ã®éçºç°å¢ã§ç¨æãã
- *  ã¦ããï¼ï¼
+									/* リターンしない関数 */
+
+/*
+ *  開発環境の標準インクルードファイルの利用
+ *
+ *  NULLの定義をstddef.hから，INT_MAX，INT_MIN，UINT_MAX，LONG_MAX，
+ *  LONG_MIN，ULONG_MAX，CHAR_BITの定義をlimits.hから取り込む．
+ *
+ *  C++/EC++では，標準仕様上はこれらのインクルードファイルが用意されて
+ *  いるとは限らないので注意が必要である（ほとんどの開発環境で用意され
+ *  ている）．
  */
 #ifndef TOPPERS_MACRO_ONLY
@@ -100,42 +84,42 @@
 
 /*
- *  stdint.hã®ä»£ç¨ã¨ãªãå®ç¾©
- *
- *  éçºç°å¢ã«stdint.hãç¨æããã¦ãããï¼åæ´æ°åã®ãµã¤ãºããããã¿ã¼
- *  ã³ã«å½ã¦ã¯ã¾ãå ´åã«ï¼stdint.hã®ä»£ç¨ã¨ãªãå®ç¾©ãä¸ããï¼
- *
- *  TOPPERS_STDINT_TYPE1: char/short/int/long longã®ãããé·ããããã
- *                        8/16/32/64ãããã§ï¼ãã¤ã³ã¿ã®ãããé·ãlong
- *                        ã®ãããé·ã¨ä¸è´ããå ´å
+ *  stdint.hの代用となる定義
+ *
+ *  開発環境にstdint.hが用意されておらず，各整数型のサイズがあるパター
+ *  ンに当てはまる場合に，stdint.hの代用となる定義を与える．
+ *
+ *  TOPPERS_STDINT_TYPE1: char/short/int/long longのビット長がそれぞれ
+ *                        8/16/32/64ビットで，ポインタのビット長がlong
+ *                        のビット長と一致する場合
  */
 #ifdef TOPPERS_STDINT_TYPE1
 
 /*
- *  ã³ã³ãã¤ã©ä¾å­ã®ãã¼ã¿åã®å®ç¾©
+ *  コンパイラ依存のデータ型の定義
  */
 #ifndef TOPPERS_MACRO_ONLY
 
-typedef signed char			int8_t;		/* ç¬¦å·ä»ã8ãããæ´æ° */
-typedef unsigned char		uint8_t;	/* ç¬¦å·ç¡ã8ãããæ´æ° */
-
-typedef signed short		int16_t;	/* ç¬¦å·ä»ã16ãããæ´æ° */
-typedef unsigned short		uint16_t;	/* ç¬¦å·ç¡ã16ãããæ´æ° */
-
-typedef signed int			int32_t;	/* ç¬¦å·ä»ã32ãããæ´æ° */
-typedef unsigned int		uint32_t;	/* ç¬¦å·ç¡ã32ãããæ´æ° */
-
-typedef signed long long	int64_t;	/* ç¬¦å·ä»ã64ãããæ´æ° */
-typedef unsigned long long	uint64_t;	/* ç¬¦å·ç¡ã64ãããæ´æ° */
-
-typedef int8_t				int_least8_t;	/* 8ãããä»¥ä¸ã®ç¬¦å·ä»ãæ´æ° */
-typedef uint8_t				uint_least8_t;	/* 8ãããä»¥ä¸ã®ç¬¦å·ç¡ãæ´æ° */
-
-typedef long				intptr_t;	/* ãã¤ã³ã¿ãæ ¼ç´ã§ããç¬¦å·ä»ãæ´æ° */
-typedef unsigned long		uintptr_t;	/* ãã¤ã³ã¿ãæ ¼ç´ã§ããç¬¦å·ç¡ãæ´æ° */
+typedef signed char			int8_t;		/* 符号付き8ビット整数 */
+typedef unsigned char		uint8_t;	/* 符号無し8ビット整数 */
+
+typedef signed short		int16_t;	/* 符号付き16ビット整数 */
+typedef unsigned short		uint16_t;	/* 符号無し16ビット整数 */
+
+typedef signed int			int32_t;	/* 符号付き32ビット整数 */
+typedef unsigned int		uint32_t;	/* 符号無し32ビット整数 */
+
+typedef signed long long	int64_t;	/* 符号付き64ビット整数 */
+typedef unsigned long long	uint64_t;	/* 符号無し64ビット整数 */
+
+typedef int8_t				int_least8_t;	/* 8ビット以上の符号付き整数 */
+typedef uint8_t				uint_least8_t;	/* 8ビット以上の符号無し整数 */
+
+typedef long				intptr_t;	/* ポインタを格納できる符号付き整数 */
+typedef unsigned long		uintptr_t;	/* ポインタを格納できる符号無し整数 */
 
 #endif /* TOPPERS_MACRO_ONLY */
 
 /*
- *  ã³ã³ãã¤ã©ä¾å­ã®ãã¼ã¿åã®æ´æ°å®æ°ãä½ããã¯ã­
+ *  コンパイラ依存のデータ型の整数定数を作るマクロ
  */
 #ifndef INT8_C
@@ -172,5 +156,5 @@
 
 /*
- *  ã³ã³ãã¤ã©ä¾å­ã®ãã¼ã¿åã«æ ¼ç´ã§ããæå¤§å¤ã¨æå°å¤ã®å®ç¾©
+ *  コンパイラ依存のデータ型に格納できる最大値と最小値の定義
  */
 #define INT8_MAX			SCHAR_MAX
@@ -197,14 +181,14 @@
 
 /*
- *  æµ®åå°æ°ç¹åã«é¢ããå®ç¾©
- *
- *  TOPPERS_STDFLOAT_TYPE1: floatãIEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ°ï¼
- *							doubleãåç²¾åº¦æµ®åå°æ°ç¹æ°ã®å ´å
+ *  浮動小数点型に関する定義
+ *
+ *  TOPPERS_STDFLOAT_TYPE1: floatがIEEE754準拠の単精度浮動小数点数，
+ *							doubleが倍精度浮動小数点数の場合
  */
 #ifdef TOPPERS_STDFLOAT_TYPE1
 #ifndef TOPPERS_MACRO_ONLY
 
-typedef float		float32_t;			/* IEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ° */
-typedef double		double64_t;			/* IEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ° */
+typedef float		float32_t;			/* IEEE754準拠の単精度浮動小数点数 */
+typedef double		double64_t;			/* IEEE754準拠の倍精度浮動小数点数 */
 
 #endif /* TOPPERS_MACRO_ONLY */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.c	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,5 +41,5 @@
 
 /*
- *		ãã¬ã¼ã¹ã­ã°æ©è½
+ *		トレースログ機能
  */
 
@@ -68,9 +53,9 @@
 
 /*
- *  ãã¬ã¼ã¹æå»ã®åãåºã
+ *  トレース時刻の取り出し
  *
- *  ããã©ã«ãã§ã¯ï¼ã­ã°æå»ã¨ãã¦ï¼é«åè§£è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ãç¨ãã¦
- *  ããï¼ã¿ã¼ã²ããä¾å­ã§å¤æ´ããå ´åã«ã¯ï¼SYSLOG_GET_LOGTIMã«ï¼ã­ã°æ
- *  å»ãåãåºããã¯ã­ãå®ç¾©ããï¼
+ *  デフォルトでは，ログ時刻として，高分解能タイマのカウント値を用いて
+ *  いる．ターゲット依存で変更する場合には，SYSLOG_GET_LOGTIMに，ログ時
+ *  刻を取り出すマクロを定義する．
  */
 #ifndef SYSLOG_GET_LOGTIM
@@ -80,5 +65,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ã®éå§
+ *  トレースログの開始
  */
 ER
@@ -96,5 +81,5 @@
 
 /* 
- *  ãã¬ã¼ã¹ã­ã°ã®æ¸è¾¼ã¿
+ *  トレースログの書込み
  */
 ER
@@ -107,10 +92,10 @@
 
 		/*
-		 *  ãã¬ã¼ã¹æå»ã®è¨­å®
+		 *  トレース時刻の設定
 		 */
 		SYSLOG_GET_LOGTIM(&(((SYSLOG *) p_trace)->logtim));
 
 		/*
-		 *  ãã¬ã¼ã¹ãããã¡ã«è¨é²
+		 *  トレースバッファに記録
 		 */
 		VAR_logBuffer[VAR_tail] = *p_trace;
@@ -136,5 +121,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ã®èª­åºã
+ *  トレースログの読出し
  */
 ER
@@ -147,5 +132,5 @@
 
 	/*
-	 *  ãã¬ã¼ã¹ã­ã°ãããã¡ããã®ååºã
+	 *  トレースログバッファからの取出し
 	 */
 	if (VAR_count > 0U) {
@@ -167,6 +152,6 @@
 
 /*
- *  ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããã³ã¼ããããã¬ã¼ã¹ã­ã°ãåºåããããã®é¢
- *  æ°
+ *  アセンブリ言語で記述されるコードからトレースログを出力するための関
+ *  数
  */
 
@@ -208,6 +193,5 @@
 
 /* 
- *  ã«ã¼ãã«æ
-å ±ã®ååºã
+ *  カーネル情報の取出し
  */
 static intptr_t
@@ -257,5 +241,5 @@
 
 /* 
- *  ãã¬ã¼ã¹ã­ã°ã®è¡¨ç¤º
+ *  トレースログの表示
  */
 static void
@@ -301,5 +285,5 @@
 
 /*
- *  ä½ã¬ãã«åºåã®å¼åºãé¢æ°
+ *  低レベル出力の呼出し関数
  */
 static void
@@ -310,5 +294,5 @@
 
 /* 
- *  ãã¬ã¼ã¹ã­ã°ã®ãã³ã
+ *  トレースログのダンプ
  */
 void
@@ -323,5 +307,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ã®ãã³ãï¼åãå£é¢æ°ï¼
+ *  トレースログのダンプ（受け口関数）
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.cdl	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,33 +42,33 @@
 
 /*
- *		ãã¬ã¼ã¹ã­ã°æ©è½ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		トレースログ機能のコンポーネント記述ファイル
  */
 
 /*
- *  ãã¬ã¼ã¹ã­ã°åºåã«é¢ããå®ç¾©
+ *  トレースログ出力に関する定義
  */
 import_C("arch/tracelog/trace_log.h");
 
 /*
- *  ãã¬ã¼ã¹ã­ã°æ©è½ã®ã·ã°ããã£
+ *  トレースログ機能のシグニチャ
  */
 signature sTraceLog {
 	/*
-	 *  ãã¬ã¼ã¹ã­ã°ã®éå§
+	 *  トレースログの開始
 	 */
 	ER		start([in] MODE mode);
 
 	/*
-	 *  ãã¬ã¼ã¹ã­ã°ã®æ¸è¾¼ã¿
+	 *  トレースログの書込み
 	 */
 	ER		write([in] const TRACE *p_trace);
 
 	/*
-	 *  ãã¬ã¼ã¹ã­ã°ã®èª­åºã
+	 *  トレースログの読出し
 	 */
 	ER		read([out] TRACE *p_trace);
 
 	/*
-	 *  ãã¬ã¼ã¹ã­ã°ã®ãã³ã
+	 *  トレースログのダンプ
 	 */
 	void	dump(void);
@@ -91,24 +76,23 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°æ©è½ã®ã»ã«ã¿ã¤ã
+ *  トレースログ機能のセルタイプ
  */
 [singleton, active]
 celltype tTraceLog {
 	entry	sTraceLog		eTraceLog;
-	entry	sRoutineBody	eDump;		/* çµäºå¦çã«ã¼ãã³ã¨ã®æ¥ç¶ */
-	call	sPutLog			cPutLog;	/* ä½ã¬ãã«åºåã¨ã®æ¥ç¶ */
+	entry	sRoutineBody	eDump;		/* 終了処理ルーチンとの接続 */
+	call	sPutLog			cPutLog;	/* 低レベル出力との接続 */
 
 	attr {
-		uint_t	logBufferSize;			/* ã­ã°ãããã¡ãµã¤ãº */
+		uint_t	logBufferSize;			/* ログバッファサイズ */
 		MODE	initialMode = C_EXP("TRACE_STOP");
-										/* åæåå¾ã®ã¢ã¼ã */
+										/* 初期化後のモード */
 	};
 	var {
-		[size_is(logBufferSize)] TRACE	*logBuffer;	/* ã­ã°ãããã¡ */
-		uint_t	count = 0;				/* ã­ã°ãããã¡ä¸­ã®ã­ã°ã®æ° */
-		uint_t	head = 0;				/* å
-é ­ã®ã­ã°ã®æ ¼ç´ä½ç½® */
-		uint_t	tail = 0;				/* æ¬¡ã®ã­ã°ã®æ ¼ç´ä½ç½® */
-		MODE	mode = initialMode;		/* ãã¬ã¼ã¹ã¢ã¼ã */
+		[size_is(logBufferSize)] TRACE	*logBuffer;	/* ログバッファ */
+		uint_t	count = 0;				/* ログバッファ中のログの数 */
+		uint_t	head = 0;				/* 先頭のログの格納位置 */
+		uint_t	tail = 0;				/* 次のログの格納位置 */
+		MODE	mode = initialMode;		/* トレースモード */
 	};
 };
Index: EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/trace_log.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/trace_log.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/trace_log.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,10 +41,10 @@
 
 /*
- *		ãã¬ã¼ã¹ã­ã°ã«é¢ããè¨­å®
- *
- *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_kernel_impl.hããã³
- *  target_syssvc.hã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ã¾ãï¼ãã¬ã¼ã¹ã­ã°æ©è½ã®
- *  åæåãè¨é²ã®éå§ï¼åæ­¢ï¼ãã¬ã¼ã¹ã­ã°ã®ãã³ããè¡ããã­ã°ã©ã ãã
- *  ã¤ã³ã¯ã«ã¼ããããã¨ãæ³å®ãã¦ããï¼
+ *		トレースログに関する設定
+ *
+ *  このインクルードファイルは，target_kernel_impl.hおよび
+ *  target_syssvc.hのみからインクルードされる．また，トレースログ機能の
+ *  初期化や記録の開始／停止，トレースログのダンプを行うプログラムから
+ *  インクルードすることを想定している．
  */
 
@@ -68,8 +53,7 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ã®ãã¼ã¿æ§é 
- *
- *  ã·ã¹ãã ã­ã°æ©è½ã®ã­ã°æ
-å ±ã®ãã¼ã¿æ§é ã¨åããã®ãç¨ããï¼
+ *  トレースログのデータ構造
+ *
+ *  システムログ機能のログ情報のデータ構造と同じものを用いる．
  */
 #ifndef TOPPERS_MACRO_ONLY
@@ -81,19 +65,19 @@
 
 /*
- *  ãã¬ã¼ã¹ã¢ã¼ãã®å®ç¾©
- */
-#define TRACE_STOP			UINT_C(0x00)	/* ãã¬ã¼ã¹åæ­¢ */
-#define TRACE_RINGBUF		UINT_C(0x01)	/* ãªã³ã°ãããã¡ã¢ã¼ã */
-#define TRACE_AUTOSTOP		UINT_C(0x02)	/* èªååæ­¢ã¢ã¼ã */
-#define TRACE_CLEAR			UINT_C(0x04)	/* ãã¬ã¼ã¹ã­ã°ã®ã¯ãªã¢ */
+ *  トレースモードの定義
+ */
+#define TRACE_STOP			UINT_C(0x00)	/* トレース停止 */
+#define TRACE_RINGBUF		UINT_C(0x01)	/* リングバッファモード */
+#define TRACE_AUTOSTOP		UINT_C(0x02)	/* 自動停止モード */
+#define TRACE_CLEAR			UINT_C(0x04)	/* トレースログのクリア */
 
 #ifndef TOPPERS_MACRO_ONLY
 
 /*
- *  TECSã§è¨è¿°ããããã¹ããã­ã°ã©ã ç¨ã®ãµã¼ãã¹ãç´æ¥å¼ã³åºãããã®å®ç¾©
- *
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSã§è¨è¿°ããããã¬ã¼ã¹ã­ã°
- *  æ©è½ãå¼ã³åºãããã«ã¯ï¼ã¢ããã¿ãç¨ããã®ãæ­£å½ãªæ¹æ³ã§ãããï¼ã
- *  ã¬ã¼ã¹ã­ã°æ©è½ãã·ã³ã°ã«ãã³ã§ãããã¨ãå©ç¨ãã¦ç´æ¥å¼ã³åºãï¼
+ *  TECSで記述されたテストプログラム用のサービスを直接呼び出すための定義
+ *
+ *  C言語で記述されたアプリケーションから，TECSで記述されたトレースログ
+ *  機能を呼び出すためには，アダプタを用いるのが正当な方法であるが，ト
+ *  レースログ機能がシングルトンであることを利用して直接呼び出す．
  */
 extern ER	tTraceLog_eTraceLog_start(MODE mode);
@@ -103,12 +87,12 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ã®éå§
- *
- *  ãã¬ã¼ã¹ã­ã°ã®è¨é²ãéå§ï¼åæ­¢ããï¼å¼æ°ã«ããæ¬¡ã®åä½ãè¡ãï¼
- *
- *  TRACE_STOPï¼ãã¬ã¼ã¹ãåæ­¢ï¼
- *  TRACE_RINGBUFï¼ãªã³ã°ãããã¡ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼
- *  TRACE_AUTOSTOPï¼èªååæ­¢ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼
- *  TRACE_CLEARï¼ãã¬ã¼ã¹ã­ã°ãã¯ãªã¢ï¼
+ *  トレースログの開始
+ *
+ *  トレースログの記録を開始／停止する．引数により次の動作を行う．
+ *
+ *  TRACE_STOP：トレースを停止．
+ *  TRACE_RINGBUF：リングバッファモードでトレースを開始．
+ *  TRACE_AUTOSTOP：自動停止モードでトレースを開始．
+ *  TRACE_CLEAR：トレースログをクリア．
  */
 Inline ER
@@ -119,5 +103,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ã®æ¸è¾¼ã¿
+ *  トレースログの書込み
  */
 Inline ER
@@ -128,5 +112,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ã®èª­åºã
+ *  トレースログの読出し
  */
 Inline ER
@@ -137,5 +121,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãåºåããããã®ã©ã¤ãã©ãªé¢æ°
+ *  トレースログを出力するためのライブラリ関数
  */
 
@@ -183,5 +167,5 @@
 														
 /*
- *  ãã¬ã¼ã¹ã­ã°ãåºåããããã®ãã¯ã­
+ *  トレースログを出力するためのマクロ
  */
 
@@ -200,11 +184,10 @@
 
 /* 
- *  ãã¬ã¼ã¹ã­ã°ã®ãã³ã
- *
- *  ãã¬ã¼ã¹ã­ã°ããã³ãããï¼çµäºå¦çã«ã¼ãã³ã¨ãã¦ç»é²ãããã¨ãæ³å®
- *  ãã¦ããï¼å¼æ°ã¨ãã¦ï¼ãã³ãå
-ã¨ãªãæå­åºåé¢æ°ã¸ã®ãã¤ã³ã¿ãæ¸¡ãï¼
- *  ã¿ã¼ã²ããä¾å­ã®ä½ã¬ãã«æå­åºåãå©ç¨ããå ´åã«ã¯ï¼target_putcãæ¸¡
- *  ãï¼
+ *  トレースログのダンプ
+ *
+ *  トレースログをダンプする．終了処理ルーチンとして登録することも想定
+ *  している．引数として，ダンプ先となる文字出力関数へのポインタを渡す．
+ *  ターゲット依存の低レベル文字出力を利用する場合には，target_putcを渡
+ *  す．
  */
 Inline void
@@ -217,5 +200,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°æ¹æ³ã®è¨­å®
+ *  トレースログ方法の設定
  */
 #define LOG_TSKSTAT(p_tcb)		trace_2(LOG_TYPE_TSKSTAT, p_tcb, p_tcb->tstat)
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/GenFile.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/GenFile.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/GenFile.rb	(revision 321)
@@ -8,60 +8,44 @@
 #  Copyright (C) 2016 by APTJ Co., Ltd., JAPAN
 #
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 #
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 #
-#  $Id: GenFile.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#  $Id$
 #
 
 #
-#		ãã¡ã¤ã«ä½æã¯ã©ã¹
+#		ファイル作成クラス
 #
 
 #
-# ãã¡ã¤ã«ã«æ¸ããã¨ããå
-å®¹ãå¤æ°ã«èç©ãï¼ãã­ã°ã©ã ã®çµäºæï¼output
-# ã¡ã½ãããå¼ã°ããæï¼ã«ãã¡ã¤ã«ã«åºåããï¼æ¢ã«ãã¡ã¤ã«ãå­å¨ãï¼å·®
-# åããªãå ´åã¯åºåããªãï¼ã¿ã¤ã ã¹ã¿ã³ããæ´æ°ããªãï¼ï¼
+# ファイルに書こうとした内容を変数に蓄積し，プログラムの終了時（output
+# メソッドが呼ばれた時）にファイルに出力する．既にファイルが存在し，差
+# 分がない場合は出力しない（タイムスタンプを更新しない）．
 #
 class GenFile
@@ -75,20 +59,20 @@
   end
 
-  # ãã¡ã¤ã«ãã¼ã¿ã®æ«å°¾ã«æå­åãè¿½å ãã
+  # ファイルデータの末尾に文字列を追加する
   def append(code = "")
     @@fileDataHash[@selfFileName] << code
   end
 
-  # ãã¡ã¤ã«ãã¼ã¿ã«1è¡è¿½å ãã
+  # ファイルデータに1行追加する
   def add(code = "")
     @@fileDataHash[@selfFileName] << code << "\n"
   end
 
-  # ãã¡ã¤ã«ãã¼ã¿ã«1è¡è¿½å ãã(æ¹è¡2å)
+  # ファイルデータに1行追加する(改行2回)
   def add2(code = "")
     add(code + "\n")
   end
 
-  # ã³ã¡ã³ãããããè¿½å ãã
+  # コメントヘッダを追加する
   def comment_header(comment)
     add("/*")
@@ -99,15 +83,14 @@
   end
 
-  # ãã¡ã¤ã«ãã¼ã¿ãè¡¨ç¤ºãã
+  # ファイルデータを表示する
   def print()
     puts(@@fileDataHash[@selfFileName])
   end
 
-  # å
-¨ãã¡ã¤ã«ãåºåãã
+  # 全ファイルを出力する
   def self.output()
     @@fileDataHash.each do |fileName, fileData|
-      # æ¢ã«ãã¡ã¤ã«ãå­å¨ãï¼å·®åããªãå ´åã¯åºåããªã
-      #ï¼ã¿ã¤ã ã¹ã¿ã³ããæ´æ°ããªãï¼
+      # 既にファイルが存在し，差分がない場合は出力しない
+      #（タイムスタンプを更新しない）
       if File.exist?(fileName)
         if fileData == File.read(fileName)
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/SRecord.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/SRecord.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/SRecord.rb	(revision 321)
@@ -7,63 +7,47 @@
 #  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
 #
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 #
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 #
-#  $Id: SRecord.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#  $Id$
 #
 
 #
-#		Sã¬ã³ã¼ããã¡ã¤ã«å¦çã¯ã©ã¹
+#		Sレコードファイル処理クラス
 #
 
 #
-# Sã¬ã³ã¼ããã¡ã¤ã«ãå¤æ°ã«èª­ã¿è¾¼ã¿ï¼è¦æ±ãããçªå°ã®ãã¼ã¿ãè¿ãï¼
+# Sレコードファイルを変数に読み込み，要求された番地のデータを返す．
 #
-# @sRecDataã¯ï¼å
-é ­çªå°ãã­ã¼ã¨ãï¼ããããã®ãã¼ã¿ï¼ãã­ãµãã³ãå½¢å¼ï¼
-# ãå¤ã¨ãã­ãã¯ãæ ¼ç´ãããããã·ã¥ã§ããï¼é£ç¶ãããã­ãã¯ã¯ï¼1ã¤ã®ã
-# ã­ãã¯ã«ã¾ã¨ãã¦æ ¼ç´ãããã®ã¨ããï¼ããããªãã¨ï¼ãã¼ã¿ã®ååºãããµã¼
-# ããé¢åã«ãªãï¼ï¼
+# @sRecDataは，先頭番地をキーとし，そこからのデータ（ヘキサダンプ形式）
+# を値とブロックが格納されたハッシュである．連続するブロックは，1つのブ
+# ロックにまとめて格納するものとする（そうしないと，データの取出しやサー
+# チが面倒になる）．
 #
 class SRecord
@@ -74,32 +58,32 @@
       prevData = ""
       file.each do |line|
-        # ãã¼ã¿ã¬ã³ã¼ãã«ããåå²
+        # データレコードにより分岐
         case line.slice(0, 2)
         when "S1"
-          # ãã¼ã¿é·ï¼ã¢ãã¬ã¹å[2byte]+ãã§ãã¯ãµã å1byteãæ¸ç®ï¼
+          # データ長（アドレス分[2byte]+チェックサム分1byteを減算）
           length = line.slice(2, 2).hex - 2 - 1
 
-          # ã¢ãã¬ã¹ï¼4æå­=2byteï¼
+          # アドレス（4文字=2byte）
           address = line.slice(4, 4).hex
 
-          # ãã¼ã¿ï¼ãã®æç¹ã§ã¯æå­åã§åã£ã¦ããï¼
+          # データ（この時点では文字列で取っておく）
           data = line.slice(8, length * 2)
         when "S2"
-          # ãã¼ã¿é·ï¼ã¢ãã¬ã¹å[3byte]+ãã§ãã¯ãµã å1byteãæ¸ç®ï¼
+          # データ長（アドレス分[3byte]+チェックサム分1byteを減算）
           length = line.slice(2, 2).hex - 3 - 1
 
-          # ã¢ãã¬ã¹ï¼6æå­=3byteï¼
+          # アドレス（6文字=3byte）
           address = line.slice(4, 6).hex
 
-          # ãã¼ã¿ï¼ãã®æç¹ã§ã¯æå­åã§åã£ã¦ããï¼
+          # データ（この時点では文字列で取っておく）
           data = line.slice(10, length * 2)
         when "S3"
-          # ãã¼ã¿é·ï¼ã¢ãã¬ã¹å[4byte]+ãã§ãã¯ãµã å1byteãæ¸ç®ï¼
+          # データ長（アドレス分[4byte]+チェックサム分1byteを減算）
           length = line.slice(2, 2).hex - 4 - 1
 
-          # ã¢ãã¬ã¹ï¼8æå­=4byteï¼
+          # アドレス（8文字=4byte）
           address = line.slice(4, 8).hex
 
-          # ãã¼ã¿ï¼ãã®æç¹ã§ã¯æå­åã§åã£ã¦ããï¼
+          # データ（この時点では文字列で取っておく）
           data = line.slice(12, length * 2)
         else
@@ -108,5 +92,5 @@
 
         if !address.nil?
-          # ãã¼ã¿ãæ ¼ç´ãã
+          # データを格納する
           if address == prevAddress + prevData.size / 2
             prevData << data
@@ -122,5 +106,5 @@
   end
 
-  # ãã¼ã¿åå¾
+  # データ取得
   def get_data(address, size)
     endAddress = address + size
@@ -134,5 +118,5 @@
   end
 
-  # ãã¼ã¿æ¸è¾¼ã¿
+  # データ書込み
   def set_data(address, data)
     endAddress = address + data.size / 2
@@ -141,15 +125,13 @@
 
       if nEndBlock < address || endAddress < block
-        # éãªãããªã
+        # 重なりがない
       elsif address < block
-        # æ°è¦ãã¼ã¿ã®æ¹ãå
-é ­çªå°ãå°ãã
-        # ããã§ã¯ endAddress >= block ãæç«ãã¦ãã
+        # 新規データの方が先頭番地が小さい
+        # ここでは endAddress >= block が成立している
         offset = (endAddress - block) * 2
         data << blockData[offset..-1]
         @sRecData.delete(block)
       else
-        # ç»é²æ¸ã¿ãã¼ã¿ã®æ¹ãå
-é ­çªå°ãå°ãããåã
+        # 登録済みデータの方が先頭番地が小さいか同じ
         offset = (address - block) * 2
         address = block
@@ -162,5 +144,5 @@
   end
 
-  # å¤ã¨ãã¦ã®ãã¼ã¿åå¾
+  # 値としてのデータ取得
   def get_value(address, size, signed)
     targetData = get_data(address, size)
@@ -169,7 +151,7 @@
     else
       if $endianLittle
-        # ãªãã«ã¨ã³ãã£ã¢ã³ã®å ´åï¼ãã¤ããªã¼ãã¼ãéã«ãã
+        # リトルエンディアンの場合，バイトオーダーを逆にする
         reverseData = ""
-        # å¾ããã2æå­ãã¤æãåºãï¼ä¸¦ã³æ¿ãã
+        # 後ろから2文字ずつ抜き出し，並び替える
         while targetData.size > 0
           reverseData << targetData[-2, 2]
@@ -181,5 +163,5 @@
       end
 
-      # è² ã®æ°ã®å¦ç
+      # 負の数の処理
       if signed && (returnData & (1 << (size * 8 - 1))) != 0
         returnData -= (1 << (size * 8))
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/cfg.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/cfg.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/cfg.rb	(revision 321)
@@ -8,49 +8,34 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 #
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
-#
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
-#
-#  $Id: cfg.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id$
 #
 
@@ -68,11 +53,10 @@
 
 #
-#  å®æ°å®ç¾©
-#
-# å
-±é
+#  定数定義
+#
+# 共通
 VERSION = "1.2.2"
 
-# cfg1_outé¢ä¿
+# cfg1_out関係
 CFG1_PREFIX        = "TOPPERS_cfg_"
 CFG1_MAGIC_NUM     = "TOPPERS_magic_number"
@@ -85,19 +69,19 @@
 CFG1_OUT_TARGET_H  = "target_cfg1_out.h"
 
-# cfg2_outé¢ä¿
+# cfg2_out関係
 CFG2_OUT_DB        = "cfg2_out.db"
 
-# cfg3_outé¢ä¿
+# cfg3_out関係
 CFG3_OUT_DB        = "cfg3_out.db"
 
 #
-#  ã¨ã©ã¼çºçæç¡ãã©ã°
+#  エラー発生有無フラグ
 #
 $errorFlag = false
 
 #
-#  ã¨ã©ã¼ï¼è­¦åè¡¨ç¤ºé¢æ°
-#
-# ä¸è¬çãªã¨ã©ã¼è¡¨ç¤ºï¼å¦çãä¸­æ­ï¼
+#  エラー／警告表示関数
+#
+# 一般的なエラー表示（処理を中断）
 def error_exit(message, location = "")
   location += " " if location != ""
@@ -105,5 +89,5 @@
 end
 
-# ä¸è¬çãªã¨ã©ã¼è¡¨ç¤ºï¼å¦çãç¶ç¶ï¼
+# 一般的なエラー表示（処理を継続）
 def error(message, location = "")
   location += " " if location != ""
@@ -112,5 +96,5 @@
 end
 
-# ä¸è¬çãªè­¦åè¡¨ç¤º
+# 一般的な警告表示
 def warning(message, location = "")
   location += " " if location != ""
@@ -118,5 +102,5 @@
 end
 
-# ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®æ§æè§£ææã®ã¨ã©ã¼
+# システムコンフィギュレーションファイルの構文解析時のエラー
 $noParseError = 0
 def parse_error(cfgFile, message)
@@ -127,5 +111,5 @@
 end
 
-# ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®æ§æè§£ææã®è­¦å
+# システムコンフィギュレーションファイルの構文解析時の警告
 def parse_warning(cfgFile, message)
   warning(message, "#{cfgFile.getFileName()}:#{cfgFile.getLineNo}:")
@@ -133,12 +117,12 @@
 
 #
-#  éçAPIå¦çæã®ã¨ã©ã¼ï¼è­¦åè¡¨ç¤ºé¢æ°
-#
-# éçAPIå¦çæã®ã¨ã©ã¼ï¼è­¦åãç­ãè¨è¿°ã§ããããã«ï¼ã¡ãã»ã¼ã¸ä¸­ã®%ã¾
-# ãã¯%%ã§å§ã¾ãè¨è¿°ãä»¥ä¸ã®ããã«å±éããï¼
-#	%label â #{params[:label]}
-#	%%label â label `#{params[:label]}'
-#
-# ã¨ã©ã¼ï¼è­¦åã¡ãã»ã¼ã¸ã®å±é
+#  静的API処理時のエラー／警告表示関数
+#
+# 静的API処理時のエラー／警告を短く記述できるように，メッセージ中の%ま
+# たは%%で始まる記述を以下のように展開する．
+#	%label → #{params[:label]}
+#	%%label → label `#{params[:label]}'
+#
+# エラー／警告メッセージの展開
 def expand_message(message, params)
   result = message.dup
@@ -156,5 +140,5 @@
 end
 
-# éçAPIå¦çæã®ã¨ã©ã¼
+# 静的API処理時のエラー
 def error_api(params, message)
   error(expand_message(message, params), \
@@ -162,5 +146,5 @@
 end
 
-# éçAPIå¦çæã®è­¦å
+# 静的API処理時の警告
 def warning_api(params, message)
   warning(expand_message(message, params), \
@@ -168,15 +152,15 @@
 end
 
-# éçAPIå¦çæã®ã¨ã©ã¼ï¼ã¨ã©ã¼ã³ã¼ãä»ãï¼
+# 静的API処理時のエラー（エラーコード付き）
 def error_ercd(errorCode, params, message)
   error_api(params, "#{errorCode}: #{message}")
 end
 
-# éçAPIå¦çæã®è­¦åï¼ã¨ã©ã¼ã³ã¼ãä»ãï¼
+# 静的API処理時の警告（エラーコード付き）
 def warning_ercd(errorCode, params, message)
   warning_api(params, "#{errorCode}: #{message}")
 end
 
-# ãã©ã¡ã¼ã¿ã®ã¨ã©ã¼
+# パラメータのエラー
 def error_wrong(errorCode, params, symbol, wrong)
   error_ercd(errorCode, params, "%%#{symbol} is #{wrong} in %apiname")
@@ -193,5 +177,5 @@
 end
 
-# ãã©ã¡ã¼ã¿ä¸æ­£ã®ã¨ã©ã¼
+# パラメータ不正のエラー
 def error_illegal(errorCode, params, symbol)
   error_ercd(errorCode, params, "illegal %%#{symbol} in %apiname")
@@ -209,9 +193,9 @@
 
 #
-#  Stringã¯ã©ã¹ã®æ¡å¼µï¼äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®ä½æï¼å±éï¼
+#  Stringクラスの拡張（二重引用符で囲まれた文字列の作成／展開）
 #
 class String
   #
-  #  äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®ä½æ
+  #  二重引用符で囲まれた文字列の作成
   #
   def quote
@@ -249,5 +233,5 @@
 
   #
-  #  äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®å±é
+  #  二重引用符で囲まれた文字列の展開
   #
   def unquote
@@ -299,5 +283,5 @@
 
 #
-#  NumStrã¯ã©ã¹ï¼æ°å¤ã«æå­åãä»å ãããã®ï¼ã®å®ç¾©
+#  NumStrクラス（数値に文字列を付加したもの）の定義
 #
 class NumStr
@@ -307,6 +291,5 @@
   end
 
-  # æ°å¤æ
-å ±ãè¿ã
+  # 数値情報を返す
   def val
     return @val
@@ -314,6 +297,5 @@
   alias_method :to_i, :val
 
-  # æå­åæ
-å ±ãè¿ã
+  # 文字列情報を返す
   def str
     return @str
@@ -321,6 +303,5 @@
   alias_method :to_s, :str
 
-  # æ¯è¼ã¯æ°å¤æ
-å ±ã§è¡ã
+  # 比較は数値情報で行う
   def ==(other)
     @val == other
@@ -333,16 +314,15 @@
   end
 
-  # ããã·ã¥ã®ã­ã¼ã¨ãã¦ä½¿ãæã®æ¯è¼ãæ°å¤æ
-å ±ã§è¡ã
+  # ハッシュのキーとして使う時の比較も数値情報で行う
   def eql?(other)
     @val == other.val
   end
 
-  # ããã·ã¥å¤ã®å®ç¾©ãä¸æ¸ããã
+  # ハッシュ値の定義も上書きする
   def hash
     return @val.hash
   end
 
-  # æ°å¤ã¯ã©ã¹ã¨æ¼ç®ã§ããããã«ãã
+  # 数値クラスと演算できるようにする
   def coerce(other)
     if other.kind_of?(Numeric)
@@ -353,15 +333,15 @@
   end
 
-  # äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®ä½æ
+  # 二重引用符で囲まれた文字列の作成
   def quote
     str.quote
   end
 
-  # äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®å±é
+  # 二重引用符で囲まれた文字列の展開
   def unquote
     str.unquote
   end
 
-  # ppæã®è¡¨ç¤º
+  # pp時の表示
   def pretty_print(q)
     q.text("[#{@val}(=0x#{@val.to_s(16)}),")
@@ -370,5 +350,5 @@
   end
 
-  # æªå®ç¾©ã®ã¡ã½ããã¯@valã«éã
+  # 未定義のメソッドは@valに送る
   def method_missing(*method)
     @val.send(*method)
@@ -377,8 +357,8 @@
 
 #
-#  ã·ã³ãã«ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
-#
-#  ä»¥ä¸ã®ã¡ã½ããã¯ï¼GNUã®nmãçæããã·ã³ãã«ãã¡ã¤ã«ã«å¯¾å¿ãã¦ããï¼
-#  å¥ã®ãã¼ã«ã«å¯¾å¿ããå ´åã«ã¯ï¼ãã®ã¡ã½ãããæ¸ãæããã°ããï¼
+#  シンボルファイルの読み込み
+#
+#  以下のメソッドは，GNUのnmが生成するシンボルファイルに対応している．
+#  別のツールに対応する場合には，このメソッドを書き換えればよい．
 #
 def ReadSymbolFile(symbolFileName)
@@ -391,8 +371,8 @@
   symbolAddress = {}
   symbolFile.each do |line|
-    # ã¹ãã¼ã¹åºåãã§åè§£
+    # スペース区切りで分解
     fields = line.split(/\s+/)
 
-    # 3åã«ãªã£ã¦ããªãè¡ã¯é¤å¤
+    # 3列になっていない行は除外
     if fields.size == 3
       symbolAddress[fields[2]] = fields[0].hex
@@ -404,5 +384,5 @@
 
 #
-#  å¤åå¾ã·ã³ãã«ãã°ã­ã¼ãã«å¤æ°ã¨ãã¦å®ç¾©ãã
+#  値取得シンボルをグローバル変数として定義する
 #
 def DefineSymbolValue
@@ -415,19 +395,19 @@
 
 #
-#  ã¤ã³ã¯ã«ã¼ããã¹ãããã¡ã¤ã«ãæ¢ã
+#  インクルードパスからファイルを探す
 #
 def SearchFilePath(fileName)
   if File.exist?(fileName)
-    # æå®ãããã¡ã¤ã«ãã¹ã«å­å¨ãã
+    # 指定したファイルパスに存在する
     return fileName
   elsif /^\./ =~ fileName
-    # ç¸å¯¾ãã¹ãæå®ãã¦ãã¦è¦ã¤ãããªãã£ãå ´åï¼å­å¨ããªããã®ã¨ãã
-    #ï¼æå³ããªããã¡ã¤ã«ãå¯¾è±¡ã¨ãªããã¨ãé²æ­¢ï¼
+    # 相対パスを指定していて見つからなかった場合，存在しないものとする
+    #（意図しないファイルが対象となることを防止）
     return nil
   else
-    # åã¤ã³ã¯ã«ã¼ããã¹ãããã¡ã¤ã«å­å¨ãã§ãã¯
+    # 各インクルードパスからファイル存在チェック
     $includeDirectories.each do |includeDirectory|
       path = includeDirectory + "/" + fileName
-      # è¦ã¤ãã£ããç¸å¯¾ãã¹ãè¿ã
+      # 見つかったら相対パスを返す
       if File.exist?(path)
         return path
@@ -439,5 +419,5 @@
 
 #
-#  æå®ããçæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãæ¤ç´¢ãã¦loadãã
+#  指定した生成スクリプト（trbファイル）を検索してloadする
 #
 def IncludeTrb(fileName)
@@ -451,10 +431,9 @@
 
 #
-#  ãã¹3ã®å¦ç
+#  パス3の処理
 #
 def Pass3
   #
-  #  ãã¹2ããå¼ãæ¸¡ãããæ
-å ±ããã¡ã¤ã«ããèª­ã¿è¾¼ã
+  #  パス2から引き渡される情報をファイルから読み込む
   #
   db = PStore.new(CFG2_OUT_DB)
@@ -472,10 +451,10 @@
 
   #
-  #  å¤åå¾ã·ã³ãã«ãã°ã­ã¼ãã«å¤æ°ã¨ãã¦å®ç¾©ãã
+  #  値取得シンボルをグローバル変数として定義する
   #
   DefineSymbolValue()
 
   #
-  #  çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãå®è¡ãã
+  #  生成スクリプト（trbファイル）を実行する
   #
   $trbFileNames.each do |trbFileName|
@@ -484,6 +463,5 @@
 
   #
-  #  ãã¹4ã«å¼ãæ¸¡ãæ
-å ±ããã¡ã¤ã«ã«çæ
+  #  パス4に引き渡す情報をファイルに生成
   #
   if $omitOutputDb.nil?
@@ -503,10 +481,9 @@
 
 #
-#  ãã¹4ã®å¦ç
+#  パス4の処理
 #
 def Pass4
   #
-  #  ãã¹3ããå¼ãæ¸¡ãããæ
-å ±ããã¡ã¤ã«ããèª­ã¿è¾¼ã
+  #  パス3から引き渡される情報をファイルから読み込む
   #
   db = PStore.new(CFG3_OUT_DB)
@@ -523,10 +500,10 @@
 
   #
-  #  å¤åå¾ã·ã³ãã«ãã°ã­ã¼ãã«å¤æ°ã¨ãã¦å®ç¾©ãã
+  #  値取得シンボルをグローバル変数として定義する
   #
   DefineSymbolValue()
 
   #
-  #  çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãå®è¡ãã
+  #  生成スクリプト（trbファイル）を実行する
   #
   $trbFileNames.each do |trbFileName|
@@ -536,5 +513,5 @@
 
 #
-#  çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼åãã®é¢æ°
+#  生成スクリプト（trbファイル）向けの関数
 #
 def SYMBOL(symbol)
@@ -564,5 +541,5 @@
 
 #
-#  ã°ã­ã¼ãã«å¤æ°ã®åæå
+#  グローバル変数の初期化
 #
 $kernel = nil
@@ -579,5 +556,5 @@
 
 #
-#  ãªãã·ã§ã³ã®å¦ç
+#  オプションの処理
 #
 OptionParser.new(banner="Usage: cfg.rb [options] CONFIG-FILE", 40) do |opt|
@@ -633,9 +610,8 @@
 
 #
-#  ãªãã·ã§ã³ã®ãã§ãã¯
+#  オプションのチェック
 #
 if $pass.nil?
-  # ãã¹ã®æå®ã¯å¿
-é 
+  # パスの指定は必須
   abort("`--pass' option is mandatory")
 elsif /^[1234]$/ !~ $pass
@@ -643,12 +619,10 @@
 end
 
-# ãã¹1ã§ã¯ï¼éçAPIãã¼ãã«ã¯å¿
-é 
+# パス1では，静的APIテーブルは必須
 if ($pass == "1" && $apiTableFileNames.empty?)
   abort("`--api-table' option must be specified in pass 1")
 end
 
-# ãã¹1ä»¥å¤ã§ã¯ï¼çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãå¿
-é 
+# パス1以外では，生成スクリプト（trbファイル）が必須
 if ($pass != "1" && $trbFileNames.empty?)
   abort("`--trb-file' must be specified except in pass 1")
@@ -656,5 +630,5 @@
 
 #
-#  ã«ã¼ãã«ãªãã·ã§ã³ã®å¦ç
+#  カーネルオプションの処理
 #
 case $kernel
@@ -666,6 +640,5 @@
 
 #
-#  IDçªå·å
-¥åãã¡ã¤ã«ã®åãè¾¼ã¿
+#  ID番号入力ファイルの取り込み
 #
 $inputObjid = {}
@@ -686,5 +659,5 @@
 
 #
-#  æå®ãããã·ã³ãã«ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+#  指定されたシンボルファイルの読み込み
 #
 if !$romSymbolFileName.nil?
@@ -697,5 +670,5 @@
 
 #
-#  æå®ãããSã¬ã³ã¼ããã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+#  指定されたSレコードファイルの読み込み
 #
 if !$romImageFileName.nil?
@@ -708,5 +681,5 @@
 
 #
-#  ãã¹ã«å¾ã£ã¦åå¦çãå®è¡
+#  パスに従って各処理を実行
 #
 case $pass
@@ -725,10 +698,10 @@
 end
 
-# ã¨ã©ã¼çºçæã¯abortãã
+# エラー発生時はabortする
 if $errorFlag
   if ($0 == __FILE__)
     abort()
   else
-    # simplecovå¯¾å¿
+    # simplecov対応
     raise()
   end
@@ -736,10 +709,10 @@
 
 #
-#  ä½æãããã¹ã¦ã®ãã¡ã¤ã«ãåºåãã
+#  作成したすべてのファイルを出力する
 #
 GenFile.output
 
 # 
-#  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®çæ
+#  タイムスタンプファイルの生成
 # 
 if !$timeStampFileName.nil?
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/pass1.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/pass1.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/pass1.rb	(revision 321)
@@ -7,57 +7,42 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 #
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
-#
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
-#
-#  $Id: pass1.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
-#
-
-#
-#		ãã¹1ã®å¦ç
-#
-
-#
-#  å¤åå¾ã·ã³ãã«ãã¼ãã«ã¸ã®åºå®ç»é²
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id$
+#
+
+#
+#		パス1の処理
+#
+
+#
+#  値取得シンボルテーブルへの固定登録
 #
 $symbolValueTable = {
@@ -80,5 +65,5 @@
 
 #
-#  éçAPIãã¼ãã«ã¸ã®åºå®ç»é²
+#  静的APIテーブルへの固定登録
 #
 $apiDefinition = { "INCLUDE" =>
@@ -86,5 +71,5 @@
 
 #
-#  éçAPIãã¼ãã«ã®èª­ã¿è¾¼ã¿
+#  静的APIテーブルの読み込み
 #
 def ReadApiTableFile
@@ -102,9 +87,9 @@
     apiFile = File.open(apiTableFileName)
     apiFile.each do |line|
-      next if /^#/ =~ line			# ã³ã¡ã³ããã¹ã­ãã
-
-      fields = line.split(/\s+/)	# ãã£ã¼ã«ãã«åè§£
-
-      apiName = fields.shift		# APIåã®åãåºã
+      next if /^#/ =~ line			# コメントをスキップ
+
+      fields = line.split(/\s+/)	# フィールドに分解
+
+      apiName = fields.shift		# API名の取り出し
       if /^(.+)\[(.+)\]$/ =~ apiName
         apiName = $1
@@ -127,17 +112,16 @@
 
           case prefix
-          when "#"					# ãªãã¸ã§ã¯ãè­å¥åï¼å®ç¾©ï¼
+          when "#"					# オブジェクト識別名（定義）
             apiParam[:ID_DEF] = true
-          when "%"					# ãªãã¸ã§ã¯ãè­å¥åï¼åç
-§ï¼
+          when "%"					# オブジェクト識別名（参照）
             apiParam[:ID_REF] = true
-          when "."					# ç¬¦å·ç¡ãæ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+          when "."					# 符号無し整数定数式パラメータ
             apiParam[:EXPTYPE] = "unsigned_t"
-          when "+"					# ç¬¦å·ä»ãæ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+          when "+"					# 符号付き整数定数式パラメータ
             apiParam[:EXPTYPE] = "signed_t"
             apiParam[:SIGNED] = true
-          when "&"					# ä¸è¬æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+          when "&"					# 一般整数定数式パラメータ
             # do nothing
-          when "$"					# æå­åå®æ°å¼ãã©ã¡ã¼ã¿
+          when "$"					# 文字列定数式パラメータ
             apiParam[:STRING] = true
           else
@@ -146,9 +130,9 @@
 
           case postfix
-          when "*"					# ã­ã¼ãæ±ºãããã©ã¡ã¼ã¿
+          when "*"					# キーを決めるパラメータ
             apiDef[:KEYPAR] = name
-          when "?"					# ãªãã·ã§ã³ãã©ã¡ã¼ã¿
+          when "?"					# オプションパラメータ
             apiParam[:OPTIONAL] = true
-          when "\.\.\."				# ãªã¹ããã©ã¡ã¼ã¿
+          when "\.\.\."				# リストパラメータ
             apiParam[:LIST] = true
           end
@@ -175,5 +159,5 @@
 
 #
-#  å¤åå¾ã·ã³ãã«ãã¼ãã«ã®èª­ã¿è¾¼ã¿
+#  値取得シンボルテーブルの読み込み
 #
 def ReadSymvalTable
@@ -186,5 +170,5 @@
     symvalCsv = CSV.open(symvalTableFileName)
     symvalCsv.each do |record|
-      # å¤æ°å
+      # 変数名
       if record[0].nil?
         error_exit("invalid variable name in `#{fileName}'")
@@ -194,5 +178,5 @@
       variable = record[0]
 
-      # å¼
+      # 式
       if record[1].nil? || record[1].empty?
         symbol[:EXPR] = variable
@@ -201,22 +185,22 @@
       end
 
-      # å¼ã®å
+      # 式の型
       if !record[2].nil? && !record[2].empty?
         case record[2]
-        when /^[bB]/				# çå½å¤
+        when /^[bB]/				# 真偽値
           symbol[:BOOL] = true
-        when /^[uU]/				# ç¬¦å·ç¡ãæ´æ°å¤
-          # ä½ãè¨­å®ããªã
-        else						# ç¬¦å·ä»ãæ´æ°å¤
+        when /^[uU]/				# 符号無し整数値
+          # 何も設定しない
+        else						# 符号付き整数値
           symbol[:SIGNED] = true
         end
       end
 
-      # ã³ã³ãã¤ã«æ¡ä»¶
+      # コンパイル条件
       if !record[3].nil? && !record[3].empty?
         symbol[:CONDITION] = record[3]
       end
 
-      # æ¡ä»¶ãæç«ããªãæã®å¼
+      # 条件が成立しない時の式
       if !record[4].nil? && !record[4].empty?
         symbol[:ELSE_EXPR] = record[4]
@@ -230,5 +214,5 @@
 
 #
-#  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ããã®èª­ã¿è¾¼ã¿ã¯ã©ã¹
+#  システムコンフィギュレーションファイルからの読み込みクラス
 #
 class ConfigFile
@@ -256,6 +240,6 @@
     if @withinComment
       case line
-      when /\*\//						# Cè¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ãçµäº
-        line.sub!(/^.*?\*\//, "")		# æåã®*/ã«ãããããã */
+      when /\*\//						# C言語スタイルのコメント終了
+        line.sub!(/^.*?\*\//, "")		# 最初の*/にマッチさせる */
         @withinComment = false
       else
@@ -264,8 +248,8 @@
     end
     if !@withinComment
-      line.gsub!(/\/\*.*?\*\//, "")		# Cè¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ãã®é¤å»
-										# æåã®*/ã«ãããããã */
+      line.gsub!(/\/\*.*?\*\//, "")		# C言語スタイルのコメントの除去
+										# 最初の*/にマッチさせる */
       case line
-      when /^\s*#/						# ããªãã­ã»ããµãã£ã¬ã¯ãã£ã
+      when /^\s*#/						# プリプロセッサディレクティブ
         if withinApi
           parse_error(self, \
@@ -273,8 +257,8 @@
           line = ""
         end
-      when /\/\*/						# Cè¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ãéå§
+      when /\/\*/						# C言語スタイルのコメント開始
         line.sub!(/\/\*.*$/, "")
         @withinComment = true
-      when /\/\//						# C++è¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ã
+      when /\/\//						# C++言語スタイルのコメント
         line.sub!(/\/\/.*$/, "")
       end
@@ -293,5 +277,5 @@
 
 #
-#  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ãã¼ãµã¼ã¯ã©ã¹
+#  システムコンフィギュレーションファイルのパーサークラス
 #
 class CfgParser
@@ -303,9 +287,9 @@
   def initialize
     @line = ""
-    @skipComma = false						# æ¬¡ã,ã§ããã°èª­ã¿é£ã°ã
-  end
-
-  #
-  #  æå­åæ«ã¾ã§èª­ã
+    @skipComma = false						# 次が,であれば読み飛ばす
+  end
+
+  #
+  #  文字列末まで読む
   #
   def parseString(cfgFile)
@@ -313,15 +297,15 @@
     begin
       case @line
-      when /^([^"]*\\\\)(.*)$/				# \\ã¾ã§èª­ã
+      when /^([^"]*\\\\)(.*)$/				# \\まで読む
         string += $1
         @line = $2
-      when /^([^"]*\\\")(.*)$/				# \"ã¾ã§èª­ã
+      when /^([^"]*\\\")(.*)$/				# \"まで読む
         string += $1
         @line = $2
-      when /^([^"]*\")(.*)$/				# "ã¾ã§èª­ã
+      when /^([^"]*\")(.*)$/				# "まで読む
         string += $1
         @line = $2
         return(string)
-      else									# è¡æ«ã¾ã§èª­ã
+      else									# 行末まで読む
         string += @line + "\n"
         @line = cfgFile.getNextLine(true)
@@ -333,5 +317,5 @@
 
   #
-  #  æå­æ«ã¾ã§èª­ã
+  #  文字末まで読む
   #
   def parseChar(cfgFile)
@@ -339,15 +323,15 @@
     begin
       case @line
-      when /^([^']*\\\\)(.*)$/				# \\ã¾ã§èª­ã
+      when /^([^']*\\\\)(.*)$/				# \\まで読む
         string += $1
         @line = $2
-      when /^([^']*\\\')(.*)$/				# \'ã¾ã§èª­ã
+      when /^([^']*\\\')(.*)$/				# \'まで読む
         string += $1
         @line = $2
-      when /^([^']*\')(.*)$/				# 'ã¾ã§èª­ã
+      when /^([^']*\')(.*)$/				# 'まで読む
         string += $1
         @line = $2
         return(string)
-      else									# è¡æ«ã¾ã§èª­ã
+      else									# 行末まで読む
         string += @line + "\n"
         @line = cfgFile.getNextLine(true)
@@ -359,22 +343,21 @@
 
   #
-  #  æ¹è¡ã¨ç©ºç½æå­ãèª­ã¿é£ã°ã
+  #  改行と空白文字を読み飛ばす
   #
   def skipSpace(cfgFile, withinApi)
     loop do
-      return if @line.nil?						# ãã¡ã¤ã«æ«ã§ããã°ãªã¿ã¼ã³
-      @line.lstrip!								# å
-é ­ã®ç©ºç½ãåé¤
-      return if @line != ""						# ç©ºè¡ã§ãªããã°ãªã¿ã¼ã³
-      @line = cfgFile.getNextLine(withinApi)	# æ¬¡ã®è¡ãèª­ã
-    end
-  end
-
-  #
-  #  æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+      return if @line.nil?						# ファイル末であればリターン
+      @line.lstrip!								# 先頭の空白を削除
+      return if @line != ""						# 空行でなければリターン
+      @line = cfgFile.getNextLine(withinApi)	# 次の行を読む
+    end
+  end
+
+  #
+  #  次の文字まで読み飛ばす
   #
   def skipToToken(cfgFile, withinApi=true)
     skipSpace(cfgFile, withinApi)
-    if @line.nil?							# ãã¡ã¤ã«æ«ã§ããã°ã¨ã©ã¼çµäº
+    if @line.nil?							# ファイル末であればエラー終了
       error_exit("unexpexced end-of-file")
     end
@@ -382,18 +365,17 @@
 
   #
-  #  ãã©ã¡ã¼ã¿ã1ã¤èª­ã
-  #
-  # @lineã®å
-é ­ãããã©ã¡ã¼ã¿ã1ã¤èª­ãã§ï¼ãããæå­åã§è¿ãï¼èª­ãã ã
-  # ã©ã¡ã¼ã¿ã¯ï¼@lineããã¯åé¤ããï¼ãã©ã¡ã¼ã¿ã®éä¸­ã§è¡æ«ã«éããæã¯ï¼
-  # cfgFileããæ¬¡ã®è¡ãåãåºãï¼ãã¡ã¤ã«æ«ã«éããæã¯ï¼nilãè¿ãï¼
+  #  パラメータを1つ読む
+  #
+  # @lineの先頭からパラメータを1つ読んで，それを文字列で返す．読んだパ
+  # ラメータは，@lineからは削除する．パラメータの途中で行末に達した時は，
+  # cfgFileから次の行を取り出す．ファイル末に達した時は，nilを返す．
   #
   def parseParam(cfgFile)
-    param = ""								# èª­ãã æå­å
-    parenLevel = 0							# æ¬å¼§ã®ãã¹ãã¬ãã«
+    param = ""								# 読んだ文字列
+    parenLevel = 0							# 括弧のネストレベル
     skipComma = @skipComma
     @skipComma = false
 
-    skipToToken(cfgFile)					# æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+    skipToToken(cfgFile)					# 次の文字まで読み飛ばす
     begin
       if parenLevel == 0
@@ -403,5 +385,5 @@
           if param == "" && skipComma
             skipComma = false
-            return(parseParam(cfgFile))		# åå¸°å¼ã³åºã
+            return(parseParam(cfgFile))		# 再帰呼び出し
           else
             return(param.strip)
@@ -418,5 +400,5 @@
           @line = $2
           parenLevel += 1
-        when /^(\s*([)}]))(.*)$/			# }ã)
+        when /^(\s*([)}]))(.*)$/			# }か)
           if param != ""
             return(param.strip)
@@ -432,14 +414,13 @@
           @line = $2
           param += $1 + parseChar(cfgFile)
-        when /^(\s*[^,{}()"'\s]+)(.*)$/		# ãã®ä»ã®æå­å
+        when /^(\s*[^,{}()"'\s]+)(.*)$/		# その他の文字列
           param += $1
           @line = $2
-        else								# è¡æ«
+        else								# 行末
           param += " "
           @line = cfgFile.getNextLine(true)
         end
       else
-        # æ¬å¼§å
-ã®å¦ç
+        # 括弧内の処理
         case @line
         when /^(\s*\()(.*)$/				# "("
@@ -457,8 +438,8 @@
           @line = $2
           param += $1 + parseChar(cfgFile)
-        when /^(\s*[^()"'\s]+)(.*)$/		# ãã®ä»ã®æå­å
+        when /^(\s*[^()"'\s]+)(.*)$/		# その他の文字列
           param += $1
           @line = $2
-        else								# è¡æ«
+        else								# 行末
           param += " "
           @line = cfgFile.getNextLine(true)
@@ -492,10 +473,10 @@
 
   def parseApi(cfgFile, apiName)
-    # éçAPIã®èª­ã¿è¾¼ã¿
+    # 静的APIの読み込み
     staticApi = {}
     tooFewParams = false
     skipUntilBrace = 0
 
-    skipToToken(cfgFile)					# æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+    skipToToken(cfgFile)					# 次の文字まで読み飛ばす
     if (/^\((.*)$/ =~ @line)
       @line = $1
@@ -508,8 +489,8 @@
 
       apiDef[:PARAM].each do |apiParam|
-        return(staticApi) if param.nil?		# ãã¡ã¤ã«æ«ã§ããã°ãªã¿ã¼ã³
+        return(staticApi) if param.nil?		# ファイル末であればリターン
 
         if skipUntilBrace > 0
-          # APIå®ç¾©ã}ã¾ã§ã¹ã­ããä¸­
+          # API定義を}までスキップ中
           if apiParam.has_key?(:BRACE)
             case apiParam[:BRACE]
@@ -533,18 +514,18 @@
             staticApi[apiParam[:NAME]].push(getParam(apiParam, param, cfgFile))
             param = parseParam(cfgFile)
-            break if param.nil?				# ãã¡ã¤ã«æ«ã®å ´å
+            break if param.nil?				# ファイル末の場合
           end
         elsif apiParam.has_key?(:OPTBRACE)
           if param == apiParam[:BRACE]
             param = parseParam(cfgFile)
-            break if param.nil?				# ãã¡ã¤ã«æ«ã®å ´å
+            break if param.nil?				# ファイル末の場合
           else
             if param == ""
               param = parseParam(cfgFile)
-              break if param.nil?			# ãã¡ã¤ã«æ«ã®å ´å
+              break if param.nil?			# ファイル末の場合
             elsif /^([})])$/ !~ param
               parse_error(cfgFile, "`{...}' expected before #{param}")
             end
-            skipUntilBrace += 1          	# APIå®ç¾©ã}ã¾ã§ã¹ã­ãã
+            skipUntilBrace += 1          	# API定義を}までスキップ
           end
         elsif !apiParam.has_key?(:BRACE)
@@ -561,5 +542,5 @@
         else
           parse_error(cfgFile, "`#{apiParam[:BRACE]}' expected before #{param}")
-          # )ããã¡ã¤ã«æ«ã¾ã§èª­ã¿é£ã°ã
+          # )かファイル末まで読み飛ばす
           loop do
             param = parseParam(cfgFile)
@@ -570,10 +551,9 @@
       end
 
-      # æå¾
-ããããã©ã¡ã¼ã¿ããã¹ã¦èª­ãã å¾ã®å¦ç
+      # 期待されるパラメータをすべて読んだ後の処理
       if param != ")"
         begin
           param = parseParam(cfgFile)
-          return(staticApi) if param.nil?	# ãã¡ã¤ã«æ«ã§ããã°ãªã¿ã¼ã³
+          return(staticApi) if param.nil?	# ファイル末であればリターン
         end while param != ")"
         parse_error(cfgFile, "too many parameters before `)'")
@@ -587,6 +567,6 @@
 
   def parseOpenBrace(cfgFile)
-    # {ã®èª­ã¿è¾¼ã¿
-    skipToToken(cfgFile)					# æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+    # {の読み込み
+    skipToToken(cfgFile)					# 次の文字まで読み飛ばす
     if (/^\{(.*)$/ =~ @line)
       @line = $1
@@ -602,19 +582,18 @@
       cfgFile = cfgFiles.last
 
-      skipSpace(cfgFile, false)				# æ¹è¡ã¨ç©ºç½æå­ãèª­ã¿é£ã°ã
+      skipSpace(cfgFile, false)				# 改行と空白文字を読み飛ばす
       if @line.nil?
-        # ãã¡ã¤ã«æ«ã®å¦ç
+        # ファイル末の処理
         cfgFiles.pop.close
         if cfgFiles.empty?
-          break								# ãã¼ã¹å¦ççµäº
+          break								# パース処理終了
         else
-          @line = ""						# å
-ã®ãã¡ã¤ã«ã«æ»ã£ã¦ç¶ãã
+          @line = ""						# 元のファイルに戻って続ける
         end
       elsif /^;(.*)$/ =~ @line
-        # ;ã¯èª­ã¿é£ã°ã
+        # ;は読み飛ばす
         @line = $1
       elsif /^#/ =~ @line
-        # ããªãã­ã»ããµãã£ã¬ã¯ãã£ããèª­ã
+        # プリプロセッサディレクティブを読む
         case @line
         when /^#include\b(.*)$/
@@ -655,6 +634,5 @@
             if !$domainId.has_key?(domid)
               if $inputObjid.has_key?(domid)
-                # IDçªå·å
-¥åãã¡ã¤ã«ã«å®ç¾©ããã¦ããå ´å
+                # ID番号入力ファイルに定義されていた場合
                 $domainId[domid] = $inputObjid[domid]
                 if $domainId[domid] > 32
@@ -683,10 +661,10 @@
         else
           if $apiDefinition.has_key?(apiName)
-            # éçAPIã1ã¤èª­ã
+            # 静的APIを1つ読む
             staticApi = parseApi(cfgFile, apiName)
             if staticApi.empty?
-              # ãã¡ã¤ã«æ«ãææ³ã¨ã©ã¼
+              # ファイル末か文法エラー
             elsif (staticApi[:APINAME] == "INCLUDE")
-              # INCLUDEã®å¦ç
+              # INCLUDEの処理
               includeFilePath = SearchFilePath(staticApi[:file])
               if includeFilePath.nil?
@@ -697,5 +675,5 @@
               end
             else
-              # éçAPIã®å¦ç
+              # 静的APIの処理
               if !@@currentDomain.nil?
                 staticApi[:DOMAIN] = @@currentDomain
@@ -714,5 +692,5 @@
         end
       elsif (/^\}(.*)$/ =~ @line)
-        # }ã®å¦ç
+        # }の処理
         if @@nestDC.size > 0
           case @@nestDC.pop
@@ -735,9 +713,9 @@
 
 #
-#  cfg1_out.cã®çæ
+#  cfg1_out.cの生成
 #
 module Cfg1OutC
   #
-  #  éçAPIã®ãã¡ã¤ã«åã¨è¡çªå·ã®åºå
+  #  静的APIのファイル名と行番号の出力
   #
   def self.OutLineNumber(cfgInfo)
@@ -746,5 +724,5 @@
 
   #
-  #  ã¯ã©ã¹è¨è¿°ã®ãã¡ã¤ã«åã¨è¡çªå·ã®åºå
+  #  クラス記述のファイル名と行番号の出力
   #
   def self.OutClassLineNumber(cfgInfo)
@@ -753,5 +731,5 @@
 
   #
-  #  ãã©ã¡ã¼ã¿ã«é¢ããå®ç¾©ã®åºå
+  #  パラメータに関する定義の出力
   #
   def self.OutParamDef(param, index, apiParam, cfgInfo)
@@ -767,5 +745,5 @@
 
   #
-  #  cfg1_out.cã®çæï¼ã¡ã¤ã³ã®å¦çï¼
+  #  cfg1_out.cの生成（メインの処理）
   #
   def self.Generate
@@ -778,5 +756,5 @@
 EOS
 
-    # ã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«
+    # インクルードヘッダファイル
     $includeFiles.each do |file|
       @cfg1Out.add("#include #{file}")
@@ -800,5 +778,5 @@
 EOS
 
-    # å¤åå¾ã·ã³ãã«ã®å¦ç
+    # 値取得シンボルの処理
     $symbolValueTable.each do |symbolName, symbolData|
       if symbolData.has_key?(:BOOL) || symbolData.has_key?(:SIGNED)
@@ -823,5 +801,5 @@
     @cfg1Out.add
 
-    # ãã¡ã¤ã³IDã®å®ç¾©ã®çæ
+    # ドメインIDの定義の生成
     $domainId.each do |domainName, domainVal|
       if domainVal > 0
@@ -831,5 +809,5 @@
     @cfg1Out.add
 
-    # éçAPIï¼ããªãã­ã»ããµãã£ã¬ã¯ãã£ãã®å¦ç
+    # 静的API／プリプロセッサディレクティブの処理
     $cfgFileInfo.each do |cfgInfo|
       if cfgInfo.has_key?(:DIRECTIVE)
@@ -844,5 +822,5 @@
           next unless apiParam.has_key?(:NAME)
           paramName = apiParam[:NAME]
-          next unless cfgInfo.has_key?(paramName)	# ãã©ã¡ã¼ã¿ããªãå ´å
+          next unless cfgInfo.has_key?(paramName)	# パラメータがない場合
           paramData = cfgInfo[paramName]
 
@@ -856,5 +834,5 @@
         end
         if cfgInfo.has_key?(:CLASS)
-          # ã¯ã©ã¹IDã®åå¾ã®ããã®å¦ç
+          # クラスIDの取得のための処理
           OutClassLineNumber(cfgInfo)
           @cfg1Out.add("const signed_t #{CFG1_PREFIX}valueof_CLASS_" \
@@ -868,24 +846,24 @@
 
 #
-#  ãã¹1ã®å¦ç
+#  パス1の処理
 #
 def Pass1
   # 
-  #  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®
+  #  タイムスタンプファイルの指定
   # 
   $timeStampFileName = CFG1_OUT_TIMESTAMP
 
   #
-  #  éçAPIãã¼ãã«ã®èª­ã¿è¾¼ã¿
+  #  静的APIテーブルの読み込み
   #
   ReadApiTableFile()
 
   #
-  #  å¤åå¾ã·ã³ãã«ãã¼ãã«ã®èª­ã¿è¾¼ã¿
+  #  値取得シンボルテーブルの読み込み
   #
   ReadSymvalTable()
 
   #
-  #  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+  #  システムコンフィギュレーションファイルの読み込み
   #
   $cfgFileInfo = []
@@ -896,8 +874,8 @@
     CfgParser.new.parseFile(configFileName)
   end
-  abort if $errorFlag					# ã¨ã©ã¼çºçæã¯abortãã
-
-  #
-  #  ãã¡ã¤ã³IDã®å²å½ã¦å¦ç
+  abort if $errorFlag					# エラー発生時はabortする
+
+  #
+  #  ドメインIDの割当て処理
   #
   nextDomainId = 1
@@ -916,10 +894,10 @@
 
   #
-  #  cfg1_out.cã®çæ
+  #  cfg1_out.cの生成
   #
   Cfg1OutC::Generate()
 
   #
-  #  ä¾å­é¢ä¿ã®åºå
+  #  依存関係の出力
   #
   if !$dependencyFileName.nil?
@@ -946,6 +924,5 @@
 
   #
-  #  ãã¹2ã«å¼ãæ¸¡ãæ
-å ±ããã¡ã¤ã«ã«çæ
+  #  パス2に引き渡す情報をファイルに生成
   #
   if $omitOutputDb.nil?
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/pass2.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/pass2.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/pass2.rb	(revision 321)
@@ -7,61 +7,46 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 #
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
-#
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
-#
-#  $Id: pass2.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
-#
-
-#
-#		ãã¹2ã®å¦ç
-#
-
-#
-#  ãã¹1ã®çæç©ã®èª­ã¿è¾¼ã¿
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+#
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+#
+#  $Id$
+#
+
+#
+#		パス2の処理
+#
+
+#
+#  パス1の生成物の読み込み
 #
 module Cfg1Out
   #
-  #  Sã¬ã³ã¼ããã¡ã¤ã«ããã·ã³ãã«ã®å¤ãåãåºã
+  #  Sレコードファイルからシンボルの値を取り出す
   #
   def self.GetSymbolValue(symbol, size, signed)
@@ -74,11 +59,11 @@
 
   #
-  #  ãã¹1ã®çæç©ã®èª­ã¿è¾¼ã¿ï¼ã¡ã¤ã³ã®å¦çï¼
+  #  パス1の生成物の読み込み（メインの処理）
   #
   def self.Read
-    # cfg1_out.symsã®èª­ã¿è¾¼ã¿
+    # cfg1_out.symsの読み込み
     @symbolAddress = ReadSymbolFile(CFG1_OUT_SYMS)
 
-    # cfg1_out.srecã®èª­ã¿è¾¼ã¿
+    # cfg1_out.srecの読み込み
     begin
       @cfg1SRec = SRecord.new(CFG1_OUT_SREC)
@@ -87,5 +72,5 @@
     end
 
-    # ãã¸ãã¯ãã³ãã¼ã®åå¾
+    # マジックナンバーの取得
     if @symbolAddress.has_key?(CFG1_MAGIC_NUM)
       $asmLabel = ""
@@ -108,8 +93,8 @@
     end
 
-    # åºå®åºåããå¤æ°ã®åå¾
+    # 固定出力した変数の取得
     $sizeOfSigned = GetSymbolValue($asmLabel + CFG1_SIZEOF_SIGNED, 4, false)
 
-    # å¤åå¾ã·ã³ãã«ã®åå¾
+    # 値取得シンボルの取得
     $symbolValueTable.each do |symbolName, symbolData|
       symbol = $cfg1_prefix + symbolName
@@ -117,5 +102,5 @@
         value = GetSymbolValue(symbol, $sizeOfSigned, true)
         if !value.nil?
-          # Cè¨èªã®çå½å¤ãRubyã®çå½å¤ã«å¤æãã¦åãè¾¼ã
+          # C言語の真偽値をRubyの真偽値に変換して取り込む
           symbolData[:VALUE] = (value != 0)
         end
@@ -130,5 +115,5 @@
 
     #
-    #  ããã·ã¥ã®åæå
+    #  ハッシュの初期化
     #
     $cfgData = {}
@@ -148,5 +133,5 @@
 
     #
-    #  ãã¡ã¤ã³çæãã¼ã¿ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¼ã¿ï¼$cfgDataï¼ã«æ ¼ç´
+    #  ドメイン生成データをコンフィギュレーションデータ（$cfgData）に格納
     #
     $cfgData[:CRE_DOM] = {}
@@ -160,11 +145,10 @@
 
   #
-  #  ãã©ã¡ã¼ã¿ã®å¤ãåãåºã
+  #  パラメータの値を取り出す
   #
   def self.GetParamValue(paramName, param, apiIndex, index, apiParam, cfgInfo)
-    if apiParam.has_key?(:ID_DEF)				# ãªãã¸ã§ã¯ãè­å¥åï¼å®ç¾©ï¼
+    if apiParam.has_key?(:ID_DEF)				# オブジェクト識別名（定義）
       value = @objidValues[paramName][param]
-    elsif apiParam.has_key?(:ID_REF)			# ãªãã¸ã§ã¯ãè­å¥åï¼åç
-§ï¼
+    elsif apiParam.has_key?(:ID_REF)			# オブジェクト識別名（参照）
       if @objidValues[paramName].has_key?(param)
         value = @objidValues[paramName][param]
@@ -175,5 +159,5 @@
         value = nil
       end
-    elsif apiParam.has_key?(:EXPTYPE)			# æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+    elsif apiParam.has_key?(:EXPTYPE)			# 整数定数式パラメータ
       if apiIndex.nil?
         if param.is_a?(NumStr)
@@ -187,5 +171,5 @@
 									apiParam.has_key?(:SIGNED))
       end
-    else										# ä¸è¬å®æ°å¼ï¼æå­åãã©ã¡ã¼ã¿
+    else										# 一般定数式／文字列パラメータ
       return(param)
     end
@@ -194,40 +178,39 @@
 
   #
-  #  æå®ãããã§ã¼ãºã®ããã®ãã¹1ã®çæç©ã®èª­ã¿è¾¼ã¿
+  #  指定したフェーズのためのパス1の生成物の読み込み
   #
   def self.ReadPhase(phase)
     #
-    #  ãªãã¸ã§ã¯ãIDã®å²å½ã¦
-    #
-    # å²ãå½ã¦ããªãã¸ã§ã¯ãIDã¯ï¼@objidValuesã«ä¿æããï¼@objidValuesã¯ï¼
-    # 2éã®ããã·ã¥ï¼ããã·ã¥ã®ããã·ã¥ï¼ã§ããï¼
-    #
-    # å
-·ä½çã«ã¯ï¼@objidValuesã¯ï¼ãªãã¸ã§ã¯ãIDã®ãã©ã¡ã¼ã¿åï¼ä¾ãã°ï¼ã»
-    # ããã©IDã§ããã°"semid"ï¼ãããä¿æããå¤æ°åã¯ï¼objidParamNameã¨ã
-    # ãï¼ãã­ã¼ã¨ãï¼ãã®ãªãã¸ã§ã¯ãIDã®å²å½ã¦è¡¨ï¼ãããä¿æããå¤æ°å
-    # ã¯ï¼objidListã¨ããï¼ãå¤ã¨ããããã·ã¥ã§ããï¼ãªãã¸ã§ã¯ãIDã®å²å½
-    # ã¦è¡¨ã¯ï¼ãªãã¸ã§ã¯ãåï¼ãããä¿æããå¤æ°åã¯ï¼objNameã¨ããï¼ãã­ã¼
-    # ã¨ãï¼ãã®IDçªå·ï¼ãããä¿æããå¤æ°åã¯ï¼objidNumberã¨ããï¼ãå¤ã¨
-    # ããããã·ã¥ã§ããï¼
-    #
-    # ä¾ãã°ï¼ã»ããã©SEM1ã®IDçªå·ã1ã®å ´åã«ã¯ï¼æ¬¡ã®ããã«è¨­å®ãããï¼
+    #  オブジェクトIDの割当て
+    #
+    # 割り当てたオブジェクトIDは，@objidValuesに保持する．@objidValuesは，
+    # 2重のハッシュ（ハッシュのハッシュ）である．
+    #
+    # 具体的には，@objidValuesは，オブジェクトIDのパラメータ名（例えば，セ
+    # マフォIDであれば"semid"．これを保持する変数名は，objidParamNameとす
+    # る）をキーとし，そのオブジェクトIDの割当て表（これを保持する変数名
+    # は，objidListとする）を値とするハッシュである．オブジェクトIDの割当
+    # て表は，オブジェクト名（これを保持する変数名は，objNameとする）をキー
+    # とし，そのID番号（これを保持する変数名は，objidNumberとする）を値と
+    # するハッシュである．
+    #
+    # 例えば，セマフォSEM1のID番号が1の場合には，次のように設定される．
     #   @objidValues["semid"]["SEM1"] == 1
     #
 
-    # IDçªå·å²ãå½ã¦ã®åå¦ç
+    # ID番号割り当ての前処理
     objidParamNameList = []
     $cfgFileInfo.each do |cfgInfo|
-      # ããªãã­ã»ããµãã£ã¬ã¯ãã£ãã¯èª­ã¿é£ã°ã
+      # プリプロセッサディレクティブは読み飛ばす
       next if cfgInfo.has_key?(:DIRECTIVE)
 
       apiDef = $apiDefinition[cfgInfo[:APINAME]]
-      # ç°ãªããã§ã¼ãºã®éçAPIã¯èª­ã¿é£ã°ã
+      # 異なるフェーズの静的APIは読み飛ばす
       next if apiDef[:PHASE] != phase
 
       apiIndex = cfgInfo[:INDEX]
       if !apiIndex.nil?
-        # ã·ã³ãã«ãã¡ã¤ã«ã«éçAPIã®ã¤ã³ããã¯ã¹ãå­å¨ããªããã°èª­ã¿é£
-        # ã°ãï¼ifdefç­ã§æ¶ããéçAPIï¼
+        # シンボルファイルに静的APIのインデックスが存在しなければ読み飛
+        # ばす（ifdef等で消えた静的API）
         symbol = "#{$cfg1_prefix}static_api_#{apiIndex}"
         next unless @symbolAddress.has_key?(symbol)
@@ -239,6 +222,5 @@
           objName = cfgInfo[objidParamName]
           if $inputObjid.has_key?(objName)
-            # IDçªå·å
-¥åãã¡ã¤ã«ã«å®ç¾©ããã¦ããå ´å
+            # ID番号入力ファイルに定義されていた場合
             @objidValues[objidParamName][objName] = $inputObjid[objName]
           else
@@ -250,21 +232,20 @@
     end
 
-    # IDçªå·ã®å²å½ã¦å¦ç
+    # ID番号の割当て処理
     objidParamNameList.each do |objidParamName|
       objidList = @objidValues[objidParamName]
 
-      # æªä½¿ç¨ã®IDçªå·ã®ãªã¹ãï¼ä½¿ç¨ãããã®ããæ¶ãã¦ããï¼
+      # 未使用のID番号のリスト（使用したものから消していく）
       unusedObjidList = (1.upto(objidList.keys.size)).to_a
 
-      # å²ãå½ã¦æ¸ã¿ã®IDçªå·ã®å¦ç
+      # 割り当て済みのID番号の処理
       objidList.each do |objName, objidNumber|
         if $inputObjid.has_key?(objName)
           objidIndex = unusedObjidList.index($inputObjid[objName])
           if objidIndex.nil?
-            # IDçªå·å
-¥åãã¡ã¤ã«ã§æå®ãããå¤ãä¸æ­£
+            # ID番号入力ファイルで指定された値が不正
             error_exit("value of `#{objName}' in ID input file is illegal")
           else
-            # æªä½¿ç¨ã®IDçªå·ã®ãªã¹ãããåé¤
+            # 未使用のID番号のリストから削除
             unusedObjidList.delete_at(objidIndex)
           end
@@ -272,8 +253,8 @@
       end
 
-      # IDçªå·ã®å²å½ã¦
+      # ID番号の割当て
       objidList.each do |objName, objidNumber|
         if objidList[objName].nil?
-          # ä»¥ä¸ã§ï¼@objidValuesãæ¸ãæãã¦ãã
+          # 以下で，@objidValuesを書き換えている
           objidList[objName] = unusedObjidList.shift
         end
@@ -282,12 +263,12 @@
 
     #
-    #  éçAPIãã¼ã¿ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¼ã¿ï¼$cfgDataï¼ã«æ ¼ç´
+    #  静的APIデータをコンフィギュレーションデータ（$cfgData）に格納
     #
     $cfgFileInfo.each do |cfgInfo|
-      # ããªãã­ã»ããµãã£ã¬ã¯ãã£ãã¯èª­ã¿é£ã°ã
+      # プリプロセッサディレクティブは読み飛ばす
       next if cfgInfo.has_key?(:DIRECTIVE)
 
       apiDef = $apiDefinition[cfgInfo[:APINAME]]
-      # ç°ãªããã§ã¼ãºã®éçAPIã¯èª­ã¿é£ã°ã
+      # 異なるフェーズの静的APIは読み飛ばす
       next if apiDef[:PHASE] != phase
 
@@ -295,16 +276,16 @@
       apiIndex = cfgInfo[:INDEX]
       if !apiIndex.nil?
-        # ã·ã³ãã«ãã¡ã¤ã«ã«éçAPIã®ã¤ã³ããã¯ã¹ãå­å¨ããªããã°èª­ã¿é£
-        # ã°ãï¼ifdefç­ã§æ¶ããéçAPIï¼
+        # シンボルファイルに静的APIのインデックスが存在しなければ読み飛
+        # ばす（ifdef等で消えた静的API）
         symbol = "#{$cfg1_prefix}static_api_#{apiIndex}"
         next unless @symbolAddress.has_key?(symbol)
       end
 
-      # ãã©ã¡ã¼ã¿ã®å¤ãããã·ã¥å½¢å¼ã«æ ¼ç´
+      # パラメータの値をハッシュ形式に格納
       params = {}
       apiDef[:PARAM].each do |apiParam|
         next unless apiParam.has_key?(:NAME)
         paramName = apiParam[:NAME]
-        next unless cfgInfo.has_key?(paramName)		# ãã©ã¡ã¼ã¿ããªãå ´å
+        next unless cfgInfo.has_key?(paramName)		# パラメータがない場合
         paramData = cfgInfo[paramName]
 
@@ -321,5 +302,5 @@
       end
 
-      # ãã¡ã¤ã³IDãè¿½å 
+      # ドメインIDを追加
       if cfgInfo.has_key?(:DOMAIN)
         domainName = cfgInfo[:DOMAIN]
@@ -327,5 +308,5 @@
       end
 
-      # ã¯ã©ã¹IDãè¿½å 
+      # クラスIDを追加
       if cfgInfo.has_key?(:CLASS)
         if apiIndex.nil?
@@ -338,15 +319,15 @@
       end
 
-      # APIåï¼ãã¡ã¤ã«åï¼è¡çªå·ãè¿½å 
+      # API名，ファイル名，行番号を追加
       params[:apiname] = cfgInfo[:APINAME]
       params[:_file_] = cfgInfo[:_FILE_]
       params[:_line_] = cfgInfo[:_LINE_]
 
-      # ç»é²ã­ã¼ãæ±ºå®ãã
+      # 登録キーを決定する
       if apiDef.has_key?(:KEYPAR)
         keyParam = params[apiDef[:KEYPAR].to_sym]
         key = keyParam.val
         if $cfgData[apiSym].has_key?(key)
-          # ç»é²ã­ã¼ã®éè¤
+          # 登録キーの重複
           error("E_OBJ: #{apiDef[:KEYPAR]} `#{keyParam}' " \
 								"is duplicated in #{cfgInfo[:APINAME]}",
@@ -361,5 +342,5 @@
 
   #
-  #  IDçªå·åºåãã¡ã¤ã«ã®çæ
+  #  ID番号出力ファイルの生成
   #
   def self.OutputId(fileName)
@@ -374,10 +355,9 @@
 
 #
-#  ãã¹2ã®å¦ç
+#  パス2の処理
 #
 def Pass2
   #
-  #  ãã¹1ããå¼ãæ¸¡ãããæ
-å ±ããã¡ã¤ã«ããèª­ã¿è¾¼ã
+  #  パス1から引き渡される情報をファイルから読み込む
   #
   db = PStore.new(CFG1_OUT_DB)
@@ -392,16 +372,16 @@
 
   #
-  #  ãã¹1ã®çæç©ãèª­ã¿è¾¼ã
+  #  パス1の生成物を読み込む
   #
   Cfg1Out.Read()
-  abort if $errorFlag					# ã¨ã©ã¼çºçæã¯abortãã
-
-  #
-  #  å¤åå¾ã·ã³ãã«ãã°ã­ã¼ãã«å¤æ°ã¨ãã¦å®ç¾©ãã
+  abort if $errorFlag					# エラー発生時はabortする
+
+  #
+  #  値取得シンボルをグローバル変数として定義する
   #
   DefineSymbolValue()
 
   #
-  #  çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãå®è¡ãã
+  #  生成スクリプト（trbファイル）を実行する
   #
   $trbFileNames.each do |trbFileName|
@@ -414,5 +394,5 @@
 
   #
-  #  IDçªå·åºåãã¡ã¤ã«ã®çæ
+  #  ID番号出力ファイルの生成
   #
   if !$idOutputFileName.nil?
@@ -421,6 +401,5 @@
 
   #
-  #  ãã¹3ã«å¼ãæ¸¡ãæ
-å ±ããã¡ã¤ã«ã«çæ
+  #  パス3に引き渡す情報をファイルに生成
   #
   if $omitOutputDb.nil?
Index: EcnlProtoTool/trunk/asp3_dcre/configure.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/configure.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/configure.rb	(revision 321)
@@ -10,49 +10,34 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
-# 
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
-# 
-#  $Id: configure.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
+# 
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
+# 
+#  $Id$
 # 
 
@@ -61,60 +46,59 @@
 require "shell"
 
-#  ãªãã·ã§ã³ã®å®ç¾©
-#
-#  -T <target>			ã¿ã¼ã²ããåï¼å¿
-é ï¼
-#  -a <appldirs>		ã¢ããªã±ã¼ã·ã§ã³ã®ãã£ã¬ã¯ããªåï¼è¤æ°æå®å¯ï¼ã
-#						ãã©ã«ãã¯sampleãã£ã¬ã¯ããªï¼
-#  -A <applname>		ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã åï¼ããã©ã«ãã¯sample1ï¼
-#  -t					ã¡ã¤ã³ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ããªã³ã¯å¯¾è±¡ã«å«ããªã
-#  -c <cfgfile>			ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ï¼.cfgãã¡ã¤
-#						ã«åï¼å
-#  -C <cdlflle>			ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«ï¼.cdlãã¡ã¤ã«ï¼å
-#  -U <applobjs>		ä»ã®ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ãã¡ã¤ã«
-#						ï¼.oãã¡ã¤ã«åã§æå®ï¼è¤æ°æå®å¯ï¼
-#  -S <syssvcobjs>		ã·ã¹ãã ãµã¼ãã¹ã®ãã­ã°ã©ã ãã¡ã¤ã«
-#						ï¼.oãã¡ã¤ã«åã§æå®ï¼è¤æ°æå®å¯ï¼
-#  -L <kernel_lib>		ã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ã®ãã£ã¬ã¯ããªå
-#						ï¼çç¥ããå ´åï¼ã«ã¼ãã«ã©ã¤ãã©ãªãmakeããï¼
-#  -f					ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®æå®
-#  -D <srcdir>			ã«ã¼ãã«ã½ã¼ã¹ã®ç½®ããã¦ãããã£ã¬ã¯ããª
-#  -l <srclang>			ãã­ã°ã©ãã³ã°è¨èªï¼ç¾æç¹ã§ã¯cã¨c++ã®ã¿ãµãã¼ãï¼
-#  -m <tempmakefile>	Makefileã®ãã³ãã¬ã¼ãã®ãã¡ã¤ã«åã®æå®ï¼ããã©ã«
-#						ãã¯sampleãã£ã¬ã¯ããªã®Makefileï¼
-#  -d <depdir>			ä¾å­é¢ä¿ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªåï¼ããã©ã«ãã¯depsï¼
-#  -w					TECSãä½¿ç¨ããªã
-#  -r					ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ããä½¿ç¨ãããã©ãã
-#						ã®æå®
-#  -V <devtooldir>		éçºãã¼ã«ï¼ã³ã³ãã¤ã©ç­ï¼ã®ç½®ããã¦ãããã£ã¬ã¯ããª
-#  -R <ruby>			rubyã®ãã¹åï¼æç¤ºçã«æå®ããå ´åï¼
-#  -g <cfg>				ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgï¼ã®ãã¹å
-#  -G <tecsgen>			TECSã¸ã§ãã¬ã¼ã¿ï¼tecsgenï¼ã®ãã¹å
-#  -o <options>			ã³ã³ãã¤ã«ãªãã·ã§ã³ï¼COPTSã«è¿½å ï¼
-#  -O <options>			ã·ã³ãã«å®ç¾©ãªãã·ã§ã³ï¼CDEFSã«è¿½å ï¼
-#  -k <options>			ãªã³ã«ãªãã·ã§ã³ï¼LDFLAGSç­ã«è¿½å ï¼
-
-#  ä½¿ç¨ä¾(1)
+#  オプションの定義
+#
+#  -T <target>			ターゲット名（必須）
+#  -a <appldirs>		アプリケーションのディレクトリ名（複数指定可．デ
+#						フォルトはsampleディレクトリ）
+#  -A <applname>		アプリケーションプログラム名（デフォルトはsample1）
+#  -t					メインのオブジェクトファイルをリンク対象に含めない
+#  -c <cfgfile>			システムコンフィギュレーションファイル（.cfgファイ
+#						ル名）名
+#  -C <cdlflle>			コンポーネント記述ファイル（.cdlファイル）名
+#  -U <applobjs>		他のアプリケーションプログラムファイル
+#						（.oファイル名で指定．複数指定可）
+#  -S <syssvcobjs>		システムサービスのプログラムファイル
+#						（.oファイル名で指定．複数指定可）
+#  -L <kernel_lib>		カーネルライブラリ（libkernel.a）のディレクトリ名
+#						（省略した場合，カーネルライブラリもmakeする）
+#  -f					カーネルを関数単位でコンパイルするかどうかの指定
+#  -D <srcdir>			カーネルソースの置かれているディレクトリ
+#  -l <srclang>			プログラミング言語（現時点ではcとc++のみサポート）
+#  -m <tempmakefile>	Makefileのテンプレートのファイル名の指定（デフォル
+#						トはsampleディレクトリのMakefile）
+#  -d <depdir>			依存関係ファイルのディレクトリ名（デフォルトはdeps）
+#  -w					TECSを使用しない
+#  -r					トレースログ記録のサンプルコードを使用するかどうか
+#						の指定
+#  -V <devtooldir>		開発ツール（コンパイラ等）の置かれているディレクトリ
+#  -R <ruby>			rubyのパス名（明示的に指定する場合）
+#  -g <cfg>				コンフィギュレータ（cfg）のパス名
+#  -G <tecsgen>			TECSジェネレータ（tecsgen）のパス名
+#  -o <options>			コンパイルオプション（COPTSに追加）
+#  -O <options>			シンボル定義オプション（CDEFSに追加）
+#  -k <options>			リンカオプション（LDFLAGS等に追加）
+
+#  使用例(1)
 #
 #  % ../configure.rb -T ct11mpcore_gcc -O "-DTOPPERS_USE_QEMU" \
 #					-A perf1 -a ../test -S "test_svc.o histogram.o"
 #
-#  ä½¿ç¨ä¾(2)
+#  使用例(2)
 #
 #  % ../configure.rb -T macosx_gcc -L .
-#	ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã¯ï¼sample1ã«ãªãï¼
-#
-#  ä½¿ç¨ä¾(3)
+#	アプリケーションプログラムは，sample1になる．
+#
+#  使用例(3)
 #
 #  % ../configure.rb -T ct11mpcore_gcc -O "-DTOPPERS_USE_QEMU" -A tSample2 -t
-#	ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã¯ï¼TECSçã®ãµã³ãã«ãã­ã°ã©ã ã«ãªãï¼
-#
-#  ä½¿ç¨ä¾(4)
+#	アプリケーションプログラムは，TECS版のサンプルプログラムになる．
+#
+#  使用例(4)
 #
 #  % ../configure.rb -T ct11mpcore_gcc PRC_NUM=4
-#	PRC_NUMã4ã«å®ç¾©ããï¼
-
-#
-#  å¤æ°ã®åæå
+#	PRC_NUMを4に定義する．
+
+#
+#  変数の初期化
 #
 $target = nil
@@ -135,5 +119,5 @@
 
 #
-#  ãªãã·ã§ã³ã®å¦ç
+#  オプションの処理
 #
 OptionParser.new(nil, 22) do |opt|
@@ -211,5 +195,5 @@
 
 #
-#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®æ¡å¼µå­ãè¿ã
+#  オブジェクトファイル名の拡張子を返す
 #
 def GetObjectExtension
@@ -222,5 +206,5 @@
 
 #
-#  å¤æ°ã®ããã©ã«ãå¤
+#  変数のデフォルト値
 #
 if $appldirs.empty?
@@ -234,5 +218,5 @@
 $cdlfile ||= $applname + ".cdl"
 if $srcdir.nil?
-  # ã½ã¼ã¹ãã£ã¬ã¯ããªåãåãåºã
+  # ソースディレクトリ名を取り出す
   if /(.*)\/configure/ =~ $0
     $srcdir = $1
@@ -251,5 +235,5 @@
 
 #
-#  -Tãªãã·ã§ã³ã¨ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã®ç¢ºèª
+#  -Tオプションとターゲット依存部ディレクトリの確認
 #
 if $target.nil?
@@ -270,5 +254,5 @@
 
 #
-#  å¤æ°ãã¼ãã«ã®ä½æ
+#  変数テーブルの作成
 #
 $vartable = Hash.new("")
@@ -305,5 +289,5 @@
 
 #
-#  ãã¡ã¤ã«ãå¤æãã
+#  ファイルを変換する
 #
 def convert(inFileName, outFileName)
@@ -332,10 +316,10 @@
 
 #
-#  Makefileã®çæ
+#  Makefileの生成
 #
 convert($tempmakefile, "Makefile")
 
 #
-#  ä¾å­é¢ä¿ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®ä½æ
+#  依存関係ファイルのディレクトリの作成
 #
 if !File.directory?($depdir)
Index: EcnlProtoTool/trunk/asp3_dcre/include/itron.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/itron.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/include/itron.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,18 +41,14 @@
 
 /*
- *		ITRONä»æ§å
-±éè¦å®ã®ãã¼ã¿åã»å®æ°ã»ãã¯ã­
+ *		ITRON仕様共通規定のデータ型・定数・マクロ
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼ITRONä»æ§å
-±éè¦å®ã®ãã¼ã¿åã»å®æ°ã»ãã¯ã­ã®ä¸­
- *  ã§ï¼TOPPERSå
-±éããããã¡ã¤ã«ã«å«ã¾ããªããã®ã®å®ç¾©ãå«ãï¼ITRONä»
- *  æ§ã¨ã®äºææ§ãå¿
-è¦ã¨ããã¢ããªã±ã¼ã·ã§ã³ãã¤ã³ã¯ã«ã¼ããããã¨ãæ³
- *  å®ãã¦ããï¼
+ *  このヘッダファイルは，ITRON仕様共通規定のデータ型・定数・マクロの中
+ *  で，TOPPERS共通ヘッダファイルに含まれないものの定義を含む．ITRON仕
+ *  様との互換性を必要とするアプリケーションがインクルードすることを想
+ *  定している．
  *
- *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
- *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ããï¼ããã«ããï¼ãã¯ã­å®ç¾©ä»¥å¤ã
- *  é¤ãããã«ãªã£ã¦ããï¼
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておく．これにより，マクロ定義以外を
+ *  除くようになっている．
  */
 
@@ -80,81 +61,73 @@
 
 /*
- *  TOPPERSå
-±éããããã¡ã¤ã«
+ *  TOPPERS共通ヘッダファイル
  */
 #include <t_stddef.h>
 
 /*
- *  ITRONä»æ§å
-±éãã¼ã¿å
+ *  ITRON仕様共通データ型
  */
 #ifndef TOPPERS_MACRO_ONLY
 
 #ifdef INT8_MAX
-typedef	int8_t			B;			/* ç¬¦å·ä»ã8ãããæ´æ° */
+typedef	int8_t			B;			/* 符号付き8ビット整数 */
 #endif /* INT8_MAX */
 
 #ifdef UINT8_MAX
-typedef	uint8_t			UB;			/* ç¬¦å·ç¡ã8ãããæ´æ° */
-typedef	uint8_t			VB;			/* åãå®ã¾ããªã8ãããã®å¤ */
+typedef	uint8_t			UB;			/* 符号無し8ビット整数 */
+typedef	uint8_t			VB;			/* 型が定まらない8ビットの値 */
 #endif /* UINT8_MAX */
 
-typedef	int16_t			H;			/* ç¬¦å·ä»ã16ãããæ´æ° */
-typedef	uint16_t		UH;			/* ç¬¦å·ç¡ã16ãããæ´æ° */
-typedef	uint16_t		VH;			/* åãå®ã¾ããªã16ãããã®å¤ */
+typedef	int16_t			H;			/* 符号付き16ビット整数 */
+typedef	uint16_t		UH;			/* 符号無し16ビット整数 */
+typedef	uint16_t		VH;			/* 型が定まらない16ビットの値 */
 
-typedef	int32_t			W;			/* ç¬¦å·ä»ã32ãããæ´æ° */
-typedef	uint32_t		UW;			/* ç¬¦å·ç¡ã32ãããæ´æ° */
-typedef	uint32_t		VW;			/* åãå®ã¾ããªã32ãããã®å¤ */
+typedef	int32_t			W;			/* 符号付き32ビット整数 */
+typedef	uint32_t		UW;			/* 符号無し32ビット整数 */
+typedef	uint32_t		VW;			/* 型が定まらない32ビットの値 */
 
 #ifdef INT64_MAX
-typedef	int64_t			D;			/* ç¬¦å·ä»ã64ãããæ´æ° */
+typedef	int64_t			D;			/* 符号付き64ビット整数 */
 #endif /* INT64_MAX */
 
 #ifdef UINT64_MAX
-typedef	uint64_t		UD;			/* ç¬¦å·ç¡ã64ãããæ´æ° */
-typedef	uint64_t		VD;			/* åãå®ã¾ããªã64ãããã®å¤ */
+typedef	uint64_t		UD;			/* 符号無し64ビット整数 */
+typedef	uint64_t		VD;			/* 型が定まらない64ビットの値 */
 #endif /* UINT64_MAX */
 
-typedef	void			*VP;		/* åãå®ã¾ããªããã®ã¸ã®ãã¤ã³ã¿ */
+typedef	void			*VP;		/* 型が定まらないものへのポインタ */
 
-typedef int_t			INT;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
-typedef uint_t			UINT;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
+typedef int_t			INT;		/* 自然なサイズの符号付き整数 */
+typedef uint_t			UINT;		/* 自然なサイズの符号無し整数 */
 
-typedef bool_t			BOOL;		/* çå½å¤ */
+typedef bool_t			BOOL;		/* 真偽値 */
 
-typedef size_t			SIZE;		/* ã¡ã¢ãªé åã®ãµã¤ãºãè¡¨ãç¬¦å·ç¡ãæ´æ°*/
-typedef	intptr_t		VP_INT;		/* ãã¤ã³ã¿ã¾ãã¯ç¬¦å·ä»ãæ´æ° */
+typedef size_t			SIZE;		/* メモリ領域のサイズを表す符号無し整数*/
+typedef	intptr_t		VP_INT;		/* ポインタまたは符号付き整数 */
 
 #endif /* TOPPERS_MACRO_ONLY */
 
 /*
- *  ITRONä»æ§å
-±éå®æ°
+ *  ITRON仕様共通定数
  */
-#define	TRUE		true			/* ç */
-#define	FALSE		false			/* å½ */
+#define	TRUE		true			/* 真 */
+#define	FALSE		false			/* 偽 */
 
 /*
- *  å¼·å¶å¾
-ã¡ç¶æ
-ããã®å¼·å¶åé
+ *  強制待ち状態からの強制再開
  */
 #define frsm_tsk(tskid)		rsm_tsk(tskid)
 
 /*
- *  ãªãã¸ã§ã¯ãå±æ§ã®å®ç¾©
+ *  オブジェクト属性の定義
  */
-#define TA_HLNG			UINT_C(0x00)	/* é«ç´è¨èªç¨ã¤ã³ã¿ãã§ã¼ã¹ */
-#define TA_TFIFO		UINT_C(0x00)	/* ã¿ã¹ã¯ã®å¾
-ã¡è¡åãFIFOé ã« */
-#define TA_WSGL			UINT_C(0x00)	/* å¾
-ã¡ã¿ã¹ã¯ã¯1ã¤ã®ã¿ */
+#define TA_HLNG			UINT_C(0x00)	/* 高級言語用インタフェース */
+#define TA_TFIFO		UINT_C(0x00)	/* タスクの待ち行列をFIFO順に */
+#define TA_WSGL			UINT_C(0x00)	/* 待ちタスクは1つのみ */
 
 /*
- *  ãã¹ãåæ°ã®æå¤§å¤
+ *  ネスト回数の最大値
  */
-#define TMAX_SUSCNT		UINT_C(1)		/* å¼·å¶å¾
-ã¡è¦æ±ãã¹ãæ°ã®æå¤§å¤ */
+#define TMAX_SUSCNT		UINT_C(1)		/* 強制待ち要求ネスト数の最大値 */
 
 #ifdef __cplusplus
Index: EcnlProtoTool/trunk/asp3_dcre/include/kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/kernel.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/include/kernel.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,13 +42,12 @@
 
 /*
- *		TOPPERS/ASPã«ã¼ãã« æ¨æºããããã¡ã¤ã«
+ *		TOPPERS/ASPカーネル 標準ヘッダファイル
  *
- *  TOPPERS/ASPã«ã¼ãã«ããµãã¼ããããµã¼ãã¹ã³ã¼ã«ã®å®£è¨ã¨ï¼å¿
-è¦ãªãã¼
- *  ã¿åï¼å®æ°ï¼ãã¯ã­ã®å®ç¾©ãå«ãããããã¡ã¤ã«ï¼
+ *  TOPPERS/ASPカーネルがサポートするサービスコールの宣言と，必要なデー
+ *  タ型，定数，マクロの定義を含むヘッダファイル．
  *
- *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
- *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ããï¼ããã«ããï¼ãã¯ã­å®ç¾©ä»¥å¤ã
- *  é¤ãããã«ãªã£ã¦ããï¼
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておく．これにより，マクロ定義以外を
+ *  除くようになっている．
  */
 
@@ -76,43 +60,42 @@
 
 /*
- *	TOPPERSå
-±éã®ãã¼ã¿åã»å®æ°ã»ãã¯ã­
+ *	TOPPERS共通のデータ型・定数・マクロ
  */
 #include <t_stddef.h>
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨
+ *  ターゲット依存部
  */
 #include "target_kernel.h"
 
 /*
- *  ãµãã¼ãããæ©è½
+ *  サポートする機能
  */
 #ifdef TOPPERS_TARGET_SUPPORT_DIS_INT
-#define TOPPERS_SUPPORT_DIS_INT			/* dis_intããµãã¼ãããã¦ãã */
+#define TOPPERS_SUPPORT_DIS_INT			/* dis_intがサポートされている */
 #endif /* TOPPERS_TARGET_SUPPORT_DIS_INT */
 
 #ifdef TOPPERS_TARGET_SUPPORT_ENA_INT
-#define TOPPERS_SUPPORT_ENA_INT			/* ena_intããµãã¼ãããã¦ãã */
+#define TOPPERS_SUPPORT_ENA_INT			/* ena_intがサポートされている */
 #endif /* TOPPERS_TARGET_SUPPORT_ENA_INT */
 
-#define TOPPERS_SUPPORT_DYNAMIC_CRE		/* åççææ©è½æ¡å¼µ */
+#define TOPPERS_SUPPORT_DYNAMIC_CRE		/* 動的生成機能拡張 */
 
 #ifndef TOPPERS_MACRO_ONLY
 
 /*
- *  ãã¼ã¿åã®å®ç¾©
- */
-
-/*
- *  ããããã¿ã¼ã³ããªãã¸ã§ã¯ãçªå·ã®åå®ç¾©
- */
-typedef	uint_t		FLGPTN;		/* ã¤ãã³ããã©ã°ã®ããããã¿ã¼ã³ */
-typedef	uint_t		INTNO;		/* å²è¾¼ã¿çªå· */
-typedef	uint_t		INHNO;		/* å²è¾¼ã¿ãã³ãã©çªå· */
-typedef	uint_t		EXCNO;		/* CPUä¾å¤ãã³ãã©çªå· */
-
-/*
- *  å¦çåä½ã®åå®ç¾©
+ *  データ型の定義
+ */
+
+/*
+ *  ビットパターンやオブジェクト番号の型定義
+ */
+typedef	uint_t		FLGPTN;		/* イベントフラグのビットパターン */
+typedef	uint_t		INTNO;		/* 割込み番号 */
+typedef	uint_t		INHNO;		/* 割込みハンドラ番号 */
+typedef	uint_t		EXCNO;		/* CPU例外ハンドラ番号 */
+
+/*
+ *  処理単位の型定義
  */
 typedef void	(*TASK)(intptr_t exinf);
@@ -125,65 +108,62 @@
 
 /*
- *  ã¡ã¢ãªé åç¢ºä¿ã®ããã®åå®ç¾©
+ *  メモリ領域確保のための型定義
  */
 #ifndef TOPPERS_STK_T
 #define TOPPERS_STK_T	intptr_t
 #endif /* TOPPERS_STK_T */
-typedef	TOPPERS_STK_T	STK_T;	/* ã¹ã¿ãã¯é åãç¢ºä¿ããããã®å */
+typedef	TOPPERS_STK_T	STK_T;	/* スタック領域を確保するための型 */
 
 #ifndef TOPPERS_MPF_T
 #define TOPPERS_MPF_T	intptr_t
 #endif /* TOPPERS_MPF_T */
-typedef	TOPPERS_MPF_T	MPF_T;	/* åºå®é·ã¡ã¢ãªãã¼ã«é åãç¢ºä¿ããããã®å */
-
-/*
- *  ã¿ã¤ã ã¤ãã³ãã®éç¥æ¹æ³ã®ãã±ããå½¢å¼ã®å®ç¾©
- */
-typedef struct {
-	intptr_t	exinf;		/* ã¿ã¤ã ã¤ãã³ããã³ãã©ã®æ¡å¼µæ
-å ± */
-	TMEHDR		tmehdr;		/* ã¿ã¤ã ã¤ãã³ããã³ãã©ã®å
-é ­çªå° */
+typedef	TOPPERS_MPF_T	MPF_T;	/* 固定長メモリプール領域を確保するための型 */
+
+/*
+ *  タイムイベントの通知方法のパケット形式の定義
+ */
+typedef struct {
+	intptr_t	exinf;		/* タイムイベントハンドラの拡張情報 */
+	TMEHDR		tmehdr;		/* タイムイベントハンドラの先頭番地 */
 } T_NFY_HDR;
 
 typedef struct {
-	intptr_t	*p_var;		/* å¤æ°ã®çªå° */
-	intptr_t	value;		/* è¨­å®ããå¤ */
+	intptr_t	*p_var;		/* 変数の番地 */
+	intptr_t	value;		/* 設定する値 */
 } T_NFY_VAR;
 
 typedef struct {
-	intptr_t	*p_var;		/* å¤æ°ã®çªå° */
+	intptr_t	*p_var;		/* 変数の番地 */
 } T_NFY_IVAR;
 
 typedef struct {
-	ID			tskid;		/* ã¿ã¹ã¯ID */
+	ID			tskid;		/* タスクID */
 } T_NFY_TSK;
 
 typedef struct {
-	ID			semid;		/* ã»ããã©ID */
+	ID			semid;		/* セマフォID */
 } T_NFY_SEM;
 
 typedef struct {
-	ID			flgid;		/* ã¤ãã³ããã©ã°ID */
-	FLGPTN		flgptn;		/* ã»ããããããããã¿ã¼ã³ */
+	ID			flgid;		/* イベントフラグID */
+	FLGPTN		flgptn;		/* セットするビットパターン */
 } T_NFY_FLG;
 
 typedef struct {
-	ID			dtqid;		/* ãã¼ã¿ã­ã¥ã¼ID */
-	intptr_t	data;		/* éä¿¡ããå¤ */
+	ID			dtqid;		/* データキューID */
+	intptr_t	data;		/* 送信する値 */
 } T_NFY_DTQ;
 
 typedef struct {
-	intptr_t	*p_var;		/* å¤æ°ã®çªå° */
+	intptr_t	*p_var;		/* 変数の番地 */
 } T_ENFY_VAR;
 
 typedef struct {
-	ID			dtqid;		/* ãã¼ã¿ã­ã¥ã¼ID */
+	ID			dtqid;		/* データキューID */
 } T_ENFY_DTQ;
 
 typedef struct {
-	MODE	nfymode;			/* éç¥å¦çã¢ã¼ã */
-	union {						/* ã¿ã¤ã ã¤ãã³ãã®éç¥ã«é¢ããä»éæ
-å ± */
+	MODE	nfymode;			/* 通知処理モード */
+	union {						/* タイムイベントの通知に関する付随情報 */
 		T_NFY_HDR	handler;
 		T_NFY_VAR	setvar;		
@@ -195,6 +175,5 @@
 		T_NFY_DTQ	snddtq;
 	} nfy;
-	union {						/* ã¨ã©ã¼ã®éç¥ã«é¢ããä»éæ
-å ± */
+	union {						/* エラーの通知に関する付随情報 */
 		T_ENFY_VAR	setvar;
 		T_NFY_IVAR	incvar;		
@@ -208,184 +187,139 @@
 
 /*
- *  ãã±ããå½¢å¼ã®å®ç¾©
+ *  パケット形式の定義
  */
 typedef struct t_ctsk {
-	ATR			tskatr;		/* ã¿ã¹ã¯å±æ§ */
-	intptr_t	exinf;		/* ã¿ã¹ã¯ã®æ¡å¼µæ
-å ± */
-	TASK		task;		/* ã¿ã¹ã¯ã®ã¡ã¤ã³ã«ã¼ãã³ã®å
-é ­çªå° */
-	PRI			itskpri;	/* ã¿ã¹ã¯ã®èµ·åæåªå
-åº¦ */
-	size_t		stksz;		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®ãµã¤ãº */
-	STK_T 		*stk;		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®å
-é ­çªå° */
+	ATR			tskatr;		/* タスク属性 */
+	intptr_t	exinf;		/* タスクの拡張情報 */
+	TASK		task;		/* タスクのメインルーチンの先頭番地 */
+	PRI			itskpri;	/* タスクの起動時優先度 */
+	size_t		stksz;		/* タスクのスタック領域のサイズ */
+	STK_T 		*stk;		/* タスクのスタック領域の先頭番地 */
 } T_CTSK;
 
 typedef struct t_rtsk {
-	STAT	tskstat;	/* ã¿ã¹ã¯ç¶æ
- */
-	PRI		tskpri;		/* ã¿ã¹ã¯ã®ç¾å¨åªå
-åº¦ */
-	PRI		tskbpri;	/* ã¿ã¹ã¯ã®ãã¼ã¹åªå
-åº¦ */
-	STAT	tskwait;	/* å¾
-ã¡è¦å  */
-	ID		wobjid;		/* å¾
-ã¡å¯¾è±¡ã®ãªãã¸ã§ã¯ãã®ID */
-	TMO		lefttmo;	/* ã¿ã¤ã ã¢ã¦ãããã¾ã§ã®æé */
-	uint_t	actcnt;		/* èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã°æ° */
-	uint_t	wupcnt;		/* èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã°æ° */
-	bool_t	raster;		/* ã¿ã¹ã¯çµäºè¦æ±ç¶æ
- */
-	bool_t	dister;		/* ã¿ã¹ã¯çµäºç¦æ­¢ç¶æ
- */
+	STAT	tskstat;	/* タスク状態 */
+	PRI		tskpri;		/* タスクの現在優先度 */
+	PRI		tskbpri;	/* タスクのベース優先度 */
+	STAT	tskwait;	/* 待ち要因 */
+	ID		wobjid;		/* 待ち対象のオブジェクトのID */
+	TMO		lefttmo;	/* タイムアウトするまでの時間 */
+	uint_t	actcnt;		/* 起動要求キューイング数 */
+	uint_t	wupcnt;		/* 起床要求キューイング数 */
+	bool_t	raster;		/* タスク終了要求状態 */
+	bool_t	dister;		/* タスク終了禁止状態 */
 } T_RTSK;
 
 typedef struct t_csem {
-	ATR		sematr;		/* ã»ããã©å±æ§ */
-	uint_t	isemcnt;	/* ã»ããã©ã®åæè³æºæ° */
-	uint_t	maxsem;		/* ã»ããã©ã®æå¤§è³æºæ° */
+	ATR		sematr;		/* セマフォ属性 */
+	uint_t	isemcnt;	/* セマフォの初期資源数 */
+	uint_t	maxsem;		/* セマフォの最大資源数 */
 } T_CSEM;
 
 typedef struct t_rsem {
-	ID		wtskid;		/* ã»ããã©ã®å¾
-ã¡è¡åã®å
-é ­ã®ã¿ã¹ã¯ã®IDçªå· */
-	uint_t	semcnt;		/* ã»ããã©ã®ç¾å¨ã®è³æºæ° */
+	ID		wtskid;		/* セマフォの待ち行列の先頭のタスクのID番号 */
+	uint_t	semcnt;		/* セマフォの現在の資源数 */
 } T_RSEM;
 
 typedef struct t_cflg {
-	ATR		flgatr;		/* ã¤ãã³ããã©ã°å±æ§ */
-	FLGPTN	iflgptn;	/* ã¤ãã³ããã©ã°ã®åæããããã¿ã¼ã³ */
+	ATR		flgatr;		/* イベントフラグ属性 */
+	FLGPTN	iflgptn;	/* イベントフラグの初期ビットパターン */
 } T_CFLG;
 
 typedef struct t_rflg {
-	ID		wtskid;		/* ã¤ãã³ããã©ã°ã®å¾
-ã¡è¡åã®å
-é ­ã®ã¿ã¹ã¯ã®IDçªå· */
-	FLGPTN	flgptn;		/* ã¤ãã³ããã©ã°ã®ç¾å¨ã®ããããã¿ã¼ã³ */
+	ID		wtskid;		/* イベントフラグの待ち行列の先頭のタスクのID番号 */
+	FLGPTN	flgptn;		/* イベントフラグの現在のビットパターン */
 } T_RFLG;
 
 typedef struct t_cdtq {
-	ATR		dtqatr;		/* ãã¼ã¿ã­ã¥ã¼å±æ§ */
-	uint_t	dtqcnt;		/* ãã¼ã¿ã­ã¥ã¼ç®¡çé åã«æ ¼ç´ã§ãããã¼ã¿æ° */
-	void 	*dtqmb;		/* ãã¼ã¿ã­ã¥ã¼ç®¡çé åã®å
-é ­çªå° */
+	ATR		dtqatr;		/* データキュー属性 */
+	uint_t	dtqcnt;		/* データキュー管理領域に格納できるデータ数 */
+	void 	*dtqmb;		/* データキュー管理領域の先頭番地 */
 } T_CDTQ;
 
 typedef struct t_rdtq {
-	ID		stskid;		/* ãã¼ã¿ã­ã¥ã¼ã®éä¿¡å¾
-ã¡è¡åã®å
-é ­ã®ã¿ã¹ã¯ã®IDçªå· */
-	ID		rtskid;		/* ãã¼ã¿ã­ã¥ã¼ã®åä¿¡å¾
-ã¡è¡åã®å
-é ­ã®ã¿ã¹ã¯ã®IDçªå· */
-	uint_t	sdtqcnt;	/* ãã¼ã¿ã­ã¥ã¼ç®¡çé åã«æ ¼ç´ããã¦ãããã¼ã¿ã®æ° */
+	ID		stskid;		/* データキューの送信待ち行列の先頭のタスクのID番号 */
+	ID		rtskid;		/* データキューの受信待ち行列の先頭のタスクのID番号 */
+	uint_t	sdtqcnt;	/* データキュー管理領域に格納されているデータの数 */
 } T_RDTQ;
 
 typedef struct t_cpdq {
-	ATR		pdqatr;		/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼å±æ§ */
-	uint_t	pdqcnt;		/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã«æ ¼ç´ã§ãããã¼ã¿æ° */
-	PRI		maxdpri;	/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã«éä¿¡ã§ãããã¼ã¿åªå
-åº¦ã®æ
-						   å¤§å¤ */
-	void 	*pdqmb;		/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã®å
-é ­çªå° */
+	ATR		pdqatr;		/* 優先度データキュー属性 */
+	uint_t	pdqcnt;		/* 優先度データキュー管理領域に格納できるデータ数 */
+	PRI		maxdpri;	/* 優先度データキューに送信できるデータ優先度の最
+						   大値 */
+	void 	*pdqmb;		/* 優先度データキュー管理領域の先頭番地 */
 } T_CPDQ;
 
 typedef struct t_rpdq {
-	ID		stskid;		/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®éä¿¡å¾
-ã¡è¡åã®å
-é ­ã®ã¿ã¹ã¯
-						   ã®IDçªå· */
-	ID		rtskid;		/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®åä¿¡å¾
-ã¡è¡åã®å
-é ­ã®ã¿ã¹ã¯
-						   ã®IDçªå· */
-	uint_t	spdqcnt;	/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã«æ ¼ç´ããã¦ãããã¼
-						   ã¿ã®æ° */
+	ID		stskid;		/* 優先度データキューの送信待ち行列の先頭のタスク
+						   のID番号 */
+	ID		rtskid;		/* 優先度データキューの受信待ち行列の先頭のタスク
+						   のID番号 */
+	uint_t	spdqcnt;	/* 優先度データキュー管理領域に格納されているデー
+						   タの数 */
 } T_RPDQ;
 
 typedef struct t_cmtx {
-	ATR		mtxatr;		/* ãã¥ã¼ããã¯ã¹å±æ§ */
-	PRI		ceilpri;	/* ãã¥ã¼ããã¯ã¹ã®ä¸éåªå
-åº¦ */
+	ATR		mtxatr;		/* ミューテックス属性 */
+	PRI		ceilpri;	/* ミューテックスの上限優先度 */
 } T_CMTX;
 
 typedef struct t_rmtx {
-	ID		htskid;		/* ãã¥ã¼ããã¯ã¹ãã­ãã¯ãã¦ããã¿ã¹ã¯ã®IDçªå· */
-	ID		wtskid;		/* ãã¥ã¼ããã¯ã¹ã®å¾
-ã¡è¡åã®å
-é ­ã®ã¿ã¹ã¯ã®IDçªå· */
+	ID		htskid;		/* ミューテックスをロックしているタスクのID番号 */
+	ID		wtskid;		/* ミューテックスの待ち行列の先頭のタスクのID番号 */
 } T_RMTX;
 
 typedef struct t_cmpf {
-	ATR		mpfatr;		/* åºå®é·ã¡ã¢ãªãã¼ã«å±æ§ */
-	uint_t	blkcnt;		/* ç²å¾ã§ããåºå®é·ã¡ã¢ãªãã­ãã¯ã®æ° */
-	uint_t	blksz;		/* åºå®é·ã¡ã¢ãªãã­ãã¯ã®ãµã¤ãº */
-	MPF_T 	*mpf;		/* åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
-é ­çªå° */
-	void 	*mpfmb;		/* åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åã®å
-é ­çªå° */
+	ATR		mpfatr;		/* 固定長メモリプール属性 */
+	uint_t	blkcnt;		/* 獲得できる固定長メモリブロックの数 */
+	uint_t	blksz;		/* 固定長メモリブロックのサイズ */
+	MPF_T 	*mpf;		/* 固定長メモリプール領域の先頭番地 */
+	void 	*mpfmb;		/* 固定長メモリプール管理領域の先頭番地 */
 } T_CMPF;
 
 typedef struct t_rmpf {
-	ID		wtskid;		/* åºå®é·ã¡ã¢ãªãã¼ã«ã®å¾
-ã¡è¡åã®å
-é ­ã®ã¿ã¹ã¯ã®
-						   IDçªå· */
-	uint_t	fblkcnt;	/* åºå®é·ã¡ã¢ãªãã¼ã«é åã®ç©ºãã¡ã¢ãªé åã«å²ã
-						   ä»ãããã¨ãã§ããåºå®é·ã¡ã¢ãªãã­ãã¯ã®æ° */
+	ID		wtskid;		/* 固定長メモリプールの待ち行列の先頭のタスクの
+						   ID番号 */
+	uint_t	fblkcnt;	/* 固定長メモリプール領域の空きメモリ領域に割り
+						   付けることができる固定長メモリブロックの数 */
 } T_RMPF;
 
 typedef struct t_ccyc {
-	ATR			cycatr;		/* å¨æéç¥å±æ§ */
-	T_NFYINFO	nfyinfo;	/* å¨æéç¥ã®éç¥æ¹æ³ */
-	RELTIM		cyctim;		/* å¨æéç¥ã®éç¥å¨æ */
-	RELTIM		cycphs;		/* å¨æéç¥ã®éç¥ä½ç¸ */
+	ATR			cycatr;		/* 周期通知属性 */
+	T_NFYINFO	nfyinfo;	/* 周期通知の通知方法 */
+	RELTIM		cyctim;		/* 周期通知の通知周期 */
+	RELTIM		cycphs;		/* 周期通知の通知位相 */
 } T_CCYC;
 
 typedef struct t_rcyc {
-	STAT	cycstat;	/* å¨æéç¥ã®åä½ç¶æ
- */
-	RELTIM	lefttim;	/* æ¬¡åéç¥æå»ã¾ã§ã®ç¸å¯¾æé */
+	STAT	cycstat;	/* 周期通知の動作状態 */
+	RELTIM	lefttim;	/* 次回通知時刻までの相対時間 */
 } T_RCYC;
 
 typedef struct t_calm {
-	ATR			almatr;		/* ã¢ã©ã¼ã éç¥å±æ§ */
-	T_NFYINFO	nfyinfo;	/* ã¢ã©ã¼ã éç¥ã®éç¥æ¹æ³ */
+	ATR			almatr;		/* アラーム通知属性 */
+	T_NFYINFO	nfyinfo;	/* アラーム通知の通知方法 */
 } T_CALM;
 
 typedef struct t_ralm {
-	STAT	almstat;	/* ã¢ã©ã¼ã éç¥ã®åä½ç¶æ
- */
-	RELTIM	lefttim;	/* éç¥æå»ã¾ã§ã®ç¸å¯¾æé */
+	STAT	almstat;	/* アラーム通知の動作状態 */
+	RELTIM	lefttim;	/* 通知時刻までの相対時間 */
 } T_RALM;
 
 typedef struct t_cisr {
-	ATR			isratr;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å±æ§ */
-	intptr_t	exinf;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®æ¡å¼µæ
-å ± */
-	INTNO		intno;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãç»é²ããå²è¾¼ã¿çªå· */
-	ISR			isr;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å
-é ­çªå° */
-	PRI			isrpri;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
-åº¦ */
+	ATR			isratr;		/* 割込みサービスルーチン属性 */
+	intptr_t	exinf;		/* 割込みサービスルーチンの拡張情報 */
+	INTNO		intno;		/* 割込みサービスルーチンを登録する割込み番号 */
+	ISR			isr;		/* 割込みサービスルーチンの先頭番地 */
+	PRI			isrpri;		/* 割込みサービスルーチン優先度 */
 } T_CISR;
 
 /*
- *  ãµã¼ãã¹ã³ã¼ã«ã®å®£è¨
- */
-
-/*
- *  ã¿ã¹ã¯ç®¡çæ©è½
+ *  サービスコールの宣言
+ */
+
+/*
+ *  タスク管理機能
  */
 extern ER_UINT	acre_tsk(const T_CTSK *pk_ctsk) throw();
@@ -400,5 +334,5 @@
 
 /*
- *  ã¿ã¹ã¯ä»å±åææ©è½
+ *  タスク付属同期機能
  */
 extern ER		slp_tsk(void) throw();
@@ -412,5 +346,5 @@
 
 /*
- *  ã¿ã¹ã¯çµäºæ©è½
+ *  タスク終了機能
  */
 extern ER		ext_tsk(void) throw();
@@ -422,5 +356,5 @@
 
 /*
- *  åæã»éä¿¡æ©è½
+ *  同期・通信機能
  */
 extern ER_ID	acre_sem(const T_CSEM *pk_csem) throw();
@@ -481,5 +415,5 @@
 
 /*
- *  ã¡ã¢ãªãã¼ã«ç®¡çæ©è½
+ *  メモリプール管理機能
  */
 extern ER_ID	acre_mpf(const T_CMPF *pk_cmpf) throw();
@@ -493,5 +427,5 @@
 
 /*
- *  æéç®¡çæ©è½
+ *  時間管理機能
  */
 extern ER		set_tim(SYSTIM systim) throw();
@@ -513,6 +447,5 @@
 
 /*
- *  ã·ã¹ãã ç¶æ
-ç®¡çæ©è½
+ *  システム状態管理機能
  */
 extern ER		rot_rdq(PRI tskpri) throw();
@@ -532,5 +465,5 @@
 
 /*
- *  å²è¾¼ã¿ç®¡çæ©è½
+ *  割込み管理機能
  */
 extern ER_ID	acre_isr(const T_CISR *pk_cisr) throw();
@@ -542,5 +475,5 @@
 
 /*
- *  CPUä¾å¤ç®¡çæ©è½
+ *  CPU例外管理機能
  */
 extern bool_t	xsns_dpn(void *p_excinf) throw();
@@ -549,5 +482,5 @@
 
 /*
- *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãããå¼ã³åºãããµã¼ãã¹ã³ã¼ã«
+ *  非タスクコンテキストから呼び出せるサービスコール
  */
 #define iact_tsk(tskid)						act_tsk(tskid)
@@ -578,176 +511,133 @@
 
 /*
- *  ãªãã¸ã§ã¯ãå±æ§ã®å®ç¾©
- */
-#define TA_ACT			UINT_C(0x01)	/* ã¿ã¹ã¯ãèµ·åãããç¶æ
-ã§çæ */
-#define TA_NOACTQUE		UINT_C(0x02)	/* èµ·åè¦æ±ãã­ã¥ã¼ã¤ã³ã°ããªã */
-
-#define TA_TPRI			UINT_C(0x01)	/* ã¿ã¹ã¯ã®å¾
-ã¡è¡åãåªå
-åº¦é ã« */
-
-#define TA_WMUL			UINT_C(0x02)	/* è¤æ°ã®å¾
-ã¡ã¿ã¹ã¯ */
-#define TA_CLR			UINT_C(0x04)	/* ã¤ãã³ããã©ã°ã®ã¯ãªã¢æå® */
-
-#define TA_CEILING		UINT_C(0x03)	/* åªå
-åº¦ä¸éãã­ãã³ã« */
-
-#define TA_STA			UINT_C(0x02)	/* å¨æéç¥ãåä½ç¶æ
-ã§çæ */
-
-#define TA_NONKERNEL	UINT_C(0x02)	/* ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ */
-
-#define TA_ENAINT		UINT_C(0x01)	/* å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ãã¯ãªã¢ */
-#define TA_EDGE			UINT_C(0x02)	/* ã¨ãã¸ããªã¬ */
-
-/*
- *  ãµã¼ãã¹ã³ã¼ã«ã®åä½ã¢ã¼ãã®å®ç¾©
- */
-#define TWF_ORW			UINT_C(0x01)	/* ã¤ãã³ããã©ã°ã®ORå¾
-ã¡ */
-#define TWF_ANDW		UINT_C(0x02)	/* ã¤ãã³ããã©ã°ã®ANDå¾
-ã¡ */
-
-/*
- *  éç¥å¦çã¢ã¼ãã®å®ç¾©
- */
-#define TNFY_HANDLER	UINT_C(0x00)		/* ã¿ã¤ã ã¤ãã³ããã³ãã©ã®å¼åºã */
-#define TNFY_SETVAR		UINT_C(0x01)		/* å¤æ°ã®è¨­å® */
-#define TNFY_INCVAR		UINT_C(0x02)		/* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ã */
-#define TNFY_ACTTSK		UINT_C(0x03)		/* ã¿ã¹ã¯ã®èµ·å */
-#define TNFY_WUPTSK		UINT_C(0x04)		/* ã¿ã¹ã¯ã®èµ·åº */
-#define TNFY_SIGSEM		UINT_C(0x05)		/* ã»ããã©ã®è³æºã®è¿å´ */
-#define TNFY_SETFLG		UINT_C(0x06)		/* ã¤ãã³ããã©ã°ã®ã»ãã */
-#define TNFY_SNDDTQ		UINT_C(0x07)		/* ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ */
-
-#define TENFY_SETVAR	UINT_C(0x10)		/* å¤æ°ã®è¨­å® */
-#define TENFY_INCVAR	UINT_C(0x20)		/* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ã */
-#define TENFY_ACTTSK	UINT_C(0x30)		/* ã¿ã¹ã¯ã®èµ·å */
-#define TENFY_WUPTSK	UINT_C(0x40)		/* ã¿ã¹ã¯ã®èµ·åº */
-#define TENFY_SIGSEM	UINT_C(0x50)		/* ã»ããã©ã®è¿å´ */
-#define TENFY_SETFLG	UINT_C(0x60)		/* ã¤ãã³ããã©ã°ã®ã»ãã */
-#define TENFY_SNDDTQ	UINT_C(0x70)		/* ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ */
-
-/*
- *  ãªãã¸ã§ã¯ãã®ç¶æ
-ã®å®ç¾©
- */
-#define TTS_RUN			UINT_C(0x01)	/* å®è¡ç¶æ
- */
-#define TTS_RDY			UINT_C(0x02)	/* å®è¡å¯è½ç¶æ
- */
-#define TTS_WAI			UINT_C(0x04)	/* å¾
-ã¡ç¶æ
- */
-#define TTS_SUS			UINT_C(0x08)	/* å¼·å¶å¾
-ã¡ç¶æ
- */
-#define TTS_WAS			UINT_C(0x0c)	/* äºéå¾
-ã¡ç¶æ
- */
-#define TTS_DMT			UINT_C(0x10)	/* ä¼æ­¢ç¶æ
- */
-
-#define TTW_SLP			UINT_C(0x0001)	/* èµ·åºå¾
-ã¡ */
-#define TTW_DLY			UINT_C(0x0002)	/* æéçµéå¾
-ã¡ */
-#define TTW_SEM			UINT_C(0x0004)	/* ã»ããã©ã®è³æºç²å¾å¾
-ã¡ */
-#define TTW_FLG			UINT_C(0x0008)	/* ã¤ãã³ããã©ã°å¾
-ã¡ */
-#define TTW_SDTQ		UINT_C(0x0010)	/* ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
-ã¡ */
-#define TTW_RDTQ		UINT_C(0x0020)	/* ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
-ã¡ */
-#define TTW_SPDQ		UINT_C(0x0100)	/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
-ã¡ */
-#define TTW_RPDQ		UINT_C(0x0200)	/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
-ã¡ */
-#define TTW_MTX			UINT_C(0x0080)	/* ãã¥ã¼ããã¯ã¹ã®ã­ãã¯å¾
-ã¡ç¶æ
- */
-#define TTW_MPF			UINT_C(0x2000)	/* åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾å¾
-ã¡ */
-
-#define TCYC_STP		UINT_C(0x01)	/* å¨æéç¥ãåä½ãã¦ããªã */
-#define TCYC_STA		UINT_C(0x02)	/* å¨æéç¥ãåä½ãã¦ãã */
-
-#define TALM_STP		UINT_C(0x01)	/* ã¢ã©ã¼ã éç¥ãåä½ãã¦ããªã */
-#define TALM_STA		UINT_C(0x02)	/* ã¢ã©ã¼ã éç¥ãåä½ãã¦ãã */
-
-/*
- *  ãã®ä»ã®å®æ°ã®å®ç¾©
- */
-#define TSK_SELF		0			/* èªã¿ã¹ã¯æå® */
-#define TSK_NONE		0			/* è©²å½ããã¿ã¹ã¯ããªã */
-
-#define TPRI_SELF		0			/* èªã¿ã¹ã¯ã®ãã¼ã¹åªå
-åº¦ */
-#define TPRI_INI		0			/* ã¿ã¹ã¯ã®èµ·åæåªå
-åº¦ */
-
-#define TIPM_ENAALL		0			/* å²è¾¼ã¿åªå
-åº¦ãã¹ã¯å
-¨è§£é¤ */
-
-/*
- *  æ§æå®æ°ã¨ãã¯ã­
- */
-
-/*
- *  åªå
-åº¦ã®ç¯å²
- */
-#define TMIN_TPRI		1			/* ã¿ã¹ã¯åªå
-åº¦ã®æå°å¤ï¼æé«å¤ï¼*/
-#define TMAX_TPRI		16			/* ã¿ã¹ã¯åªå
-åº¦ã®æå¤§å¤ï¼æä½å¤ï¼*/
-#define TMIN_DPRI		1			/* ãã¼ã¿åªå
-åº¦ã®æå°å¤ï¼æé«å¤ï¼*/
-#define TMAX_DPRI		16			/* ãã¼ã¿åªå
-åº¦ã®æå¤§å¤ï¼æä½å¤ï¼*/
-#define TMIN_ISRPRI		1			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
-åº¦ã®æå°å¤ */
-#define TMAX_ISRPRI		16			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
-åº¦ã®æå¤§å¤ */
-
-/*
- *  ãã¼ã¸ã§ã³æ
-å ±
- */
-#define TKERNEL_MAKER	UINT_C(0x0118)	/* ã«ã¼ãã«ã®ã¡ã¼ã«ã¼ã³ã¼ã */
-#define TKERNEL_PRID	UINT_C(0x0007)	/* ã«ã¼ãã«ã®è­å¥çªå· */
-#define TKERNEL_SPVER	UINT_C(0xf631)	/* ã«ã¼ãã«ä»æ§ã®ãã¼ã¸ã§ã³çªå· */
-#define TKERNEL_PRVER	UINT_C(0x3010)	/* ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå· */
-
-/*
- *  ã­ã¥ã¼ã¤ã³ã°åæ°ã®æå¤§å¤
- */
-#define TMAX_ACTCNT		UINT_C(1)		/* èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ */
-#define TMAX_WUPCNT		UINT_C(1)		/* èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ */
-
-/*
- *  ããããã¿ã¼ã³ã®ãããæ°
- */
-#ifndef TBIT_FLGPTN					/* ã¤ãã³ããã©ã°ã®ãããæ° */
+ *  オブジェクト属性の定義
+ */
+#define TA_ACT			UINT_C(0x01)	/* タスクを起動された状態で生成 */
+#define TA_NOACTQUE		UINT_C(0x02)	/* 起動要求をキューイングしない */
+
+#define TA_TPRI			UINT_C(0x01)	/* タスクの待ち行列を優先度順に */
+
+#define TA_WMUL			UINT_C(0x02)	/* 複数の待ちタスク */
+#define TA_CLR			UINT_C(0x04)	/* イベントフラグのクリア指定 */
+
+#define TA_CEILING		UINT_C(0x03)	/* 優先度上限プロトコル */
+
+#define TA_STA			UINT_C(0x02)	/* 周期通知を動作状態で生成 */
+
+#define TA_NONKERNEL	UINT_C(0x02)	/* カーネル管理外の割込み */
+
+#define TA_ENAINT		UINT_C(0x01)	/* 割込み要求禁止フラグをクリア */
+#define TA_EDGE			UINT_C(0x02)	/* エッジトリガ */
+
+/*
+ *  サービスコールの動作モードの定義
+ */
+#define TWF_ORW			UINT_C(0x01)	/* イベントフラグのOR待ち */
+#define TWF_ANDW		UINT_C(0x02)	/* イベントフラグのAND待ち */
+
+/*
+ *  通知処理モードの定義
+ */
+#define TNFY_HANDLER	UINT_C(0x00)		/* タイムイベントハンドラの呼出し */
+#define TNFY_SETVAR		UINT_C(0x01)		/* 変数の設定 */
+#define TNFY_INCVAR		UINT_C(0x02)		/* 変数のインクリメント */
+#define TNFY_ACTTSK		UINT_C(0x03)		/* タスクの起動 */
+#define TNFY_WUPTSK		UINT_C(0x04)		/* タスクの起床 */
+#define TNFY_SIGSEM		UINT_C(0x05)		/* セマフォの資源の返却 */
+#define TNFY_SETFLG		UINT_C(0x06)		/* イベントフラグのセット */
+#define TNFY_SNDDTQ		UINT_C(0x07)		/* データキューへの送信 */
+
+#define TENFY_SETVAR	UINT_C(0x10)		/* 変数の設定 */
+#define TENFY_INCVAR	UINT_C(0x20)		/* 変数のインクリメント */
+#define TENFY_ACTTSK	UINT_C(0x30)		/* タスクの起動 */
+#define TENFY_WUPTSK	UINT_C(0x40)		/* タスクの起床 */
+#define TENFY_SIGSEM	UINT_C(0x50)		/* セマフォの返却 */
+#define TENFY_SETFLG	UINT_C(0x60)		/* イベントフラグのセット */
+#define TENFY_SNDDTQ	UINT_C(0x70)		/* データキューへの送信 */
+
+/*
+ *  オブジェクトの状態の定義
+ */
+#define TTS_RUN			UINT_C(0x01)	/* 実行状態 */
+#define TTS_RDY			UINT_C(0x02)	/* 実行可能状態 */
+#define TTS_WAI			UINT_C(0x04)	/* 待ち状態 */
+#define TTS_SUS			UINT_C(0x08)	/* 強制待ち状態 */
+#define TTS_WAS			UINT_C(0x0c)	/* 二重待ち状態 */
+#define TTS_DMT			UINT_C(0x10)	/* 休止状態 */
+
+#define TTW_SLP			UINT_C(0x0001)	/* 起床待ち */
+#define TTW_DLY			UINT_C(0x0002)	/* 時間経過待ち */
+#define TTW_SEM			UINT_C(0x0004)	/* セマフォの資源獲得待ち */
+#define TTW_FLG			UINT_C(0x0008)	/* イベントフラグ待ち */
+#define TTW_SDTQ		UINT_C(0x0010)	/* データキューへの送信待ち */
+#define TTW_RDTQ		UINT_C(0x0020)	/* データキューからの受信待ち */
+#define TTW_SPDQ		UINT_C(0x0100)	/* 優先度データキューへの送信待ち */
+#define TTW_RPDQ		UINT_C(0x0200)	/* 優先度データキューからの受信待ち */
+#define TTW_MTX			UINT_C(0x0080)	/* ミューテックスのロック待ち状態 */
+#define TTW_MPF			UINT_C(0x2000)	/* 固定長メモリブロックの獲得待ち */
+
+#define TCYC_STP		UINT_C(0x01)	/* 周期通知が動作していない */
+#define TCYC_STA		UINT_C(0x02)	/* 周期通知が動作している */
+
+#define TALM_STP		UINT_C(0x01)	/* アラーム通知が動作していない */
+#define TALM_STA		UINT_C(0x02)	/* アラーム通知が動作している */
+
+/*
+ *  その他の定数の定義
+ */
+#define TSK_SELF		0			/* 自タスク指定 */
+#define TSK_NONE		0			/* 該当するタスクがない */
+
+#define TPRI_SELF		0			/* 自タスクのベース優先度 */
+#define TPRI_INI		0			/* タスクの起動時優先度 */
+
+#define TIPM_ENAALL		0			/* 割込み優先度マスク全解除 */
+
+/*
+ *  構成定数とマクロ
+ */
+
+/*
+ *  優先度の範囲
+ */
+#define TMIN_TPRI		1			/* タスク優先度の最小値（最高値）*/
+#define TMAX_TPRI		16			/* タスク優先度の最大値（最低値）*/
+#define TMIN_DPRI		1			/* データ優先度の最小値（最高値）*/
+#define TMAX_DPRI		16			/* データ優先度の最大値（最低値）*/
+#define TMIN_ISRPRI		1			/* 割込みサービスルーチン優先度の最小値 */
+#define TMAX_ISRPRI		16			/* 割込みサービスルーチン優先度の最大値 */
+
+/*
+ *  バージョン情報
+ */
+#define TKERNEL_MAKER	UINT_C(0x0118)	/* カーネルのメーカーコード */
+#define TKERNEL_PRID	UINT_C(0x0007)	/* カーネルの識別番号 */
+#define TKERNEL_SPVER	UINT_C(0xf631)	/* カーネル仕様のバージョン番号 */
+#define TKERNEL_PRVER	UINT_C(0x3010)	/* カーネルのバージョン番号 */
+
+/*
+ *  キューイング回数の最大値
+ */
+#define TMAX_ACTCNT		UINT_C(1)		/* 起動要求キューイング数の最大値 */
+#define TMAX_WUPCNT		UINT_C(1)		/* 起床要求キューイング数の最大値 */
+
+/*
+ *  ビットパターンのビット数
+ */
+#ifndef TBIT_FLGPTN					/* イベントフラグのビット数 */
 #define TBIT_FLGPTN		(sizeof(FLGPTN) * CHAR_BIT)
 #endif /* TBIT_FLGPTN */
 
 /*
- *  ã·ã¹ãã æå»ã®èª¿æ´ã§ããç¯å²ï¼åä½ï¼Î¼ç§ï¼
- */
-#define TMIN_ADJTIM		-1000000		/* ã·ã¹ãã æå»ã®æå°èª¿æ´æé */
-#define TMAX_ADJTIM		1000000			/* ã·ã¹ãã æå»ã®æå¤§èª¿æ´æé */
-
-/*
- *  ã¡ã¢ãªé åç¢ºä¿ã®ããã®ãã¯ã­
+ *  システム時刻の調整できる範囲（単位：μ秒）
+ */
+#define TMIN_ADJTIM		-1000000		/* システム時刻の最小調整時間 */
+#define TMAX_ADJTIM		1000000			/* システム時刻の最大調整時間 */
+
+/*
+ *  メモリ領域確保のためのマクロ
  *
- *  ä»¥ä¸ã®TOPPERS_COUNT_SZã¨TOPPERS_ROUND_SZã®å®ç¾©ã¯ï¼unitã2ã®å·¾ä¹ã§ã
- *  ããã¨ãä»®å®ãã¦ããï¼
+ *  以下のTOPPERS_COUNT_SZとTOPPERS_ROUND_SZの定義は，unitが2の巾乗であ
+ *  ることを仮定している．
  */
 #ifndef TOPPERS_COUNT_SZ
@@ -776,7 +666,7 @@
 
 /*
- *  ãã®ä»ã®æ§æå®æ°
- */
-#define TMAX_MAXSEM		UINT_MAX	/* ã»ããã©ã®æå¤§è³æºæ°ã®æå¤§å¤ */
+ *  その他の構成定数
+ */
+#define TMAX_MAXSEM		UINT_MAX	/* セマフォの最大資源数の最大値 */
 
 #ifdef __cplusplus
Index: EcnlProtoTool/trunk/asp3_dcre/include/log_output.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/log_output.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/include/log_output.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,5 +41,5 @@
 
 /*
- *		ã·ã¹ãã ã­ã°ã®ãã©ã¼ãããåºå
+ *		システムログのフォーマット出力
  */
 
@@ -70,8 +55,8 @@
 
 /*
- *  æå­åæ´å½¢åºå
+ *  文字列整形出力
  *
- *  formatã§æå®ããããã©ã¼ãããè¨è¿°ã¨p_argsã§æå®ãããå¼æ°åããä½
- *  æããã¡ãã»ã¼ã¸ãï¼1æå­åºåé¢æ°putcãç¨ãã¦åºåããï¼
+ *  formatで指定されるフォーマット記述とp_argsで指定される引数列から作
+ *  成したメッセージを，1文字出力関数putcを用いて出力する．
  */
 extern void	syslog_printf(const char *format, const intptr_t *p_args,
@@ -79,20 +64,16 @@
 
 /*
- *  ã­ã°æ
-å ±ã®åºå
+ *  ログ情報の出力
  *
- *  p_syslogã§æå®ãããã­ã°æ
-å ±ãæå­åã«æ´å½¢ãï¼1æå­åºåé¢æ°putcãç¨
- *  ãã¦åºåããï¼
+ *  p_syslogで指定されるログ情報を文字列に整形し，1文字出力関数putcを用
+ *  いて出力する．
  */
 extern void	syslog_print(const SYSLOG *p_syslog, void (*putc)(char)) throw();
 
 /*
- *  ã­ã°æ
-å ±åªå¤±ã¡ãã»ã¼ã¸æå­å
+ *  ログ情報喪失メッセージ文字列
  *
- *  lostlogåã®ã­ã°æ
-å ±ãå¤±ãããæ¨ã®ã¡ãã»ã¼ã¸ãï¼1æå­åºåé¢æ°putcã
- *  ç¨ãã¦åºåããï¼
+ *  lostlog個のログ情報が失われた旨のメッセージを，1文字出力関数putcを
+ *  用いて出力する．
  */
 extern void	syslog_lostmsg(uint_t lostlog, void (*putc)(char)) throw();
Index: EcnlProtoTool/trunk/asp3_dcre/include/queue.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/queue.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/include/queue.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,15 +41,12 @@
 
 /*
- *		ã­ã¥ã¼æä½ã©ã¤ãã©ãª
+ *		キュー操作ライブラリ
  *
- *  ãã®ã­ã¥ã¼æä½ã©ã¤ãã©ãªã§ã¯ï¼ã­ã¥ã¼ããããå«ããªã³ã°æ§é ã®ããã«
- *  ãªã³ã¯ã­ã¥ã¼ãæ±ãï¼å
-·ä½çã«ã¯ï¼ã­ã¥ã¼ãããã®æ¬¡ã¨ã³ããªã¯ã­ã¥ã¼ã®
- *  å
-é ­ã®ã¨ã³ããªï¼åã¨ã³ããªã¯ã­ã¥ã¼ã®æ«å°¾ã®ã¨ã³ããªã¨ããï¼ã¾ãï¼ã­
- *  ã¥ã¼ã®å
-é ­ã®ã¨ã³ããªã®åã¨ã³ããªã¨ï¼ã­ã¥ã¼ã®æ«å°¾ã®ã¨ã³ããªã®æ¬¡ã¨ã³
- *  ããªã¯ï¼ã­ã¥ã¼ãããã¨ããï¼ç©ºã®ã­ã¥ã¼ã¯ï¼æ¬¡ã¨ã³ããªï¼åã¨ã³ããªã¨
- *  ãèªåèªèº«ãæãã­ã¥ã¼ãããã§ããããï¼
+ *  このキュー操作ライブラリでは，キューヘッダを含むリング構造のダブル
+ *  リンクキューを扱う．具体的には，キューヘッダの次エントリはキューの
+ *  先頭のエントリ，前エントリはキューの末尾のエントリとする．また，キ
+ *  ューの先頭のエントリの前エントリと，キューの末尾のエントリの次エン
+ *  トリは，キューヘッダとする．空のキューは，次エントリ，前エントリと
+ *  も自分自身を指すキューヘッダであらわす．
  */
 
@@ -80,15 +62,15 @@
 
 /*
- *  ã­ã¥ã¼ã®ãã¼ã¿æ§é ã®å®ç¾©
+ *  キューのデータ構造の定義
  */
 typedef struct queue {
-	struct queue *p_next;		/* æ¬¡ã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
-	struct queue *p_prev;		/* åã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
+	struct queue *p_next;		/* 次エントリへのポインタ */
+	struct queue *p_prev;		/* 前エントリへのポインタ */
 } QUEUE;
 
 /*
- *  ã­ã¥ã¼ã®åæå
+ *  キューの初期化
  *
- *  p_queueã«ã¯ã­ã¥ã¼ããããæå®ããï¼
+ *  p_queueにはキューヘッダを指定する．
  */
 Inline void
@@ -100,11 +82,8 @@
 
 /*
- *  ã­ã¥ã¼ã®åã¨ã³ããªã¸ã®æ¿å
-¥
+ *  キューの前エントリへの挿入
  *
- *  p_queueã®åã«p_entryãæ¿å
-¥ããï¼p_queueã«ã­ã¥ã¼ããããæå®ããå ´
- *  åã«ã¯ï¼ã­ã¥ã¼ã®æ«å°¾ã«p_entryãæ¿å
-¥ãããã¨ã«ãªãï¼
+ *  p_queueの前にp_entryを挿入する．p_queueにキューヘッダを指定した場
+ *  合には，キューの末尾にp_entryを挿入することになる．
  */
 Inline void
@@ -118,12 +97,8 @@
 
 /*
- *  ã­ã¥ã¼ã®æ¬¡ã¨ã³ããªã¸ã®æ¿å
-¥
+ *  キューの次エントリへの挿入
  *
- *  p_queueã®æ¬¡ã«p_entryãæ¿å
-¥ããï¼p_queueã«ã­ã¥ã¼ããããæå®ããå ´
- *  åã«ã¯ï¼ã­ã¥ã¼ã®å
-é ­ã«p_entryãæ¿å
-¥ãããã¨ã«ãªãï¼
+ *  p_queueの次にp_entryを挿入する．p_queueにキューヘッダを指定した場
+ *  合には，キューの先頭にp_entryを挿入することになる．
  */
 Inline void
@@ -137,7 +112,7 @@
 
 /*
- *  ã¨ã³ããªã®åé¤
+ *  エントリの削除
  *
- *  p_entryãã­ã¥ã¼ããåé¤ããï¼
+ *  p_entryをキューから削除する．
  */
 Inline void
@@ -149,11 +124,10 @@
 
 /*
- *  ã­ã¥ã¼ã®æ¬¡ã¨ã³ããªã®ååºã
+ *  キューの次エントリの取出し
  *
- *  p_queueã®æ¬¡ã¨ã³ããªãã­ã¥ã¼ããåé¤ãï¼åé¤ããã¨ã³ããªãè¿ãï¼
- *  p_queueã«ã­ã¥ã¼ããããæå®ããå ´åã«ã¯ï¼ã­ã¥ã¼ã®å
-é ­ã®ã¨ã³ããªã
- *  åãåºããã¨ã«ãªãï¼p_queueã«ç©ºã®ã­ã¥ã¼ãæå®ãã¦å¼ã³åºãã¦ã¯ãªã
- *  ãªãï¼
+ *  p_queueの次エントリをキューから削除し，削除したエントリを返す．
+ *  p_queueにキューヘッダを指定した場合には，キューの先頭のエントリを
+ *  取り出すことになる．p_queueに空のキューを指定して呼び出してはなら
+ *  ない．
  */
 Inline QUEUE *
@@ -170,7 +144,7 @@
 
 /*
- *  ã­ã¥ã¼ãç©ºãã©ããã®ãã§ãã¯
+ *  キューが空かどうかのチェック
  *
- *  p_queueã«ã¯ã­ã¥ã¼ããããæå®ããï¼
+ *  p_queueにはキューヘッダを指定する．
  */
 Inline bool_t
Index: EcnlProtoTool/trunk/asp3_dcre/include/sil.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/sil.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/include/sil.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,12 +41,12 @@
 
 /*
- *		ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤
+ *		システムインタフェースレイヤ
  *
- *  ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ã®ãµã¼ãã¹ã³ã¼ã«ã®å®ç¾©ã»å®£è¨ã¨ãã¯ã­ãª
- *  ã©ã®å®ç¾©ãå«ãããããã¡ã¤ã«ï¼
+ *  システムインタフェースレイヤのサービスコールの定義・宣言とマクロな
+ *  どの定義を含むヘッダファイル．
  *
- *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
- *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ãããã¨ã§ï¼ãã¯ã­å®ç¾©ä»¥å¤ã®è¨è¿°ã
- *  é¤ããã¨ãã§ããï¼
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておくことで，マクロ定義以外の記述を
+ *  除くことができる．
  */
 
@@ -74,11 +59,10 @@
 
 /*
- *	TOPPERSå
-±éã®ãã¼ã¿åã»å®æ°ã»ãã¯ã­
+ *	TOPPERS共通のデータ型・定数・マクロ
  */
 #include <t_stddef.h>
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨
+ *  ターゲット依存部
  */
 #include "target_sil.h"
@@ -87,20 +71,17 @@
 
 /*
- *  å
-¨å²è¾¼ã¿ã­ãã¯ç¶æ
-ã®å¶å¾¡
+ *  全割込みロック状態の制御
  *
- *  SIL_PRE_LOCï¼SIL_LOC_INT()ï¼SIL_UNL_INT()ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨
- *  æããï¼ããã©ã«ãã®å®ç¾©ã¯ç¨æãã¦ããªãï¼
- */
-
-/*
- *  å¾®å°æéå¾
-ã¡
+ *  SIL_PRE_LOC，SIL_LOC_INT()，SIL_UNL_INT()は，ターゲット依存部で用
+ *  意する．デフォルトの定義は用意していない．
+ */
+
+/*
+ *  微少時間待ち
  */
 extern void	sil_dly_nse(ulong_t dlytim) throw();
 
 /*
- *  ã¨ã³ãã£ã¢ã³ã®åè»¢
+ *  エンディアンの反転
  */
 #ifndef TOPPERS_SIL_REV_ENDIAN_UINT16
@@ -116,10 +97,10 @@
 
 /*
- *  ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°
+ *  メモリ空間アクセス関数
  */
 #ifndef TOPPERS_OMIT_SIL_ACCESS
 
 /*
- *  8ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ *  8ビット単位の読出し／書込み
  */
 #ifdef UINT8_MAX
@@ -143,5 +124,5 @@
 
 /*
- *  16ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ *  16ビット単位の読出し／書込み
  */
 
@@ -161,5 +142,5 @@
 }
 
-#ifdef SIL_ENDIAN_BIG			/* ããã°ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+#ifdef SIL_ENDIAN_BIG			/* ビッグエンディアンプロセッサ */
 
 #define	sil_reh_bem(mem)		sil_reh_mem(mem)
@@ -188,5 +169,5 @@
 #endif /* TOPPERS_OMIT_SIL_WRH_LEM */
 #else /* SIL_ENDIAN_BIG */
-#ifdef SIL_ENDIAN_LITTLE		/* ãªãã«ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+#ifdef SIL_ENDIAN_LITTLE		/* リトルエンディアンプロセッサ */
 
 #define	sil_reh_lem(mem)		sil_reh_mem(mem)
@@ -222,5 +203,5 @@
 
 /*
- *  32ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ *  32ビット単位の読出し／書込み
  */
 
@@ -240,5 +221,5 @@
 }
 
-#ifdef SIL_ENDIAN_BIG			/* ããã°ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+#ifdef SIL_ENDIAN_BIG			/* ビッグエンディアンプロセッサ */
 
 #define	sil_rew_bem(mem)		sil_rew_mem(mem)
@@ -266,5 +247,5 @@
 
 #endif /* TOPPERS_OMIT_SIL_WRW_LEM */
-#else /* SIL_ENDIAN_BIG */		/* ãªãã«ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+#else /* SIL_ENDIAN_BIG */		/* リトルエンディアンプロセッサ */
 
 #define	sil_rew_lem(mem)		sil_rew_mem(mem)
Index: EcnlProtoTool/trunk/asp3_dcre/include/t_stddef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/t_stddef.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/include/t_stddef.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,17 +41,14 @@
 
 /*
- *		TOPPERSå
-±éããããã¡ã¤ã«
- *
- *  TOPPERSé¢é£ã®ãã¹ã¦ã®ã½ã¼ã¹ãã¡ã¤ã«ã§ã¤ã³ã¯ã«ã¼ããã¹ãããããã¡ã¤
- *  ã«ï¼åç¨®ã®ã«ã¼ãã«ãã½ããã¦ã§ã¢é¨åã§å
-±éã«ç¨ãããã¨ãæ³å®ãã¦ã
- *  ãï¼TOPPERSã®åç¨®ã®ã«ã¼ãã«ãã½ããã¦ã§ã¢é¨åã§å
-±éã«ç¨ãããã¼ã¿åï¼
- *  å®æ°ï¼ãã¯ã­ã®å®ç¾©ãªã©ãå«ãï¼
- *
- *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
- *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ããï¼ããã«ããï¼ãã¯ã­å®ç¾©ä»¥å¤ã
- *  é¤ãããã«ãªã£ã¦ããï¼
+ *		TOPPERS共通ヘッダファイル
+ *
+ *  TOPPERS関連のすべてのソースファイルでインクルードすべきヘッダファイ
+ *  ル．各種のカーネルやソフトウェア部品で共通に用いることを想定してい
+ *  る．TOPPERSの各種のカーネルやソフトウェア部品で共通に用いるデータ型，
+ *  定数，マクロの定義などを含む．
+ *
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておく．これにより，マクロ定義以外を
+ *  除くようになっている．
  */
 
@@ -79,10 +61,10 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨
+ *  ターゲット依存部
  */
 #include "target_stddef.h"
 
 /*
- *  Cè¨èª/EC++ã§throw()ã«å¯¾å¦ããããã®å®ç¾©
+ *  C言語/EC++でthrow()に対処するための定義
  */
 #if !defined(__cplusplus) || defined(__embedded_cplusplus)
@@ -93,8 +75,8 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®ãã¼ã¿åã®ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  ターゲット依存のデータ型のマクロのデフォルト定義
  */
 #ifndef TOPPERS_bool
-#define TOPPERS_bool	int				/* ãã¼ã«å */
+#define TOPPERS_bool	int				/* ブール型 */
 #endif /* TOPPERS_bool */
 
@@ -102,53 +84,49 @@
 struct TOPPERS_dummy_t { int TOPPERS_dummy_field; };
 typedef	void			(*TOPPERS_fp_t)(struct TOPPERS_dummy_t);
-#define TOPPERS_fp		TOPPERS_fp_t	/* ãã­ã°ã©ã ã®èµ·åçªå° */
+#define TOPPERS_fp		TOPPERS_fp_t	/* プログラムの起動番地 */
 #endif /* TOPPERS_fp */
 
 /*
- *  å
-±éãã¼ã¿å
- */
-typedef TOPPERS_bool	bool_t;		/* çå½å¤ */
-
-typedef signed int		int_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
-typedef unsigned int	uint_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
-
-typedef signed long		long_t;		/* é·ãã®ãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
-typedef unsigned long	ulong_t;	/* é·ãã®ãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
-
-typedef int_t			FN;			/* æ©è½ã³ã¼ã */
-typedef	int_t			ER;			/* ã¨ã©ã¼ã³ã¼ã */
-typedef	int_t			ID;			/* ãªãã¸ã§ã¯ãã®IDçªå· */
-typedef	uint_t			ATR;		/* ãªãã¸ã§ã¯ãã®å±æ§ */
-typedef	uint_t			STAT;		/* ãªãã¸ã§ã¯ãã®ç¶æ
- */
-typedef	uint_t			MODE;		/* ãµã¼ãã¹ã³ã¼ã«ã®åä½ã¢ã¼ã */
-typedef	int_t			PRI;		/* åªå
-åº¦ */
-typedef	uint32_t		TMO;		/* ã¿ã¤ã ã¢ã¦ãæå® */
-typedef	uint32_t		RELTIM;		/* ç¸å¯¾æéï¼»NGKI0550ï¼½*/
+ *  共通データ型
+ */
+typedef TOPPERS_bool	bool_t;		/* 真偽値 */
+
+typedef signed int		int_t;		/* 自然なサイズの符号付き整数 */
+typedef unsigned int	uint_t;		/* 自然なサイズの符号無し整数 */
+
+typedef signed long		long_t;		/* 長めのサイズの符号付き整数 */
+typedef unsigned long	ulong_t;	/* 長めのサイズの符号無し整数 */
+
+typedef int_t			FN;			/* 機能コード */
+typedef	int_t			ER;			/* エラーコード */
+typedef	int_t			ID;			/* オブジェクトのID番号 */
+typedef	uint_t			ATR;		/* オブジェクトの属性 */
+typedef	uint_t			STAT;		/* オブジェクトの状態 */
+typedef	uint_t			MODE;		/* サービスコールの動作モード */
+typedef	int_t			PRI;		/* 優先度 */
+typedef	uint32_t		TMO;		/* タイムアウト指定 */
+typedef	uint32_t		RELTIM;		/* 相対時間［NGKI0550］*/
 #ifdef UINT64_MAX
-typedef	uint64_t		SYSTIM;		/* ã·ã¹ãã æå»ï¼»NGKI0548ï¼½*/
+typedef	uint64_t		SYSTIM;		/* システム時刻［NGKI0548］*/
 #else /* UINT64_MAX */
-typedef	uint32_t		SYSTIM;		/* ã·ã¹ãã æå»ï¼»NGKI0548ï¼½*/
+typedef	uint32_t		SYSTIM;		/* システム時刻［NGKI0548］*/
 #endif /* UINT64_MAX */
-typedef	uint32_t		PRCTIM;		/* ãã­ã»ããµæéï¼»NGKI0573ï¼½*/
-typedef	uint32_t		HRTCNT;		/* é«åè§£è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ */
-
-typedef	TOPPERS_fp		FP;			/* ãã­ã°ã©ã ã®èµ·åçªå° */
-
-typedef	int_t			ER_BOOL;	/* ã¨ã©ã¼ã³ã¼ãã¾ãã¯çå½å¤ */
-typedef	int_t			ER_ID;		/* ã¨ã©ã¼ã³ã¼ãã¾ãã¯IDçªå· */
-typedef	int_t			ER_UINT;	/* ã¨ã©ã¼ã³ã¼ãã¾ãã¯ç¬¦å·ç¡ãæ´æ° */
-
-typedef uintptr_t		MB_T;		/* ç®¡çé åãç¢ºä¿ããããã®ãã¼ã¿å */
-
-typedef	uint32_t		ACPTN;		/* ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
-typedef	struct acvct {				/* ã¢ã¯ã»ã¹è¨±å¯ãã¯ã¿ */
-	ACPTN		acptn1;				/* éå¸¸æä½1ã®ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
-	ACPTN		acptn2;				/* éå¸¸æä½2ã®ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
-	ACPTN		acptn3;				/* ç®¡çæä½ã®ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
-	ACPTN		acptn4;				/* åç
-§æä½ã®ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
+typedef	uint32_t		PRCTIM;		/* プロセッサ時間［NGKI0573］*/
+typedef	uint32_t		HRTCNT;		/* 高分解能タイマのカウント値 */
+
+typedef	TOPPERS_fp		FP;			/* プログラムの起動番地 */
+
+typedef	int_t			ER_BOOL;	/* エラーコードまたは真偽値 */
+typedef	int_t			ER_ID;		/* エラーコードまたはID番号 */
+typedef	int_t			ER_UINT;	/* エラーコードまたは符号無し整数 */
+
+typedef uintptr_t		MB_T;		/* 管理領域を確保するためのデータ型 */
+
+typedef	uint32_t		ACPTN;		/* アクセス許可パターン */
+typedef	struct acvct {				/* アクセス許可ベクタ */
+	ACPTN		acptn1;				/* 通常操作1のアクセス許可パターン */
+	ACPTN		acptn2;				/* 通常操作2のアクセス許可パターン */
+	ACPTN		acptn3;				/* 管理操作のアクセス許可パターン */
+	ACPTN		acptn4;				/* 参照操作のアクセス許可パターン */
 } ACVCT;
 
@@ -156,91 +134,82 @@
 
 /*
- *  æ´æ°å®æ°ãä½ããã¯ã­
+ *  整数定数を作るマクロ
  */
 #ifndef UINT_C
-#define UINT_C(val)		(val ## U)		/* uint_tåã®å®æ°ãä½ããã¯ã­ */
+#define UINT_C(val)		(val ## U)		/* uint_t型の定数を作るマクロ */
 #endif /* UINT_C */
 
 #ifndef ULONG_C
-#define ULONG_C(val)	(val ## UL)		/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
+#define ULONG_C(val)	(val ## UL)		/* ulong_t型の定数を作るマクロ */
 #endif /* ULONG_C */
 
 /*
- *  ä¸è¬å®æ°
+ *  一般定数
  */
 #ifndef NULL
-#define NULL		0			/* ç¡å¹ãã¤ã³ã¿ */
+#define NULL		0			/* 無効ポインタ */
 #endif /* NULL */
 
 #ifndef true
-#define true		1			/* ç */
+#define true		1			/* 真 */
 #endif /* true */
 
 #ifndef false
-#define false		0			/* å½ */
+#define false		0			/* 偽 */
 #endif /* false */
 
-#define E_OK		0			/* æ­£å¸¸çµäº */
-
-/*
- *  ã¡ã¤ã³ã¨ã©ã¼ã³ã¼ã
- */
-#define E_SYS		(-5)		/* ã·ã¹ãã ã¨ã©ã¼ */
-#define E_NOSPT		(-9)		/* æªãµãã¼ãæ©è½ */
-#define E_RSFN		(-10)		/* äºç´æ©è½ã³ã¼ã */
-#define E_RSATR		(-11)		/* äºç´å±æ§ */
-#define E_PAR		(-17)		/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
-#define E_ID		(-18)		/* ä¸æ­£IDçªå· */
-#define E_CTX		(-25)		/* ã³ã³ãã­ã¹ãã¨ã©ã¼ */
-#define E_MACV		(-26)		/* ã¡ã¢ãªã¢ã¯ã»ã¹éå */
-#define E_OACV		(-27)		/* ãªãã¸ã§ã¯ãã¢ã¯ã»ã¹éå */
-#define E_ILUSE		(-28)		/* ãµã¼ãã¹ã³ã¼ã«ä¸æ­£ä½¿ç¨ */
-#define E_NOMEM		(-33)		/* ã¡ã¢ãªä¸è¶³ */
-#define E_NOID		(-34)		/* IDçªå·ä¸è¶³ */
-#define E_NORES		(-35)		/* è³æºä¸è¶³ */
-#define E_OBJ		(-41)		/* ãªãã¸ã§ã¯ãç¶æ
-ã¨ã©ã¼ */
-#define E_NOEXS		(-42)		/* ãªãã¸ã§ã¯ãæªçæ */
-#define E_QOVR		(-43)		/* ã­ã¥ã¼ã¤ã³ã°ãªã¼ãã¼ãã­ã¼ */
-#define E_RLWAI		(-49)		/* å¾
-ã¡ç¶æ
-ã®å¼·å¶è§£é¤ */
-#define E_TMOUT		(-50)		/* ãã¼ãªã³ã°å¤±æã¾ãã¯ã¿ã¤ã ã¢ã¦ã */
-#define E_DLT		(-51)		/* å¾
-ã¡ãªãã¸ã§ã¯ãã®åé¤ */
-#define E_CLS		(-52)		/* å¾
-ã¡ãªãã¸ã§ã¯ãã®ç¶æ
-å¤å */
-#define E_RASTER	(-53)		/* ã¿ã¹ã¯ã®çµäºè¦æ± */
-#define E_WBLK		(-57)		/* ãã³ãã­ãã­ã³ã°åä»ã */
-#define E_BOVR		(-58)		/* ãããã¡ãªã¼ãã¼ãã­ã¼ */
-#define E_COMM		(-65)		/* éä¿¡ã¨ã©ã¼ */
-
-/*
- *  ãªãã¸ã§ã¯ãå±æ§
- */
-#define TA_NULL		UINT_C(0)	/* ãªãã¸ã§ã¯ãå±æ§ãæå®ããªã */
-
-/*
- *  ã¿ã¤ã ã¢ã¦ãæå®
- */
-#define TMO_POL		UINT_C(0)			/* ãã¼ãªã³ã° */
-#define TMO_FEVR	(UINT32_MAX)		/* æ°¸ä¹
-å¾
-ã¡ */
-#define TMO_NBLK	(UINT32_MAX - 1)	/* ãã³ãã­ãã­ã³ã° */
-
-/*
- *  ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³
- */
-#define TACP_KERNEL	UINT_C(0)		/* ã«ã¼ãã«ãã¡ã¤ã³ã ãã«ã¢ã¯ã»ã¹ãè¨±å¯ */
-#define TACP_SHARED	(~UINT_C(0))	/* ãã¹ã¦ã®ãã¡ã¤ã³ããã¢ã¯ã»ã¹ãè¨±å¯ */
-
-/*
- *  åã«é¢ããæ
-å ±ãåãåºãããã®ãã¯ã­
- *
- *  ä»¥ä¸ã®ALIGN_TYPEã®å®ç¾©ã¯ï¼ã¢ã©ã¤ã³ã¡ã³ãã®åä½ã2ã®å·¾ä¹ã§ãããã¨ã
- *  ä»®å®ãã¦ããï¼
+#define E_OK		0			/* 正常終了 */
+
+/*
+ *  メインエラーコード
+ */
+#define E_SYS		(-5)		/* システムエラー */
+#define E_NOSPT		(-9)		/* 未サポート機能 */
+#define E_RSFN		(-10)		/* 予約機能コード */
+#define E_RSATR		(-11)		/* 予約属性 */
+#define E_PAR		(-17)		/* パラメータエラー */
+#define E_ID		(-18)		/* 不正ID番号 */
+#define E_CTX		(-25)		/* コンテキストエラー */
+#define E_MACV		(-26)		/* メモリアクセス違反 */
+#define E_OACV		(-27)		/* オブジェクトアクセス違反 */
+#define E_ILUSE		(-28)		/* サービスコール不正使用 */
+#define E_NOMEM		(-33)		/* メモリ不足 */
+#define E_NOID		(-34)		/* ID番号不足 */
+#define E_NORES		(-35)		/* 資源不足 */
+#define E_OBJ		(-41)		/* オブジェクト状態エラー */
+#define E_NOEXS		(-42)		/* オブジェクト未生成 */
+#define E_QOVR		(-43)		/* キューイングオーバーフロー */
+#define E_RLWAI		(-49)		/* 待ち状態の強制解除 */
+#define E_TMOUT		(-50)		/* ポーリング失敗またはタイムアウト */
+#define E_DLT		(-51)		/* 待ちオブジェクトの削除 */
+#define E_CLS		(-52)		/* 待ちオブジェクトの状態変化 */
+#define E_RASTER	(-53)		/* タスクの終了要求 */
+#define E_WBLK		(-57)		/* ノンブロッキング受付け */
+#define E_BOVR		(-58)		/* バッファオーバーフロー */
+#define E_COMM		(-65)		/* 通信エラー */
+
+/*
+ *  オブジェクト属性
+ */
+#define TA_NULL		UINT_C(0)	/* オブジェクト属性を指定しない */
+
+/*
+ *  タイムアウト指定
+ */
+#define TMO_POL		UINT_C(0)			/* ポーリング */
+#define TMO_FEVR	(UINT32_MAX)		/* 永久待ち */
+#define TMO_NBLK	(UINT32_MAX - 1)	/* ノンブロッキング */
+
+/*
+ *  アクセス許可パターン
+ */
+#define TACP_KERNEL	UINT_C(0)		/* カーネルドメインだけにアクセスを許可 */
+#define TACP_SHARED	(~UINT_C(0))	/* すべてのドメインからアクセスを許可 */
+
+/*
+ *  型に関する情報を取り出すためのマクロ
+ *
+ *  以下のALIGN_TYPEの定義は，アラインメントの単位が2の巾乗であることを
+ *  仮定している．
  */
 #ifndef offsetof
@@ -252,5 +221,5 @@
 #endif /* alignof */
 
-#ifndef ALIGN_TYPE				/* ã¢ã©ã¤ã³ã¡ã³ãã®ãã§ãã¯ */
+#ifndef ALIGN_TYPE				/* アラインメントのチェック */
 #define ALIGN_TYPE(addr, type) \
 						((((uintptr_t)(addr)) & (alignof(type) - 1)) == 0U)
@@ -258,5 +227,5 @@
 
 /*
- *  assertãã¯ã­
+ *  assertマクロ
  */
 #undef assert
@@ -273,12 +242,12 @@
 
 /*
- *  ã¨ã©ã¼ã³ã¼ãçæã»åè§£ãã¯ã­
- *
- *  ä»¥ä¸ã®ãã¯ã­å®ç¾©ã¯ï¼ç¬¦å·ä»ãæ´æ°ã2ã®è£æ°ã§è¡¨ç¾ããã¦ããï¼å³ã·ãã
- *  æ¼ç®å­ï¼>>ï¼ãç®è¡ã·ããããããã¨ãä»®å®ãã¦ããï¼ããã§ãªãéçºç°
- *  å¢ã§ã¯ï¼target_stddef.hã§ãããã®å®ç¾©ãä¸æ¸ãããªããã°ãªããªãï¼
- *
- *  MERCDãã¯ã­ã®å®ç¾©ã¯ï¼ã¡ã¤ã³ã¨ã©ã¼ã³ã¼ããè² ã§ãããã¨ãä»®å®ãã¦ããï¼
- *  ããã§ãªãå ´åï¼2ã¤ã®å®ç¾©ãä¸è´ããªããªãï¼
+ *  エラーコード生成・分解マクロ
+ *
+ *  以下のマクロ定義は，符号付き整数が2の補数で表現されており，右シフト
+ *  演算子（>>）が算術シフトされることを仮定している．そうでない開発環
+ *  境では，target_stddef.hでこれらの定義を上書きしなければならない．
+ *
+ *  MERCDマクロの定義は，メインエラーコードが負であることを仮定している．
+ *  そうでない場合，2つの定義が一致しなくなる．
  */
 #ifndef ERCD
@@ -300,12 +269,12 @@
 
 /*
- *  ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³çæãã¯ã­
- */
-#define TACP(domid)		(1U << ((domid) - 1))	/* domidã ãã«ã¢ã¯ã»ã¹ãè¨±å¯ */
-
-/*
- *  ç¸å¯¾æéï¼RELTIMï¼ã«æå®ã§ããæå¤§å¤ï¼»NGKI0551ï¼½
- */
-#define TMAX_RELTIM		4000000000U				/* 66å40ç§ã¾ã§æå®å¯ */
+ *  アクセス許可パターン生成マクロ
+ */
+#define TACP(domid)		(1U << ((domid) - 1))	/* domidだけにアクセスを許可 */
+
+/*
+ *  相対時間（RELTIM）に指定できる最大値［NGKI0551］
+ */
+#define TMAX_RELTIM		4000000000U				/* 66分40秒まで指定可 */
 
 #endif /* TOPPERS_T_STDDEF_H */
Index: EcnlProtoTool/trunk/asp3_dcre/include/t_stdlib.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/t_stdlib.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/include/t_stdlib.h	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,5 +41,5 @@
 
 /*
- *		åºæ¬çãªã©ã¤ãã©ãªé¢æ°
+ *		基本的なライブラリ関数
  */
 
@@ -69,16 +54,16 @@
 
 /*
- *  ã¨ã©ã¼ã¡ãã»ã¼ã¸æå­åãè¿ãé¢æ°
+ *  エラーメッセージ文字列を返す関数
  *
- *  ercdã§æå®ãããã¨ã©ã¼ã³ã¼ãã®ã¡ã¤ã³ã¨ã©ã¼ã³ã¼ãã®åç§°ï¼E_PARï¼
- *  E_OBJãªã©ï¼ã®æå­åãè¿ãé¢æ°ï¼
+ *  ercdで指定されたエラーコードのメインエラーコードの名称（E_PAR，
+ *  E_OBJなど）の文字列を返す関数．
  */
 extern const char	*itron_strerror(ER ercd) throw();
 
 /*
- *  ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®ã­ã°åºå
+ *  エラーメッセージのログ出力
  *
- *  ãµã¼ãã¹ã³ã¼ã«ãã¨ã©ã¼ãè¿ããå ´åã«ï¼ãã®ãã¡ã¤ã«åï¼è¡çªå·ï¼ã¡ã¤
- *  ã³ã¨ã©ã¼ã³ã¼ãç­ãè¡¨ç¤ºããããã®é¢æ°ï¼
+ *  サービスコールがエラーを返した場合に，そのファイル名，行番号，メイ
+ *  ンエラーコード等を表示するための関数．
  */
 extern void		t_perror(uint_t prio, const char *file, int_t line,
Index: EcnlProtoTool/trunk/asp3_dcre/include/t_syslog.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/t_syslog.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/include/t_syslog.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,28 +42,20 @@
 
 /*
- *		ã·ã¹ãã ã­ã°åºåãè¡ãããã®å®ç¾©
- *
- *  ã·ã¹ãã ã­ã°ãµã¼ãã¹ã¯ï¼ã·ã¹ãã ã®ã­ã°æ
-å ±ãåºåããããã®ãµã¼ãã¹
- *  ã§ããï¼ã«ã¼ãã«ããã®ã­ã°æ
-å ±ã®åºåã«ãç¨ããããï¼å
-é¨ã§å¾
-ã¡ç¶æ
-
- *  ã«ã¯ãããã¨ã¯ãªãï¼
- *
- *  ã­ã°æ
-å ±ã¯ï¼ã«ã¼ãã«å
-ã®ã­ã°ãããã¡ã«æ¸ãè¾¼ããï¼ä½ã¬ãã«ã®æå­åº
- *  åé¢æ°ãç¨ãã¦åºåããï¼ã©ã¡ããä½¿ããã¯ï¼æ¡å¼µãµã¼ãã¹ã³ã¼ã«ã§åã
- *  æãããã¨ãã§ããï¼
- *
- *  ã­ã°ãããã¡é åããªã¼ããã­ã¼ããå ´åã«ã¯ï¼å¤ãã­ã°æ
-å ±ãæ¶ãã¦ä¸
- *  æ¸ãããï¼
- *
- *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
- *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ãããã¨ã§ï¼ãã¯ã­å®ç¾©ä»¥å¤ã®è¨è¿°ã
- *  é¤ããã¨ãã§ããï¼
+ *		システムログ出力を行うための定義
+ *
+ *  システムログサービスは，システムのログ情報を出力するためのサービス
+ *  である．カーネルからのログ情報の出力にも用いるため，内部で待ち状態
+ *  にはいることはない．
+ *
+ *  ログ情報は，カーネル内のログバッファに書き込むか，低レベルの文字出
+ *  力関数を用いて出力する．どちらを使うかは，拡張サービスコールで切り
+ *  換えることができる．
+ *
+ *  ログバッファ領域がオーバフローした場合には，古いログ情報を消して上
+ *  書きする．
+ *
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておくことで，マクロ定義以外の記述を
+ *  除くことができる．
  */
 
@@ -93,66 +70,59 @@
 
 /*
- *  ã­ã°æ
-å ±ã®ç¨®å¥ã®å®ç¾©
- */
-#define LOG_TYPE_COMMENT	UINT_C(0x01)	/* ã³ã¡ã³ã */
-#define LOG_TYPE_ASSERT		UINT_C(0x02)	/* ã¢ãµã¼ã·ã§ã³ã®å¤±æ */
-
-#define LOG_TYPE_INH		UINT_C(0x11)	/* å²è¾¼ã¿ãã³ãã© */
-#define LOG_TYPE_ISR		UINT_C(0x12)	/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ */
-#define LOG_TYPE_CYC		UINT_C(0x13)	/* å¨æãã³ãã© */
-#define LOG_TYPE_ALM		UINT_C(0x14)	/* ã¢ã©ã¼ã ãã³ãã© */
-#define LOG_TYPE_OVR		UINT_C(0x15)	/* ãªã¼ãã©ã³ãã³ãã© */
-#define LOG_TYPE_EXC		UINT_C(0x16)	/* CPUä¾å¤ãã³ãã© */
-#define LOG_TYPE_TSKSTAT	UINT_C(0x21)	/* ã¿ã¹ã¯ç¶æ
-å¤å */
-#define LOG_TYPE_DSP		UINT_C(0x31)	/* ãã£ã¹ãããã£ */
-#define LOG_TYPE_SVC		UINT_C(0x41)	/* ãµã¼ãã¹ã³ã¼ã« */
-
-#define LOG_ENTER			UINT_C(0x00)	/* å
-¥å£ï¼éå§ */
-#define LOG_LEAVE			UINT_C(0x80)	/* åºå£ï¼çµäº */
-
-/*
- *  ã­ã°æ
-å ±ã®éè¦åº¦ã®å®ç¾©
- */
-#define LOG_EMERG			UINT_C(0)		/* ã·ã£ãããã¦ã³ã«å¤ããã¨ã©ã¼ */
+ *  ログ情報の種別の定義
+ */
+#define LOG_TYPE_COMMENT	UINT_C(0x01)	/* コメント */
+#define LOG_TYPE_ASSERT		UINT_C(0x02)	/* アサーションの失敗 */
+
+#define LOG_TYPE_INH		UINT_C(0x11)	/* 割込みハンドラ */
+#define LOG_TYPE_ISR		UINT_C(0x12)	/* 割込みサービスルーチン */
+#define LOG_TYPE_CYC		UINT_C(0x13)	/* 周期ハンドラ */
+#define LOG_TYPE_ALM		UINT_C(0x14)	/* アラームハンドラ */
+#define LOG_TYPE_OVR		UINT_C(0x15)	/* オーバランハンドラ */
+#define LOG_TYPE_EXC		UINT_C(0x16)	/* CPU例外ハンドラ */
+#define LOG_TYPE_TSKSTAT	UINT_C(0x21)	/* タスク状態変化 */
+#define LOG_TYPE_DSP		UINT_C(0x31)	/* ディスパッチャ */
+#define LOG_TYPE_SVC		UINT_C(0x41)	/* サービスコール */
+
+#define LOG_ENTER			UINT_C(0x00)	/* 入口／開始 */
+#define LOG_LEAVE			UINT_C(0x80)	/* 出口／終了 */
+
+/*
+ *  ログ情報の重要度の定義
+ */
+#define LOG_EMERG			UINT_C(0)		/* シャットダウンに値するエラー */
 #define LOG_ALERT			UINT_C(1)
 #define LOG_CRIT			UINT_C(2)
-#define LOG_ERROR			UINT_C(3)		/* ã·ã¹ãã ã¨ã©ã¼ */
-#define LOG_WARNING			UINT_C(4)		/* è­¦åã¡ãã»ã¼ã¸ */
+#define LOG_ERROR			UINT_C(3)		/* システムエラー */
+#define LOG_WARNING			UINT_C(4)		/* 警告メッセージ */
 #define LOG_NOTICE			UINT_C(5)
 #define LOG_INFO			UINT_C(6)
-#define LOG_DEBUG			UINT_C(7)		/* ãããã°ç¨ã¡ãã»ã¼ã¸ */
+#define LOG_DEBUG			UINT_C(7)		/* デバッグ用メッセージ */
 
 #ifndef TOPPERS_MACRO_ONLY
 
 /*
- *  ã­ã°æ
-å ±ã®ãã¼ã¿æ§é 
+ *  ログ情報のデータ構造
  */
 
 #ifndef LOGTIM
-#define LOGTIM		HRTCNT			/* ã­ã°æå»ã®ãã¼ã¿å */
+#define LOGTIM		HRTCNT			/* ログ時刻のデータ型 */
 #endif /* LOGTIM */
 
-#define TNUM_LOGPAR		6			/* ã­ã°ãã©ã¡ã¼ã¿ã®æ° */
+#define TNUM_LOGPAR		6			/* ログパラメータの数 */
 
 #ifndef LOGPAR
-#define LOGPAR		intptr_t		/* ã­ã°ãã©ã¡ã¼ã¿ã®ãã¼ã¿å */
+#define LOGPAR		intptr_t		/* ログパラメータのデータ型 */
 #define ULOGPAR		uintptr_t
 #endif /* LOGPAR */
 
 typedef struct {
-	uint_t	logtype;				/* ã­ã°æ
-å ±ã®ç¨®å¥ */
-	LOGTIM	logtim;					/* ã­ã°æå» */
-	LOGPAR	logpar[TNUM_LOGPAR];	/* ã­ã°ãã©ã¡ã¼ã¿ */
+	uint_t	logtype;				/* ログ情報の種別 */
+	LOGTIM	logtim;					/* ログ時刻 */
+	LOGPAR	logpar[TNUM_LOGPAR];	/* ログパラメータ */
 } SYSLOG;
 
 /*
- *  ã­ã°æ
-å ±ã®éè¦åº¦ã®ãããããããä½ãããã®ãã¯ã­
+ *  ログ情報の重要度のビットマップを作るためのマクロ
  */
 #define LOG_MASK(prio)		(1U << (prio))
@@ -160,11 +130,11 @@
 
 /*
- *  ãã±ããå½¢å¼ã®å®ç¾©
+ *  パケット形式の定義
  */
 typedef struct t_syslog_rlog {
-	uint_t	count;		/* ã­ã°ãããã¡ä¸­ã®ã­ã°ã®æ° */
-	uint_t	lost;		/* å¤±ãããã­ã°ã®æ° */
-	uint_t	logmask;	/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
-	uint_t	lowmask;	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
+	uint_t	count;		/* ログバッファ中のログの数 */
+	uint_t	lost;		/* 失われたログの数 */
+	uint_t	logmask;	/* ログバッファに記録すべき重要度 */
+	uint_t	lowmask;	/* 低レベル出力すべき重要度 */
 } T_SYSLOG_RLOG;
 
@@ -172,8 +142,7 @@
 
 /*
- *  ã­ã°æ
-å ±ãåºåããããã®ã©ã¤ãã©ãªé¢æ°
- *
- *  TECSã§è¨è¿°ãããã·ã¹ãã ã­ã°æ©è½ãç´æ¥å¼ã³åºãï¼
+ *  ログ情報を出力するためのライブラリ関数
+ *
+ *  TECSで記述されたシステムログ機能を直接呼び出す．
  */
 
@@ -268,6 +237,5 @@
 
 /*
- *  ã­ã°æ
-å ±ï¼ã³ã¡ã³ãï¼ãåºåããããã®ã©ã¤ãã©ãªé¢æ°ï¼vasyslog.cï¼
+ *  ログ情報（コメント）を出力するためのライブラリ関数（vasyslog.c）
  */
 extern void	syslog(uint_t prio, const char *format, ...) throw();
@@ -276,5 +244,5 @@
 
 /*
- *  ã·ã¹ãã ã­ã°åºåãææ­¢ããå ´å
+ *  システムログ出力を抑止する場合
  */
 
@@ -325,11 +293,9 @@
 
 /*
- *  ã­ã°æ
-å ±ï¼ã³ã¡ã³ãï¼ãåºåããããã®ãã¯ã­
- *
- *  formatããã³å¾ç¶ã®å¼æ°ããä½æããã¡ãã»ã¼ã¸ãï¼éå¤§åº¦prioã§ã­ã°æ
-
- *  å ±ã¨ãã¦åºåããããã®ãã¯ã­ï¼arg1ï½argnã¯LOGPARåã«ã­ã£ã¹ãããã
- *  ãï¼LOGPARåã«åå¤æã§ããä»»æã®åã§ããï¼
+ *  ログ情報（コメント）を出力するためのマクロ
+ *
+ *  formatおよび後続の引数から作成したメッセージを，重大度prioでログ情
+ *  報として出力するためのマクロ．arg1～argnはLOGPAR型にキャストするた
+ *  め，LOGPAR型に型変換できる任意の型でよい．
  */
 
@@ -360,6 +326,5 @@
 
 /*
- *  ã­ã°æ
-å ±ï¼ã¢ãµã¼ã·ã§ã³ã®å¤±æï¼ãåºåããããã®ãã¯ã­
+ *  ログ情報（アサーションの失敗）を出力するためのマクロ
  */
 #ifndef TOPPERS_assert_fail
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/Makefile.kernel
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/Makefile.kernel	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/Makefile.kernel	(revision 321)
@@ -9,58 +9,43 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 # 
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 # 
-#  $Id: Makefile.kernel 554 2016-01-17 13:21:59Z ertl-hiro $
+#  $Id$
 # 
 
 #
-#		ã«ã¼ãã«ã®ãã¡ã¤ã«æ§æã®å®ç¾©
+#		カーネルのファイル構成の定義
 #
 
 #
-#  1ã¤ã®ã½ã¼ã¹ãã¡ã¤ã«ããè¤æ°ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãçæããããã«ä½
-#  æãããã½ã¼ã¹ãã¡ã¤ã«ã®ãªã¹ã
+#  1つのソースファイルから複数のオブジェクトファイルを生成するように作
+#  成されたソースファイルのリスト
 #
 KERNEL_FCSRCS = startup.c task.c taskhook.c wait.c time_event.c \
@@ -71,5 +56,5 @@
 
 #
-#  åã½ã¼ã¹ãã¡ã¤ã«ããçæããããªãã¸ã§ã¯ããã¡ã¤ã«ã®ãªã¹ã
+#  各ソースファイルから生成されるオブジェクトファイルのリスト
 #
 startup = sta_ker.o ext_ker.o kermem.o
@@ -133,5 +118,5 @@
 
 #
-#  çæããããªãã¸ã§ã¯ããã¡ã¤ã«ã®ä¾å­é¢ä¿ã®å®ç¾©
+#  生成されるオブジェクトファイルの依存関係の定義
 #
 $(startup) $(startup:.o=.s): startup.c
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¢ã©ã¼ã éç¥æ©è½
+ *		アラーム通知機能
  */
 
@@ -65,5 +50,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ALM_ENTER
@@ -116,5 +101,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®æ°
+ *  アラーム通知の数
  */
 #define tnum_alm	((uint_t)(tmax_almid - TMIN_ALMID + 1))
@@ -122,5 +107,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥IDããã¢ã©ã¼ã éç¥ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ *  アラーム通知IDからアラーム通知管理ブロックを取り出すためのマクロ
  */
 #define INDEX_ALM(almid)	((uint_t)((almid) - TMIN_ALMID))
@@ -130,14 +115,13 @@
 
 /*
- *  ä½¿ç¨ãã¦ããªãã¢ã©ã¼ã éç¥ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないアラーム通知管理ブロックのリスト
  *
- *  ã¢ã©ã¼ã éç¥ç®¡çãã­ãã¯ã®å
-é ­ã«ã¯ã­ã¥ã¼ã«ã¤ãªãããã®é åããªãã
- *  ãï¼ã¿ã¤ã ã¤ãã³ããã­ãã¯ï¼tmevtbï¼ã®é åãç¨ããï¼
+ *  アラーム通知管理ブロックの先頭にはキューにつなぐための領域がないた
+ *  め，タイムイベントブロック（tmevtb）の領域を用いる．
  */
 QUEUE	free_almcb;
 
 /*
- *  ã¢ã©ã¼ã éç¥æ©è½ã®åæå
+ *  アラーム通知機能の初期化
  */
 void
@@ -170,5 +154,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®çæ
+ *  アラーム通知の生成
  */
 #ifdef TOPPERS_acre_alm
@@ -228,5 +212,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®åé¤
+ *  アラーム通知の削除
  */
 #ifdef TOPPERS_del_alm
@@ -272,5 +256,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®åä½éå§
+ *  アラーム通知の動作開始
  */
 #ifdef TOPPERS_sta_alm
@@ -312,5 +296,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®åä½åæ­¢
+ *  アラーム通知の動作停止
  */
 #ifdef TOPPERS_stp_alm
@@ -348,7 +332,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®ç¶æ
-åç
-§
+ *  アラーム通知の状態参照
  */
 #ifdef TOPPERS_ref_alm
@@ -389,5 +371,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥èµ·åã«ã¼ãã³
+ *  アラーム通知起動ルーチン
  */
 #ifdef TOPPERS_almcal
@@ -397,12 +379,10 @@
 {
 	/*
-	 *  ã¢ã©ã¼ã éç¥ãåæ­¢ç¶æ
-ã«ããï¼
+	 *  アラーム通知を停止状態にする．
 	 */
 	p_almcb->almsta = false;
 
 	/*
-	 *  éç¥ãã³ãã©ãï¼CPUã­ãã¯è§£é¤ç¶æ
-ã§å¼ã³åºãï¼
+	 *  通知ハンドラを，CPUロック解除状態で呼び出す．
 	 */
 	unlock_cpu();
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¢ã©ã¼ã éç¥æ©è½
+ *		アラーム通知機能
  */
 
@@ -68,30 +53,28 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥åæåãã­ãã¯
+ *  アラーム通知初期化ブロック
  */
 typedef struct alarm_handler_initialization_block {
-	ATR			almatr;			/* ã¢ã©ã¼ã éç¥å±æ§ */
-	intptr_t	exinf;			/* éç¥ãã³ãã©ã®æ¡å¼µæ
-å ± */
-	NFYHDR		nfyhdr;			/* éç¥ãã³ãã©ã®èµ·åçªå° */
+	ATR			almatr;			/* アラーム通知属性 */
+	intptr_t	exinf;			/* 通知ハンドラの拡張情報 */
+	NFYHDR		nfyhdr;			/* 通知ハンドラの起動番地 */
 } ALMINIB;
 
 /*
- *  ã¢ã©ã¼ã éç¥ç®¡çãã­ãã¯
+ *  アラーム通知管理ブロック
  */
 typedef struct alarm_handler_control_block {
-	const ALMINIB *p_alminib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
-	bool_t		almsta;			/* ã¢ã©ã¼ã éç¥ã®åä½ç¶æ
- */
-	TMEVTB		tmevtb;			/* ã¿ã¤ã ã¤ãã³ããã­ãã¯ */
+	const ALMINIB *p_alminib;	/* 初期化ブロックへのポインタ */
+	bool_t		almsta;			/* アラーム通知の動作状態 */
+	TMEVTB		tmevtb;			/* タイムイベントブロック */
 } ALMCB;
 
 /*
- *  ä½¿ç¨ãã¦ããªãã¢ã©ã¼ã éç¥ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないアラーム通知管理ブロックのリスト
  */
 extern QUEUE	free_almcb;
 
 /*
- *  ã¢ã©ã¼ã éç¥IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  アラーム通知IDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_almid;
@@ -99,5 +82,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  アラーム通知初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const ALMINIB	alminib_table[];
@@ -105,25 +88,25 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®éç¥æ¹æ³ã®æ ¼ç´ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  アラーム通知の通知方法の格納エリア（kernel_cfg.c）
  */
 extern T_NFYINFO	aalm_nfyinfo_table[];
 
 /*
- *  ã¢ã©ã¼ã éç¥ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  アラーム通知管理ブロックのエリア（kernel_cfg.c）
  */
 extern ALMCB	almcb_table[];
 
 /*
- *  ã¢ã©ã¼ã éç¥ç®¡çãã­ãã¯ããã¢ã©ã¼ã éç¥IDãåãåºãããã®ãã¯ã­
+ *  アラーム通知管理ブロックからアラーム通知IDを取り出すためのマクロ
  */
 #define	ALMID(p_almcb)	((ID)(((p_almcb) - almcb_table) + TMIN_ALMID))
 
 /*
- *  ã¢ã©ã¼ã éç¥æ©è½ã®åæå
+ *  アラーム通知機能の初期化
  */
 extern void	initialize_alarm(void);
 
 /*
- *  ã¢ã©ã¼ã éç¥èµ·åã«ã¼ãã³
+ *  アラーム通知起動ルーチン
  */
 extern void	call_alarm(ALMCB *p_almcb);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.trb	(revision 321)
@@ -9,53 +9,38 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: alarm.trb 588 2016-02-05 12:54:58Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		ã¢ã©ã¼ã éç¥æ©è½ã®çæã¹ã¯ãªãã
+#		アラーム通知機能の生成スクリプト
 #
 
@@ -67,12 +52,11 @@
 
   def prepare(key, params)
-    # almatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2491ï¼½
-    #ï¼TA_STAä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    # almatrが無効の場合（E_RSATR）［NGKI2491］
+    #（TA_STA以外のビットがセットされている場合）
     if (params[:almatr] & ~($TA_STA)) != 0
       error_illegal_id("E_RSATR", params, :almatr, :almid)
     end
 
-    # éç¥æ
-å ±ã®å¦ç
+    # 通知情報の処理
     params[:nfyhdr] = generateNotifyHandler(key, params, :almid)
   end
@@ -85,6 +69,5 @@
 
 #
-#  ã¢ã©ã¼ã éç¥ã«é¢ããæ
-å ±ã®çæ
+#  アラーム通知に関する情報の生成
 #
 $kernelCfgC.comment_header("Alarm Notification Functions")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/allfunc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/allfunc.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/allfunc.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *		ãã¹ã¦ã®é¢æ°ãã³ã³ãã¤ã«ããããã®å®ç¾©
+ *		すべての関数をコンパイルするための定義
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/check.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/check.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/check.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¨ã©ã¼ãã§ãã¯ç¨ãã¯ã­
+ *		エラーチェック用マクロ
  */
 
@@ -66,5 +51,5 @@
 
 /*
- *  ãªãã¸ã§ã¯ãIDã®ç¯å²ã®å¤å®
+ *  オブジェクトIDの範囲の判定
  */
 #define VALID_TSKID(tskid)	(TMIN_TSKID <= (tskid) && (tskid) <= tmax_tskid)
@@ -80,5 +65,5 @@
 
 /*
- *  ãªãã¸ã§ã¯ãçªå·ã®ç¯å²ã®å¤å®
+ *  オブジェクト番号の範囲の判定
  */
 #ifndef VALID_INTNO_DISINT
@@ -91,6 +76,5 @@
 
 /*
- *  åªå
-åº¦ã®ç¯å²ã®å¤å®
+ *  優先度の範囲の判定
  */
 #define VALID_TPRI(tpri)	(TMIN_TPRI <= (tpri) && (tpri) <= TMAX_TPRI)
@@ -107,10 +91,10 @@
 
 /*
- *  ç¸å¯¾æéã®ç¯å²ã®å¤å®
+ *  相対時間の範囲の判定
  */
 #define VALID_RELTIM(reltim)	((reltim) <= TMAX_RELTIM)
 
 /*
- *  ã¿ã¤ã ã¢ã¦ãæå®å¤ã®ç¯å²ã®å¤å®
+ *  タイムアウト指定値の範囲の判定
  */
 #define VALID_TMOUT(tmout)	((tmout) <= TMAX_RELTIM || (tmout) == TMO_FEVR \
@@ -118,5 +102,5 @@
 
 /*
- *  ã¢ã©ã¤ã³ãã¦ãããã®å¤å®
+ *  アラインしているかの判定
  */
 #define ALIGNED(val, align)		((((uintptr_t)(val)) & ((align) - 1U)) == 0U)
@@ -159,5 +143,5 @@
 
 /*
- *  NULLã§ãªããã¨ã®å¤å®
+ *  NULLでないことの判定
  */
 #ifdef CHECK_INTPTR_NONNULL
@@ -174,5 +158,5 @@
 
 /*
- *  å¼åºãã³ã³ãã­ã¹ãã®ãã§ãã¯ï¼E_CTXï¼
+ *  呼出しコンテキストのチェック（E_CTX）
  */
 #define CHECK_TSKCTX() do {									\
@@ -184,6 +168,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®ãã§ãã¯ï¼E_CTXï¼
+ *  CPUロック状態のチェック（E_CTX）
  */
 #define CHECK_UNL() do {									\
@@ -195,6 +178,5 @@
 
 /*
- *  å¼åºãã³ã³ãã­ã¹ãã¨CPUã­ãã¯ç¶æ
-ã®ãã§ãã¯ï¼E_CTXï¼
+ *  呼出しコンテキストとCPUロック状態のチェック（E_CTX）
  */
 #define CHECK_TSKCTX_UNL() do {								\
@@ -206,6 +188,5 @@
 
 /*
- *  ãã£ã¹ãããä¿çç¶æ
-ã§ãªããã®ãã§ãã¯ï¼E_CTXï¼
+ *  ディスパッチ保留状態でないかのチェック（E_CTX）
  */
 #define CHECK_DISPATCH() do {								\
@@ -217,5 +198,5 @@
 
 /*
- *  ãã®ä»ã®ã³ã³ãã­ã¹ãã¨ã©ã¼ã®ãã§ãã¯ï¼E_CTXï¼
+ *  その他のコンテキストエラーのチェック（E_CTX）
  */
 #define CHECK_CTX(exp) do {									\
@@ -227,5 +208,5 @@
 
 /*
- *  ãªãã¸ã§ã¯ãIDã®ãã§ãã¯ï¼E_IDï¼
+ *  オブジェクトIDのチェック（E_ID）
  */
 #define CHECK_ID(exp) do {									\
@@ -237,5 +218,5 @@
 
 /*
- *  äºç´å±æ§ã¨ã©ã¼ã®ãã§ãã¯ï¼E_RSATRï¼
+ *  予約属性エラーのチェック（E_RSATR）
  */
 #define CHECK_RSATR(atr, valid_atr) do {					\
@@ -247,5 +228,5 @@
 
 /*
- *  ãã©ã¡ã¼ã¿ã¨ã©ã¼ã®ãã§ãã¯ï¼E_PARï¼
+ *  パラメータエラーのチェック（E_PAR）
  */
 #define CHECK_PAR(exp) do {									\
@@ -257,5 +238,5 @@
 
 /*
- *  ä¸æ­£ä½¿ç¨ã¨ã©ã¼ã®ãã§ãã¯ï¼E_ILUSEï¼
+ *  不正使用エラーのチェック（E_ILUSE）
  */
 #define CHECK_ILUSE(exp) do {								\
@@ -267,6 +248,5 @@
 
 /*
- *  éçãªãªãã¸ã§ã¯ãç¶æ
-ã¨ã©ã¼ã®ãã§ãã¯ï¼E_OBJï¼
+ *  静的なオブジェクト状態エラーのチェック（E_OBJ）
  */
 #define CHECK_OBJ(exp) do {									\
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		å¨æéç¥æ©è½
+ *		周期通知機能
  */
 
@@ -65,5 +50,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_CYC_ENTER
@@ -116,5 +101,5 @@
 
 /*
- *  å¨æéç¥ã®æ°
+ *  周期通知の数
  */
 #define tnum_cyc	((uint_t)(tmax_cycid - TMIN_CYCID + 1))
@@ -122,5 +107,5 @@
 
 /*
- *  å¨æéç¥IDããå¨æéç¥ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ *  周期通知IDから周期通知管理ブロックを取り出すためのマクロ
  */
 #define INDEX_CYC(cycid)	((uint_t)((cycid) - TMIN_CYCID))
@@ -130,14 +115,13 @@
 
 /*
- *  ä½¿ç¨ãã¦ããªãå¨æéç¥ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していない周期通知管理ブロックのリスト
  *
- *  å¨æéç¥ç®¡çãã­ãã¯ã®å
-é ­ã«ã¯ã­ã¥ã¼ã«ã¤ãªãããã®é åããªãããï¼
- *  ã¿ã¤ã ã¤ãã³ããã­ãã¯ï¼tmevtbï¼ã®é åãç¨ããï¼
+ *  周期通知管理ブロックの先頭にはキューにつなぐための領域がないため，
+ *  タイムイベントブロック（tmevtb）の領域を用いる．
  */
 QUEUE	free_cyccb;
 
 /*
- *  å¨æéç¥æ©è½ã®åæå
+ *  周期通知機能の初期化
  */
 void
@@ -155,6 +139,6 @@
 		if ((p_cyccb->p_cycinib->cycatr & TA_STA) != 0U) {
 			/*
-			 *  ååã®èµ·åã®ããã®ã¿ã¤ã ã¤ãã³ããç»é²ããï¼»ASPD1035ï¼½
-			 *  ï¼»ASPD1062ï¼½ï¼
+			 *  初回の起動のためのタイムイベントを登録する［ASPD1035］
+			 *  ［ASPD1062］．
 			 */
 			p_cyccb->cycsta = true;
@@ -181,5 +165,5 @@
 
 /*
- *  å¨æéç¥ã®çæ
+ *  周期通知の生成
  */
 #ifdef TOPPERS_acre_cyc
@@ -254,5 +238,5 @@
 
 /*
- *  å¨æéç¥ã®åé¤
+ *  周期通知の削除
  */
 #ifdef TOPPERS_del_cyc
@@ -298,5 +282,5 @@
 
 /*
- *  å¨æéç¥ã®åä½éå§
+ *  周期通知の動作開始
  */
 #ifdef TOPPERS_sta_cyc
@@ -325,5 +309,5 @@
 		}
 		/*
-		 *  ååã®èµ·åã®ããã®ã¿ã¤ã ã¤ãã³ããç»é²ããï¼»ASPD1036ï¼½ï¼
+		 *  初回の起動のためのタイムイベントを登録する［ASPD1036］．
 		 */
 		tmevtb_enqueue(&(p_cyccb->tmevtb), p_cyccb->p_cycinib->cycphs);
@@ -340,5 +324,5 @@
 
 /*
- *  å¨æéç¥ã®åä½åæ­¢
+ *  周期通知の動作停止
  */
 #ifdef TOPPERS_stp_cyc
@@ -376,7 +360,5 @@
 
 /*
- *  å¨æéç¥ã®ç¶æ
-åç
-§
+ *  周期通知の状態参照
  */
 #ifdef TOPPERS_ref_cyc
@@ -417,5 +399,5 @@
 
 /*
- *  å¨æéç¥èµ·åã«ã¼ãã³
+ *  周期通知起動ルーチン
  */
 #ifdef TOPPERS_cyccal
@@ -425,12 +407,11 @@
 {
 	/*
-	 *  æ¬¡åã®èµ·åã®ããã®ã¿ã¤ã ã¤ãã³ããç»é²ããï¼»ASPD1037ï¼½ï¼
+	 *  次回の起動のためのタイムイベントを登録する［ASPD1037］．
 	 */
-	p_cyccb->tmevtb.evttim += p_cyccb->p_cycinib->cyctim;	/*ï¼»ASPD1038ï¼½*/
+	p_cyccb->tmevtb.evttim += p_cyccb->p_cycinib->cyctim;	/*［ASPD1038］*/
 	tmevtb_register(&(p_cyccb->tmevtb));
 
 	/*
-	 *  éç¥ãã³ãã©ãï¼CPUã­ãã¯è§£é¤ç¶æ
-ã§å¼ã³åºãï¼
+	 *  通知ハンドラを，CPUロック解除状態で呼び出す．
 	 */
 	unlock_cpu();
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		å¨æéç¥æ©è½
+ *		周期通知機能
  */
 
@@ -68,35 +53,33 @@
 
 /*
- *  å¨æéç¥åæåãã­ãã¯
+ *  周期通知初期化ブロック
  */
 typedef struct cyclic_handler_initialization_block {
-	ATR			cycatr;			/* å¨æéç¥å±æ§ */
-	intptr_t	exinf;			/* éç¥ãã³ãã©ã®æ¡å¼µæ
-å ± */
-	NFYHDR		nfyhdr;			/* éç¥ãã³ãã©ã®èµ·åçªå° */
-	RELTIM		cyctim;			/* å¨æéç¥ã®èµ·åå¨æ */
-	RELTIM		cycphs;			/* å¨æéç¥ã®èµ·åä½ç¸ */
+	ATR			cycatr;			/* 周期通知属性 */
+	intptr_t	exinf;			/* 通知ハンドラの拡張情報 */
+	NFYHDR		nfyhdr;			/* 通知ハンドラの起動番地 */
+	RELTIM		cyctim;			/* 周期通知の起動周期 */
+	RELTIM		cycphs;			/* 周期通知の起動位相 */
 } CYCINIB;
 
 /*
- *  å¨æéç¥ç®¡çãã­ãã¯
+ *  周期通知管理ブロック
  *
- *	æ¬¡ã«å¨æéç¥ãèµ·åããæå»ã¯ï¼ã¿ã¤ã ã¤ãã³ããã­ãã¯ï¼tmevtbï¼ä¸­ã®
- *	ã¿ã¤ã ã¤ãã³ãã®çºçæå»ï¼evttimï¼ã§ä¿æããï¼
+ *	次に周期通知を起動する時刻は，タイムイベントブロック（tmevtb）中の
+ *	タイムイベントの発生時刻（evttim）で保持する．
  */
 typedef struct cyclic_handler_control_block {
-	const CYCINIB *p_cycinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
-	bool_t		cycsta;			/* å¨æéç¥ã®åä½ç¶æ
- */
-	TMEVTB		tmevtb;			/* ã¿ã¤ã ã¤ãã³ããã­ãã¯ */
+	const CYCINIB *p_cycinib;	/* 初期化ブロックへのポインタ */
+	bool_t		cycsta;			/* 周期通知の動作状態 */
+	TMEVTB		tmevtb;			/* タイムイベントブロック */
 } CYCCB;
 
 /*
- *  ä½¿ç¨ãã¦ããªãå¨æéç¥ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していない周期通知管理ブロックのリスト
  */
 extern QUEUE	free_cyccb;
 
 /*
- *  å¨æéç¥IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  周期通知IDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_cycid;
@@ -104,5 +87,5 @@
 
 /*
- *  å¨æéç¥åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  周期通知初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const CYCINIB	cycinib_table[];
@@ -110,25 +93,25 @@
 
 /*
- *  å¨æéç¥ã®éç¥æ¹æ³ã®æ ¼ç´ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  周期通知の通知方法の格納エリア（kernel_cfg.c）
  */
 extern T_NFYINFO	acyc_nfyinfo_table[];
 
 /*
- *  å¨æéç¥ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  周期通知管理ブロックのエリア（kernel_cfg.c）
  */
 extern CYCCB	cyccb_table[];
 
 /*
- *  å¨æéç¥ç®¡çãã­ãã¯ããå¨æéç¥IDãåãåºãããã®ãã¯ã­
+ *  周期通知管理ブロックから周期通知IDを取り出すためのマクロ
  */
 #define	CYCID(p_cyccb)	((ID)(((p_cyccb) - cyccb_table) + TMIN_CYCID))
 
 /*
- *  å¨æéç¥æ©è½ã®åæå
+ *  周期通知機能の初期化
  */
 extern void	initialize_cyclic(void);
 
 /*
- *  å¨æéç¥èµ·åã«ã¼ãã³
+ *  周期通知起動ルーチン
  */
 extern void	call_cyclic(CYCCB *p_cyccb);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.trb	(revision 321)
@@ -9,53 +9,38 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: cyclic.trb 588 2016-02-05 12:54:58Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		å¨æéç¥æ©è½ã®çæã¹ã¯ãªãã
+#		周期通知機能の生成スクリプト
 #
 
@@ -67,22 +52,21 @@
 
   def prepare(key, params)
-    # cycatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2383ï¼½
-    #ï¼TA_STAä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    # cycatrが無効の場合（E_RSATR）［NGKI2383］
+    #（TA_STA以外のビットがセットされている場合）
     if (params[:cycatr] & ~($TA_STA)) != 0
       error_illegal_id("E_RSATR", params, :cycatr, :cycid)
     end
 
-    # (0 < cyctim && cyctim <= TMAX_RELTIM)ã§ãªãå ´åï¼E_PARï¼ï¼»NGKI2397ï¼½
+    # (0 < cyctim && cyctim <= TMAX_RELTIM)でない場合（E_PAR）［NGKI2397］
     if !(0 < params[:cyctim] && params[:cyctim] <= $TMAX_RELTIM)
       error_illegal_id("E_PAR", params, :cyctim, :cycid)
     end
 
-    # (0 <= cycphs && cycphs <= TMAX_RELTIM)ã§ãªãå ´åï¼E_PARï¼ï¼»NGKI2399ï¼½
+    # (0 <= cycphs && cycphs <= TMAX_RELTIM)でない場合（E_PAR）［NGKI2399］
     if !(0 <= params[:cycphs] && params[:cycphs] <= $TMAX_RELTIM)
       error_illegal_id("E_PAR", params, :cycphs, :cycid)
     end
 
-    # éç¥æ
-å ±ã®å¦ç
+    # 通知情報の処理
     params[:nfyhdr] = generateNotifyHandler(key, params, :cycid)
   end
@@ -95,6 +79,5 @@
 
 #
-#  å¨æéç¥ã«é¢ããæ
-å ±ã®çæ
+#  周期通知に関する情報の生成
 #
 $kernelCfgC.comment_header("Cyclic Notification Functions")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ãã¼ã¿ã­ã¥ã¼æ©è½
+ *		データキュー機能
  */
 
@@ -67,5 +52,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ACRE_DTQ_ENTER
@@ -158,5 +143,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã®æ°
+ *  データキューの数
  */
 #define tnum_dtq	((uint_t)(tmax_dtqid - TMIN_DTQID + 1))
@@ -164,5 +149,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼IDãããã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ *  データキューIDからデータキュー管理ブロックを取り出すためのマクロ
  */
 #define INDEX_DTQ(dtqid)	((uint_t)((dtqid) - TMIN_DTQID))
@@ -172,10 +157,10 @@
 
 /*
- *  ä½¿ç¨ãã¦ããªããã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないデータキュー管理ブロックのリスト
  */
 QUEUE	free_dtqcb;
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼æ©è½ã®åæå
+ *  データキュー機能の初期化
  */
 void
@@ -208,5 +193,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®æ ¼ç´
+ *  データキュー管理領域へのデータの格納
  */
 #ifdef TOPPERS_dtqenq
@@ -226,5 +211,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®å¼·å¶æ ¼ç´
+ *  データキュー管理領域へのデータの強制格納
  */
 #ifdef TOPPERS_dtqfenq
@@ -249,5 +234,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åããã®ãã¼ã¿ã®ååºã
+ *  データキュー管理領域からのデータの取出し
  */
 #ifdef TOPPERS_dtqdeq
@@ -267,5 +252,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿éä¿¡
+ *  データキューへのデータ送信
  */
 #ifdef TOPPERS_dtqsnd
@@ -294,5 +279,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿å¼·å¶éä¿¡
+ *  データキューへのデータ強制送信
  */
 #ifdef TOPPERS_dtqfsnd
@@ -316,5 +301,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ããã®ãã¼ã¿åä¿¡
+ *  データキューからのデータ受信
  */
 #ifdef TOPPERS_dtqrcv
@@ -350,5 +335,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã®çæ
+ *  データキューの生成
  */
 #ifdef TOPPERS_acre_dtq
@@ -410,5 +395,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã®åé¤
+ *  データキューの削除
  */
 #ifdef TOPPERS_del_dtq
@@ -457,5 +442,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡
+ *  データキューへの送信
  */
 #ifdef TOPPERS_snd_dtq
@@ -503,5 +488,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼
+ *  データキューへの送信（ポーリング）
  */
 #ifdef TOPPERS_psnd_dtq
@@ -546,5 +531,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  データキューへの送信（タイムアウトあり）
  */
 #ifdef TOPPERS_tsnd_dtq
@@ -598,5 +583,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®å¼·å¶éä¿¡
+ *  データキューへの強制送信
  */
 #ifdef TOPPERS_fsnd_dtq
@@ -642,5 +627,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡
+ *  データキューからの受信
  */
 #ifdef TOPPERS_rcv_dtq
@@ -693,5 +678,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ãã¼ãªã³ã°ï¼
+ *  データキューからの受信（ポーリング）
  */
 #ifdef TOPPERS_prcv_dtq
@@ -731,5 +716,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  データキューからの受信（タイムアウトあり）
  */
 #ifdef TOPPERS_trcv_dtq
@@ -787,5 +772,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã®ååæå
+ *  データキューの再初期化
  */
 #ifdef TOPPERS_ini_dtq
@@ -827,7 +812,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã®ç¶æ
-åç
-§
+ *  データキューの状態参照
  */
 #ifdef TOPPERS_ref_dtq
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ãã¼ã¿ã­ã¥ã¼æ©è½
+ *		データキュー機能
  */
 
@@ -68,84 +53,65 @@
 
 /*
- *  ãã¼ã¿ç®¡çãã­ãã¯
+ *  データ管理ブロック
  */
 typedef struct data_management_block {
-	intptr_t	data;			/* ãã¼ã¿æ¬ä½ */
+	intptr_t	data;			/* データ本体 */
 } DTQMB;
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯
+ *  データキュー初期化ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
-±éé¨å
- *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの初期化ブロックの共通部分
+ *  （WOBJINIB）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初のフィールドが共通になっている．
  */
 typedef struct dataqueue_initialization_block {
-	ATR			dtqatr;			/* ãã¼ã¿ã­ã¥ã¼å±æ§ */
-	uint_t		dtqcnt;			/* ãã¼ã¿ã­ã¥ã¼ã®å®¹é */
-	DTQMB		*p_dtqmb;		/* ãã¼ã¿ã­ã¥ã¼ç®¡çé åã®å
-é ­çªå° */
+	ATR			dtqatr;			/* データキュー属性 */
+	uint_t		dtqcnt;			/* データキューの容量 */
+	DTQMB		*p_dtqmb;		/* データキュー管理領域の先頭番地 */
 } DTQINIB;
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯
+ *  データキュー管理ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨åï¼WOBJCBï¼
- *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
- *  ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの管理ブロックの共通部分（WOBJCB）
+ *  を拡張（オブジェクト指向言語の継承に相当）したもので，最初の2つの
+ *  フィールドが共通になっている．
  */
 typedef struct dataqueue_control_block {
-	QUEUE		swait_queue;	/* ãã¼ã¿ã­ã¥ã¼éä¿¡å¾
-ã¡ã­ã¥ã¼ */
-	const DTQINIB *p_dtqinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
-	QUEUE		rwait_queue;	/* ãã¼ã¿ã­ã¥ã¼åä¿¡å¾
-ã¡ã­ã¥ã¼ */
-	uint_t		count;			/* ãã¼ã¿ã­ã¥ã¼ä¸­ã®ãã¼ã¿ã®æ° */
-	uint_t		head;			/* æåã®ãã¼ã¿ã®æ ¼ç´å ´æ */
-	uint_t		tail;			/* æå¾ã®ãã¼ã¿ã®æ ¼ç´å ´æã®æ¬¡ */
+	QUEUE		swait_queue;	/* データキュー送信待ちキュー */
+	const DTQINIB *p_dtqinib;	/* 初期化ブロックへのポインタ */
+	QUEUE		rwait_queue;	/* データキュー受信待ちキュー */
+	uint_t		count;			/* データキュー中のデータの数 */
+	uint_t		head;			/* 最初のデータの格納場所 */
+	uint_t		tail;			/* 最後のデータの格納場所の次 */
 } DTQCB;
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼å¾
-ã¡æ
-å ±ãã­ãã¯ã®å®ç¾©
+ *  データキュー待ち情報ブロックの定義
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡æ
-å ±ãã­ãã¯ã®å
-±éé¨å
- *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®2ã¤ã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの待ち情報ブロックの共通部分
+ *  （WINFO_WOBJ）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初の2つのフィールドが共通になっている．
  */
 typedef struct dataqueue_send_waiting_information {
-	WINFO		winfo;			/* æ¨æºã®å¾
-ã¡æ
-å ±ãã­ãã¯ */
-	DTQCB		*p_dtqcb;		/* å¾
-ã£ã¦ãããã¼ã¿ã­ã¥ã¼ã®ç®¡çãã­ãã¯ */
-	intptr_t	data;			/* éä¿¡ãã¼ã¿ */
+	WINFO		winfo;			/* 標準の待ち情報ブロック */
+	DTQCB		*p_dtqcb;		/* 待っているデータキューの管理ブロック */
+	intptr_t	data;			/* 送信データ */
 } WINFO_SDTQ;
 
 typedef struct dataqueue_receive_waiting_information {
-	WINFO		winfo;			/* æ¨æºã®å¾
-ã¡æ
-å ±ãã­ãã¯ */
-	DTQCB		*p_dtqcb;		/* å¾
-ã£ã¦ãããã¼ã¿ã­ã¥ã¼ã®ç®¡çãã­ãã¯ */
-	intptr_t	data;			/* åä¿¡ãã¼ã¿ */
+	WINFO		winfo;			/* 標準の待ち情報ブロック */
+	DTQCB		*p_dtqcb;		/* 待っているデータキューの管理ブロック */
+	intptr_t	data;			/* 受信データ */
 } WINFO_RDTQ;
 
 /*
- *  ä½¿ç¨ãã¦ããªããã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないデータキュー管理ブロックのリスト
  */
 extern QUEUE	free_dtqcb;
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  データキューIDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_dtqid;
@@ -153,5 +119,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  データキュー初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const DTQINIB	dtqinib_table[];
@@ -159,45 +125,45 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  データキュー管理ブロックのエリア（kernel_cfg.c）
  */
 extern DTQCB	dtqcb_table[];
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ãããã¼ã¿ã­ã¥ã¼IDãåãåºãããã®ãã¯ã­
+ *  データキュー管理ブロックからデータキューIDを取り出すためのマクロ
  */
 #define	DTQID(p_dtqcb)	((ID)(((p_dtqcb) - dtqcb_table) + TMIN_DTQID))
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼æ©è½ã®åæå
+ *  データキュー機能の初期化
  */
 extern void	initialize_dataqueue(void);
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®æ ¼ç´
+ *  データキュー管理領域へのデータの格納
  */
 extern void	enqueue_data(DTQCB *p_dtqcb, intptr_t data);
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®å¼·å¶æ ¼ç´
+ *  データキュー管理領域へのデータの強制格納
  */
 extern void	force_enqueue_data(DTQCB *p_dtqcb, intptr_t data);
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åããã®ãã¼ã¿ã®ååºã
+ *  データキュー管理領域からのデータの取出し
  */
 extern void	dequeue_data(DTQCB *p_dtqcb, intptr_t *p_data);
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿éä¿¡
+ *  データキューへのデータ送信
  */
 extern bool_t	send_data(DTQCB *p_dtqcb, intptr_t data);
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿å¼·å¶éä¿¡
+ *  データキューへのデータ強制送信
  */
 extern void	force_send_data(DTQCB *p_dtqcb, intptr_t data);
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ããã®ãã¼ã¿åä¿¡
+ *  データキューからのデータ受信
  */
 extern bool_t	receive_data(DTQCB *p_dtqcb, intptr_t *p_data);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.trb	(revision 321)
@@ -9,53 +9,38 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: dataqueue.trb 668 2016-03-03 13:57:53Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		ãã¼ã¿ã­ã¥ã¼æ©è½ã®çæã¹ã¯ãªãã
+#		データキュー機能の生成スクリプト
 #
 
@@ -66,19 +51,19 @@
 
   def prepare(key, params)
-    # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+    # パラメータが省略された時のデフォルト値の設定
     params[:dtqmb] ||= "NULL"
 
-    # dtqatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1669ï¼½
-    #ï¼TA_TPRIä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    # dtqatrが無効の場合（E_RSATR）［NGKI1669］
+    #（TA_TPRI以外のビットがセットされている場合）
     if (params[:dtqatr] & ~($TA_TPRI)) != 0
       error_illegal_id("E_RSATR", params, :dtqatr, :dtqid)
     end
 
-    # dtqmbãNULLã§ãªãå ´åï¼E_NOSPTï¼ï¼»ASPS0132ï¼½
+    # dtqmbがNULLでない場合（E_NOSPT）［ASPS0132］
     if params[:dtqmb] != "NULL"
       error_illegal_id("E_NOSPT", params, :dtqmb, :dtqid)
     end
 
-    # ãã¼ã¿ã­ã¥ã¼ç®¡çé å
+    # データキュー管理領域
     if params[:dtqcnt] > 0
       dtqmbName = "_kernel_dtqmb_#{params[:dtqid]}"
@@ -97,6 +82,5 @@
 
 #
-#  ãã¼ã¿ã­ã¥ã¼ã«é¢ããæ
-å ±ã®çæ
+#  データキューに関する情報の生成
 #
 $kernelCfgC.comment_header("Dataqueue Functions")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¤ãã³ããã©ã°æ©è½
+ *		イベントフラグ機能
  */
 
@@ -67,5 +52,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ACRE_FLG_ENTER
@@ -142,5 +127,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®æ°
+ *  イベントフラグの数
  */
 #define tnum_flg	((uint_t)(tmax_flgid - TMIN_FLGID + 1))
@@ -148,5 +133,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°IDããã¤ãã³ããã©ã°ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ *  イベントフラグIDからイベントフラグ管理ブロックを取り出すためのマクロ
  */
 #define INDEX_FLG(flgid)	((uint_t)((flgid) - TMIN_FLGID))
@@ -156,10 +141,10 @@
 
 /*
- *  ä½¿ç¨ãã¦ããªãã¤ãã³ããã©ã°ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないイベントフラグ管理ブロックのリスト
  */
 QUEUE	free_flgcb;
 
 /*
- *  ã¤ãã³ããã©ã°æ©è½ã®åæå
+ *  イベントフラグ機能の初期化
  */
 void
@@ -189,6 +174,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°å¾
-ã¡è§£é¤æ¡ä»¶ã®ãã§ãã¯
+ *  イベントフラグ待ち解除条件のチェック
  */
 #ifdef TOPPERS_flgcnd
@@ -211,11 +195,9 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®çæ
+ *  イベントフラグの生成
  *
- *  pk_cflg->iflgptnã¯ï¼ã¨ã©ã¼ãã§ãã¯ãããï¼ä¸åº¦ããåç
-§ããªãããï¼
- *  ã­ã¼ã«ã«å¤æ°ã«ã³ãã¼ããå¿
-è¦ããªãï¼éä¸­ã§æ¸ãæãã£ã¦ãæ¯éããª
- *  ãï¼ï¼
+ *  pk_cflg->iflgptnは，エラーチェックをせず，一度しか参照しないため，
+ *  ローカル変数にコピーする必要がない（途中で書き換わっても支障がな
+ *  い）．
  */
 #ifdef TOPPERS_acre_flg
@@ -260,5 +242,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®åé¤
+ *  イベントフラグの削除
  */
 #ifdef TOPPERS_del_flg
@@ -303,5 +285,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ã»ãã
+ *  イベントフラグのセット
  */
 #ifdef TOPPERS_set_flg
@@ -361,5 +343,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ã¯ãªã¢
+ *  イベントフラグのクリア
  */
 #ifdef TOPPERS_clr_flg
@@ -394,6 +376,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°å¾
-ã¡
+ *  イベントフラグ待ち
  */
 #ifdef TOPPERS_wai_flg
@@ -448,6 +429,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°å¾
-ã¡ï¼ãã¼ãªã³ã°ï¼
+ *  イベントフラグ待ち（ポーリング）
  */
 #ifdef TOPPERS_pol_flg
@@ -490,6 +470,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°å¾
-ã¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  イベントフラグ待ち（タイムアウトあり）
  */
 #ifdef TOPPERS_twai_flg
@@ -550,5 +529,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ååæå
+ *  イベントフラグの再初期化
  */
 #ifdef TOPPERS_ini_flg
@@ -587,7 +566,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ç¶æ
-åç
-§
+ *  イベントフラグの状態参照
  */
 #ifdef TOPPERS_ref_flg
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¤ãã³ããã©ã°æ©è½
+ *		イベントフラグ機能
  */
 
@@ -68,76 +53,52 @@
 
 /*
- *  ã¤ãã³ããã©ã°åæåãã­ãã¯
+ *  イベントフラグ初期化ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
-±éé¨å
- *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの初期化ブロックの共通部分
+ *  （WOBJINIB）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初のフィールドが共通になっている．
  */
 typedef struct eventflag_initialization_block {
-	ATR			flgatr;			/* ã¤ãã³ããã©ã°å±æ§ */
-	FLGPTN		iflgptn;		/* ã¤ãã³ããã©ã°ã®ããããã¿ã¼ã³ã®åæå¤ */
+	ATR			flgatr;			/* イベントフラグ属性 */
+	FLGPTN		iflgptn;		/* イベントフラグのビットパターンの初期値 */
 } FLGINIB;
 
 /*
- *  ã¤ãã³ããã©ã°ç®¡çãã­ãã¯
+ *  イベントフラグ管理ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨åï¼WOBJCBï¼
- *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
- *  ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの管理ブロックの共通部分（WOBJCB）
+ *  を拡張（オブジェクト指向言語の継承に相当）したもので，最初の2つの
+ *  フィールドが共通になっている．
  */
 typedef struct eventflag_control_block {
-	QUEUE		wait_queue;		/* ã¤ãã³ããã©ã°å¾
-ã¡ã­ã¥ã¼ */
-	const FLGINIB *p_flginib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
-	FLGPTN		flgptn;			/* ã¤ãã³ããã©ã°ç¾å¨ãã¿ã¼ã³ */
+	QUEUE		wait_queue;		/* イベントフラグ待ちキュー */
+	const FLGINIB *p_flginib;	/* 初期化ブロックへのポインタ */
+	FLGPTN		flgptn;			/* イベントフラグ現在パターン */
 } FLGCB;
 
 /*
- *  ã¤ãã³ããã©ã°å¾
-ã¡æ
-å ±ãã­ãã¯ã®å®ç¾©
+ *  イベントフラグ待ち情報ブロックの定義
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡æ
-å ±ãã­ãã¯ã®å
-±éé¨å
- *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®2ã¤ã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの待ち情報ブロックの共通部分
+ *  （WINFO_WOBJ）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初の2つのフィールドが共通になっている．
  *
- *  waiptnã«ã¯ï¼å¾
-ã¡ç¶æ
-ã®éã¯å¾
-ã¡ãã¿ã¼ã³ãï¼å¾
-ã¡è§£é¤ãããå¾ã¯å¾
-ã¡è§£
- *  é¤æã®ãã¿ã¼ã³ãå
-¥ããï¼1ã¤ã®ãã£ã¼ã«ãã2ã¤ã®ç®çã«å
-¼ç¨ãã¦ããï¼ï¼
+ *  waiptnには，待ち状態の間は待ちパターンを，待ち解除された後は待ち解
+ *  除時のパターンを入れる（1つのフィールドを2つの目的に兼用している）．
  */
 typedef struct eventflag_waiting_information {
-	WINFO		winfo;			/* æ¨æºã®å¾
-ã¡æ
-å ±ãã­ãã¯ */
-	FLGCB		*p_flgcb;		/* å¾
-ã£ã¦ããã¤ãã³ããã©ã°ã®ç®¡çãã­ãã¯ */
-	FLGPTN		waiptn;			/* å¾
-ã¡ãã¿ã¼ã³ï¼å¾
-ã¡è§£é¤æã®ãã¿ã¼ã³ */
-	MODE		wfmode;			/* å¾
-ã¡ã¢ã¼ã */
+	WINFO		winfo;			/* 標準の待ち情報ブロック */
+	FLGCB		*p_flgcb;		/* 待っているイベントフラグの管理ブロック */
+	FLGPTN		waiptn;			/* 待ちパターン／待ち解除時のパターン */
+	MODE		wfmode;			/* 待ちモード */
 } WINFO_FLG;
 
 /*
- *  ä½¿ç¨ãã¦ããªãã¤ãã³ããã©ã°ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないイベントフラグ管理ブロックのリスト
  */
 extern QUEUE	free_flgcb;
 
 /*
- *  ã¤ãã³ããã©ã°IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  イベントフラグIDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_flgid;
@@ -145,5 +106,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  イベントフラグ初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const FLGINIB	flginib_table[];
@@ -151,21 +112,20 @@
 
 /*
- *  ã¤ãã³ããã©ã°ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  イベントフラグ管理ブロックのエリア（kernel_cfg.c）
  */
 extern FLGCB	flgcb_table[];
 
 /*
- *  ã¤ãã³ããã©ã°ç®¡çãã­ãã¯ããã¤ãã³ããã©ã°IDãåãåºãããã®ãã¯ã­
+ *  イベントフラグ管理ブロックからイベントフラグIDを取り出すためのマクロ
  */
 #define	FLGID(p_flgcb)	((ID)(((p_flgcb) - flgcb_table) + TMIN_FLGID))
 
 /*
- *  ã¤ãã³ããã©ã°æ©è½ã®åæå
+ *  イベントフラグ機能の初期化
  */
 extern void	initialize_eventflag(void);
 
 /*
- *  ã¤ãã³ããã©ã°å¾
-ã¡è§£é¤æ¡ä»¶ã®ãã§ãã¯
+ *  イベントフラグ待ち解除条件のチェック
  */
 extern bool_t	check_flg_cond(FLGCB *p_flgcb, FLGPTN waiptn,
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.trb	(revision 321)
@@ -9,53 +9,38 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: eventflag.trb 588 2016-02-05 12:54:58Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		ã¤ãã³ããã©ã°æ©è½ã®çæã¹ã¯ãªãã
+#		イベントフラグ機能の生成スクリプト
 #
 
@@ -66,11 +51,11 @@
 
   def prepare(key, params)
-    # flgatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1562ï¼½
-    #ï¼TA_TPRIï¼TA_WMULï¼TA_CLRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    # flgatrが無効の場合（E_RSATR）［NGKI1562］
+    #（TA_TPRI，TA_WMUL，TA_CLR以外のビットがセットされている場合）
     if (params[:flgatr] & ~($TA_TPRI|$TA_WMUL|$TA_CLR)) != 0
       error_illegal_id("E_RSATR", params, :flgatr, :flgid)
     end
 
-    # iflgptnãFLGPTNã«æ ¼ç´ã§ããªãå ´åï¼E_PARï¼ï¼»NGKI3275ï¼½
+    # iflgptnがFLGPTNに格納できない場合（E_PAR）［NGKI3275］
     if (params[:iflgptn] & ~((1 << $TBIT_FLGPTN) - 1)) != 0
       error_wrong_id("E_PAR", params, :iflgptn, :flgid, "too large")
@@ -84,6 +69,5 @@
 
 #
-#  ã¤ãã³ããã©ã°ã«é¢ããæ
-å ±ã®çæ
+#  イベントフラグに関する情報の生成
 #
 $kernelCfgC.comment_header("Eventflag Functions")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/exception.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/exception.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/exception.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		CPUä¾å¤ç®¡çæ©è½
+ *		CPU例外管理機能
  */
 
@@ -65,5 +50,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_XSNS_DPN_ENTER
@@ -76,5 +61,5 @@
 
 /* 
- *  CPUä¾å¤ãã³ãã©ç®¡çæ©è½ã®åæå
+ *  CPU例外ハンドラ管理機能の初期化
  */
 #ifdef TOPPERS_excini
@@ -97,16 +82,12 @@
 
 /*
- *  CPUä¾å¤ã®çºçããã³ã³ãã­ã¹ãã®åç
-§
+ *  CPU例外の発生したコンテキストの参照
  */
 
 /*
- *  CPUä¾å¤çºçæã®ãã£ã¹ãããä¿çç¶æ
-ã®åç
-§
+ *  CPU例外発生時のディスパッチ保留状態の参照
  *
- *  CPUä¾å¤ãã³ãã©ä¸­ã§enadspãå¤åãããã¨ã¯ãªãããï¼CPUä¾å¤ãçºçã
- *  ãæã®enadspãä¿å­ãã¦ããå¿
-è¦ã¯ãªãï¼
+ *  CPU例外ハンドラ中でenadspが変化することはないため，CPU例外が発生し
+ *  た時のenadspを保存しておく必要はない．
  */
 #ifdef TOPPERS_xsns_dpn
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/exception.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/exception.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/exception.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		CPUä¾å¤ç®¡çæ©è½
+ *		CPU例外管理機能
  */
 
@@ -68,20 +53,19 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©åæåãã­ãã¯
+ *  CPU例外ハンドラ初期化ブロック
  */
 typedef struct cpu_exception_handler_initialization_block {
-	EXCNO		excno;			/* CPUä¾å¤ãã³ãã©çªå· */
-	ATR			excatr;			/* CPUä¾å¤ãã³ãã©å±æ§ */
-	FP			exc_entry;		/* CPUä¾å¤ãã³ãã©ã®åºå
-¥å£å¦çã®çªå° */
+	EXCNO		excno;			/* CPU例外ハンドラ番号 */
+	ATR			excatr;			/* CPU例外ハンドラ属性 */
+	FP			exc_entry;		/* CPU例外ハンドラの出入口処理の番地 */
 } EXCINIB;
 
 /*
- *  å®ç¾©ããCPUä¾å¤ãã³ãã©çªå·ã®æ°ï¼kernel_cfg.cï¼
+ *  定義するCPU例外ハンドラ番号の数（kernel_cfg.c）
  */
 extern const uint_t	tnum_def_excno;
 
 /*
- *  CPUä¾å¤ãã³ãã©åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  CPU例外ハンドラ初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const EXCINIB	excinib_table[];
@@ -90,5 +74,5 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©ç®¡çæ©è½ã®åæå
+ *  CPU例外ハンドラ管理機能の初期化
  */
 extern void	initialize_exception(void);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/exception.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/exception.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/exception.trb	(revision 321)
@@ -9,71 +9,56 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: exception.trb 663 2016-02-27 04:45:50Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		CPUä¾å¤ç®¡çæ©è½ã®çæã¹ã¯ãªãã
+#		CPU例外管理機能の生成スクリプト
 #
 
 #
-#  kernel_cfg.cã®çæ
+#  kernel_cfg.cの生成
 #
 $kernelCfgC.comment_header("CPU Exception Management Functions")
 
 #
-#  CPUä¾å¤ãã³ãã©ã«é¢ããã¨ã©ã¼ãã§ãã¯
+#  CPU例外ハンドラに関するエラーチェック
 #
 $cfgData[:DEF_EXC].each do |key, params|
-  # excnoãCPUä¾å¤ãã³ãã©çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼ï¼»NGKI3134ï¼½
+  # excnoがCPU例外ハンドラ番号として正しくない場合（E_PAR）［NGKI3134］
   if $EXCNO_VALID.index(params[:excno]).nil?
     error_illegal("E_PAR", params, :excno)
   end
 
-  # excatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI3131ï¼½
-  #ï¼TARGET_EXCATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+  # excatrが無効の場合（E_RSATR）［NGKI3131］
+  #（TARGET_EXCATR以外のビットがセットされている場合）
   if (params[:excatr] & ~($TARGET_EXCATR)) != 0
     error_illegal_sym("E_RSATR", params, :excatr, :excno)
@@ -82,10 +67,9 @@
 
 #
-#  CPUä¾å¤ãã³ãã©ã®ããã®æ¨æºçãªåæåæ
-å ±ã®çæ
+#  CPU例外ハンドラのための標準的な初期化情報の生成
 #
 if !$OMIT_INITIALIZE_EXCEPTION
   #
-  #  å®ç¾©ããCPUä¾å¤ãã³ãã©ã®æ°
+  #  定義するCPU例外ハンドラの数
   #
   $kernelCfgC.add(<<EOS)
@@ -96,5 +80,5 @@
   if $cfgData[:DEF_EXC].size != 0
     #
-    #  CPUä¾å¤ãã³ãã©ã®ã¨ã³ããª
+    #  CPU例外ハンドラのエントリ
     #
     $cfgData[:DEF_EXC].each do |key, params|
@@ -105,5 +89,5 @@
 
     #
-    #  CPUä¾å¤ãã³ãã©åæåãã­ãã¯
+    #  CPU例外ハンドラ初期化ブロック
     #
     $kernelCfgC.add("const EXCINIB _kernel_excinib_table[TNUM_DEF_EXCNO] = {")
@@ -122,5 +106,5 @@
 
 #
-#  CPUä¾å¤ç®¡çæ©è½åæåé¢æ°ã®è¿½å 
+#  CPU例外管理機能初期化関数の追加
 #
 $initializeFunctions.push("_kernel_initialize_exception();")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/genoffset.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/genoffset.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/genoffset.trb	(revision 321)
@@ -8,63 +8,47 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 #  
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: genoffset.trb 662 2016-02-27 02:33:51Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		ãªãã»ãããã¡ã¤ã«çæç¨ã®çæã¹ã¯ãªãã
+#		オフセットファイル生成用の生成スクリプト
 #
 
 # 
-#  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®
+#  タイムスタンプファイルの指定
 # 
 $timeStampFileName = "offset.timestamp"
 
 # 
-#  offset.hã®å
-é ­é¨åã®çæ
+#  offset.hの先頭部分の生成
 # 
 $offsetH = GenFile.new("offset.h")
@@ -72,5 +56,5 @@
 
 # 
-#  #defineãã£ã¬ã¯ãã£ãã®çæ
+#  #defineディレクティブの生成
 # 
 def GenerateDefine(symbol, value)
@@ -79,5 +63,5 @@
 
 # 
-#  ãããã®ãµã¼ã
+#  ビットのサーチ
 # 
 def SearchBit(val)
@@ -91,5 +75,5 @@
 
 # 
-#  ããããã£ã¼ã«ãã®ãªãã»ããã¨ãããä½ç½®ã®å®ç¾©ã®çæ
+#  ビットフィールドのオフセットとビット位置の定義の生成
 # 
 def GenerateDefineBit(label, structSize, outputSize)
@@ -138,6 +122,5 @@
 
 # 
-#  ãã¤ãé
-ç½®ã®ãã§ãã¯
+#  バイト配置のチェック
 # 
 def magicCheck(size, check)
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		å²è¾¼ã¿ç®¡çæ©è½
+ *		割込み管理機能
  */
 
@@ -66,5 +51,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ISR_ENTER
@@ -125,5 +110,5 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®æ°
+ *  割込みサービスルーチンの数
  */
 #define tnum_isr	((uint_t)(tmax_isrid - TMIN_ISRID + 1))
@@ -131,6 +116,6 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³IDããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ãå
- *  ãåºãããã®ãã¯ã­
+ *  割込みサービスルーチンIDから割込みサービスルーチン管理ブロックを取
+ *  り出すためのマクロ
  */
 #define INDEX_ISR(isrid)	((uint_t)((isrid) - TMIN_ISRID))
@@ -138,5 +123,5 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã­ã¥ã¼ã¸ã®ç»é²
+ *  割込みサービスルーチンキューへの登録
  */
 Inline void
@@ -158,10 +143,10 @@
 
 /*
- *  ä½¿ç¨ãã¦ããªãå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していない割込みサービスルーチン管理ブロックのリスト
  */
 QUEUE	free_isrcb;
 
 /* 
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³æ©è½ã®åæå
+ *  割込みサービスルーチン機能の初期化
  */
 void
@@ -194,5 +179,5 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å¼åºã
+ *  割込みサービスルーチンの呼出し
  */
 #ifdef TOPPERS_isrcal
@@ -212,6 +197,5 @@
 
 		if (p_queue->p_next != p_isr_queue) {
-			/* ISRã®å¼åºãåã®ç¶æ
-ã«æ»ã */
+			/* ISRの呼出し前の状態に戻す */
 			if (sense_lock()) {
 				unlock_cpu();
@@ -224,5 +208,5 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ã®æ¤ç´¢
+ *  割込みサービスルーチン呼出しキューの検索
  */
 Inline QUEUE *
@@ -255,10 +239,8 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®çæ
+ *  割込みサービスルーチンの生成
  *
- *  pk_cisr->exinfã¯ï¼ã¨ã©ã¼ãã§ãã¯ãããï¼ä¸åº¦ããåç
-§ããªãããï¼ã­ã¼
- *  ã«ã«å¤æ°ã«ã³ãã¼ããå¿
-è¦ããªãï¼éä¸­ã§æ¸ãæãã£ã¦ãæ¯éããªãï¼ï¼
+ *  pk_cisr->exinfは，エラーチェックをせず，一度しか参照しないため，ロー
+ *  カル変数にコピーする必要がない（途中で書き換わっても支障がない）．
  */
 #ifdef TOPPERS_acre_isr
@@ -318,5 +300,5 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®åé¤
+ *  割込みサービスルーチンの削除
  */
 #ifdef TOPPERS_del_isr
@@ -358,5 +340,5 @@
 
 /* 
- *  å²è¾¼ã¿ç®¡çæ©è½ã®åæå
+ *  割込み管理機能の初期化
  */
 #ifdef TOPPERS_intini
@@ -384,8 +366,8 @@
 
 /*
- *  å²è¾¼ã¿ã®ç¦æ­¢ï¼»NGKI3555ï¼½
+ *  割込みの禁止［NGKI3555］
  */
 #ifdef TOPPERS_dis_int
-#ifdef TOPPERS_SUPPORT_DIS_INT					/*ï¼»NGKI3093ï¼½*/
+#ifdef TOPPERS_SUPPORT_DIS_INT					/*［NGKI3093］*/
 
 ER
@@ -396,5 +378,5 @@
 
 	LOG_DIS_INT_ENTER(intno);
-	CHECK_PAR(VALID_INTNO_DISINT(intno));		/*ï¼»NGKI3083ï¼½ï¼»NGKI3087ï¼½*/
+	CHECK_PAR(VALID_INTNO_DISINT(intno));		/*［NGKI3083］［NGKI3087］*/
 
 	locked = sense_lock();
@@ -402,9 +384,9 @@
 		lock_cpu();
 	}
-	if (disable_int(intno)) {					/*ï¼»NGKI3086ï¼½*/
+	if (disable_int(intno)) {					/*［NGKI3086］*/
 		ercd = E_OK;
 	}
 	else {
-		ercd = E_OBJ;							/*ï¼»NGKI3085ï¼½*/
+		ercd = E_OBJ;							/*［NGKI3085］*/
 	}
 	if (!locked) {
@@ -421,8 +403,8 @@
 
 /*
- *  å²è¾¼ã¿ã®è¨±å¯ï¼»NGKI3556ï¼½
+ *  割込みの許可［NGKI3556］
  */
 #ifdef TOPPERS_ena_int
-#ifdef TOPPERS_SUPPORT_ENA_INT					/*ï¼»NGKI3106ï¼½*/
+#ifdef TOPPERS_SUPPORT_ENA_INT					/*［NGKI3106］*/
 
 ER
@@ -433,5 +415,5 @@
 
 	LOG_ENA_INT_ENTER(intno);
-	CHECK_PAR(VALID_INTNO_DISINT(intno));		/*ï¼»NGKI3096ï¼½ï¼»NGKI3100ï¼½*/
+	CHECK_PAR(VALID_INTNO_DISINT(intno));		/*［NGKI3096］［NGKI3100］*/
 
 	locked = sense_lock();
@@ -439,9 +421,9 @@
 		lock_cpu();
 	}
-	if (enable_int(intno)) {					/*ï¼»NGKI3099ï¼½*/
+	if (enable_int(intno)) {					/*［NGKI3099］*/
 		ercd = E_OK;
 	}
 	else {
-		ercd = E_OBJ;							/*ï¼»NGKI3098ï¼½*/
+		ercd = E_OBJ;							/*［NGKI3098］*/
 	}
 	if (!locked) {
@@ -458,6 +440,5 @@
 
 /*
- *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã®å¤æ´ï¼»NGKI3107ï¼½
+ *  割込み優先度マスクの変更［NGKI3107］
  */
 #ifdef TOPPERS_chg_ipm
@@ -469,9 +450,9 @@
 
 	LOG_CHG_IPM_ENTER(intpri);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI3108ï¼½ï¼»NGKI3109ï¼½*/
-	CHECK_PAR(VALID_INTPRI_CHGIPM(intpri));		/*ï¼»NGKI3113ï¼½ï¼»NGKI3114ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI3108］［NGKI3109］*/
+	CHECK_PAR(VALID_INTPRI_CHGIPM(intpri));		/*［NGKI3113］［NGKI3114］*/
 
 	lock_cpu();
-	t_set_ipm(intpri);							/*ï¼»NGKI3111ï¼½*/
+	t_set_ipm(intpri);							/*［NGKI3111］*/
 	if (intpri == TIPM_ENAALL && enadsp) {
 		dspflg = true;
@@ -503,7 +484,5 @@
 
 /*
- *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã®åç
-§ï¼»NGKI3115ï¼½
+ *  割込み優先度マスクの参照［NGKI3115］
  */
 #ifdef TOPPERS_get_ipm
@@ -515,8 +494,8 @@
 
 	LOG_GET_IPM_ENTER(p_intpri);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI3116ï¼½ï¼»NGKI3117ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI3116］［NGKI3117］*/
 
 	lock_cpu();
-	*p_intpri = t_get_ipm();					/*ï¼»NGKI3120ï¼½*/
+	*p_intpri = t_get_ipm();					/*［NGKI3120］*/
 	ercd = E_OK;
 	unlock_cpu();
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		å²è¾¼ã¿ç®¡çæ©è½
+ *		割込み管理機能
  */
 
@@ -67,56 +52,52 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åæåãã­ãã¯
+ *  割込みサービスルーチン初期化ブロック
  */
 typedef struct isr_initialization_block {
-	ATR			isratr;			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å±æ§ */
-	intptr_t	exinf;			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®æ¡å¼µæ
-å ± */
-	QUEUE		*p_isr_queue;	/* ç»é²å
-å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ */
-	ISR			isr;			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å
-é ­çªå° */
-	PRI			isrpri;			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
-åº¦ */
+	ATR			isratr;			/* 割込みサービスルーチン属性 */
+	intptr_t	exinf;			/* 割込みサービスルーチンの拡張情報 */
+	QUEUE		*p_isr_queue;	/* 登録先割込みサービスルーチン呼出しキュー */
+	ISR			isr;			/* 割込みサービスルーチンの先頭番地 */
+	PRI			isrpri;			/* 割込みサービスルーチン優先度 */
 } ISRINIB;
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯
+ *  割込みサービスルーチン管理ブロック
  */
 typedef struct isr_control_block {
-	QUEUE		isr_queue;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ */
-	const ISRINIB *p_isrinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	QUEUE		isr_queue;		/* 割込みサービスルーチン呼出しキュー */
+	const ISRINIB *p_isrinib;	/* 初期化ブロックへのポインタ */
 } ISRCB;
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ãæ¤ç´¢ããããã®ãã¼ã¿æ§é 
+ *  割込みサービスルーチン呼出しキューを検索するためのデータ構造
  */
 typedef struct {
-	INTNO		intno;			/* å²è¾¼ã¿çªå· */
-	QUEUE		*p_isr_queue;	/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ */
+	INTNO		intno;			/* 割込み番号 */
+	QUEUE		*p_isr_queue;	/* 割込みサービスルーチン呼出しキュー */
 } ISR_ENTRY;
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ã®ã¨ã³ããªæ°ï¼kernel_cfg.cï¼
+ *  割込みサービスルーチン呼出しキューのエントリ数（kernel_cfg.c）
  */
 extern const uint_t tnum_isr_queue;
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ãªã¹ãï¼kernel_cfg.cï¼
+ *  割込みサービスルーチン呼出しキューリスト（kernel_cfg.c）
  */
 extern const ISR_ENTRY isr_queue_list[];
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  割込みサービスルーチン呼出しキューのエリア（kernel_cfg.c）
  */
 extern QUEUE isr_queue_table[];
 
 /*
- *  ä½¿ç¨ãã¦ããªãå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していない割込みサービスルーチン管理ブロックのリスト
  */
 extern QUEUE	free_isrcb;
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  割込みサービスルーチンIDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_isrid;
@@ -124,5 +105,5 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  割込みサービスルーチン初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const ISRINIB	isrinib_table[];
@@ -130,26 +111,26 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³çæé åºãã¼ãã«ï¼kernel_cfg.cï¼
+ *  割込みサービスルーチン生成順序テーブル（kernel_cfg.c）
  */
 extern const ID	isrorder_table[];
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  割込みサービスルーチン管理ブロックのエリア（kernel_cfg.c）
  */
 extern ISRCB	isrcb_table[];
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³IDãå
- *  ãåºãããã®ãã¯ã­
+ *  割込みサービスルーチン管理ブロックから割込みサービスルーチンIDを取
+ *  り出すためのマクロ
  */
 #define	ISRID(p_isrcb)	((ID)(((p_isrcb) - isrcb_table) + TMIN_ISRID))
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³æ©è½ã®åæå
+ *  割込みサービスルーチン機能の初期化
  */
 extern void initialize_isr(void);
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å¼åºã
+ *  割込みサービスルーチンの呼出し
  */
 extern void call_isr(QUEUE *p_isr_queue);
@@ -158,20 +139,19 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã©åæåãã­ãã¯
+ *  割込みハンドラ初期化ブロック
  */
 typedef struct interrupt_handler_initialization_block {
-	INHNO		inhno;			/* å²è¾¼ã¿ãã³ãã©çªå· */
-	ATR			inhatr;			/* å²è¾¼ã¿ãã³ãã©å±æ§ */
-	FP			int_entry;		/* å²è¾¼ã¿ãã³ãã©ã®åºå
-¥å£å¦çã®çªå° */
+	INHNO		inhno;			/* 割込みハンドラ番号 */
+	ATR			inhatr;			/* 割込みハンドラ属性 */
+	FP			int_entry;		/* 割込みハンドラの出入口処理の番地 */
 } INHINIB;
 
 /*
- *  å®ç¾©ããå²è¾¼ã¿ãã³ãã©çªå·ã®æ°ï¼kernel_cfg.cï¼
+ *  定義する割込みハンドラ番号の数（kernel_cfg.c）
  */
 extern const uint_t	tnum_def_inhno;
 
 /*
- *  å²è¾¼ã¿ãã³ãã©åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  割込みハンドラ初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const INHINIB	inhinib_table[];
@@ -182,20 +162,19 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³åæåãã­ãã¯
+ *  割込み要求ライン初期化ブロック
  */
 typedef struct interrupt_request_initialization_block {
-	INTNO		intno;			/* å²è¾¼ã¿çªå· */
-	ATR			intatr;			/* å²è¾¼ã¿å±æ§ */
-	PRI			intpri;			/* å²è¾¼ã¿åªå
-åº¦ */
+	INTNO		intno;			/* 割込み番号 */
+	ATR			intatr;			/* 割込み属性 */
+	PRI			intpri;			/* 割込み優先度 */
 } INTINIB;
 
 /*
- *  è¨­å®ããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®æ°ï¼kernel_cfg.cï¼
+ *  設定する割込み要求ラインの数（kernel_cfg.c）
  */
 extern const uint_t	tnum_cfg_intno;
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  割込み要求ライン初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const INTINIB	intinib_table[];
@@ -204,5 +183,5 @@
 
 /*
- *  å²è¾¼ã¿ç®¡çæ©è½ã®åæå
+ *  割込み管理機能の初期化
  */
 extern void	initialize_interrupt(void);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.trb	(revision 321)
@@ -9,63 +9,48 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
-# 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
-# 
-#   $Id: interrupt.trb 678 2016-03-06 02:36:09Z ertl-hiro $
-# 
-
-#
-#		å²è¾¼ã¿ç®¡çæ©è½ã®çæã¹ã¯ãªãã
-#
-
-#
-#  kernel_cfg.cã®çæ
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+# 
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+# 
+#   $Id$
+# 
+
+#
+#		割込み管理機能の生成スクリプト
+#
+
+#
+#  kernel_cfg.cの生成
 #
 $kernelCfgC.comment_header("Interrupt Management Functions")
 
 #
-#  CRE_ISRã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨ããã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·ã®ã
-#  ãã©ã«ãå®ç¾©
+#  CRE_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号のデ
+#  フォルト定義
 #
 if $INTNO_CREISR_VALID.nil?
@@ -77,6 +62,5 @@
 
 #
-#  CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿åªå
-åº¦ã®ããã©ã«ãå®ç¾©
+#  CFG_INTで使用できる割込み優先度のデフォルト定義
 # 
 if $INTPRI_CFGINT_VALID.nil?
@@ -85,5 +69,5 @@
 
 #
-#  å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã®å¤æãã¼ãã«ã®ä½æ
+#  割込み番号と割込みハンドラ番号の変換テーブルの作成
 #
 if $INTNO_CREISR_VALID.length != $INHNO_CREISR_VALID.length
@@ -101,27 +85,26 @@
 
 #
-#  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã«é¢ããã¨ã©ã¼ãã§ãã¯
+#  割込み要求ラインに関するエラーチェック
 #
 $cfgData[:CFG_INT].each do |key, params|
-  #	intnoãå²è¾¼ã¿çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼ï¼»NGKI2972ï¼½
+  #	intnoが割込み番号として正しくない場合（E_PAR）［NGKI2972］
   if $INTNO_VALID.index(params[:intno]).nil?
     error_illegal("E_PAR", params, :intno)
   end
 
-  #	intatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2969ï¼½
-  #ï¼TA_ENAINTï¼TA_EDGEï¼TARGET_INTATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+  #	intatrが無効の場合（E_RSATR）［NGKI2969］
+  #（TA_ENAINT，TA_EDGE，TARGET_INTATR以外のビットがセットされている場合）
   if (params[:intatr] & ~($TA_ENAINT|$TA_EDGE|$TARGET_INTATR)) != 0
     error_illegal_sym("E_RSATR", params, :intatr, :intno)
   end
 
-  #	intpriãCFG_INTã«å¯¾ããå²è¾¼ã¿åªå
-åº¦ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
-  #	ï¼»NGKI2973ï¼½
+  #	intpriがCFG_INTに対する割込み優先度として正しくない場合（E_PAR）
+  #	［NGKI2973］
   if $INTPRI_CFGINT_VALID.index(params[:intpri]).nil?
     error_illegal_sym("E_OBJ", params, :intpri, :intno)
   end
 
-  # ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ããintnoã«å¯¾ãã¦ï¼intpriã«TMIN_INTPRIã
-  #	ããå°ããå¤ãæå®ãããªãã£ãå ´åï¼E_OBJï¼ï¼»NGKI2983ï¼½
+  # カーネル管理外に固定されているintnoに対して，intpriにTMIN_INTPRIよ
+  #	りも小さい値が指定されなかった場合（E_OBJ）［NGKI2983］
   if !$INTNO_FIX_NONKERNEL.nil?
     if !$INTNO_FIX_NONKERNEL.index(params[:intno]).nil?
@@ -133,6 +116,6 @@
   end
 
-  #	ã«ã¼ãã«ç®¡çã«åºå®ããã¦ããintnoã«å¯¾ãã¦ï¼intpriã«TMIN_INTPRIãã
-  #	ãå°ããå¤ãæå®ãããå ´åï¼E_OBJï¼ï¼»NGKI2984ï¼½
+  #	カーネル管理に固定されているintnoに対して，intpriにTMIN_INTPRIより
+  #	も小さい値が指定された場合（E_OBJ）［NGKI2984］
   if !$INTNO_FIX_KERNEL.nil?
     if !$INTNO_FIX_KERNEL.index(params[:intno]).nil?
@@ -146,20 +129,20 @@
 
 #
-#  å²è¾¼ã¿ãã³ãã©ã«é¢ããã¨ã©ã¼ãã§ãã¯
+#  割込みハンドラに関するエラーチェック
 #
 $cfgData[:DEF_INH].each do |key, params|
-  # inhnoãå²è¾¼ã¿ãã³ãã©çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼ï¼»NGKI3055ï¼½
+  # inhnoが割込みハンドラ番号として正しくない場合（E_PAR）［NGKI3055］
   if $INHNO_VALID.index(params[:inhno]).nil?
     error_illegal("E_PAR", params, :inhno)
   end
 
-  # inhatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI3052ï¼½
-  #ï¼TARGET_INHATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+  # inhatrが無効の場合（E_RSATR）［NGKI3052］
+  #（TARGET_INHATR以外のビットがセットされている場合）
   if (params[:inhatr] & ~($TARGET_INHATR)) != 0
     error_illegal_sym("E_RSATR", params, :inhatr, :inhno)
   end
 
-  #	ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ããinhnoã«å¯¾ãã¦ï¼inhatrã«TA_NONKERNELã
-  #	æå®ããã¦ããªãå ´åï¼E_RSATRï¼ï¼»NGKI3067ï¼½
+  #	カーネル管理外に固定されているinhnoに対して，inhatrにTA_NONKERNELが
+  #	指定されていない場合（E_RSATR）［NGKI3067］
   if !$INHNO_FIX_NONKERNEL.nil?
     if !$INHNO_FIX_NONKERNEL.index(params[:inhno]).nil?
@@ -171,6 +154,6 @@
   end
 
-  #	ã«ã¼ãã«ç®¡çã«åºå®ããã¦ããinhnoã«å¯¾ãã¦ï¼inhatrã«TA_NONKERNELãæ
-  #	å®ããã¦ããå ´åï¼E_RSATRï¼ï¼»NGKI3068ï¼½
+  #	カーネル管理に固定されているinhnoに対して，inhatrにTA_NONKERNELが指
+  #	定されている場合（E_RSATR）［NGKI3068］
   if !$INHNO_FIX_KERNEL.nil?
     if !$INHNO_FIX_KERNEL.index(params[:inhno]).nil?
@@ -185,5 +168,5 @@
     intnoVal = $toIntnoVal[params[:inhno].val]
 
-    # inhnoã«å¯¾å¿ããintnoã«å¯¾ããCFG_INTããªãå ´åï¼E_OBJï¼ï¼»NGKI3062ï¼½
+    # inhnoに対応するintnoに対するCFG_INTがない場合（E_OBJ）［NGKI3062］
     if !$cfgData[:CFG_INT].has_key?(intnoVal)
       error_ercd("E_OBJ", params, "intno `#{intnoVal}' corresponding to " \
@@ -192,8 +175,7 @@
       intnoParams = $cfgData[:CFG_INT][intnoVal]
       if (params[:inhatr] & $TA_NONKERNEL) == 0
-        # inhatrã«TA_NONKERNELãæå®ããã¦ãããï¼inhnoã«å¯¾å¿ããintno
-        # ã«å¯¾ãã¦CFG_INTã§è¨­å®ãããå²è¾¼ã¿åªå
-åº¦ãTMIN_INTPRIãããå°
-        # ããå ´åï¼E_OBJï¼ï¼»NGKI3065ï¼½
+        # inhatrにTA_NONKERNELが指定されておらず，inhnoに対応するintno
+        # に対してCFG_INTで設定された割込み優先度がTMIN_INTPRIよりも小
+        # さい場合（E_OBJ）［NGKI3065］
         if intnoParams[:intpri] < $TMIN_INTPRI
           error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
@@ -201,8 +183,7 @@
         end
       else
-        # inhatrã«TA_NONKERNELãæå®ããã¦ããï¼inhnoã«å¯¾å¿ããintnoã«
-        # å¯¾ãã¦CFG_INTã§è¨­å®ãããå²è¾¼ã¿åªå
-åº¦ãTMIN_INTPRIä»¥ä¸ã§ãã
-        # å ´åï¼E_OBJï¼ï¼»NGKI3066ï¼½
+        # inhatrにTA_NONKERNELが指定されており，inhnoに対応するintnoに
+        # 対してCFG_INTで設定された割込み優先度がTMIN_INTPRI以上である
+        # 場合（E_OBJ）［NGKI3066］
         if intnoParams[:intpri] >= $TMIN_INTPRI
           error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
@@ -215,21 +196,21 @@
 
 #
-#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼ã«é¢ããã¨ã©ã¼ãã§ãã¯
+#  割込みサービスルーチン（ISR）に関するエラーチェック
 #
 $cfgData[:CRE_ISR].sort.each do |key, params|
-  #	isratrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2998ï¼½
-  #ï¼TARGET_ISRATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+  #	isratrが無効の場合（E_RSATR）［NGKI2998］
+  #（TARGET_ISRATR以外のビットがセットされている場合）
   if (params[:isratr] & ~($TARGET_ISRATR)) != 0
     error_illegal("E_RSATR", params, "isratr")
   end
 
-  #	intnoãCRE_ISRã«å¯¾ããå²è¾¼ã¿çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
-  #	ï¼»NGKI3003ï¼½
+  #	intnoがCRE_ISRに対する割込み番号として正しくない場合（E_PAR）
+  #	［NGKI3003］
   if $INTNO_CREISR_VALID.index(params[:intno]).nil?
     error_illegal("E_PAR", params, "intno")
   end
 
-  #	(TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)ã§ãªãå ´åï¼E_PARï¼
-  #	ï¼»NGKI3005ï¼½
+  #	(TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)でない場合（E_PAR）
+  #	［NGKI3005］
   if !($TMIN_ISRPRI <= params[:isrpri] && params[:isrpri] <= $TMAX_ISRPRI)
     error_illegal("E_PAR", params, "isrpri")
@@ -238,5 +219,5 @@
 
 $INTNO_CREISR_VALID.each do |intnoVal|
-  # å²è¾¼ã¿çªå·intnoã«å¯¾ãã¦ç»é²ãããISRã®ãªã¹ãã®ä½æ
+  # 割込み番号intnoに対して登録されたISRのリストの作成
   isrParamsList = []
   $cfgData[:CRE_ISR].sort.each do |key, params|
@@ -246,9 +227,9 @@
   end
 
-  #	å²è¾¼ã¿çªå·intnoã«å¯¾ãã¦ç»é²ãããISRãå­å¨ããå ´å
+  #	割込み番号intnoに対して登録されたISRが存在する場合
   if isrParamsList.size > 0
     inhnoVal = $toInhnoVal[intnoVal]
 
-    # intnoã«å¯¾å¿ããinhnoã«å¯¾ãã¦DEF_INHãããå ´åï¼E_OBJï¼ï¼»NGKI3013ï¼½
+    # intnoに対応するinhnoに対してDEF_INHがある場合（E_OBJ）［NGKI3013］
     if $cfgData[:DEF_INH].has_key?(inhnoVal)
       inhnoParams = $cfgData[:DEF_INH][inhnoVal]
@@ -257,5 +238,5 @@
     end
 
-    # intnoã«å¯¾ããCFG_INTããªãå ´åï¼E_OBJï¼ï¼»NGKI3012ï¼½
+    # intnoに対するCFG_INTがない場合（E_OBJ）［NGKI3012］
     if !$cfgData[:CFG_INT].has_key?(intnoVal)
       error_ercd("E_OBJ", isrParamsList[0], "%%intno in %apiname " \
@@ -264,7 +245,6 @@
       intnoParams = $cfgData[:CFG_INT][intnoVal]
 
-      #	intnoã«å¯¾ãã¦CFG_INTã§è¨­å®ãããå²è¾¼ã¿åªå
-åº¦ãTMIN_INTPRIããã
-      #	å°ããå ´åï¼E_OBJï¼ï¼»NGKI3014ï¼½
+      #	intnoに対してCFG_INTで設定された割込み優先度がTMIN_INTPRIよりも
+      #	小さい場合（E_OBJ）［NGKI3014］
       if intnoParams[:intpri] < $TMIN_INTPRI
         error_ercd("E_OBJ", isrParamsList[0],
@@ -277,5 +257,5 @@
 
 #
-#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼ç®¡çã®ãã¼ã¿æ§é 
+#  割込みサービスルーチン（ISR）管理のデータ構造
 #
 intnoIsrList = []
@@ -313,10 +293,10 @@
 
 #
-#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼å¼åºãã®ããã®å²è¾¼ã¿ãã³ãã©
+#  割込みサービスルーチン（ISR）呼出しのための割込みハンドラ
 #
 intnoIsrList.each do |intnoVal|
   inhnoVal = $toInhnoVal[intnoVal]
 
-  # æ¬¡ã®DEF_INHã«ç¸å½ãããã¼ã¿ãçæ
+  # 次のDEF_INHに相当するデータを生成
   # DEF_INH(inhno, { TA_NULL, _kernel_inthdr_<intno> } );
   $cfgData[:DEF_INH][inhnoVal] = {
@@ -326,5 +306,5 @@
   }
 
-  # å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç¨ã®å²è¾¼ã¿ãã³ãã©
+  # 割込みサービスルーチン用の割込みハンドラ
   $kernelCfgC.add("void")
   $kernelCfgC.add("_kernel_inthdr_#{intnoVal}(void)")
@@ -335,6 +315,5 @@
 
 #
-#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã«é¢ããä¸è¬çãªæ
-å ±ã®çæ
+#  割込みサービスルーチンに関する一般的な情報の生成
 #
 class IsrObject < KernelObject
@@ -344,5 +323,5 @@
 
   def prepare(key, params)
-    # ã¨ã©ã¼ãã§ãã¯ã¯å®æ½æ¸ã¿ãªã®ã§ï¼ããã§ã®å¦çã¯ä¸è¦
+    # エラーチェックは実施済みなので，ここでの処理は不要
   end
 
@@ -355,5 +334,5 @@
 IsrObject.new.generate()
 
-# å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³çæé åºãã¼ãã«ã®çæ
+# 割込みサービスルーチン生成順序テーブルの生成
 $kernelCfgC.add("const ID _kernel_isrorder_table[TNUM_SISRID] = { ")
 $kernelCfgC.append("\t")
@@ -366,10 +345,9 @@
 
 #
-#  å²è¾¼ã¿ãã³ãã©ã®ããã®æ¨æºçãªåæåæ
-å ±ã®çæ
+#  割込みハンドラのための標準的な初期化情報の生成
 #
 if !$OMIT_INITIALIZE_INTERRUPT || $USE_INHINIB_TABLE
   #
-  #  å®ç¾©ããå²è¾¼ã¿ãã³ãã©ã®æ°
+  #  定義する割込みハンドラの数
   #
   $kernelCfgC.add(<<EOS)
@@ -380,5 +358,5 @@
   if $cfgData[:DEF_INH].size != 0
     #
-    #  å²è¾¼ã¿ãã³ãã©ã®ã¨ã³ããª
+    #  割込みハンドラのエントリ
     #
     $cfgData[:DEF_INH].each do |key, params|
@@ -391,5 +369,5 @@
 
     #
-    #  å²è¾¼ã¿ãã³ãã©åæåãã­ãã¯
+    #  割込みハンドラ初期化ブロック
     #
     $kernelCfgC.add("const INHINIB _kernel_inhinib_table[TNUM_DEF_INHNO] = {")
@@ -413,10 +391,9 @@
 
 #
-#  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®ããã®æ¨æºçãªåæåæ
-å ±ã®çæ
+#  割込み要求ラインのための標準的な初期化情報の生成
 #
 if !$OMIT_INITIALIZE_INTERRUPT || $USE_INTINIB_TABLE
   #
-  #  è¨­å®ããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®æ°
+  #  設定する割込み要求ラインの数
   #
   $kernelCfgC.add(<<EOS)
@@ -426,5 +403,5 @@
 
   #
-  #  å²è¾¼ã¿è¦æ±ã©ã¤ã³åæåãã­ãã¯
+  #  割込み要求ライン初期化ブロック
   #
   if $cfgData[:CFG_INT].size != 0
@@ -444,5 +421,5 @@
 
 #
-#  å²è¾¼ã¿ç®¡çæ©è½åæåé¢æ°ã®è¿½å 
+#  割込み管理機能初期化関数の追加
 #
 $initializeFunctions.push("_kernel_initialize_interrupt();")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel.trb	(revision 321)
@@ -9,63 +9,47 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: kernel.trb 716 2016-03-31 06:16:23Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã®çæã¹ã¯ãªãã
-#
-
-#
-#  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®
+#		コンフィギュレータのパス2の生成スクリプト
+#
+
+#
+#  タイムスタンプファイルの指定
 #
 $timeStampFileName = "kernel_cfg.timestamp"
 
 #
-#  kernel_cfg.hã®å
-é ­é¨åã®çæ
+#  kernel_cfg.hの先頭部分の生成
 #
 $kernelCfgH = GenFile.new("kernel_cfg.h")
@@ -77,6 +61,5 @@
 
 #
-#  kernel_cfg.cã®å
-é ­é¨åã®çæ
+#  kernel_cfg.cの先頭部分の生成
 #
 $kernelCfgC = GenFile.new("kernel_cfg.c")
@@ -92,5 +75,5 @@
 
 #
-#  ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼
+#  インクルードディレクティブ（#include）
 #
 $kernelCfgC.comment_header("Include Directives")
@@ -101,12 +84,11 @@
 
 #
-#  ã¹ã¿ãã¯é åã®ç¢ºä¿é¢æ°
-#
-#  ã¹ã¿ãã¯é åã®å®ç¾©åã¨ï¼ã¹ã¿ãã¯é åã®ãµã¤ãºè¨è¿°ãé
-åã§è¿ãï¼
+#  スタック領域の確保関数
+#
+#  スタック領域の定義分と，スタック領域のサイズ記述を配列で返す．
 #
 unless defined? AllocStack()
   def AllocStack(stack, size)
-    # å¤§ããæ¹ã«ä¸¸ãããµã¤ãºã§ç¢ºä¿ããï¼»NGKI1050ï¼½ï¼»NGKI3220ï¼½
+    # 大きい方に丸めたサイズで確保する［NGKI1050］［NGKI3220］
     $kernelCfgC.add("/*static*/ STK_T #{stack}[COUNT_STK_T(#{size})];")
     return("ROUND_STK_T(#{size})")
@@ -115,6 +97,5 @@
 
 #
-#  ã«ã¼ãã«ãªãã¸ã§ã¯ãã«é¢ããæ
-å ±ã®çæï¼ä»®æ³ã¯ã©ã¹ï¼
+#  カーネルオブジェクトに関する情報の生成（仮想クラス）
 #
 class KernelObject
@@ -131,5 +112,5 @@
 
   def generate()
-    # AID_@OBJã®å¦ç
+    # AID_@OBJの処理
     numAutoObjid = 0
     $cfgData["AID_#{@OBJ}".to_sym].each do |key, params|
@@ -138,8 +119,8 @@
     numObjid = $cfgData[@api].size + numAutoObjid
 
-    # kernel_cfg.hã®çæ
+    # kernel_cfg.hの生成
     $kernelCfgH.add("#define TNUM_#{@OBJ}ID\t#{numObjid}")
 
-    # ãªãã¸ã§ã¯ãã®IDçªå·ã®ãã¯ã­å®ç¾©ã®çæ
+    # オブジェクトのID番号のマクロ定義の生成
     $cfgData[@api].sort.each do |key, params|
       $kernelCfgH.add("#define #{params[@objid]}\t#{params[@objid].val}")
@@ -147,5 +128,5 @@
     $kernelCfgH.add()
 
-    # ãªãã¸ã§ã¯ãã®IDçªå·ãä¿æããå¤æ°
+    # オブジェクトのID番号を保持する変数
     if $USE_EXTERNAL_ID
       $cfgData[@api].sort.each do |key, params|
@@ -156,8 +137,8 @@
     end
 
-    # éçã«çæããããªãã¸ã§ã¯ãã®æ°
+    # 静的に生成されたオブジェクトの数
     $kernelCfgC.add("#define TNUM_S#{@OBJ}ID\t#{$cfgData[@api].size}")
 
-    # ãªãã¸ã§ã¯ãIDçªå·ã®æå¤§å¤
+    # オブジェクトID番号の最大値
     $kernelCfgC.add("const ID _kernel_tmax_#{@obj}id" \
 							" = (TMIN_#{@OBJ}ID + TNUM_#{@OBJ}ID - 1);")
@@ -165,19 +146,17 @@
 							" = (TMIN_#{@OBJ}ID + TNUM_S#{@OBJ}ID - 1);")
 
-    # ãã¼ã¿æ§é 
+    # データ構造
     if $cfgData[@api].size > 0
-      # äºåæºåï¼ã¨ã©ã¼ãã§ãã¯ï¼ã¡ã¢ãªé åã®çæï¼
+      # 事前準備（エラーチェック，メモリ領域の生成）
       $cfgData[@api].sort.each do |key, params|
         prepare(key, params)
       end
 
-      # ãªãã¸ã§ã¯ãå
-¨ä½ã«å¯¾ãã¦å¿
-è¦ãªã¡ã¢ãªé åã®çæï¼ãªãã·ã§ã³ï¼
+      # オブジェクト全体に対して必要なメモリ領域の生成（オプション）
       if respond_to?(:generateData)
         generateData()
       end
 
-      # ãªãã¸ã§ã¯ãåæåãã­ãã¯ã®çæ
+      # オブジェクト初期化ブロックの生成
       $kernelCfgC.add("const #{@OBJ_S}INIB _kernel_#{@obj_s}inib_table" \
 													"[TNUM_S#{@OBJ}ID] = {")
@@ -193,5 +172,5 @@
     end
 
-    # åççæãªãã¸ã§ã¯ãç¨ã®ãªãã¸ã§ã¯ãåæåãã­ãã¯
+    # 動的生成オブジェクト用のオブジェクト初期化ブロック
     @inibList.each do |type, array|
       if numAutoObjid > 0
@@ -203,9 +182,9 @@
 
     if numObjid > 0
-      # ãªãã¸ã§ã¯ãç®¡çãã­ãã¯ã®çæ
+      # オブジェクト管理ブロックの生成
       $kernelCfgC.add2("#{@OBJ_S}CB _kernel_#{@obj_s}cb_table" \
 													"[TNUM_#{@OBJ}ID];")
 
-      # ãªãã¸ã§ã¯ãåæåé¢æ°ã®è¿½å 
+      # オブジェクト初期化関数の追加
       $initializeFunctions.push("_kernel_initialize_#{@object}();")
     else
@@ -217,8 +196,8 @@
 
 #
-#  éç¥ãã³ãã©ã®çæé¢æ°
+#  通知ハンドラの生成関数
 #
 def generateNotifyHandler(key, params, objid)
-  # ãã©ã¡ã¼ã¿ãå¤æ°ã«æ ¼ç´
+  # パラメータを変数に格納
   nfymode = params[:nfymode]
   nfymode1 = nfymode & 0x0f
@@ -227,14 +206,14 @@
   par2 = params[:par2]
 
-  # éç¥å¦çã®ãã©ã¡ã¼ã¿æ°ã«ããè£æ­£å¦ç
+  # 通知処理のパラメータ数による補正処理
   if nfymode == $TNFY_HANDLER || nfymode1 == $TNFY_SETVAR \
 								|| nfymode1 == $TNFY_SETFLG \
 								|| nfymode1 == $TNFY_SNDDTQ
-    # éç¥å¦çã®ãã©ã¡ã¼ã¿ã2ã¤ã®å ´å
+    # 通知処理のパラメータが2つの場合
 	numpar = 2
 	epar1 = params[:par3]
 	epar2 = params[:par4]
   else
-    # éç¥å¦çã®ãã©ã¡ã¼ã¿ã1ã¤ã®å ´å
+    # 通知処理のパラメータが1つの場合
     numpar = 1
     epar1 = params[:par2]
@@ -242,25 +221,24 @@
   end
 
-  # ãã©ã¡ã¼ã¿æ°ã®ãã§ãã¯
+  # パラメータ数のチェック
   if (numpar == 2 && par2.nil?) || (nfymode2 != 0 && epar1.nil?) \
 								|| (nfymode2 == $TENFY_SETFLG && epar2.nil?)
-    # ãã©ã¡ã¼ã¿ãè¶³ããªãå ´å
+    # パラメータが足りない場合
     error_api(params, "too few parameters for nfymode `#{nfymode}' " \
 											"in %apiname of %#{objid}")
   elsif (nfymode2 == 0 && !epar1.nil?) \
 					|| (nfymode2 != $TENFY_SETFLG && !epar2.nil?)
-    # ãã©ã¡ã¼ã¿ãå¤ãããå ´å
+    # パラメータが多すぎる場合
     error_api(params, "too many parameters for nfymode `#{nfymode}' " \
 											"in %apiname of %#{objid}")
   elsif nfymode == $TNFY_HANDLER
-    # ã¿ã¤ã ã¤ãã³ããã³ãã©ã®å¼åºã
+    # タイムイベントハンドラの呼出し
     funcname = "(NFYHDR)(#{par2})"
   else
-    # éç¥ãã³ãã©ã®é¢æ°å
+    # 通知ハンドラの関数名
     funcname = "_kernel_nfyhdr_#{params[objid]}"
 
-    # ã¨ã©ã¼éç¥ã®ããã®å¤æ°ã®ã¢ãã¬ã¹ã¨ãªãã¸ã§ã¯ãIDãæ ¼ç´ãã
-    # å¤æ°ã®çæï¼ã¨ã©ã¼ãã§ãã¯ã®ããã«å¿
-è¦ï¼
+    # エラー通知のための変数のアドレスとオブジェクトIDを格納する
+    # 変数の生成（エラーチェックのために必要）
     if nfymode2 == $TENFY_SETVAR || nfymode2 == $TENFY_INCVAR
       $kernelCfgC.add2("intptr_t *const #{funcname}_p_evar =" \
@@ -276,6 +254,5 @@
     end
 
-    # é¢æ°ã®å
-é ­é¨åã®çæ
+    # 関数の先頭部分の生成
     $kernelCfgC.add("static void")
     $kernelCfgC.add("#{funcname}(intptr_t exinf)")
@@ -283,35 +260,35 @@
 
     if nfymode2 == 0
-      # ã¨ã©ã¼éç¥ããªãå ´å
+      # エラー通知がない場合
       errorCode = "(void) "
     else
-      # ã¨ã©ã¼éç¥ãããå ´å
+      # エラー通知がある場合
       $kernelCfgC.add2("\tER\tercd;")
       errorCode = "ercd = "
     end
 
-    # ã¤ãã³ãéç¥å¦çã®å¦ç
+    # イベント通知処理の処理
     if nfymode1 == $TNFY_SETVAR && nfymode2 == 0
-      # å¤æ°ã®è¨­å®
+      # 変数の設定
       $kernelCfgC.add("\t*((intptr_t *) exinf) = (#{par2});")
     elsif nfymode1 == $TNFY_INCVAR && nfymode2 == 0
-      # å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ã
+      # 変数のインクリメント
       $kernelCfgC.add("\t(void) loc_cpu();")
       $kernelCfgC.add("\t*((intptr_t *) exinf) += 1;")
       $kernelCfgC.add("\t(void) unl_cpu();")
     elsif nfymode1 == $TNFY_ACTTSK
-      # ã¿ã¹ã¯ã®èµ·å
+      # タスクの起動
       $kernelCfgC.add("\t#{errorCode}act_tsk((ID) exinf);")
     elsif nfymode1 == $TNFY_WUPTSK
-      # ã¿ã¹ã¯ã®èµ·åº
+      # タスクの起床
       $kernelCfgC.add("\t#{errorCode}wup_tsk((ID) exinf);")
     elsif nfymode1 == $TNFY_SIGSEM
-      # ã»ããã©ã®è¿å´
+      # セマフォの返却
       $kernelCfgC.add("\t#{errorCode}sig_sem((ID) exinf);")
     elsif nfymode1 == $TNFY_SETFLG
-      # ã¤ãã³ããã©ã°ã®ã»ãã
+      # イベントフラグのセット
       $kernelCfgC.add("\t#{errorCode}set_flg(((ID) exinf), #{par2});")
     elsif nfymode1 == $TNFY_SNDDTQ
-      # ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡
+      # データキューへの送信
       $kernelCfgC.add("\t#{errorCode}psnd_dtq(((ID) exinf), #{par2});")
     else
@@ -320,30 +297,30 @@
 			
     if nfymode2 != 0
-      # ã¨ã©ã¼éç¥å¦çã®å¦ç
+      # エラー通知処理の処理
       $kernelCfgC.add("\tif (ercd != E_OK) {")
 
 
       if nfymode2 == $TENFY_SETVAR
-        # å¤æ°ã®è¨­å®
+        # 変数の設定
         $kernelCfgC.add("\t\t*#{funcname}_p_evar = (intptr_t) ercd;")
       elsif nfymode2 == $TENFY_INCVAR
-        # å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ã
+        # 変数のインクリメント
         $kernelCfgC.add("\t\t(void) loc_cpu();")
         $kernelCfgC.add("\t\t*#{funcname}_p_evar += 1;")
         $kernelCfgC.add("\t\t(void) unl_cpu();")
       elsif nfymode2 == $TENFY_ACTTSK
-        # ã¿ã¹ã¯ã®èµ·å
+        # タスクの起動
         $kernelCfgC.add("\t\t(void) act_tsk(#{funcname}_etskid);")
       elsif nfymode2 == $TENFY_WUPTSK
-        # ã¿ã¹ã¯ã®èµ·åº
+        # タスクの起床
         $kernelCfgC.add("\t\t(void) wup_tsk(#{funcname}_etskid);")
       elsif nfymode2 == $TENFY_SIGSEM
-        # ã»ããã©ã®è¿å´
+        # セマフォの返却
         $kernelCfgC.add("\t\t(void) sig_sem(#{funcname}_esemid);")
       elsif nfymode2 == $TENFY_SETFLG
-        # ã¤ãã³ããã©ã°ã®ã»ãã
+        # イベントフラグのセット
         $kernelCfgC.add("\t\t(void) set_flg(#{funcname}_eflgid, #{epar2});")
       elsif nfymode2 == $TENFY_SNDDTQ
-        # ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡
+        # データキューへの送信
         $kernelCfgC.add("\t\t(void) psnd_dtq(#{funcname}_edtqid," \
 													" (intptr_t) ercd);")
@@ -354,5 +331,5 @@
     end
 
-    # é¢æ°ã®æ«å°¾é¨åã®çæ
+    # 関数の末尾部分の生成
     $kernelCfgC.add2("}")
   end
@@ -361,5 +338,5 @@
 
 #
-#  åæ©è½ã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+#  各機能モジュールのコンフィギュレーション
 #
 $initializeFunctions = []
@@ -377,12 +354,12 @@
 
 #
-#  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é å
+#  非タスクコンテキスト用のスタック領域
 #
 $kernelCfgC.comment_header("Stack Area for Non-task Context")
 
 if $cfgData[:DEF_ICS].size == 0
-  # DEF_ICSããªãå ´åã®ããã©ã«ãå¤ã®è¨­å®
+  # DEF_ICSがない場合のデフォルト値の設定
   if $DEFAULT_ISTK.nil?
-    # ã¹ã¿ãã¯é åã®èªåå²ä»ã
+    # スタック領域の自動割付け
     istksz = AllocStack("_kernel_istack", "DEFAULT_ISTKSZ")
     istk = "_kernel_istack"
@@ -392,17 +369,17 @@
   end
 else
-  # éçAPIãDEF_ICSããè¤æ°ããï¼E_OBJï¼ï¼»NGKI3216ï¼½
+  # 静的API「DEF_ICS」が複数ある（E_OBJ）［NGKI3216］
   if $cfgData[:DEF_ICS].size > 1
     error("E_OBJ: too many DEF_ICS")
   end
 
-  # DEF_ICSãããå ´åã®å¦ç
+  # DEF_ICSがある場合の処理
   params = $cfgData[:DEF_ICS][1]
 
-  # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+  # パラメータが省略された時のデフォルト値の設定
   params[:istk] ||= "NULL"
 
-  # istkszãã¿ã¼ã²ããå®ç¾©ã®æå°å¤ï¼TARGET_MIN_ISTKSZï¼æªå®ç¾©ã®å ´åã¯1ï¼
-  # ãããå°ããå ´åï¼E_PARï¼ï¼»NGKI3254ï¼½
+  # istkszがターゲット定義の最小値（TARGET_MIN_ISTKSZ，未定義の場合は1）
+  # よりも小さい場合（E_PAR）［NGKI3254］
   if params[:istksz] < $TARGET_MIN_ISTKSZ
     error_wrong("E_PAR", params, :istksz, "too small")
@@ -410,9 +387,9 @@
 
   if params[:istk] == "NULL"
-    # ã¹ã¿ãã¯é åã®èªåå²ä»ã
+    # スタック領域の自動割付け
     istksz = AllocStack("_kernel_istack", params[:istksz])
     istk = "_kernel_istack"
   else
-    # istkszãã¹ã¿ãã¯é åã®ãµã¤ãºã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼ï¼»NGKI3222ï¼½
+    # istkszがスタック領域のサイズとして正しくない場合（E_PAR）［NGKI3222］
     if (params[:istksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
       error_wrong("E_PAR", params, :istksz, "not aligned")
@@ -434,25 +411,25 @@
 
 #
-#  ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé å
+#  カーネルが割り付けるメモリ領域
 #
 $kernelCfgC.comment_header("Memory Area Allocated by Kernel")
 
 if $cfgData[:DEF_KMM].size == 0
-  # DEF_KMMããªãå ´åã®ããã©ã«ãå¤ã®è¨­å®
+  # DEF_KMMがない場合のデフォルト値の設定
   kmmsz = "0"
   kmm = "NULL"
 else
-  # éçAPIãDEF_KMMããè¤æ°ããï¼E_OBJï¼
+  # 静的API「DEF_KMM」が複数ある（E_OBJ）
   if ($cfgData[:DEF_KMM].size > 1)
     error("E_OBJ: too many DEF_KMM")
   end
 
-  # DEF_KMMãããå ´åã®å¦ç
+  # DEF_KMMがある場合の処理
   params = $cfgData[:DEF_KMM][1]
 
-  # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+  # パラメータが省略された時のデフォルト値の設定
   params[:kmm] ||= "NULL"
 
-  # kmmszã0ã®å ´åï¼E_PARï¼
+  # kmmszが0の場合（E_PAR）
   if params[:kmmsz] == 0
     error_wrong("E_PAR", params, :kmmsz, "zero")
@@ -460,5 +437,5 @@
 
   if params[:kmm] == "NULL"
-    # ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®èªåå²ä»ã
+    # カーネルが割り付けるメモリ領域の自動割付け
     $kernelCfgC.add("static MB_T _kernel_memory" \
 					"[TOPPERS_COUNT_SZ(#{params[:kmmsz]}, sizeof(MB_T))];")
@@ -466,6 +443,6 @@
     kmm = "_kernel_memory"
   else
-    # kmmszãã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®ãµã¤ãºã¨ãã¦æ­£ãããªãå ´å
-    # ï¼E_PARï¼
+    # kmmszがカーネルが割り付けるメモリ領域のサイズとして正しくない場合
+    # （E_PAR）
     if (params[:kmmsz] & ($CHECK_MB_ALIGN - 1)) != 0
       error_wrong("E_PAR", params, :kmmsz, "not aligned")
@@ -483,5 +460,5 @@
 
 #
-#  ã¿ã¤ã ã¤ãã³ãç®¡ç
+#  タイムイベント管理
 #
 $kernelCfgC.comment_header("Time Event Management")
@@ -491,5 +468,5 @@
 
 #
-#  åã¢ã¸ã¥ã¼ã«ã®åæåé¢æ°
+#  各モジュールの初期化関数
 #
 $kernelCfgC.comment_header("Module Initialization Function")
@@ -505,12 +482,12 @@
 
 #
-#  åæåã«ã¼ãã³æ©è½
+#  初期化ルーチン機能
 #
 $kernelCfgC.comment_header("Initialization Routine")
 
-# ã¨ã©ã¼ãã§ãã¯
+# エラーチェック
 $cfgData[:ATT_INI].each do |key, params|
-  # iniatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI3241ï¼½
-  #ï¼TA_NULLã§ãªãå ´åï¼
+  # iniatrが無効の場合（E_RSATR）［NGKI3241］
+  #（TA_NULLでない場合）
   if (params[:iniatr] != $TA_NULL)
     error_illegal_sym("E_RSATR", params, :iniatr, :inirtn)
@@ -518,5 +495,5 @@
 end
 
-# åæåã«ã¼ãã³ã®å®è¡é¢æ°ã®çæ
+# 初期化ルーチンの実行関数の生成
 $kernelCfgC.append(<<EOS)
 void
@@ -531,12 +508,12 @@
 
 #
-#  çµäºå¦çã«ã¼ãã³æ©è½
+#  終了処理ルーチン機能
 #
 $kernelCfgC.comment_header("Termination Routine")
 
-# ã¨ã©ã¼ãã§ãã¯
+# エラーチェック
 $cfgData[:ATT_TER].each do |key, params|
-  # teratrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI3248ï¼½
-  #ï¼TA_NULLã§ãªãå ´åï¼
+  # teratrが無効の場合（E_RSATR）［NGKI3248］
+  #（TA_NULLでない場合）
   if (params[:teratr] != $TA_NULL)
     error_illegal_sym("E_RSATR", params, :teratr, :terrtn)
@@ -544,5 +521,5 @@
 end
 
-# çµäºå¦çã«ã¼ãã³ã®å®è¡é¢æ°ã®çæ
+# 終了処理ルーチンの実行関数の生成
 $kernelCfgC.append(<<EOS)
 void
@@ -557,5 +534,5 @@
 
 #
-#  kernel_cfg.hã®æ«å°¾é¨åã®çæ
+#  kernel_cfg.hの末尾部分の生成
 #
 $kernelCfgH.append(<<EOS)
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_check.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_check.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_check.trb	(revision 321)
@@ -9,62 +9,47 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 #  
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
-# 
-#   $Id: kernel_check.trb 662 2016-02-27 02:33:51Z ertl-hiro $
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+# 
+#   $Id$
 #  
 
 #
-#		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã®çæã¹ã¯ãªãã
-#
-
-# 
-#  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®
+#		コンフィギュレータのパス3の生成スクリプト
+#
+
+# 
+#  タイムスタンプファイルの指定
 # 
 $timeStampFileName = "check.timestamp"
 
 #
-#  ãã¼ã¿ã»ã¯ã·ã§ã³ã®LMAããVMAã¸ã®ã³ãã¼
+#  データセクションのLMAからVMAへのコピー
 #
 if !$lmaList.nil?
@@ -86,6 +71,5 @@
 
 #
-#  éç¥æ
-å ±ã®ãã§ãã¯é¢æ°
+#  通知情報のチェック関数
 #
 $tmax_tskid = $TMIN_TSKID + $cfgData[:CRE_TSK].size - 1
@@ -95,5 +79,5 @@
 
 def checkNotifyHandler(key, params, objid, exinf, nfyhdr)
-  # ãã©ã¡ã¼ã¿ãå¤æ°ã«æ ¼ç´
+  # パラメータを変数に格納
   nfymode = params[:nfymode]
   nfymode1 = nfymode & 0x0f
@@ -103,18 +87,17 @@
   funcname = "_kernel_nfyhdr_#{params[objid]}"
 
-  # éç¥å¦çã®ãã©ã¡ã¼ã¿æ°ã«ããè£æ­£å¦ç
+  # 通知処理のパラメータ数による補正処理
   if nfymode1 == $TNFY_SETVAR || nfymode1 == $TNFY_SETFLG \
 								|| nfymode1 == $TNFY_SNDDTQ
-    # éç¥å¦çã®ãã©ã¡ã¼ã¿ã2ã¤ã®å ´å
+    # 通知処理のパラメータが2つの場合
     epar1 = params[:par3]
     epar2 = params[:par4]
   else
-    # éç¥å¦çã®ãã©ã¡ã¼ã¿ã1ã¤ã®å ´å
+    # 通知処理のパラメータが1つの場合
     epar1 = params[:par2]
     epar2 = params[:par3]
   end
 
-  #	ã¿ã¤ã ã¤ãã³ããã³ãã©ã®å
-é ­çªå°ã®ãã§ãã¯ï¼»NGKI3693ï¼½
+  #	タイムイベントハンドラの先頭番地のチェック［NGKI3693］
   if nfymode == $TNFY_HANDLER
     tmehdr = nfyhdr
@@ -129,12 +112,12 @@
   end
 
-  #	ã¤ãã³ãéç¥å¦çã®å¤æ°ã®çªå°ã¨ãªãã¸ã§ã¯ãIDã®ãã§ãã¯
+  #	イベント通知処理の変数の番地とオブジェクトIDのチェック
   if nfymode1 == $TNFY_SETVAR || nfymode1 == $TNFY_INCVAR
-    # å¤æ°ã®è¨­å®ï¼ã¤ã³ã¯ãªã¡ã³ãã«ããã¿ã¤ã ã¤ãã³ãã®éç¥
+    # 変数の設定／インクリメントによるタイムイベントの通知
 	p_var = exinf
     params1 = params.dup
     params1[:p_var] = par1
 
-    # å¤æ°ã®çªå°ã®ãã§ãã¯ï¼»NGKI3699ï¼½ï¼»NGKI3897ï¼½
+    # 変数の番地のチェック［NGKI3699］［NGKI3897］
     if (p_var & ($CHECK_INTPTR_ALIGN - 1)) != 0
       error_wrong_id("E_PAR", params1, :p_var, objid, "not aligned")
@@ -144,40 +127,40 @@
     end
   elsif (nfymode1 == $TNFY_ACTTSK || nfymode1 == $TNFY_WUPTSK)
-    # ã¿ã¹ã¯ã®èµ·åï¼èµ·åºã«ããã¿ã¤ã ã¤ãã³ãã®éç¥
+    # タスクの起動／起床によるタイムイベントの通知
     tskid = exinf
     params1 = params.dup
     params1[:tskid] = par1
 
-    # ã¿ã¹ã¯IDã®ãã§ãã¯ï¼»NGKI3704ï¼½
+    # タスクIDのチェック［NGKI3704］
     if !($TMIN_TSKID <= tskid && tskid <= $tmax_tskid)
       error_illegal_id("E_ID", params1, :tskid, objid)
     end
   elsif nfymode1 == $TNFY_SIGSEM
-    # ã»ããã©ã®è³æºã®è¿å´ã«ããã¿ã¤ã ã¤ãã³ãã®éç¥
+    # セマフォの資源の返却によるタイムイベントの通知
     semid = exinf
     params1 = params.dup
     params1[:semid] = par1
 
-    # ã»ããã©IDã®ãã§ãã¯ï¼»NGKI3707ï¼½
+    # セマフォIDのチェック［NGKI3707］
     if !($TMIN_SEMID <= semid && semid <= $tmax_semid)
       error_illegal_id("E_ID", params1, :semid, objid)
     end
   elsif nfymode1 == $TNFY_SETFLG
-    # ã¤ãã³ããã©ã°ã®ã»ããã«ããã¿ã¤ã ã¤ãã³ãã®éç¥
+    # イベントフラグのセットによるタイムイベントの通知
     flgid = exinf
     params1 = params.dup
     params1[:flgid] = par1
 
-    # ã¤ãã³ããã©ã°IDã®ãã§ãã¯ï¼»NGKI3710ï¼½
+    # イベントフラグIDのチェック［NGKI3710］
     if !($TMIN_FLGID <= flgid && flgid <= $tmax_flgid)
       error_illegal_id("E_ID", params1, :flgid, objid)
     end
   elsif nfymode1 == $TNFY_SNDDTQ
-    # ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ã«ããã¿ã¤ã ã¤ãã³ãã®éç¥
+    # データキューへの送信によるタイムイベントの通知
     dtqid = exinf
     params1 = params.dup
     params1[:dtqid] = par1
 
-    # ãã¼ã¿ã­ã¥ã¼IDã®ãã§ãã¯ï¼»NGKI3713ï¼½
+    # データキューIDのチェック［NGKI3713］
     if !($TMIN_DTQID <= dtqid && dtqid <= $tmax_dtqid)
       error_illegal_id("E_ID", params1, :dtqid, objid)
@@ -185,12 +168,12 @@
   end
 
-  # ã¨ã©ã¼éç¥å¦çã®å¤æ°ã®çªå°ã¨ãªãã¸ã§ã¯ãIDã®ãã§ãã¯
+  # エラー通知処理の変数の番地とオブジェクトIDのチェック
   if (nfymode2 == $TENFY_SETVAR || nfymode2 == $TENFY_INCVAR)
-    # å¤æ°ã®è¨­å®ï¼ã¤ã³ã¯ãªã¡ã³ãã«ããã¨ã©ã¼ã®éç¥
+    # 変数の設定／インクリメントによるエラーの通知
     p_var = PEEK(SYMBOL(funcname + "_p_evar"), $sizeof_intptr_t)
     params1 = params.dup
     params1[:p_var] = epar1
 
-    # å¤æ°ã®çªå°ã®ãã§ãã¯ï¼»NGKI3701ï¼½ï¼»NGKI3897ï¼½
+    # 変数の番地のチェック［NGKI3701］［NGKI3897］
     if (p_var & ($CHECK_INTPTR_ALIGN - 1)) != 0
       error_wrong_id("E_PAR", params1, :p_var, objid, "not aligned")
@@ -200,40 +183,40 @@
     end
   elsif nfymode2 == $TENFY_ACTTSK || nfymode2 == $TENFY_WUPTSK
-    # ã¿ã¹ã¯ã®èµ·åï¼èµ·åºã«ããã¨ã©ã¼ã®éç¥
+    # タスクの起動／起床によるエラーの通知
     tskid = PEEK(SYMBOL(funcname + "_etskid"), $sizeof_ID)
     params1 = params.dup
     params1[:tskid] = epar1
 
-    # ã¿ã¹ã¯IDã®ãã§ãã¯ï¼»NGKI3704ï¼½
+    # タスクIDのチェック［NGKI3704］
     if !($TMIN_TSKID <= tskid && tskid <= $tmax_tskid)
       error_illegal_id("E_ID", params1, :tskid, objid)
     end
   elsif nfymode2 == $TENFY_SIGSEM
-    # ã»ããã©ã®è³æºã®è¿å´ã«ããã¨ã©ã¼ã®éç¥
+    # セマフォの資源の返却によるエラーの通知
 	semid = PEEK(SYMBOL(funcname + "_esemid"), $sizeof_ID)
     params1 = params.dup
     params1[:semid] = epar1
 
-    # ã»ããã©IDã®ãã§ãã¯ï¼»NGKI3707ï¼½
+    # セマフォIDのチェック［NGKI3707］
     if !($TMIN_SEMID <= semid && semid <= $tmax_semid)
       error_illegal_id("E_ID", params1, :semid, objid)
     end
   elsif nfymode2 == $TENFY_SETFLG
-    # ã¤ãã³ããã©ã°ã®ã»ããã«ããã¨ã©ã¼ã®éç¥
+    # イベントフラグのセットによるエラーの通知
     flgid = PEEK(SYMBOL(funcname + "_eflgid"), $sizeof_ID)
     params1 = params.dup
     params1[:flgid] = epar1
 
-    # ã¤ãã³ããã©ã°IDã®ãã§ãã¯ï¼»NGKI3710ï¼½
+    # イベントフラグIDのチェック［NGKI3710］
     if !($TMIN_FLGID <= flgid && flgid <= $tmax_flgid)
       error_illegal_id("E_ID", params1, :flgid, objid)
     end
   elsif nfymode2 == $TENFY_SNDDTQ
-    # ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ã«ããã¨ã©ã¼ã®éç¥
+    # データキューへの送信によるエラーの通知
     dtqid = PEEK(SYMBOL(funcname + "_edtqid"), $sizeof_ID)
     params1 = params.dup
     params1[:dtqid] = epar1
 
-    # ãã¼ã¿ã­ã¥ã¼IDã®ãã§ãã¯ï¼»NGKI3715ï¼½
+    # データキューIDのチェック［NGKI3715］
     if !($TMIN_DTQID <= dtqid && dtqid <= $tmax_dtqid)
       error_illegal_id("E_ID", params1, :dtqid, objid)
@@ -243,5 +226,5 @@
 
 # 
-#  ã¿ã¹ã¯ã«é¢ãããã§ãã¯
+#  タスクに関するチェック
 # 
 tinib = SYMBOL("_kernel_tinib_table")
@@ -249,6 +232,5 @@
   task = PEEK(tinib + $offsetof_TINIB_task, $sizeof_TASK)
 
-  # ã¿ã¹ã¯ã®å
-é ­çªå°ã®ãã§ãã¯ï¼»NGKI1033ï¼½
+  # タスクの先頭番地のチェック［NGKI1033］
   if (task & ($CHECK_FUNC_ALIGN - 1)) != 0
     error_wrong_id("E_PAR", params, :task, :tskid, "not aligned")
@@ -258,6 +240,5 @@
   end
 
-  # ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®å
-é ­çªå°ã®ãã§ãã¯ï¼»NGKI1056ï¼½
+  # タスクのスタック領域の先頭番地のチェック［NGKI1056］
   if $USE_TSKINICTXB
     stk = GetStackTskinictxb(key, params, tinib)
@@ -276,5 +257,5 @@
 
 # 
-#  åºå®é·ã¡ã¢ãªãã¼ã«ã«é¢ãããã§ãã¯
+#  固定長メモリプールに関するチェック
 # 
 mpfinib = SYMBOL("_kernel_mpfinib_table")
@@ -282,6 +263,5 @@
   mpf = PEEK(mpfinib + $offsetof_MPFINIB_mpf, $sizeof_void_ptr)
 
-  # åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
-é ­çªå°ã®ãã§ãã¯ï¼»NGKI2249ï¼½
+  # 固定長メモリプール領域の先頭番地のチェック［NGKI2249］
   if (mpf & ($CHECK_MPF_ALIGN - 1)) != 0
     error_wrong_id("E_PAR", params, :mpf, :mpfid, "not aligned")
@@ -295,5 +275,5 @@
 
 # 
-#  å¨æéç¥ã«é¢ãããã§ãã¯
+#  周期通知に関するチェック
 # 
 cycinib = SYMBOL("_kernel_cycinib_table")
@@ -302,6 +282,5 @@
   nfyhdr = PEEK(cycinib + $offsetof_CYCINIB_nfyhdr, $sizeof_NFYHDR)
 
-  #	éç¥æ
-å ±ã®ãã§ãã¯
+  #	通知情報のチェック
   checkNotifyHandler(key, params, :cycid, exinf, nfyhdr)
 
@@ -310,5 +289,5 @@
 
 # 
-#  ã¢ã©ã¼ã éç¥ã«é¢ãããã§ãã¯
+#  アラーム通知に関するチェック
 # 
 alminib = SYMBOL("_kernel_alminib_table")
@@ -317,6 +296,5 @@
   nfyhdr = PEEK(alminib + $offsetof_ALMINIB_nfyhdr, $sizeof_NFYHDR)
 
-  #	éç¥æ
-å ±ã®ãã§ãã¯
+  #	通知情報のチェック
   checkNotifyHandler(key, params, :almid, exinf, nfyhdr)
 
@@ -325,5 +303,5 @@
 
 #
-#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã«é¢ãããã§ãã¯
+#  割込みサービスルーチンに関するチェック
 #
 isrinib = SYMBOL("_kernel_isrinib_table")
@@ -331,6 +309,5 @@
   isr = PEEK(isrinib + $offsetof_ISRINIB_isr, $sizeof_ISR)
 
-  # å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å
-é ­çªå°ã®ãã§ãã¯ï¼»NGKI3004ï¼½
+  # 割込みサービスルーチンの先頭番地のチェック［NGKI3004］
   if (isr & ($CHECK_FUNC_ALIGN - 1)) != 0
     error_wrong_id("E_PAR", params, :isr, :isrid, "not aligned")
@@ -344,5 +321,5 @@
 
 # 
-#  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã«é¢ãããã§ãã¯
+#  非タスクコンテキスト用のスタック領域に関するチェック
 # 
 istkAddr = SYMBOL("_kernel_istk")
@@ -350,6 +327,5 @@
   istk = PEEK(istkAddr, $sizeof_void_ptr)
 
-  # éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®å
-é ­çªå°ã®ãã§ãã¯ï¼»NGKI3222ï¼½
+  # 非タスクコンテキスト用のスタック領域の先頭番地のチェック［NGKI3222］
   if (istk & ($CHECK_STACK_ALIGN - 1)) != 0
     error_wrong("E_PAR", $cfgData[:DEF_ICS][1], :istk, "not aligned")
@@ -361,5 +337,5 @@
 
 # 
-#  ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã«é¢ãããã§ãã¯
+#  カーネルが割り付けるメモリ領域に関するチェック
 # 
 kmmAddr = SYMBOL("_kernel_kmm")
@@ -367,6 +343,5 @@
   kmm = PEEK(kmmAddr, $sizeof_void_ptr)
 
-  # ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®å
-é ­çªå°ã®ãã§ãã¯
+  # カーネルが割り付けるメモリ領域の先頭番地のチェック
   if (kmm & ($CHECK_MB_ALIGN - 1)) != 0
     error_wrong("E_PAR", $cfgData[:DEF_KMM][1], :kmm, "not aligned")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_impl.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_impl.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,14 +42,12 @@
 
 /*
- *		TOPPERS/ASPã«ã¼ãã«å
-é¨åãæ¨æºããããã¡ã¤ã«
- *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼ã«ã¼ãã«ãæ§æãããã­ã°ã©ã ã®ã½ã¼ã¹ãã¡ã¤ã«
- *  ã§å¿
-ãã¤ã³ã¯ã«ã¼ãããã¹ãæ¨æºããããã¡ã¤ã«ã§ããï¼
- *
- *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
- *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ããï¼ããã«ããï¼ãã¯ã­å®ç¾©ä»¥å¤ã
- *  é¤ãããã«ãªã£ã¦ããï¼
+ *		TOPPERS/ASPカーネル内部向け標準ヘッダファイル
+ *
+ *  このヘッダファイルは，カーネルを構成するプログラムのソースファイル
+ *  で必ずインクルードするべき標準ヘッダファイルである．
+ *
+ *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
+ *  は，TOPPERS_MACRO_ONLYを定義しておく．これにより，マクロ定義以外を
+ *  除くようになっている．
  */
 
@@ -73,22 +56,20 @@
 
 /*
- *  ã«ã¼ãã«ã®å
-é¨è­å¥åã®ãªãã¼ã 
+ *  カーネルの内部識別名のリネーム
  */
 #include "kernel_rename.h"
 
 /*
- *  ã¢ããªã±ã¼ã·ã§ã³ã¨å
-±éã®ããããã¡ã¤ã«
+ *  アプリケーションと共通のヘッダファイル
  */
 #include <kernel.h>
 
 /*
- *  ã·ã¹ãã ã­ã°æ©è½ã®ããã®å®ç¾©
+ *  システムログ機能のための定義
  */
 #include <t_syslog.h>
 
 /*
- *  åã­ã£ã¹ããè¡ããã¯ã­ã®å®ç¾©
+ *  型キャストを行うマクロの定義
  */
 #ifndef CAST
@@ -97,11 +78,10 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­æ
-å ±ã®å®ç¾©
+ *  ターゲット依存情報の定義
  */
 #include "target_kernel_impl.h"
 
 /*
- *  ãã¹ã¦ã®é¢æ°ãã³ã³ãã¤ã«ããããã®å®ç¾©
+ *  すべての関数をコンパイルするための定義
  */
 #ifdef ALLFUNC
@@ -110,12 +90,11 @@
 
 /*
- *  ããããã£ã¼ã«ãã§ã®ç¬¦å·ç¡ãæ´æ°å
- *
- *  8ãããä»¥ä¸ã®å¹
-ã®ããããã£ã¼ã«ãã§ï¼ç¬¦å·ç¡ãæ´æ°å¤ãä¿æãããå ´å
- *  ã«ç¨ããã¹ããã¼ã¿åï¼ANSI Cã§ã¯ï¼ããããã£ã¼ã«ãã®ãã¼ã¿åã«ã¯
- *  intã¨unsigned intããè¨±ãããªãããï¼ããã©ã«ãã®å®ç¾©ã¯unsigned
- *  intã¨ãã¦ãããï¼ã¿ã¼ã²ããããã³ãã¼ã«ä¾å­ã§ï¼unsigned charã¾ãã¯
- *  unsigned shortã«å®ç¾©ããæ¹ãå¹çãè¯ãå ´åãããï¼
+ *  ビットフィールドでの符号無し整数型
+ *
+ *  8ビット以下の幅のビットフィールドで，符号無し整数値を保持したい場合
+ *  に用いるべきデータ型．ANSI Cでは，ビットフィールドのデータ型には
+ *  intとunsigned intしか許されないため，デフォルトの定義はunsigned
+ *  intとしているが，ターゲットおよびツール依存で，unsigned charまたは
+ *  unsigned shortに定義した方が効率が良い場合がある．
  */
 #ifndef BIT_FIELD_UINT
@@ -124,10 +103,9 @@
 
 /*
- *  ããããã£ã¼ã«ãã§ã®ãã¼ã«å
- *
- *  1ãããå¹
-ã®ããããã£ã¼ã«ãã§ï¼ãã¼ã«å¤ãä¿æãããå ´åã«ç¨ããã¹ã
- *  ãã¼ã¿åï¼ããã©ã«ãã§ã¯BIT_FIELD_UINTã¨åä¸ã«å®ç¾©ãã¦ãããï¼ãã¼
- *  ã«å¤ãä¿æãããã¨ãæç¤ºããããã«å¥ã®åç§°ã¨ãã¦ããï¼
+ *  ビットフィールドでのブール型
+ *
+ *  1ビット幅のビットフィールドで，ブール値を保持したい場合に用いるべき
+ *  データ型．デフォルトではBIT_FIELD_UINTと同一に定義しているが，ブー
+ *  ル値を保持することを明示するために別の名称としている．
  */
 #ifndef BIT_FIELD_BOOL
@@ -136,21 +114,19 @@
 
 /*
- *  ãªãã¸ã§ã¯ãIDã®æå°å¤ã®å®ç¾©
- */
-#define TMIN_TSKID		1		/* ã¿ã¹ã¯IDã®æå°å¤ */
-#define TMIN_SEMID		1		/* ã»ããã©IDã®æå°å¤ */
-#define TMIN_FLGID		1		/* ãã©ã°IDã®æå°å¤ */
-#define TMIN_DTQID		1		/* ãã¼ã¿ã­ã¥ã¼IDã®æå°å¤ */
-#define TMIN_PDQID		1		/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼IDã®æå°å¤ */
-#define TMIN_MTXID		1		/* ãã¥ã¼ããã¯ã¹IDã®æå°å¤ */
-#define TMIN_MPFID		1		/* åºå®é·ã¡ã¢ãªãã¼ã«IDã®æå°å¤ */
-#define TMIN_CYCID		1		/* å¨æéç¥IDã®æå°å¤ */
-#define TMIN_ALMID		1		/* ã¢ã©ã¼ã éç¥IDã®æå°å¤ */
-#define TMIN_ISRID		1		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³IDã®æå°å¤ */
-
-/*
- *  åªå
-åº¦ã®æ®µéæ°ã®å®ç¾©
+ *  オブジェクトIDの最小値の定義
+ */
+#define TMIN_TSKID		1		/* タスクIDの最小値 */
+#define TMIN_SEMID		1		/* セマフォIDの最小値 */
+#define TMIN_FLGID		1		/* フラグIDの最小値 */
+#define TMIN_DTQID		1		/* データキューIDの最小値 */
+#define TMIN_PDQID		1		/* 優先度データキューIDの最小値 */
+#define TMIN_MTXID		1		/* ミューテックスIDの最小値 */
+#define TMIN_MPFID		1		/* 固定長メモリプールIDの最小値 */
+#define TMIN_CYCID		1		/* 周期通知IDの最小値 */
+#define TMIN_ALMID		1		/* アラーム通知IDの最小値 */
+#define TMIN_ISRID		1		/* 割込みサービスルーチンIDの最小値 */
+
+/*
+ *  優先度の段階数の定義
  */
 #define TNUM_TPRI		(TMAX_TPRI - TMIN_TPRI + 1)
@@ -159,88 +135,83 @@
 
 /*
- *  ã«ã¼ãã«å
-é¨ã§ä½¿ç¨ããå±æ§ã®å®ç¾©
- */
-#define TA_NOEXS		((ATR)(-1))			/* æªç»é²ç¶æ
- */
+ *  カーネル内部で使用する属性の定義
+ */
+#define TA_NOEXS		((ATR)(-1))			/* 未登録状態 */
 
 #ifndef TA_MEMALLOC
-#define TA_MEMALLOC		UINT_C(0x8000)		/* ã¡ã¢ãªé åãã«ã¼ãã«ã§ç¢ºä¿ */
+#define TA_MEMALLOC		UINT_C(0x8000)		/* メモリ領域をカーネルで確保 */
 #endif /* TA_MEMALLOC */
 #ifndef TA_MBALLOC
-#define TA_MBALLOC		UINT_C(0x4000)		/* ç®¡çé åãã«ã¼ãã«ã§ç¢ºä¿ */
+#define TA_MBALLOC		UINT_C(0x4000)		/* 管理領域をカーネルで確保 */
 #endif /* TA_MBALLOC */
 
 /*
- *  ã¿ã¼ã²ããå®ç¾©ã®ã¨ã©ã¼ãã§ãã¯ãã¯ã­ã®ããã©ã«ãå¤ã®å®ç¾©
+ *  ターゲット定義のエラーチェックマクロのデフォルト値の定義
  */
 #ifndef TARGET_TSKATR
-#define TARGET_TSKATR		0U		/* ã¿ã¼ã²ããå®ç¾©ã®ã¿ã¹ã¯å±æ§ */
+#define TARGET_TSKATR		0U		/* ターゲット定義のタスク属性 */
 #endif /* TARGET_TSKATR */
 
 #ifndef TARGET_ISRATR
-#define TARGET_ISRATR		0U		/* ã¿ã¼ã²ããå®ç¾©ã®ISRå±æ§ */
+#define TARGET_ISRATR		0U		/* ターゲット定義のISR属性 */
 #endif /* TARGET_ISRATR */
 
 /*
- *  ããããã¡ã¤ã«ãæããªãã¢ã¸ã¥ã¼ã«ã®é¢æ°ã»å¤æ°ã®å®£è¨
+ *  ヘッダファイルを持たないモジュールの関数・変数の宣言
  */
 #ifndef TOPPERS_MACRO_ONLY
 
 /*
- *  TECSã®åæåï¼init_tecs.cï¼
+ *  TECSの初期化（init_tecs.c）
  */
 extern void initialize_tecs(void);
 
 /*
- *  åã¢ã¸ã¥ã¼ã«ã®åæåï¼kernel_cfg.cï¼
+ *  各モジュールの初期化（kernel_cfg.c）
  */
 extern void	initialize_object(void);
 
 /*
- *  åæåã«ã¼ãã³ã®å®è¡ï¼kernel_cfg.cï¼
+ *  初期化ルーチンの実行（kernel_cfg.c）
  */
 extern void	call_inirtn(void);
 
 /*
- *  çµäºå¦çã«ã¼ãã³ã®å®è¡ï¼kernel_cfg.cï¼
+ *  終了処理ルーチンの実行（kernel_cfg.c）
  */
 extern void	call_terrtn(void);
 
 /*
- *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åï¼kernel_cfg.cï¼
- */
-extern const size_t	istksz;		/* ã¹ã¿ãã¯é åã®ãµã¤ãºï¼ä¸¸ããå¤ï¼ */
-extern STK_T *const	istk;		/* ã¹ã¿ãã¯é åã®å
-é ­çªå° */
+ *  非タスクコンテキスト用のスタック領域（kernel_cfg.c）
+ */
+extern const size_t	istksz;		/* スタック領域のサイズ（丸めた値） */
+extern STK_T *const	istk;		/* スタック領域の先頭番地 */
 #ifdef TOPPERS_ISTKPT
-extern STK_T *const	istkpt;		/* ã¹ã¿ãã¯ãã¤ã³ã¿ã®åæå¤ */
+extern STK_T *const	istkpt;		/* スタックポインタの初期値 */
 #endif /* TOPPERS_ISTKPT */
 
 /*
- *  ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åï¼kernel_cfg.cï¼
- */
-extern const size_t	kmmsz;		/* ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®ãµã¤ãº */
-extern MB_T *const	kmm;		/* ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®å
-é ­çªå° */
-
-/*
- *  ã«ã¼ãã«åä½ç¶æ
-ãã©ã°ï¼startup.cï¼
+ *  カーネルが割り付けるメモリ領域（kernel_cfg.c）
+ */
+extern const size_t	kmmsz;		/* カーネルが割り付けるメモリ領域のサイズ */
+extern MB_T *const	kmm;		/* カーネルが割り付けるメモリ領域の先頭番地 */
+
+/*
+ *  カーネル動作状態フラグ（startup.c）
  */
 extern bool_t	kerflg;
 
 /*
- *  ã«ã¼ãã«ã®èµ·åï¼startup.cï¼
+ *  カーネルの起動（startup.c）
  */
 extern void	sta_ker(void);
 
 /*
- *  ã«ã¼ãã«ã®çµäºå¦çï¼startup.cï¼
+ *  カーネルの終了処理（startup.c）
  */
 extern void	exit_kernel(void);
 
 /*
- *  ã«ã¼ãã«ã®å²ãä»ããã¡ã¢ãªé åã®ç®¡çï¼startup.cï¼
+ *  カーネルの割り付けるメモリ領域の管理（startup.c）
  */
 extern void initialize_kmm(void);
@@ -249,15 +220,15 @@
 
 /*
- *  éç¥ãã³ãã©ã®åå®ç¾©
+ *  通知ハンドラの型定義
  */
 typedef void	(*NFYHDR)(intptr_t exinf);
 
 /*
- *  éç¥æ¹æ³ã®ã¨ã©ã¼ãã§ãã¯
+ *  通知方法のエラーチェック
  */
 extern ER check_nfyinfo(const T_NFYINFO *p_nfyinfo);
 
 /*
- *  éç¥ãã³ãã©
+ *  通知ハンドラ
  */
 extern void notify_handler(intptr_t exinf);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_int.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_int.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_int.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		kernel_cfg.cï¼ããã³cfg1_out.cï¼ç¨ããããã¡ã¤ã«
+ *		kernel_cfg.c（およびcfg1_out.c）用ヘッダファイル
  */
 
@@ -64,10 +49,10 @@
 
 /*
- *  ã«ã¼ãã«æ¨æºããããã¡ã¤ã«
+ *  カーネル標準ヘッダファイル
  */
 #include "kernel_impl.h"
 
 /*
- *  ã«ã¼ãã«ã®åããããã¡ã¤ã«
+ *  カーネルの各ヘッダファイル
  */
 #include "task.h"
@@ -85,13 +70,10 @@
 
 /*
- *  ãªãã¼ã ããã·ã³ãã«ãå
-ã«æ»ãããã®ããããã¡ã¤ã«
+ *  リネームしたシンボルを元に戻すためのヘッダファイル
  */
 #include "kernel_unrename.h"
 
 /*
- *  å
-å®¹ãç©ºã®é
-åãçæããããã®ãã¯ã­
+ *  内容が空の配列を生成するためのマクロ
  */
 #ifndef TOPPERS_EMPTY_LABEL
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		åºå®é·ã¡ã¢ãªãã¼ã«æ©è½
+ *		固定長メモリプール機能
  */
 
@@ -67,5 +52,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ACRE_MPF_ENTER
@@ -134,5 +119,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ã®æ°
+ *  固定長メモリプールの数
  */
 #define tnum_mpf	((uint_t)(tmax_mpfid - TMIN_MPFID + 1))
@@ -140,6 +125,6 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«IDããåºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ãåãåºãã
- *  ãã®ãã¯ã­
+ *  固定長メモリプールIDから固定長メモリプール管理ブロックを取り出すた
+ *  めのマクロ
  */
 #define INDEX_MPF(mpfid)	((uint_t)((mpfid) - TMIN_MPFID))
@@ -147,18 +132,18 @@
 
 /*
- *  ç¹æ®ãªã¤ã³ããã¯ã¹å¤ã®å®ç¾©
- */
-#define INDEX_NULL		(~0U)		/* ç©ºããã­ãã¯ãªã¹ãã®æå¾ */
-#define INDEX_ALLOC		(~1U)		/* å²å½ã¦æ¸ã¿ã®ãã­ãã¯ */
+ *  特殊なインデックス値の定義
+ */
+#define INDEX_NULL		(~0U)		/* 空きブロックリストの最後 */
+#define INDEX_ALLOC		(~1U)		/* 割当て済みのブロック */
 
 #ifdef TOPPERS_mpfini
 
 /*
- *  ä½¿ç¨ãã¦ããªãåºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していない固定長メモリプール管理ブロックのリスト
  */
 QUEUE	free_mpfcb;
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«æ©è½ã®åæå
+ *  固定長メモリプール機能の初期化
  */
 void
@@ -190,5 +175,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ãããã­ãã¯ãç²å¾
+ *  固定長メモリプールからブロックを獲得
  */
 #ifdef TOPPERS_mpfget
@@ -216,5 +201,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ã®çæ
+ *  固定長メモリプールの生成
  */
 #ifdef TOPPERS_acre_mpf
@@ -301,5 +286,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ã®åé¤
+ *  固定長メモリプールの削除
  */
 #ifdef TOPPERS_del_mpf
@@ -350,5 +335,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾
+ *  固定長メモリブロックの獲得
  */
 #ifdef TOPPERS_get_mpf
@@ -396,5 +381,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾ï¼ãã¼ãªã³ã°ï¼
+ *  固定長メモリブロックの獲得（ポーリング）
  */
 #ifdef TOPPERS_pget_mpf
@@ -432,5 +417,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  固定長メモリブロックの獲得（タイムアウトあり）
  */
 #ifdef TOPPERS_tget_mpf
@@ -484,5 +469,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®è¿å´
+ *  固定長メモリブロックの返却
  */
 #ifdef TOPPERS_rel_mpf
@@ -542,5 +527,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ã®ååæå
+ *  固定長メモリプールの再初期化
  */
 #ifdef TOPPERS_ini_mpf
@@ -581,7 +566,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ã®ç¶æ
-åç
-§
+ *  固定長メモリプールの状態参照
  */
 #ifdef TOPPERS_ref_mpf
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		åºå®é·ã¡ã¢ãªãã¼ã«æ©è½
+ *		固定長メモリプール機能
  */
 
@@ -68,81 +53,64 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã­ãã¯ç®¡çãã­ãã¯
+ *  固定長メモリブロック管理ブロック
  *
- *  nextãã£ã¼ã«ãã«ã¯ï¼ã¡ã¢ãªãã­ãã¯ãå²å½ã¦æ¸ã¿ã®å ´åã¯INDEX_ALLOCãï¼
- *  æªå²å½ã¦ã®å ´åã¯æ¬¡ã®æªå²å½ã¦ãã­ãã¯ã®ã¤ã³ããã¯ã¹çªå·ãæ ¼ç´ããï¼
- *  æå¾ã®æªå²å½ã¦ãã­ãã¯ã®å ´åã«ã¯ï¼INDEX_NULLãæ ¼ç´ããï¼
+ *  nextフィールドには，メモリブロックが割当て済みの場合はINDEX_ALLOCを，
+ *  未割当ての場合は次の未割当てブロックのインデックス番号を格納する．
+ *  最後の未割当てブロックの場合には，INDEX_NULLを格納する．
  */
 typedef struct fixed_memoryblock_management_block {
-	uint_t		next;			/* æ¬¡ã®æªå²å½ã¦ãã­ãã¯ */
+	uint_t		next;			/* 次の未割当てブロック */
 } MPFMB;
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«åæåãã­ãã¯
+ *  固定長メモリプール初期化ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
-±éé¨å
- *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの初期化ブロックの共通部分
+ *  （WOBJINIB）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初のフィールドが共通になっている．
  */
 typedef struct fixed_memorypool_initialization_block {
-	ATR			mpfatr;			/* åºå®é·ã¡ã¢ãªãã¼ã«å±æ§ */
-	uint_t		blkcnt;			/* ã¡ã¢ãªãã­ãã¯æ° */
-	uint_t		blksz;			/* ã¡ã¢ãªãã­ãã¯ã®ãµã¤ãºï¼ä¸¸ããå¤ï¼ */
-	void		*mpf;			/* åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
-é ­çªå° */
-	MPFMB		*p_mpfmb;		/* åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åã®å
-é ­çªå° */
+	ATR			mpfatr;			/* 固定長メモリプール属性 */
+	uint_t		blkcnt;			/* メモリブロック数 */
+	uint_t		blksz;			/* メモリブロックのサイズ（丸めた値） */
+	void		*mpf;			/* 固定長メモリプール領域の先頭番地 */
+	MPFMB		*p_mpfmb;		/* 固定長メモリプール管理領域の先頭番地 */
 } MPFINIB;
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯
+ *  固定長メモリプール管理ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨åï¼WOBJCBï¼
- *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
- *  ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの管理ブロックの共通部分（WOBJCB）
+ *  を拡張（オブジェクト指向言語の継承に相当）したもので，最初の2つの
+ *  フィールドが共通になっている．
  */
 typedef struct fixed_memorypool_control_block {
-	QUEUE		wait_queue;		/* åºå®é·ã¡ã¢ãªãã¼ã«å¾
-ã¡ã­ã¥ã¼ */
-	const MPFINIB *p_mpfinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
-	uint_t		fblkcnt;		/* æªå²å½ã¦ãã­ãã¯æ° */
-	uint_t		unused;			/* æªä½¿ç¨ãã­ãã¯ã®å
-é ­ */
-	uint_t		freelist;		/* æªå²å½ã¦ãã­ãã¯ã®ãªã¹ã */
+	QUEUE		wait_queue;		/* 固定長メモリプール待ちキュー */
+	const MPFINIB *p_mpfinib;	/* 初期化ブロックへのポインタ */
+	uint_t		fblkcnt;		/* 未割当てブロック数 */
+	uint_t		unused;			/* 未使用ブロックの先頭 */
+	uint_t		freelist;		/* 未割当てブロックのリスト */
 } MPFCB;
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«å¾
-ã¡æ
-å ±ãã­ãã¯ã®å®ç¾©
+ *  固定長メモリプール待ち情報ブロックの定義
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡æ
-å ±ãã­ãã¯ã®å
-±éé¨å
- *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®2ã¤ã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの待ち情報ブロックの共通部分
+ *  （WINFO_WOBJ）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初の2つのフィールドが共通になっている．
  */
 typedef struct fixed_memorypool_waiting_information {
-	WINFO		winfo;			/* æ¨æºã®å¾
-ã¡æ
-å ±ãã­ãã¯ */
-	MPFCB		*p_mpfcb;		/* å¾
-ã£ã¦ããåºå®é·ã¡ã¢ãªãã¼ã«ã®ç®¡çãã­ãã¯*/
-	void		*blk;			/* ç²å¾ããã¡ã¢ãªãã­ãã¯ */
+	WINFO		winfo;			/* 標準の待ち情報ブロック */
+	MPFCB		*p_mpfcb;		/* 待っている固定長メモリプールの管理ブロック*/
+	void		*blk;			/* 獲得したメモリブロック */
 } WINFO_MPF;
 
 /*
- *  ä½¿ç¨ãã¦ããªãåºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していない固定長メモリプール管理ブロックのリスト
  */
 extern QUEUE	free_mpfcb;
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  固定長メモリプールIDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_mpfid;
@@ -150,5 +118,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  固定長メモリプール初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const MPFINIB	mpfinib_table[];
@@ -156,21 +124,21 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  固定長メモリプール管理ブロックのエリア（kernel_cfg.c）
  */
 extern MPFCB	mpfcb_table[];
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ããåºå®é·ã¡ã¢ãªãã¼ã«IDãåãåºãã
- *  ãã®ãã¯ã­
+ *  固定長メモリプール管理ブロックから固定長メモリプールIDを取り出すた
+ *  めのマクロ
  */
 #define	MPFID(p_mpfcb)	((ID)(((p_mpfcb) - mpfcb_table) + TMIN_MPFID))
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«æ©è½ã®åæå
+ *  固定長メモリプール機能の初期化
  */
 extern void	initialize_mempfix(void);
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ãããã­ãã¯ãç²å¾
+ *  固定長メモリプールからブロックを獲得
  */
 extern void	get_mpf_block(MPFCB *p_mpfcb, void **p_blk);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.trb	(revision 321)
@@ -9,53 +9,38 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: mempfix.trb 672 2016-03-05 15:33:08Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		åºå®é·ã¡ã¢ãªãã¼ã«æ©è½ã®çæã¹ã¯ãªãã
+#		固定長メモリプール機能の生成スクリプト
 #
 
@@ -66,25 +51,25 @@
 
   def prepare(key, params)
-    # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+    # パラメータが省略された時のデフォルト値の設定
     params[:mpf] ||= "NULL"
     params[:mpfmb] ||= "NULL"
 
-    # mpfatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2225ï¼½
-    #ï¼TA_TPRIä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    # mpfatrが無効の場合（E_RSATR）［NGKI2225］
+    #（TA_TPRI以外のビットがセットされている場合）
     if (params[:mpfatr] & ~($TA_TPRI)) != 0
       error_illegal_id("E_RSATR", params, :mpfatr, :mpfid)
     end
 
-    # blkcntã0ã®å ´åï¼E_PARï¼ï¼»NGKI2229ï¼½
+    # blkcntが0の場合（E_PAR）［NGKI2229］
     if params[:blkcnt] == 0
       error_illegal_id("E_PAR", params, :blkcnt, :mpfid)
     end
 
-    # blkszã0ã®å ´åï¼E_PARï¼ï¼»NGKI2230ï¼½
+    # blkszが0の場合（E_PAR）［NGKI2230］
     if params[:blksz] == 0
       error_illegal_id("E_PAR", params, :blksz, :mpfid)
     end
 
-    # åºå®é·ã¡ã¢ãªãã¼ã«é å
+    # 固定長メモリプール領域
     if params[:mpf] == "NULL"
       mpfName = "_kernel_mpf_#{params[:mpfid]}"
@@ -96,10 +81,10 @@
     end
 
-    # mpfmbãNULLã§ãªãå ´åï¼E_NOSPTï¼ï¼»ASPS0166ï¼½
+    # mpfmbがNULLでない場合（E_NOSPT）［ASPS0166］
     if params[:mpfmb] != "NULL"
       error_illegal_id("E_NOSPT", params, :mpfmb, :mpfid)
     end
 
-    # åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé å
+    # 固定長メモリプール管理領域
     mpfmbName = "_kernel_mpfmb_#{params[:mpfid]}"
     $kernelCfgC.add("static MPFMB #{mpfmbName}[#{params[:blkcnt]}];")
@@ -115,6 +100,5 @@
 
 #
-#  åºå®é·ã¡ã¢ãªãã¼ã«ã«é¢ããæ
-å ±ã®çæ
+#  固定長メモリプールに関する情報の生成
 #
 $kernelCfgC.comment_header("Fixed-sized Memorypool Functions")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *		ãã¥ã¼ããã¯ã¹æ©è½
+ *		ミューテックス機能
  */
 
@@ -66,5 +51,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ACRE_MTX_ENTER
@@ -133,5 +118,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®æ°
+ *  ミューテックスの数
  */
 #define tnum_mtx	((uint_t)(tmax_mtxid - TMIN_MTXID + 1))
@@ -139,5 +124,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹IDãããã¥ã¼ããã¯ã¹ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ *  ミューテックスIDからミューテックス管理ブロックを取り出すためのマクロ
  */
 #define INDEX_MTX(mtxid)	((uint_t)((mtxid) - TMIN_MTXID))
@@ -145,5 +130,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ãã­ãã³ã«ãå¤æ­ãããã¯ã­
+ *  ミューテックスのプロトコルを判断するマクロ
  */
 #define MTXPROTO_MASK			0x03U
@@ -154,10 +139,10 @@
 
 /*
- *  ä½¿ç¨ãã¦ããªããã¥ã¼ããã¯ã¹ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないミューテックス管理ブロックのリスト
  */
 QUEUE	free_mtxcb;
 
 /* 
- *  ãã¥ã¼ããã¯ã¹æ©è½ã®åæå
+ *  ミューテックス機能の初期化
  */
 void
@@ -191,6 +176,5 @@
 
 /* 
- *  ä¸éåªå
-åº¦éåã®ãã§ãã¯
+ *  上限優先度違反のチェック
  */
 #ifdef TOPPERS_mtxchk
@@ -202,8 +186,6 @@
 
 	/*
-	 *  ã¿ã¹ã¯ãã­ãã¯ãã¦ããåªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ã®ä¸­ã§ï¼ä¸éåªå
-
-	 *  åº¦ãbpriorityãããä½ããã®ãããã°ï¼falseãè¿ãï¼
+	 *  タスクがロックしている優先度上限ミューテックスの中で，上限優先
+	 *  度がbpriorityよりも低いものがあれば，falseを返す．
 	 */
 	p_mtxcb = p_tcb->p_lastmtx;
@@ -216,9 +198,6 @@
 
 	/*
-	 *  ã¿ã¹ã¯ãåªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ã®ã­ãã¯ãå¾
-ã£ã¦ããå ´åã«ï¼ã
-	 *  ã®ä¸éåªå
-åº¦ãbpriorityãããä½ãããã°ï¼falseãè¿ãï¼
+	 *  タスクが優先度上限ミューテックスのロックを待っている場合に，そ
+	 *  の上限優先度がbpriorityよりも低くければ，falseを返す．
 	 */
 	if (TSTAT_WAIT_MTX(p_tcb->tstat)) {
@@ -230,5 +209,5 @@
 
 	/*
-	 *  ãããã®æ¡ä»¶ã«ãå½ã¦ã¯ã¾ããªããã°trueãè¿ãï¼
+	 *  いずれの条件にも当てはまらなければtrueを返す．
 	 */
 	return(true);
@@ -238,6 +217,5 @@
 
 /* 
- *  åªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ãã­ãã¯ãã¦ãããã®ãã§ãã¯
+ *  優先度上限ミューテックスをロックしているかのチェック
  */
 #ifdef TOPPERS_mtxscan
@@ -261,9 +239,7 @@
 
 /* 
- *  ã¿ã¹ã¯ã®ç¾å¨åªå
-åº¦ã®è¨ç®
+ *  タスクの現在優先度の計算
  *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ã®ç¾å¨åªå
-åº¦ï¼ã«è¨­å®ãã¹ãå¤ï¼ãè¨ç®ããï¼
+ *  p_tcbで指定されるタスクの現在優先度（に設定すべき値）を計算する．
  */
 Inline uint_t
@@ -285,6 +261,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ãè§£æ¾ããå ´åã®ç¾å¨åªå
-åº¦å¤æ´å¦ç
+ *  ミューテックスを解放した場合の現在優先度変更処理
  */
 #ifdef TOPPERS_mtxdrop
@@ -307,5 +282,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯
+ *  ミューテックスのロック
  */
 #ifdef TOPPERS_mtxacq
@@ -326,5 +301,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯è§£é¤
+ *  ミューテックスのロック解除
  */
 #ifdef TOPPERS_mtxrel
@@ -340,8 +315,6 @@
 	else {
 		/*
-		 *  ãã¥ã¼ããã¯ã¹å¾
-ã¡ã­ã¥ã¼ã®å
-é ­ã¿ã¹ã¯ï¼p_tcbï¼ã«ï¼ãã¥ã¼ãã
-		 *  ã¯ã¹ãã­ãã¯ãããï¼
+		 *  ミューテックス待ちキューの先頭タスク（p_tcb）に，ミューテッ
+		 *  クスをロックさせる．
 		 */
 		p_tcb = (TCB *) queue_delete_next(&(p_mtxcb->wait_queue));
@@ -364,5 +337,5 @@
 
 /*
- *  ã¿ã¹ã¯ãã­ãã¯ãã¦ãããã¹ã¦ã®ãã¥ã¼ããã¯ã¹ã®ã­ãã¯è§£é¤
+ *  タスクがロックしているすべてのミューテックスのロック解除
  */
 #ifdef TOPPERS_mtxrela
@@ -382,5 +355,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®çæï¼»NGKI2022ï¼½
+ *  ミューテックスの生成［NGKI2022］
  */
 #ifdef TOPPERS_acre_mtx
@@ -396,5 +369,5 @@
 
 	LOG_ACRE_MTX_ENTER(pk_cmtx);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI2023ï¼½ï¼»NGKI2024ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI2023］［NGKI2024］*/
 
 	mtxatr = pk_cmtx->mtxatr;
@@ -402,13 +375,13 @@
 
 	if (mtxatr == TA_CEILING) {
-		CHECK_PAR(VALID_TPRI(ceilpri));			/*ï¼»NGKI2037ï¼½*/
-	}
-	else {
-		CHECK_RSATR(mtxatr, TA_TPRI);			/*ï¼»NGKI2025ï¼½*/
+		CHECK_PAR(VALID_TPRI(ceilpri));			/*［NGKI2037］*/
+	}
+	else {
+		CHECK_RSATR(mtxatr, TA_TPRI);			/*［NGKI2025］*/
 	}
 
 	lock_cpu();
 	if (tnum_mtx == 0 || queue_empty(&free_mtxcb)) {
-		ercd = E_NOID;							/*ï¼»NGKI2031ï¼½*/
+		ercd = E_NOID;							/*［NGKI2031］*/
 	}
 	else {
@@ -419,5 +392,5 @@
 
 		queue_initialize(&(p_mtxcb->wait_queue));
-		p_mtxcb->p_loctsk = NULL;				/*ï¼»NGKI2033ï¼½*/
+		p_mtxcb->p_loctsk = NULL;				/*［NGKI2033］*/
 		ercd = MTXID(p_mtxcb);
 	}
@@ -432,5 +405,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®åé¤ï¼»NGKI2056ï¼½
+ *  ミューテックスの削除［NGKI2056］
  */
 #ifdef TOPPERS_del_mtx
@@ -445,25 +418,23 @@
 
 	LOG_DEL_MTX_ENTER(mtxid);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI2057ï¼½ï¼»NGKI2058ï¼½*/
-	CHECK_ID(VALID_MTXID(mtxid));				/*ï¼»NGKI2059ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI2057］［NGKI2058］*/
+	CHECK_ID(VALID_MTXID(mtxid));				/*［NGKI2059］*/
 	p_mtxcb = get_mtxcb(mtxid);
 
 	lock_cpu();
 	if (p_mtxcb->p_mtxinib->mtxatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI2060ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI2060］*/
 	}
 	else if (mtxid <= tmax_smtxid) {
-		ercd = E_OBJ;							/*ï¼»NGKI2062ï¼½*/
-	}
-	else {
-		init_wait_queue(&(p_mtxcb->wait_queue));	/*ï¼»NGKI2065ï¼½*/
+		ercd = E_OBJ;							/*［NGKI2062］*/
+	}
+	else {
+		init_wait_queue(&(p_mtxcb->wait_queue));	/*［NGKI2065］*/
 		p_loctsk = p_mtxcb->p_loctsk;
 		if (p_loctsk != NULL) {
 			/*
-			 *  p_loctskãã­ãã¯ãã¦ãããã¥ã¼ããã¯ã¹ã®ãªã¹ãããå¯¾è±¡
-			 *  ãã¥ã¼ã¯ã¹ãåé¤ãï¼å¿
-è¦ãªå ´åã«ã¯p_loctskã®ç¾å¨åªå
-åº¦
-			 *  ãå¤æ´ããï¼»NGKI2064ï¼½ï¼
+			 *  p_loctskがロックしているミューテックスのリストから対象
+			 *  ミュークスを削除し，必要な場合にはp_loctskの現在優先度
+			 *  を変更する［NGKI2064］．
 			 */
 			pp_prevmtx = &(p_loctsk->p_lastmtx);
@@ -478,5 +449,5 @@
 		}
 		p_mtxinib = (MTXINIB *)(p_mtxcb->p_mtxinib);
-		p_mtxinib->mtxatr = TA_NOEXS;						/*ï¼»NGKI2063ï¼½*/
+		p_mtxinib->mtxatr = TA_NOEXS;						/*［NGKI2063］*/
 		queue_insert_prev(&free_mtxcb, &(p_mtxcb->wait_queue));
 		if (p_runtsk != p_schedtsk) {
@@ -495,5 +466,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯
+ *  ミューテックスのロック
  */
 #ifdef TOPPERS_loc_mtx
@@ -525,9 +496,6 @@
 		mutex_acquire(p_runtsk, p_mtxcb);
 		/*
-		 *  åªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ãã­ãã¯ããå ´åï¼p_runtskã®åªå
-åº¦
-		 *  ãä¸ããå¯è½æ§ããããï¼ãã£ã¹ããããå¿
-è¦ã«ãªããã¨ã¯ãªãï¼
+		 *  優先度上限ミューテックスをロックした場合，p_runtskの優先度
+		 *  が上がる可能性があるが，ディスパッチが必要になることはない．
 		 */
 		assert(p_runtsk == p_schedtsk);
@@ -553,5 +521,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯ï¼ãã¼ãªã³ã°ï¼
+ *  ミューテックスのロック（ポーリング）
  */
 #ifdef TOPPERS_ploc_mtx
@@ -579,9 +547,6 @@
 		mutex_acquire(p_runtsk, p_mtxcb);
 		/*
-		 *  åªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ãã­ãã¯ããå ´åï¼p_runtskã®åªå
-åº¦
-		 *  ãä¸ããå¯è½æ§ããããï¼ãã£ã¹ããããå¿
-è¦ã«ãªããã¨ã¯ãªãï¼
+		 *  優先度上限ミューテックスをロックした場合，p_runtskの優先度
+		 *  が上がる可能性があるが，ディスパッチが必要になることはない．
 		 */
 		assert(p_runtsk == p_schedtsk);
@@ -604,5 +569,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  ミューテックスのロック（タイムアウトあり）
  */
 #ifdef TOPPERS_tloc_mtx
@@ -636,9 +601,6 @@
 		mutex_acquire(p_runtsk, p_mtxcb);
 		/*
-		 *  åªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ãã­ãã¯ããå ´åï¼p_runtskã®åªå
-åº¦
-		 *  ãä¸ããå¯è½æ§ããããï¼ãã£ã¹ããããå¿
-è¦ã«ãªããã¨ã¯ãªãï¼
+		 *  優先度上限ミューテックスをロックした場合，p_runtskの優先度
+		 *  が上がる可能性があるが，ディスパッチが必要になることはない．
 		 */
 		assert(p_runtsk == p_schedtsk);
@@ -668,5 +630,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯è§£é¤
+ *  ミューテックスのロック解除
  */
 #ifdef TOPPERS_unl_mtx
@@ -709,5 +671,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ååæå
+ *  ミューテックスの再初期化
  */
 #ifdef TOPPERS_ini_mtx
@@ -759,7 +721,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ç¶æ
-åç
-§
+ *  ミューテックスの状態参照
  */
 #ifdef TOPPERS_ref_mtx
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *		ãã¥ã¼ããã¯ã¹æ©è½
+ *		ミューテックス機能
  */
 
@@ -66,64 +51,48 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹åæåãã­ãã¯
+ *  ミューテックス初期化ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
-±éé¨å
- *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの初期化ブロックの共通部分
+ *  （WOBJINIB）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初のフィールドが共通になっている．
  */
 typedef struct mutex_initialization_block {
-	ATR			mtxatr;			/* ãã¥ã¼ããã¯ã¹å±æ§ */
-	uint_t		ceilpri;		/* ãã¥ã¼ããã¯ã¹ã®ä¸éåªå
-åº¦ï¼å
-é¨è¡¨ç¾ï¼*/
+	ATR			mtxatr;			/* ミューテックス属性 */
+	uint_t		ceilpri;		/* ミューテックスの上限優先度（内部表現）*/
 } MTXINIB;
 
 /*
- *  ãã¥ã¼ããã¯ã¹ç®¡çãã­ãã¯
+ *  ミューテックス管理ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨åï¼WOBJCBï¼
- *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
- *  ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの管理ブロックの共通部分（WOBJCB）
+ *  を拡張（オブジェクト指向言語の継承に相当）したもので，最初の2つの
+ *  フィールドが共通になっている．
  */
 struct mutex_control_block {
-	QUEUE		wait_queue;		/* ãã¥ã¼ããã¯ã¹å¾
-ã¡ã­ã¥ã¼ */
-	const MTXINIB *p_mtxinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
-	TCB			*p_loctsk;		/* ãã¥ã¼ããã¯ã¹ãã­ãã¯ãã¦ããã¿ã¹ã¯ */
-	MTXCB		*p_prevmtx;		/* ãã®åã«ã­ãã¯ãããã¥ã¼ããã¯ã¹ */
+	QUEUE		wait_queue;		/* ミューテックス待ちキュー */
+	const MTXINIB *p_mtxinib;	/* 初期化ブロックへのポインタ */
+	TCB			*p_loctsk;		/* ミューテックスをロックしているタスク */
+	MTXCB		*p_prevmtx;		/* この前にロックしたミューテックス */
 };
 
 /*
- *  ãã¥ã¼ããã¯ã¹å¾
-ã¡æ
-å ±ãã­ãã¯ã®å®ç¾©
+ *  ミューテックス待ち情報ブロックの定義
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡æ
-å ±ãã­ãã¯ã®å
-±éé¨å
- *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  ãã¹ã¦ã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの待ち情報ブロックの共通部分
+ *  （WINFO_WOBJ）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  すべてのフィールドが共通になっている．
  */
 typedef struct mutex_waiting_information {
-	WINFO	winfo;			/* æ¨æºã®å¾
-ã¡æ
-å ±ãã­ãã¯ */
-	MTXCB	*p_mtxcb;		/* å¾
-ã£ã¦ãããã¥ã¼ããã¯ã¹ã®ç®¡çãã­ãã¯ */
+	WINFO	winfo;			/* 標準の待ち情報ブロック */
+	MTXCB	*p_mtxcb;		/* 待っているミューテックスの管理ブロック */
 } WINFO_MTX;
 
 /*
- *  ä½¿ç¨ãã¦ããªããã¥ã¼ããã¯ã¹ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないミューテックス管理ブロックのリスト
  */
 extern QUEUE	free_mtxcb;
 
 /*
- *  ãã¥ã¼ããã¯ã¹IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  ミューテックスIDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_mtxid;
@@ -131,5 +100,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  ミューテックス初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const MTXINIB	mtxinib_table[];
@@ -137,91 +106,73 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  ミューテックス管理ブロックのエリア（kernel_cfg.c）
  */
 extern MTXCB	mtxcb_table[];
 
 /*
- *  ãã¥ã¼ããã¯ã¹ç®¡çãã­ãã¯ãããã¥ã¼ããã¯ã¹IDãåãåºãããã®ãã¯ã­
+ *  ミューテックス管理ブロックからミューテックスIDを取り出すためのマクロ
  */
 #define	MTXID(p_mtxcb)	((ID)(((p_mtxcb) - mtxcb_table) + TMIN_MTXID))
 
 /*
- *  ãã¥ã¼ããã¯ã¹æ©è½ã®åæå
+ *  ミューテックス機能の初期化
  */
 extern void	initialize_mutex(void);
 
 /*
- *  ä¸éåªå
-åº¦éåã®ãã§ãã¯
+ *  上限優先度違反のチェック
  *
- *  chg_priã®ä¸­ã§ä¸éåªå
-åº¦éåã®ãã§ãã¯ãè¡ãããã«ç¨ããé¢æ°ã§ããï¼
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãã­ãã¯ãã¦ããåªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ã¨ï¼
- *  ã­ãã¯ãå¾
-ã£ã¦ããåªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ã®ä¸­ã§ï¼ä¸éåªå
-åº¦ã
- *  bpriorityãããä½ããã®ãããã°falseãï¼ããã§ãªããã°trueãè¿ãï¼
+ *  chg_priの中で上限優先度違反のチェックを行うために用いる関数であり，
+ *  p_tcbで指定されるタスクがロックしている優先度上限ミューテックスと，
+ *  ロックを待っている優先度上限ミューテックスの中で，上限優先度が
+ *  bpriorityよりも低いものがあればfalseを，そうでなければtrueを返す．
  */
 extern bool_t	mutex_check_ceilpri(TCB *p_tcb, uint_t bpriority);
 
 /* 
- *  åªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ãã­ãã¯ãã¦ãããã®ãã§ãã¯
+ *  優先度上限ミューテックスをロックしているかのチェック
  *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãåªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ãã­ãã¯ãã¦ããã°
- *  trueï¼ããã§ãªããã°falseãè¿ãï¼
+ *  p_tcbで指定されるタスクが優先度上限ミューテックスをロックしていれば
+ *  true，そうでなければfalseを返す．
  */
 extern bool_t	mutex_scan_ceilmtx(TCB *p_tcb);
 
 /*
- *  ãã¥ã¼ããã¯ã¹ãã­ãã¯è§£é¤ããå ´åã®ç¾å¨åªå
-åº¦å¤æ´å¦ç
+ *  ミューテックスをロック解除した場合の現在優先度変更処理
  *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãï¼p_mtxcbã§æå®ããããã¥ã¼ããã¯ã¹ãã­ã
- *  ã¯è§£é¤ããéã®ç¾å¨åªå
-åº¦å¤æ´å¦çãè¡ãï¼
+ *  p_tcbで指定されるタスクが，p_mtxcbで指定されるミューテックスをロッ
+ *  ク解除した際の現在優先度変更処理を行う．
  */
 extern void	mutex_drop_priority(TCB *p_tcb, MTXCB *p_mtxcb);
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯
+ *  ミューテックスのロック
  *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ã«ï¼p_mtxcbã§æå®ããããã¥ã¼ããã¯ã¹ãã­ã
- *  ã¯ãããï¼
+ *  p_tcbで指定されるタスクに，p_mtxcbで指定されるミューテックスをロッ
+ *  クさせる．
  */
 extern void	mutex_acquire(TCB *p_tcb, MTXCB *p_mtxcb);
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯è§£é¤
+ *  ミューテックスのロック解除
  *
- *  p_mtxcbã§æå®ããããã¥ã¼ããã¯ã¹ãã­ãã¯è§£é¤ããï¼ã­ãã¯è§£é¤ãã
- *  ãã¥ã¼ããã¯ã¹ã«ï¼ã­ãã¯å¾
-ã¡ç¶æ
-ã®ã¿ã¹ã¯ãããå ´åã«ã¯ï¼ãã®ã¿ã¹ã¯
- *  ã«ãã¥ã¼ããã¯ã¹ãã­ãã¯ãããï¼
+ *  p_mtxcbで指定されるミューテックスをロック解除する．ロック解除した
+ *  ミューテックスに，ロック待ち状態のタスクがある場合には，そのタスク
+ *  にミューテックスをロックさせる．
  */
 extern void	mutex_release(MTXCB *p_mtxcb);
 
 /*
- *  ã¿ã¹ã¯ãã­ãã¯ãã¦ãããã¹ã¦ã®ãã¥ã¼ããã¯ã¹ã®ã­ãã¯è§£é¤
+ *  タスクがロックしているすべてのミューテックスのロック解除
  *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ã«ï¼ãããã­ãã¯ãã¦ãããã¹ã¦ã®ãã¥ã¼ããã¯
- *  ã¹ãã­ãã¯è§£é¤ãããï¼ã­ãã¯è§£é¤ãããã¥ã¼ããã¯ã¹ã«ï¼ã­ãã¯å¾
-ã¡ç¶
- *  æ
-ã®ã¿ã¹ã¯ãããå ´åã«ã¯ï¼ãã®ã¿ã¹ã¯ã«ãã¥ã¼ããã¯ã¹ãã­ãã¯ãããï¼
+ *  p_tcbで指定されるタスクに，それがロックしているすべてのミューテック
+ *  スをロック解除させる．ロック解除したミューテックスに，ロック待ち状
+ *  態のタスクがある場合には，そのタスクにミューテックスをロックさせる．
  *
- *  ãã®é¢æ°ã¯ï¼ã¿ã¹ã¯ã®çµäºæã«ä½¿ããããã®ã§ããããï¼p_tcbã§æå®ãã
- *  ãã¿ã¹ã¯ã®åªå
-åº¦ãå¤æ´ããå¦çã¯è¡ããªãï¼ãã ãï¼ãã®é¢æ°ã®ä¸­ã§ä»
- *  ã®ã¿ã¹ã¯ã®åªå
-åº¦ãå¤åãï¼å®è¡ãã¹ãã¿ã¹ã¯ãå¤ãããã¨ãããï¼ãã®
- *  ããï¼ãã®é¢æ°ããæ»ã£ãå¾ã«ï¼ãã£ã¹ããããå¿
-è¦ãå¤å¥ãã¦ï¼å¿
-è¦ãª
- *  å ´åã«ã¯ãã£ã¹ããããè¡ããªããã°ãªããªãï¼
+ *  この関数は，タスクの終了時に使われるものであるため，p_tcbで指定され
+ *  るタスクの優先度を変更する処理は行わない．ただし，この関数の中で他
+ *  のタスクの優先度が変化し，実行すべきタスクが変わることがある．その
+ *  ため，この関数から戻った後に，ディスパッチが必要か判別して，必要な
+ *  場合にはディスパッチを行わなければならない．
  */
 extern void	mutex_release_all(TCB *p_tcb);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.trb	(revision 321)
@@ -9,53 +9,38 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: mutex.trb 630 2016-02-14 11:30:17Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		ãã¥ã¼ããã¯ã¹æ©è½ã®çæã¹ã¯ãªãã
+#		ミューテックス機能の生成スクリプト
 #
 
@@ -66,6 +51,6 @@
 
   def prepare(key, params)
-    # mtxatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2025ï¼½
-    # ï¼TA_NULLï¼TA_TPRIï¼TA_CEILINGã®ãããã§ããªãå ´åï¼
+    # mtxatrが無効の場合（E_RSATR）［NGKI2025］
+    # （TA_NULL，TA_TPRI，TA_CEILINGのいずれでもない場合）
     if !(params[:mtxatr] == $TA_NULL || params[:mtxatr] == $TA_TPRI \
 										|| params[:mtxatr] == $TA_CEILING)
@@ -74,19 +59,17 @@
 
     if params[:mtxatr] == $TA_CEILING
-      # åªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ã®å ´å
-      # ceilpriãæªæå®ã®å ´åã¯ã¨ã©ã¼ã¨ãã
+      # 優先度上限ミューテックスの場合
+      # ceilpriが未指定の場合はエラーとする
       if params[:ceilpri].nil?
         error_api(params, "ceilpri must be specified in %apiname of %mtxid")
 
-      # (TMIN_TPRI <= ceilpri && ceilpri <= TMAX_TPRI)ã§ãªãå ´åï¼E_PARï¼
-      # ï¼»NGKI2037ï¼½
+      # (TMIN_TPRI <= ceilpri && ceilpri <= TMAX_TPRI)でない場合（E_PAR）
+      # ［NGKI2037］
       elsif !($TMIN_TPRI <= params[:ceilpri] && params[:ceilpri] <= $TMAX_TPRI)
         error_illegal_id("E_PAR", params, :ceilpri, :mtxid)
       end
     else
-      # åªå
-åº¦ä¸éãã¥ã¼ããã¯ã¹ã§ãªãå ´å
-      # ceilpriãæå®ããã¦ããå ´åã¯è­¦åã¡ãã»ã¼ã¸ãåºã
+      # 優先度上限ミューテックスでない場合
+      # ceilpriが指定されている場合は警告メッセージを出す
       if !params[:ceilpri].nil?
         warning_api(params, "%%ceilpri is ignored in %apiname of %mtxid")
@@ -102,6 +85,5 @@
 
 #
-#  ãã¥ã¼ããã¯ã¹ã«é¢ããæ
-å ±ã®çæ
+#  ミューテックスに関する情報の生成
 #
 $kernelCfgC.comment_header("Mutex Functions")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,6 +42,5 @@
 
 /*
- *		åªå
-åº¦ãã¼ã¿ã­ã¥ã¼æ©è½
+ *		優先度データキュー機能
  */
 
@@ -68,5 +52,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ACRE_PDQ_ENTER
@@ -151,6 +135,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®æ°
+ *  優先度データキューの数
  */
 #define tnum_pdq	((uint_t)(tmax_pdqid - TMIN_PDQID + 1))
@@ -158,8 +141,6 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼IDããåªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ãåãåºãã
- *  ãã®ãã¯ã­
+ *  優先度データキューIDから優先度データキュー管理ブロックを取り出すた
+ *  めのマクロ
  */
 #define INDEX_PDQ(pdqid)	((uint_t)((pdqid) - TMIN_PDQID))
@@ -169,12 +150,10 @@
 
 /*
- *  ä½¿ç¨ãã¦ããªãåªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していない優先度データキュー管理ブロックのリスト
  */
 QUEUE	free_pdqcb;
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼æ©è½ã®åæå
+ *  優先度データキュー機能の初期化
  */
 void
@@ -208,6 +187,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®æ ¼ç´
+ *  優先度データキュー管理領域へのデータの格納
  */
 #ifdef TOPPERS_pdqenq
@@ -246,6 +224,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åããã®ãã¼ã¿ã®ååºã
+ *  優先度データキュー管理領域からのデータの取出し
  */
 #ifdef TOPPERS_pdqdeq
@@ -270,6 +247,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿éä¿¡
+ *  優先度データキューへのデータ送信
  */
 #ifdef TOPPERS_pdqsnd
@@ -299,6 +275,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®ãã¼ã¿åä¿¡
+ *  優先度データキューからのデータ受信
  */
 #ifdef TOPPERS_pdqrcv
@@ -337,6 +312,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®çæ
+ *  優先度データキューの生成
  */
 #ifdef TOPPERS_acre_pdq
@@ -403,6 +377,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®åé¤
+ *  優先度データキューの削除
  */
 #ifdef TOPPERS_del_pdq
@@ -451,6 +424,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡
+ *  優先度データキューへの送信
  */
 #ifdef TOPPERS_snd_pdq
@@ -503,6 +475,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼
+ *  優先度データキューへの送信（ポーリング）
  */
 #ifdef TOPPERS_psnd_pdq
@@ -551,6 +522,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  優先度データキューへの送信（タイムアウトあり）
  */
 #ifdef TOPPERS_tsnd_pdq
@@ -609,6 +579,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡
+ *  優先度データキューからの受信
  */
 #ifdef TOPPERS_rcv_pdq
@@ -662,6 +631,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ãã¼ãªã³ã°ï¼
+ *  優先度データキューからの受信（ポーリング）
  */
 #ifdef TOPPERS_prcv_pdq
@@ -701,6 +669,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  優先度データキューからの受信（タイムアウトあり）
  */
 #ifdef TOPPERS_trcv_pdq
@@ -759,6 +726,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®ååæå
+ *  優先度データキューの再初期化
  */
 #ifdef TOPPERS_ini_pdq
@@ -801,8 +767,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®ç¶æ
-åç
-§
+ *  優先度データキューの状態参照
  */
 #ifdef TOPPERS_ref_pdq
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,6 +42,5 @@
 
 /*
- *		åªå
-åº¦ãã¼ã¿ã­ã¥ã¼æ©è½
+ *		優先度データキュー機能
  */
 
@@ -69,111 +53,73 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ç®¡çãã­ãã¯
+ *  優先度データ管理ブロック
  */
 typedef struct pridata_management_block PDQMB;
 
 struct pridata_management_block {
-	PDQMB		*p_next;		/* æ¬¡ã®ãã¼ã¿ */
-	intptr_t	data;			/* ãã¼ã¿æ¬ä½ */
-	PRI			datapri;		/* ãã¼ã¿åªå
-åº¦ */
+	PDQMB		*p_next;		/* 次のデータ */
+	intptr_t	data;			/* データ本体 */
+	PRI			datapri;		/* データ優先度 */
 };
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯
+ *  優先度データキュー初期化ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
-±éé¨å
- *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの初期化ブロックの共通部分
+ *  （WOBJINIB）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初のフィールドが共通になっている．
  */
 typedef struct pridataq_initialization_block {
-	ATR			pdqatr;			/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼å±æ§ */
-	uint_t		pdqcnt;			/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®å®¹é */
-	PRI			maxdpri;		/* ãã¼ã¿åªå
-åº¦ã®æå¤§å¤ */
-	PDQMB		*p_pdqmb;		/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã®å
-é ­çªå° */
+	ATR			pdqatr;			/* 優先度データキュー属性 */
+	uint_t		pdqcnt;			/* 優先度データキューの容量 */
+	PRI			maxdpri;		/* データ優先度の最大値 */
+	PDQMB		*p_pdqmb;		/* 優先度データキュー管理領域の先頭番地 */
 } PDQINIB;
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯
+ *  優先度データキュー管理ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨åï¼WOBJCBï¼
- *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
- *  ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの管理ブロックの共通部分（WOBJCB）
+ *  を拡張（オブジェクト指向言語の継承に相当）したもので，最初の2つの
+ *  フィールドが共通になっている．
  */
 typedef struct pridataq_control_block {
-	QUEUE		swait_queue;	/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼éä¿¡å¾
-ã¡ã­ã¥ã¼ */
-	const PDQINIB *p_pdqinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
-	QUEUE		rwait_queue;	/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼åä¿¡å¾
-ã¡ã­ã¥ã¼ */
-	uint_t		count;			/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ä¸­ã®ãã¼ã¿ã®æ° */
-	PDQMB		*p_head;		/* æåã®ãã¼ã¿ */
-	uint_t		unused;			/* æªä½¿ç¨ãã¼ã¿ç®¡çãã­ãã¯ã®å
-é ­ */
-	PDQMB		*p_freelist;	/* æªå²å½ã¦ãã¼ã¿ç®¡çãã­ãã¯ã®ãªã¹ã */
+	QUEUE		swait_queue;	/* 優先度データキュー送信待ちキュー */
+	const PDQINIB *p_pdqinib;	/* 初期化ブロックへのポインタ */
+	QUEUE		rwait_queue;	/* 優先度データキュー受信待ちキュー */
+	uint_t		count;			/* 優先度データキュー中のデータの数 */
+	PDQMB		*p_head;		/* 最初のデータ */
+	uint_t		unused;			/* 未使用データ管理ブロックの先頭 */
+	PDQMB		*p_freelist;	/* 未割当てデータ管理ブロックのリスト */
 } PDQCB;
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼å¾
-ã¡æ
-å ±ãã­ãã¯ã®å®ç¾©
+ *  優先度データキュー待ち情報ブロックの定義
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡æ
-å ±ãã­ãã¯ã®å
-±éé¨å
- *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®2ã¤ã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの待ち情報ブロックの共通部分
+ *  （WINFO_WOBJ）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初の2つのフィールドが共通になっている．
  */
 typedef struct pridataq_send_waiting_information {
-	WINFO		winfo;			/* æ¨æºã®å¾
-ã¡æ
-å ±ãã­ãã¯ */
-	PDQCB		*p_pdqcb;		/* å¾
-ã£ã¦ããåªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®ç®¡çãã­ãã¯*/
-	intptr_t	data;			/* éä¿¡ãã¼ã¿ */
-	PRI			datapri;		/* ãã¼ã¿åªå
-åº¦ */
+	WINFO		winfo;			/* 標準の待ち情報ブロック */
+	PDQCB		*p_pdqcb;		/* 待っている優先度データキューの管理ブロック*/
+	intptr_t	data;			/* 送信データ */
+	PRI			datapri;		/* データ優先度 */
 } WINFO_SPDQ;
 
 typedef struct pridataq_receive_waiting_information {
-	WINFO		winfo;			/* æ¨æºã®å¾
-ã¡æ
-å ±ãã­ãã¯ */
-	PDQCB		*p_pdqcb;		/* å¾
-ã£ã¦ããåªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®ç®¡çãã­ãã¯*/
-	intptr_t	data;			/* åä¿¡ãã¼ã¿ */
-	PRI			datapri;		/* ãã¼ã¿åªå
-åº¦ */
+	WINFO		winfo;			/* 標準の待ち情報ブロック */
+	PDQCB		*p_pdqcb;		/* 待っている優先度データキューの管理ブロック*/
+	intptr_t	data;			/* 受信データ */
+	PRI			datapri;		/* データ優先度 */
 } WINFO_RPDQ;
 
 /*
- *  ä½¿ç¨ãã¦ããªãåªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していない優先度データキュー管理ブロックのリスト
  */
 extern QUEUE	free_pdqcb;
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  優先度データキューIDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_pdqid;
@@ -181,6 +127,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  優先度データキュー初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const PDQINIB	pdqinib_table[];
@@ -188,44 +133,36 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  優先度データキュー管理ブロックのエリア（kernel_cfg.c）
  */
 extern PDQCB	pdqcb_table[];
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ããåªå
-åº¦ãã¼ã¿ã­ã¥ã¼IDãåãåºãã
- *  ãã®ãã¯ã­
+ *  優先度データキュー管理ブロックから優先度データキューIDを取り出すた
+ *  めのマクロ
  */
 #define	PDQID(p_pdqcb)	((ID)(((p_pdqcb) - pdqcb_table) + TMIN_PDQID))
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼æ©è½ã®åæå
+ *  優先度データキュー機能の初期化
  */
 extern void	initialize_pridataq(void);
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®æ ¼ç´
+ *  優先度データキュー管理領域へのデータの格納
  */
 extern void	enqueue_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri);
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åããã®ãã¼ã¿ã®ååºã
+ *  優先度データキュー管理領域からのデータの取出し
  */
 extern void	dequeue_pridata(PDQCB *p_pdqcb, intptr_t *p_data, PRI *p_datapri);
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿éä¿¡
+ *  優先度データキューへのデータ送信
  */
 extern bool_t	send_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri);
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®ãã¼ã¿åä¿¡
+ *  優先度データキューからのデータ受信
  */
 extern bool_t	receive_pridata(PDQCB *p_pdqcb, intptr_t *p_data,
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.trb	(revision 321)
@@ -9,54 +9,38 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: pridataq.trb 668 2016-03-03 13:57:53Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		åªå
-åº¦ãã¼ã¿ã­ã¥ã¼æ©è½ã®çæã¹ã¯ãªãã
+#		優先度データキュー機能の生成スクリプト
 #
 
@@ -67,26 +51,25 @@
 
   def prepare(key, params)
-    # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+    # パラメータが省略された時のデフォルト値の設定
     params[:pdqmb] ||= "NULL"
 
-    # pdqatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1804ï¼½
-    #ï¼TA_TPRIä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    # pdqatrが無効の場合（E_RSATR）［NGKI1804］
+    #（TA_TPRI以外のビットがセットされている場合）
     if (params[:pdqatr] & ~($TA_TPRI)) != 0
       error_illegal_id("E_RSATR", params, :pdqatr, :pdqid)
     end
 
-    # (TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRI)ã§ãªãå ´åï¼E_PARï¼
-    # ï¼»NGKI1819ï¼½
+    # (TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRI)でない場合（E_PAR）
+    # ［NGKI1819］
     if !($TMIN_DPRI <= params[:maxdpri] && params[:maxdpri] <= $TMAX_DPRI)
       error_illegal_id("E_PAR", params, :maxdpri, :pdqid)
     end
 
-    # pdqmbãNULLã§ãªãå ´åï¼E_NOSPTï¼ï¼»ASPS0142ï¼½
+    # pdqmbがNULLでない場合（E_NOSPT）［ASPS0142］
     if params[:pdqmb] != "NULL"
       error_illegal_id("E_NOSPT", params, :pdqmb, :pdqid)
     end
 
-    # åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé å
+    # 優先度データキュー管理領域
     if params[:pdqcnt] > 0
       pdqmbName = "_kernel_pdqmb_#{params[:pdqid]}"
@@ -105,7 +88,5 @@
 
 #
-#  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã«é¢ããæ
-å ±ã®çæ
+#  優先度データキューに関する情報の生成
 #
 $kernelCfgC.comment_header("Priority Dataqueue Functions")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã»ããã©æ©è½
+ *		セマフォ機能
  */
 
@@ -67,5 +52,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ACRE_SEM_ENTER
@@ -134,5 +119,5 @@
 
 /*
- *  ã»ããã©ã®æ°
+ *  セマフォの数
  */
 #define tnum_sem	((uint_t)(tmax_semid - TMIN_SEMID + 1))
@@ -140,5 +125,5 @@
 
 /*
- *  ã»ããã©IDããã»ããã©ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ *  セマフォIDからセマフォ管理ブロックを取り出すためのマクロ
  */
 #define INDEX_SEM(semid)	((uint_t)((semid) - TMIN_SEMID))
@@ -148,10 +133,10 @@
 
 /*
- *  ä½¿ç¨ãã¦ããªãã»ããã©ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないセマフォ管理ブロックのリスト
  */
 QUEUE	free_semcb;
 
 /* 
- *  ã»ããã©æ©è½ã®åæå
+ *  セマフォ機能の初期化
  */
 void
@@ -181,5 +166,5 @@
 
 /*
- *  ã»ããã©ã®çæ
+ *  セマフォの生成
  */
 #ifdef TOPPERS_acre_sem
@@ -230,5 +215,5 @@
 
 /*
- *  ã»ããã©ã®åé¤
+ *  セマフォの削除
  */
 #ifdef TOPPERS_del_sem
@@ -273,5 +258,5 @@
 
 /*
- *  ã»ããã©è³æºã®è¿å´
+ *  セマフォ資源の返却
  */
 #ifdef TOPPERS_sig_sem
@@ -323,5 +308,5 @@
 
 /*
- *  ã»ããã©è³æºã®ç²å¾
+ *  セマフォ資源の獲得
  */
 #ifdef TOPPERS_wai_sem
@@ -366,5 +351,5 @@
 
 /*
- *  ã»ããã©è³æºã®ç²å¾ï¼ãã¼ãªã³ã°ï¼
+ *  セマフォ資源の獲得（ポーリング）
  */
 #ifdef TOPPERS_pol_sem
@@ -402,5 +387,5 @@
 
 /*
- *  ã»ããã©è³æºã®ç²å¾ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  セマフォ資源の獲得（タイムアウトあり）
  */
 #ifdef TOPPERS_twai_sem
@@ -451,5 +436,5 @@
 
 /*
- *  ã»ããã©ã®ååæå
+ *  セマフォの再初期化
  */
 #ifdef TOPPERS_ini_sem
@@ -488,7 +473,5 @@
 
 /*
- *  ã»ããã©ã®ç¶æ
-åç
-§
+ *  セマフォの状態参照
  */
 #ifdef TOPPERS_ref_sem
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã»ããã©æ©è½
+ *		セマフォ機能
  */
 
@@ -68,62 +53,48 @@
 
 /*
- *  ã»ããã©åæåãã­ãã¯
+ *  セマフォ初期化ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
-±éé¨å
- *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  æåã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの初期化ブロックの共通部分
+ *  （WOBJINIB）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  最初のフィールドが共通になっている．
  */
 typedef struct semaphore_initialization_block {
-	ATR			sematr;			/* ã»ããã©å±æ§ */
-	uint_t		isemcnt;		/* ã»ããã©ã®è³æºæ°ã®åæå¤ */
-	uint_t		maxsem;			/* ã»ããã©ã®æå¤§è³æºæ° */
+	ATR			sematr;			/* セマフォ属性 */
+	uint_t		isemcnt;		/* セマフォの資源数の初期値 */
+	uint_t		maxsem;			/* セマフォの最大資源数 */
 } SEMINIB;
 
 /*
- *  ã»ããã©ç®¡çãã­ãã¯
+ *  セマフォ管理ブロック
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨åï¼WOBJCBï¼
- *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
- *  ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの管理ブロックの共通部分（WOBJCB）
+ *  を拡張（オブジェクト指向言語の継承に相当）したもので，最初の2つの
+ *  フィールドが共通になっている．
  */
 typedef struct semaphore_control_block {
-	QUEUE		wait_queue;		/* ã»ããã©å¾
-ã¡ã­ã¥ã¼ */
-	const SEMINIB *p_seminib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
-	uint_t		semcnt;			/* ã»ããã©ç¾å¨ã«ã¦ã³ãå¤ */
+	QUEUE		wait_queue;		/* セマフォ待ちキュー */
+	const SEMINIB *p_seminib;	/* 初期化ブロックへのポインタ */
+	uint_t		semcnt;			/* セマフォ現在カウント値 */
 } SEMCB;
 
 /*
- *  ã»ããã©å¾
-ã¡æ
-å ±ãã­ãã¯ã®å®ç¾©
+ *  セマフォ待ち情報ブロックの定義
  *
- *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡æ
-å ±ãã­ãã¯ã®å
-±éé¨å
- *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
- *  ãã¹ã¦ã®ãã£ã¼ã«ããå
-±éã«ãªã£ã¦ããï¼
+ *  この構造体は，同期・通信オブジェクトの待ち情報ブロックの共通部分
+ *  （WINFO_WOBJ）を拡張（オブジェクト指向言語の継承に相当）したもので，
+ *  すべてのフィールドが共通になっている．
  */
 typedef struct semaphore_waiting_information {
-	WINFO	winfo;			/* æ¨æºã®å¾
-ã¡æ
-å ±ãã­ãã¯ */
-	SEMCB	*p_semcb;		/* å¾
-ã£ã¦ããã»ããã©ã®ç®¡çãã­ãã¯ */
+	WINFO	winfo;			/* 標準の待ち情報ブロック */
+	SEMCB	*p_semcb;		/* 待っているセマフォの管理ブロック */
 } WINFO_SEM;
 
 /*
- *  ä½¿ç¨ãã¦ããªãã»ããã©ç®¡çãã­ãã¯ã®ãªã¹ã
+ *  使用していないセマフォ管理ブロックのリスト
  */
 extern QUEUE	free_semcb;
 
 /*
- *  ã»ããã©IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  セマフォIDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_semid;
@@ -131,5 +102,5 @@
 
 /*
- *  ã»ããã©åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  セマフォ初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const SEMINIB	seminib_table[];
@@ -137,15 +108,15 @@
 
 /*
- *  ã»ããã©ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  セマフォ管理ブロックのエリア（kernel_cfg.c）
  */
 extern SEMCB	semcb_table[];
 
 /*
- *  ã»ããã©ç®¡çãã­ãã¯ããã»ããã©IDãåãåºãããã®ãã¯ã­
+ *  セマフォ管理ブロックからセマフォIDを取り出すためのマクロ
  */
 #define	SEMID(p_semcb)	((ID)(((p_semcb) - semcb_table) + TMIN_SEMID))
 
 /*
- *  ã»ããã©æ©è½ã®åæå
+ *  セマフォ機能の初期化
  */
 extern void	initialize_semaphore(void);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.trb	(revision 321)
@@ -9,53 +9,38 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: semaphore.trb 588 2016-02-05 12:54:58Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		ã»ããã©æ©è½ã®çæã¹ã¯ãªãã
+#		セマフォ機能の生成スクリプト
 #
 
@@ -66,16 +51,16 @@
 
   def prepare(key, params)
-    # sematrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1456ï¼½
-    #ï¼TA_TPRIä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    # sematrが無効の場合（E_RSATR）［NGKI1456］
+    #（TA_TPRI以外のビットがセットされている場合）
     if (params[:sematr] & ~($TA_TPRI)) != 0
       error_illegal_id("E_RSATR", params, :sematr, :semid)
     end
 
-    # (1 <= maxsem && maxsem <= TMAX_MAXSEM)ã§ãªãå ´åï¼E_PARï¼ï¼»NGKI1468ï¼½
+    # (1 <= maxsem && maxsem <= TMAX_MAXSEM)でない場合（E_PAR）［NGKI1468］
     if !(1 <= params[:maxsem] && params[:maxsem] <= $TMAX_MAXSEM)
       error_illegal_id("E_PAR", params, :maxsem, :semid)
     end
 
-    # (0 <= isemcnt && isemcnt <= maxsem)ã§ãªãå ´åï¼E_PARï¼ï¼»NGKI1466ï¼½
+    # (0 <= isemcnt && isemcnt <= maxsem)でない場合（E_PAR）［NGKI1466］
     if !(0 <= params[:isemcnt] && params[:isemcnt] <= params[:maxsem])
       error_wrong_id("E_PAR", params, :isemcnt, :semid, "too large")
@@ -89,6 +74,5 @@
 
 #
-#  ã»ããã©ã«é¢ããæ
-å ±ã®çæ
+#  セマフォに関する情報の生成
 #
 $kernelCfgC.comment_header("Semaphore Functions")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/startup.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/startup.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/startup.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã«ã¼ãã«ã®åæåã¨çµäºå¦ç
+ *		カーネルの初期化と終了処理
  */
 
@@ -65,5 +50,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_KER_ENTER
@@ -86,15 +71,13 @@
 
 /*
- *  ã«ã¼ãã«åä½ç¶æ
-ãã©ã°
+ *  カーネル動作状態フラグ
  *
- *  ã¹ã¿ã¼ãã¢ããã«ã¼ãã³ã§ï¼falseï¼ï¼0ï¼ã«åæåããããã¨ãæå¾
-ãã¦
- *  ããï¼
+ *  スタートアップルーチンで，false（＝0）に初期化されることを期待して
+ *  いる．
  */
 bool_t	kerflg = false;
 
 /*
- *  ã«ã¼ãã«ã®èµ·å
+ *  カーネルの起動
  */
 void
@@ -102,5 +85,5 @@
 {
 	/*
-	 *  TECSã®åæå
+	 *  TECSの初期化
 	 */
 #ifndef TOPPERS_OMIT_TECS
@@ -109,33 +92,31 @@
 
 	/*
-	 *  ã¿ã¼ã²ããä¾å­ã®åæå
+	 *  ターゲット依存の初期化
 	 */
 	target_initialize();
 
 	/*
-	 *  åã¢ã¸ã¥ã¼ã«ã®åæå
+	 *  各モジュールの初期化
 	 *
-	 *  ã¿ã¤ã ã¤ãã³ãç®¡çã¢ã¸ã¥ã¼ã«ã¯ä»ã®ã¢ã¸ã¥ã¼ã«ããå
-ã«åæå
-	 *  ããå¿
-è¦ãããï¼
+	 *  タイムイベント管理モジュールは他のモジュールより先に初期化
+	 *  する必要がある．
 	 */
 	initialize_kmm();
-	initialize_tmevt();								/*ï¼»ASPD1061ï¼½*/
+	initialize_tmevt();								/*［ASPD1061］*/
 	initialize_object();
 
 	/*
-	 *  åæåã«ã¼ãã³ã®å®è¡
+	 *  初期化ルーチンの実行
 	 */ 
 	call_inirtn();
 
 	/*
-	 *  é«åè§£è½ã¿ã¤ãã®è¨­å®
-	 */
-	current_hrtcnt = target_hrt_get_current();		/*ï¼»ASPD1063ï¼½*/
-	set_hrt_event();								/*ï¼»ASPD1064ï¼½*/
-
-	/*
-	 *  ã«ã¼ãã«åä½ã®éå§
+	 *  高分解能タイマの設定
+	 */
+	current_hrtcnt = target_hrt_get_current();		/*［ASPD1063］*/
+	set_hrt_event();								/*［ASPD1064］*/
+
+	/*
+	 *  カーネル動作の開始
 	 */
 	kerflg = true;
@@ -148,5 +129,5 @@
 
 /*
- *  ã«ã¼ãã«ã®çµäº
+ *  カーネルの終了
  */
 #ifdef TOPPERS_ext_ker
@@ -160,11 +141,10 @@
 
 	/*
-	 *  å²è¾¼ã¿ã­ãã¯ç¶æ
-ã«ç§»è¡
+	 *  割込みロック状態に移行
 	 */
 	SIL_LOC_INT();
 
 	/*
-	 *  ã«ã¼ãã«åä½ã®çµäº
+	 *  カーネル動作の終了
 	 */
 	LOG_KER_LEAVE();
@@ -172,12 +152,12 @@
 
 	/*
-	 *  ã«ã¼ãã«ã®çµäºå¦çã®å¼åºã
+	 *  カーネルの終了処理の呼出し
 	 *
-	 *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã¦ï¼exit_kernelãå¼ã³åºãï¼
+	 *  非タスクコンテキストに切り換えて，exit_kernelを呼び出す．
 	 */
 	call_exit_kernel();
 
 	/*
-	 *  ã³ã³ãã¤ã©ã®è­¦åå¯¾ç­ï¼ããã¸æ¥ããã¨ã¯ãªãã¯ãï¼
+	 *  コンパイラの警告対策（ここへ来ることはないはず）
 	 */
 	SIL_UNL_INT();
@@ -187,5 +167,5 @@
 
 /*
- *  ã«ã¼ãã«ã®çµäºå¦ç
+ *  カーネルの終了処理
  */
 void
@@ -193,10 +173,10 @@
 {
 	/*
-	 *  çµäºå¦çã«ã¼ãã³ã®å®è¡
+	 *  終了処理ルーチンの実行
 	 */
 	call_terrtn();
 
 	/*
-	 *  ã¿ã¼ã²ããä¾å­ã®çµäºå¦ç
+	 *  ターゲット依存の終了処理
 	 */
 	target_exit();
@@ -207,9 +187,8 @@
 
 /*
- *  ã«ã¼ãã«ã®å²ãä»ããã¡ã¢ãªé åã®ç®¡ç
+ *  カーネルの割り付けるメモリ領域の管理
  *
- *  ã¡ã¢ãªé åãå
-é ­ããé ã«å²ãå½ã¦ï¼è§£æ¾ãããã¡ã¢ãªé åãåå©ç¨ããª
- *  ãã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ï¼
+ *  メモリ領域を先頭から順に割り当て，解放されたメモリ領域を再利用しな
+ *  いメモリ管理モジュール．
  */
 #ifdef TOPPERS_kermem
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/sys_manage.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/sys_manage.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/sys_manage.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,6 +42,5 @@
 
 /*
- *		ã·ã¹ãã ç¶æ
-ç®¡çæ©è½
+ *		システム状態管理機能
  */
 
@@ -66,5 +50,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ROT_RDQ_ENTER
@@ -173,6 +157,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®åªå
-é ä½ã®åè»¢ï¼»NGKI3548ï¼½
+ *  タスクの優先順位の回転［NGKI3548］
  */
 #ifdef TOPPERS_rot_rdq
@@ -185,10 +168,10 @@
 
 	LOG_ROT_RDQ_ENTER(tskpri);
-	CHECK_UNL();								/*ï¼»NGKI2684ï¼½*/
+	CHECK_UNL();								/*［NGKI2684］*/
 	if (tskpri == TPRI_SELF && !sense_context()) {
-		pri = p_runtsk->bpriority;				/*ï¼»NGKI2689ï¼½*/
+		pri = p_runtsk->bpriority;				/*［NGKI2689］*/
 	}
 	else {
-		CHECK_PAR(VALID_TPRI(tskpri));			/*ï¼»NGKI2685ï¼½*/
+		CHECK_PAR(VALID_TPRI(tskpri));			/*［NGKI2685］*/
 		pri = INT_PRIORITY(tskpri);
 	}
@@ -215,7 +198,5 @@
 
 /*
- *  å®è¡ç¶æ
-ã®ã¿ã¹ã¯IDã®åç
-§ï¼»NGKI3550ï¼½
+ *  実行状態のタスクIDの参照［NGKI3550］
  */
 #ifdef TOPPERS_get_tid
@@ -227,5 +208,5 @@
 
 	LOG_GET_TID_ENTER(p_tskid);
-	CHECK_UNL();								/*ï¼»NGKI2707ï¼½*/
+	CHECK_UNL();								/*［NGKI2707］*/
 
 	lock_cpu();
@@ -242,6 +223,5 @@
 
 /*
- *  å®è¡ã§ããã¿ã¹ã¯ã®æ°ã®åç
-§ï¼»NGKI3623ï¼½
+ *  実行できるタスクの数の参照［NGKI3623］
  */
 #ifdef TOPPERS_get_lod
@@ -255,10 +235,10 @@
 
 	LOG_GET_LOD_ENTER(p_tskid, p_load);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI3624ï¼½ï¼»NGKI3625ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI3624］［NGKI3625］*/
 	if (tskpri == TPRI_SELF) {
-		pri = p_runtsk->bpriority;				/*ï¼»NGKI3631ï¼½*/
+		pri = p_runtsk->bpriority;				/*［NGKI3631］*/
 	}
 	else {
-		CHECK_PAR(VALID_TPRI(tskpri));			/*ï¼»NGKI3626ï¼½*/
+		CHECK_PAR(VALID_TPRI(tskpri));			/*［NGKI3626］*/
 		pri = INT_PRIORITY(tskpri);
 	}
@@ -283,7 +263,5 @@
 
 /*
- *  æå®ããåªå
-é ä½ã®ã¿ã¹ã¯IDã®åç
-§ï¼»NGKI3641ï¼½
+ *  指定した優先順位のタスクIDの参照［NGKI3641］
  */
 #ifdef TOPPERS_get_nth
@@ -298,10 +276,10 @@
 
 	LOG_GET_NTH_ENTER(p_tskid, nth, p_tskid);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI3642ï¼½ï¼»NGKI3643ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI3642］［NGKI3643］*/
 	if (tskpri == TPRI_SELF) {
-		pri = p_runtsk->bpriority;				/*ï¼»NGKI3650ï¼½*/
+		pri = p_runtsk->bpriority;				/*［NGKI3650］*/
 	}
 	else {
-		CHECK_PAR(VALID_TPRI(tskpri));			/*ï¼»NGKI3644ï¼½*/
+		CHECK_PAR(VALID_TPRI(tskpri));			/*［NGKI3644］*/
 		pri = INT_PRIORITY(tskpri);
 	}
@@ -330,6 +308,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã¸ã®é·ç§»ï¼»NGKI3538ï¼½
+ *  CPUロック状態への遷移［NGKI3538］
  */
 #ifdef TOPPERS_loc_cpu
@@ -342,6 +319,6 @@
 	LOG_LOC_CPU_ENTER();
 
-	if (!sense_lock()) {						/*ï¼»NGKI2731ï¼½*/
-		lock_cpu();								/*ï¼»NGKI2730ï¼½*/
+	if (!sense_lock()) {						/*［NGKI2731］*/
+		lock_cpu();								/*［NGKI2730］*/
 	}
 	ercd = E_OK;
@@ -354,13 +331,9 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®è§£é¤ï¼»NGKI3539ï¼½
+ *  CPUロック状態の解除［NGKI3539］
  *
- *  CPUã­ãã¯ä¸­ã¯ï¼ãã£ã¹ããããå¿
-è¦ã¨ãªããµã¼ãã¹ã³ã¼ã«ãå¼ã³åºãã
- *  ã¨ã¯ã§ããªãããï¼CPUã­ãã¯ç¶æ
-ã®è§£é¤æã«ãã£ã¹ãããã£ãèµ·åãã
- *  å¿
-è¦ã¯ãªãï¼
+ *  CPUロック中は，ディスパッチが必要となるサービスコールを呼び出すこ
+ *  とはできないため，CPUロック状態の解除時にディスパッチャを起動する
+ *  必要はない．
  */
 #ifdef TOPPERS_unl_cpu
@@ -373,6 +346,6 @@
 	LOG_UNL_CPU_ENTER();
 
-	if (sense_lock()) {							/*ï¼»NGKI2738ï¼½*/
-		unlock_cpu();							/*ï¼»NGKI2737ï¼½*/
+	if (sense_lock()) {							/*［NGKI2738］*/
+		unlock_cpu();							/*［NGKI2737］*/
 	}
 	ercd = E_OK;
@@ -385,5 +358,5 @@
 
 /*
- *  ãã£ã¹ãããã®ç¦æ­¢ï¼»NGKI2740ï¼½
+ *  ディスパッチの禁止［NGKI2740］
  */
 #ifdef TOPPERS_dis_dsp
@@ -395,5 +368,5 @@
 
 	LOG_DIS_DSP_ENTER();
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI2741ï¼½ï¼»NGKI2742ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI2741］［NGKI2742］*/
 
 	lock_cpu();
@@ -411,5 +384,5 @@
 
 /*
- *  ãã£ã¹ãããã®è¨±å¯ï¼»NGKI2746ï¼½
+ *  ディスパッチの許可［NGKI2746］
  */
 #ifdef TOPPERS_ena_dsp
@@ -421,5 +394,5 @@
 
 	LOG_ENA_DSP_ENTER();
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI2747ï¼½ï¼»NGKI2748ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI2747］［NGKI2748］*/
 
 	lock_cpu();
@@ -453,6 +426,5 @@
 
 /*
- *  ã³ã³ãã­ã¹ãã®åç
-§ï¼»NGKI2752ï¼½
+ *  コンテキストの参照［NGKI2752］
  */
 #ifdef TOPPERS_sns_ctx
@@ -472,7 +444,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®åç
-§ï¼»NGKI2754ï¼½
+ *  CPUロック状態の参照［NGKI2754］
  */
 #ifdef TOPPERS_sns_loc
@@ -492,7 +462,5 @@
 
 /*
- *  ãã£ã¹ãããç¦æ­¢ç¶æ
-ã®åç
-§ï¼»NGKI2756ï¼½
+ *  ディスパッチ禁止状態の参照［NGKI2756］
  */
 #ifdef TOPPERS_sns_dsp
@@ -512,7 +480,5 @@
 
 /*
- *  ãã£ã¹ãããä¿çç¶æ
-ã®åç
-§ï¼»NGKI2758ï¼½
+ *  ディスパッチ保留状態の参照［NGKI2758］
  */
 #ifdef TOPPERS_sns_dpn
@@ -532,7 +498,5 @@
 
 /*
- *  ã«ã¼ãã«éåä½ç¶æ
-ã®åç
-§ï¼»NGKI2760ï¼½
+ *  カーネル非動作状態の参照［NGKI2760］
  */
 #ifdef TOPPERS_sns_ker
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«
+ *		タスク管理モジュール
  */
 
@@ -68,43 +53,40 @@
 
 /*
- *  å®è¡ç¶æ
-ã®ã¿ã¹ã¯
+ *  実行状態のタスク
  */
 TCB		*p_runtsk;
 
 /*
- *  å®è¡ãã¹ãã¿ã¹ã¯
+ *  実行すべきタスク
  */
 TCB		*p_schedtsk;
 
 /*
- *  ãã£ã¹ãããè¨±å¯ç¶æ
-
+ *  ディスパッチ許可状態
  */
 bool_t	enadsp;
 
 /*
- *  ã¿ã¹ã¯ãã£ã¹ãããå¯è½ç¶æ
-
+ *  タスクディスパッチ可能状態
  */
 bool_t	dspflg;
 
 /*
- *  ã¬ãã£ã­ã¥ã¼
+ *  レディキュー
  */
 QUEUE	ready_queue[TNUM_TPRI];
 
 /*
- *  ã¬ãã£ã­ã¥ã¼ãµã¼ãã®ããã®ãããããã
+ *  レディキューサーチのためのビットマップ
  */
 uint16_t	ready_primap;
 
 /*
- *  ä½¿ç¨ãã¦ããªãTCBã®ãªã¹ã
+ *  使用していないTCBのリスト
  */
 QUEUE	free_tcb;
 
 /*
- *  ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®åæå
+ *  タスク管理モジュールの初期化
  */
 void
@@ -148,23 +130,20 @@
 
 /*
- *  ãããããããµã¼ãé¢æ°
- *
- *  bitmapå
-ã®1ã®ãããã®å
-ï¼æãä¸ä½ï¼å³ï¼ã®ãã®ããµã¼ããï¼ãã®ãã
- *  ãçªå·ãè¿ãï¼ãããçªå·ã¯ï¼æä¸ä½ãããã0ã¨ããï¼bitmapã«0ãæå®
- *  ãã¦ã¯ãªããªãï¼ãã®é¢æ°ã§ã¯ï¼bitmapã16ãããã§ãããã¨ãä»®å®ãï¼
- *  uint16_tåã¨ãã¦ããï¼
- *
- *  ããããµã¼ãå½ä»¤ãæã¤ãã­ã»ããµã§ã¯ï¼ããããµã¼ãå½ä»¤ãä½¿ãããã«
- *  æ¸ãç´ããæ¹ãå¹çãè¯ãå ´åãããï¼ãã®ãããªå ´åã«ã¯ï¼ã¿ã¼ã²ãã
- *  ä¾å­é¨ã§ããããµã¼ãå½ä»¤ãä½¿ã£ãbitmap_searchãå®ç¾©ãï¼
- *  OMIT_BITMAP_SEARCHããã¯ã­å®ç¾©ããã°ããï¼ã¾ãï¼ããããµã¼ãå½ä»¤ã®
- *  ãµã¼ãæ¹åãéãªã©ã®çç±ã§åªå
-åº¦ã¨ãããã¨ã®å¯¾å¿ãå¤æ´ãããå ´åã«
- *  ã¯ï¼PRIMAP_BITããã¯ã­å®ç¾©ããã°ããï¼
- *
- *  ã¾ãï¼ã©ã¤ãã©ãªã«ffsããããªãï¼æ¬¡ã®ããã«å®ç¾©ãã¦ã©ã¤ãã©ãªé¢æ°ã
- *  ä½¿ã£ãæ¹ãå¹çãè¯ãå¯è½æ§ãããï¼
+ *  ビットマップサーチ関数
+ *
+ *  bitmap内の1のビットの内，最も下位（右）のものをサーチし，そのビッ
+ *  ト番号を返す．ビット番号は，最下位ビットを0とする．bitmapに0を指定
+ *  してはならない．この関数では，bitmapが16ビットであることを仮定し，
+ *  uint16_t型としている．
+ *
+ *  ビットサーチ命令を持つプロセッサでは，ビットサーチ命令を使うように
+ *  書き直した方が効率が良い場合がある．このような場合には，ターゲット
+ *  依存部でビットサーチ命令を使ったbitmap_searchを定義し，
+ *  OMIT_BITMAP_SEARCHをマクロ定義すればよい．また，ビットサーチ命令の
+ *  サーチ方向が逆などの理由で優先度とビットとの対応を変更したい場合に
+ *  は，PRIMAP_BITをマクロ定義すればよい．
+ *
+ *  また，ライブラリにffsがあるなら，次のように定義してライブラリ関数を
+ *  使った方が効率が良い可能性もある．
  *		#define	bitmap_search(bitmap) (ffs(bitmap) - 1)
  */
@@ -198,6 +177,5 @@
 
 /*
- *  åªå
-åº¦ãããããããç©ºãã®ãã§ãã¯
+ *  優先度ビットマップが空かのチェック
  */
 Inline bool_t
@@ -208,6 +186,5 @@
 
 /*
- *  åªå
-åº¦ããããããã®ãµã¼ã
+ *  優先度ビットマップのサーチ
  */
 Inline uint_t
@@ -218,6 +195,5 @@
 
 /*
- *  åªå
-åº¦ããããããã®ã»ãã
+ *  優先度ビットマップのセット
  */
 Inline void
@@ -228,6 +204,5 @@
 
 /*
- *  åªå
-åº¦ããããããã®ã¯ãªã¢
+ *  優先度ビットマップのクリア
  */
 Inline void
@@ -238,6 +213,5 @@
 
 /*
- *  æé«åªå
-é ä½ã¿ã¹ã¯ã®ãµã¼ã
+ *  最高優先順位タスクのサーチ
  */
 #ifdef TOPPERS_tsksched
@@ -255,11 +229,8 @@
 
 /*
- *  å®è¡ã§ããç¶æ
-ã¸ã®é·ç§»
- *
- *  å®è¡ãã¹ãã¿ã¹ã¯ãæ´æ°ããã®ã¯ï¼å®è¡ã§ããã¿ã¹ã¯ããªãã£ãå ´åã¨ï¼
- *  p_tcbã®åªå
-åº¦ãå®è¡ãã¹ãã¿ã¹ã¯ã®åªå
-åº¦ãããé«ãå ´åã§ããï¼
+ *  実行できる状態への遷移
+ *
+ *  実行すべきタスクを更新するのは，実行できるタスクがなかった場合と，
+ *  p_tcbの優先度が実行すべきタスクの優先度よりも高い場合である．
  */
 #ifdef TOPPERS_tskrun
@@ -283,14 +254,10 @@
 
 /*
- *  å®è¡ã§ããç¶æ
-ããä»ã®ç¶æ
-ã¸ã®é·ç§»
- *
- *  å®è¡ãã¹ãã¿ã¹ã¯ãæ´æ°ããã®ã¯ï¼p_tcbãå®è¡ãã¹ãã¿ã¹ã¯ã§ãã£ãå ´å
- *  ã§ããï¼p_tcbã¨åãåªå
-åº¦ã®ã¿ã¹ã¯ãä»ã«ããå ´åã¯ï¼p_tcbã®æ¬¡ã®ã¿ã¹
- *  ã¯ãå®è¡ãã¹ãã¿ã¹ã¯ã«ãªãï¼ããã§ãªãå ´åã¯ï¼ã¬ãã£ã­ã¥ã¼ããµã¼ã
- *  ããå¿
-è¦ãããï¼
+ *  実行できる状態から他の状態への遷移
+ *
+ *  実行すべきタスクを更新するのは，p_tcbが実行すべきタスクであった場合
+ *  である．p_tcbと同じ優先度のタスクが他にある場合は，p_tcbの次のタス
+ *  クが実行すべきタスクになる．そうでない場合は，レディキューをサーチ
+ *  する必要がある．
  */
 #ifdef TOPPERS_tsknrun
@@ -321,6 +288,5 @@
 
 /*
- *  ä¼æ­¢ç¶æ
-ã¸ã®é·ç§»
+ *  休止状態への遷移
  */
 #ifdef TOPPERS_tskdmt
@@ -341,7 +307,5 @@
 
 /*
- *  ä¼æ­¢ç¶æ
-ããå®è¡ã§ããç¶æ
-ã¸ã®é·ç§»
+ *  休止状態から実行できる状態への遷移
  */
 #ifdef TOPPERS_tskact
@@ -359,24 +323,14 @@
 
 /*
- *  ã¿ã¹ã¯ã®åªå
-åº¦ã®å¤æ´
- *
- *  ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
-ã®å ´åã«ã¯ï¼ã¬ãã£ã­ã¥ã¼ã®ä¸­ã§ã®ä½ç½®ãå¤æ´ã
- *  ãï¼ãªãã¸ã§ã¯ãã®å¾
-ã¡ã­ã¥ã¼ã®ä¸­ã§å¾
-ã¡ç¶æ
-ã«ãªã£ã¦ããå ´åã«ã¯ï¼å¾
-
- *  ã¡ã­ã¥ã¼ã®ä¸­ã§ã®ä½ç½®ãå¤æ´ããï¼
- *
- *  å®è¡ãã¹ãã¿ã¹ã¯ãæ´æ°ããã®ã¯ï¼(1) p_tcbãå®è¡ãã¹ãã¿ã¹ã¯ã§ãã£ã¦ï¼
- *  ãã®åªå
-åº¦ãä¸ããå ´åï¼(2) p_tcbãå®è¡ãã¹ãã¿ã¹ã¯ã§ã¯ãªãï¼å¤æ´å¾
- *  ã®åªå
-åº¦ãå®è¡ãã¹ãã¿ã¹ã¯ã®åªå
-åº¦ãããé«ãå ´åã§ããï¼(1)ã®å ´åã«
- *  ã¯ï¼ã¬ãã£ã­ã¥ã¼ããµã¼ãããå¿
-è¦ãããï¼
+ *  タスクの優先度の変更
+ *
+ *  タスクが実行できる状態の場合には，レディキューの中での位置を変更す
+ *  る．オブジェクトの待ちキューの中で待ち状態になっている場合には，待
+ *  ちキューの中での位置を変更する．
+ *
+ *  実行すべきタスクを更新するのは，(1) p_tcbが実行すべきタスクであって，
+ *  その優先度を下げた場合，(2) p_tcbが実行すべきタスクではなく，変更後
+ *  の優先度が実行すべきタスクの優先度よりも高い場合である．(1)の場合に
+ *  は，レディキューをサーチする必要がある．
  */
 #ifdef TOPPERS_tskpri
@@ -392,6 +346,5 @@
 	if (TSTAT_RUNNABLE(p_tcb->tstat)) {
 		/*
-		 *  ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
-ã®å ´å
+		 *  タスクが実行できる状態の場合
 		 */
 		queue_delete(&(p_tcb->task_queue));
@@ -424,8 +377,6 @@
 		if (TSTAT_WAIT_WOBJCB(p_tcb->tstat)) {
 			/*
-			 *  ã¿ã¹ã¯ãï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨
-			 *  åï¼WOBJCBï¼ã®å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ããå ´å
+			 *  タスクが，同期・通信オブジェクトの管理ブロックの共通部
+			 *  分（WOBJCB）の待ちキューにつながれている場合
 			 */
 			wobj_change_priority(((WINFO_WOBJ *)(p_tcb->p_winfo))->p_wobjcb,
@@ -438,8 +389,8 @@
 
 /*
- *  ã¬ãã£ã­ã¥ã¼ã®åè»¢
- *
- *  å®è¡ãã¹ãã¿ã¹ã¯ãæ´æ°ããã®ã¯ï¼å®è¡ãã¹ãã¿ã¹ã¯ãã¿ã¹ã¯ã­ã¥ã¼ã®æ«
- *  å°¾ã«ç§»åããå ´åã§ããï¼
+ *  レディキューの回転
+ *
+ *  実行すべきタスクを更新するのは，実行すべきタスクがタスクキューの末
+ *  尾に移動した場合である．
  */
 #ifdef TOPPERS_tskrot
@@ -464,5 +415,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®çµäºå¦ç
+ *  タスクの終了処理
  */
 #ifdef TOPPERS_tskterm
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«
+ *		タスク管理モジュール
  */
 
@@ -68,5 +53,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_TSKSTAT
@@ -75,7 +60,5 @@
 
 /*
- *  ã¿ã¹ã¯åªå
-åº¦ã®å
-é¨è¡¨ç¾ã»å¤é¨è¡¨ç¾å¤æãã¯ã­
+ *  タスク優先度の内部表現・外部表現変換マクロ
  */
 #define INT_PRIORITY(x)		((uint_t)((x) - TMIN_TPRI))
@@ -83,96 +66,43 @@
 
 /*
- *  ã¿ã¹ã¯ç¶æ
-ã®å
-é¨è¡¨ç¾
- *
- *  TCBä¸­ã®ã¿ã¹ã¯ç¶æ
-ã®ãã£ã¼ã«ãã§ã¯ï¼ã¿ã¹ã¯ã®ç¶æ
-ã¨ï¼ã¿ã¹ã¯ãå¾
-ã¡ç¶æ
-
- *  ã®æã®å¾
-ã¡è¦å ãè¡¨ãï¼ãã ãï¼å®è¡ç¶æ
-ï¼RUNNINGï¼ã¨å®è¡å¯è½ç¶æ
-
- *  ï¼READYï¼ã¯åºå¥ããï¼ä¸¡ç¶æ
-ããããã¦å®è¡ã§ããç¶æ
-ï¼RUNNABLEï¼ã¨ã
- *  ã¦ç®¡çããï¼äºéå¾
-ã¡ç¶æ
-ã¯ï¼(TS_WAITING_??? | TS_SUSPENDED)ã§è¡¨ãï¼
- *
- *  ã¿ã¹ã¯ãå¾
-ã¡ç¶æ
-ï¼äºéå¾
-ã¡ç¶æ
-ãå«ãï¼ã®æã¯ï¼TS_WAITING_???ã§å¾
-ã¡
- *  è¦å ãè¡¨ãï¼å¾
-ã¡è¦å ï¼5ãããã§è¡¨ç¾ãããï¼ã®ä¸ä½2ãããã§ï¼åæã»
- *  éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªãã£ã¦ãããã©ãããè¡¨ãï¼åæã»
- *  éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªãããªããã®ã¯ä¸ä½2ãããã00ï¼å
- *  æã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨åï¼WOBJCBï¼ã®å¾
-ã¡ã­ã¥ã¼
- *  ã«ã¤ãªãããã®ã¯10ã¾ãã¯11ï¼ããä»¥å¤ã®å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªãããã®ã¯01
- *  ã¨ããï¼
- */
-#define TS_DORMANT		0x00U			/* ä¼æ­¢ç¶æ
- */
-#define TS_RUNNABLE		0x01U			/* å®è¡ã§ããç¶æ
- */
-#define TS_SUSPENDED	0x02U			/* å¼·å¶å¾
-ã¡ç¶æ
- */
-
-#define TS_WAITING_SLP	(0x01U << 2)	/* èµ·åºå¾
-ã¡ */
-#define TS_WAITING_DLY	(0x02U << 2)	/* æéçµéå¾
-ã¡ */
-#define TS_WAITING_RDTQ	(0x08U << 2)	/* ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
-ã¡ */
-#define TS_WAITING_RPDQ	(0x09U << 2)	/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
-ã¡ */
-#define TS_WAITING_SEM	(0x10U << 2)	/* ã»ããã©è³æºã®ç²å¾å¾
-ã¡ */
-#define TS_WAITING_FLG	(0x11U << 2)	/* ã¤ãã³ããã©ã°å¾
-ã¡ */
-#define TS_WAITING_SDTQ	(0x12U << 2)	/* ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
-ã¡ */
-#define TS_WAITING_SPDQ	(0x13U << 2)	/* åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
-ã¡ */
-#define TS_WAITING_MTX	(0x14U << 2)	/* ãã¥ã¼ããã¯ã¹ã®ã­ãã¯å¾
-ã¡ */
-#define TS_WAITING_MPF	(0x15U << 2)	/* åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾å¾
-ã¡ */
-
-#define TS_WAITING_MASK	(0x1fU << 2)	/* å¾
-ã¡ç¶æ
-ã®å¤å¥ç¨ãã¹ã¯ */
-
-/*
- *  ã¿ã¹ã¯ç¶æ
-å¤å¥ãã¯ã­
- *
- *  TSTAT_DORMANTã¯ã¿ã¹ã¯ãä¼æ­¢ç¶æ
-ã§ãããã©ãããï¼TSTAT_RUNNABLEã¯
- *  ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
-ã§ãããã©ãããå¤å¥ããï¼TSTAT_WAITINGã¯å¾
-
- *  ã¡ç¶æ
-ã¨äºéå¾
-ã¡ç¶æ
-ã®ããããã§ãããã©ãããï¼TSTAT_SUSPENDEDã¯
- *  å¼·å¶å¾
-ã¡ç¶æ
-ã¨äºéå¾
-ã¡ç¶æ
-ã®ããããã§ãããã©ãããå¤å¥ããï¼
+ *  タスク状態の内部表現
+ *
+ *  TCB中のタスク状態のフィールドでは，タスクの状態と，タスクが待ち状態
+ *  の時の待ち要因を表す．ただし，実行状態（RUNNING）と実行可能状態
+ *  （READY）は区別せず，両状態をあわせて実行できる状態（RUNNABLE）とし
+ *  て管理する．二重待ち状態は，(TS_WAITING_??? | TS_SUSPENDED)で表す．
+ *
+ *  タスクが待ち状態（二重待ち状態を含む）の時は，TS_WAITING_???で待ち
+ *  要因を表す．待ち要因（5ビットで表現される）の上位2ビットで，同期・
+ *  通信オブジェクトの待ちキューにつながっているかどうかを表す．同期・
+ *  通信オブジェクトの待ちキューにつながらないものは上位2ビットを00，同
+ *  期・通信オブジェクトの管理ブロックの共通部分（WOBJCB）の待ちキュー
+ *  につながるものは10または11，それ以外の待ちキューにつながるものは01
+ *  とする．
+ */
+#define TS_DORMANT		0x00U			/* 休止状態 */
+#define TS_RUNNABLE		0x01U			/* 実行できる状態 */
+#define TS_SUSPENDED	0x02U			/* 強制待ち状態 */
+
+#define TS_WAITING_SLP	(0x01U << 2)	/* 起床待ち */
+#define TS_WAITING_DLY	(0x02U << 2)	/* 時間経過待ち */
+#define TS_WAITING_RDTQ	(0x08U << 2)	/* データキューからの受信待ち */
+#define TS_WAITING_RPDQ	(0x09U << 2)	/* 優先度データキューからの受信待ち */
+#define TS_WAITING_SEM	(0x10U << 2)	/* セマフォ資源の獲得待ち */
+#define TS_WAITING_FLG	(0x11U << 2)	/* イベントフラグ待ち */
+#define TS_WAITING_SDTQ	(0x12U << 2)	/* データキューへの送信待ち */
+#define TS_WAITING_SPDQ	(0x13U << 2)	/* 優先度データキューへの送信待ち */
+#define TS_WAITING_MTX	(0x14U << 2)	/* ミューテックスのロック待ち */
+#define TS_WAITING_MPF	(0x15U << 2)	/* 固定長メモリブロックの獲得待ち */
+
+#define TS_WAITING_MASK	(0x1fU << 2)	/* 待ち状態の判別用マスク */
+
+/*
+ *  タスク状態判別マクロ
+ *
+ *  TSTAT_DORMANTはタスクが休止状態であるかどうかを，TSTAT_RUNNABLEは
+ *  タスクが実行できる状態であるかどうかを判別する．TSTAT_WAITINGは待
+ *  ち状態と二重待ち状態のいずれかであるかどうかを，TSTAT_SUSPENDEDは
+ *  強制待ち状態と二重待ち状態のいずれかであるかどうかを判別する．
  */
 #define TSTAT_DORMANT(tstat)	((tstat) == TS_DORMANT)
@@ -182,21 +112,14 @@
 
 /*
- *  ã¿ã¹ã¯å¾
-ã¡è¦å å¤å¥ãã¯ã­
- *
- *  TSTAT_WAIT_SLPã¯ã¿ã¹ã¯ãèµ·åºå¾
-ã¡ã§ãããã©ãããï¼TSTAT_WAIT_MTXã¯
- *  ã¿ã¹ã¯ããã¥ã¼ããã¯ã¹å¾
-ã¡ã§ãããã©ãããå¤å¥ããï¼
- *
- *  ã¾ãï¼TSTAT_WAIT_WOBJ ã¯ã¿ã¹ã¯ãåæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
-ã¡
- *  ã§ãããï¼è¨ãæããã¨ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªã
- *  ãã¦ãããï¼ã©ãããï¼TSTAT_WAIT_WOBJCBã¯ã¿ã¹ã¯ãåæã»éä¿¡ãªãã¸ã§
- *  ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨åï¼WOBJCBï¼ã®å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ãã
- *  ãã©ãããå¤å¥ããï¼
+ *  タスク待ち要因判別マクロ
+ *
+ *  TSTAT_WAIT_SLPはタスクが起床待ちであるかどうかを，TSTAT_WAIT_MTXは
+ *  タスクがミューテックス待ちであるかどうかを判別する．
+ *
+ *  また，TSTAT_WAIT_WOBJ はタスクが同期・通信オブジェクトに対する待ち
+ *  であるか（言い換えると，同期・通信オブジェクトの待ちキューにつなが
+ *  れているか）どうかを，TSTAT_WAIT_WOBJCBはタスクが同期・通信オブジェ
+ *  クトの管理ブロックの共通部分（WOBJCB）の待ちキューにつながれている
+ *  かどうかを判別する．
  */
 #define TSTAT_WAIT_SLP(tstat)	(((tstat) & ~TS_SUSPENDED) == TS_WAITING_SLP)
@@ -207,319 +130,201 @@
 
 /*
- *  å¾
-ã¡æ
-å ±ãã­ãã¯ï¼WINFOï¼ã®å®ç¾©
- *
- *  ã¿ã¹ã¯ãå¾
-ã¡ç¶æ
-ã®éã¯ï¼TCBããã³ãã®p_winfoã§æãããWINFOãæ¬¡ã®
- *  ããã«è¨­å®ããªããã°ãªããªãï¼
- *
- *  (a) TCBã®ã¿ã¹ã¯ç¶æ
-ãå¾
-ã¡ç¶æ
-ï¼TS_WAITING_???ï¼ã«ããï¼
- *
- *  (b) ã¿ã¤ã ã¢ã¦ããç£è¦ããããã«ï¼ã¿ã¤ã ã¤ãã³ããã­ãã¯ãç»é²ããï¼
- *  ç»é²ããã¿ã¤ã ã¤ãã³ããã­ãã¯ã¯ï¼å¾
-ã¡ã«å
-¥ããµã¼ãã¹ã³ã¼ã«å¦çé¢æ°
- *  ã®ã­ã¼ã«ã«å¤æ°ã¨ãã¦ç¢ºä¿ãï¼ããã¸ã®ãã¤ã³ã¿ãWINFOã®p_tmevtbã«è¨
- *  æ¶ããï¼ã¿ã¤ã ã¢ã¦ãã®ç£è¦ãå¿
-è¦ãªãå ´åï¼æ°¸ä¹
-å¾
-ã¡ã®å ´åï¼ã«ã¯ï¼
- *  p_tmevtbãNULLã«ããï¼
- *
- *  åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
-ã¡ç¶æ
-ã®å ´åã«ã¯ï¼æ¨æºã®WINFOã«
- *  p_wobjcbãã£ã¼ã«ããè¿½å ããæ§é ä½ï¼WINFO_WOBJï¼wait.hã§å®ç¾©ï¼ã«ï¼
- *  å¾
-ã¡å¯¾è±¡ã®åæã»éä¿¡ãªãã¸ã§ã¯ãã«ä¾å­ãã¦è¨æ¶ãããã¨ãå¿
-è¦ãªæ
-å ±
- *  ã®ããã®ãã£ã¼ã«ããè¿½å ããæ§é ä½ï¼WINFO_???ï¼ãå®ç¾©ãï¼WINFOã®ä»£
- *  ããã«ç¨ããï¼ã¾ãï¼ä»¥ä¸ã®(c)ï½(e)ã®è¨­å®ãè¡ãå¿
-è¦ãããï¼åæã»é
- *  ä¿¡ãªãã¸ã§ã¯ãã«é¢ä¿ããªãå¾
-ã¡ï¼èµ·åºå¾
-ã¡ï¼æéçµéå¾
-ã¡ï¼ã®å ´åã«ã¯ï¼
- *  ãããã¯å¿
-è¦ãªãï¼
- *
- *  (c) TCBãå¾
-ã¡å¯¾è±¡ã®åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªãï¼å¾
-
- *  ã¡ã­ã¥ã¼ã«ã¤ãªãããã«ï¼task_queueãä½¿ãï¼
- *
- *  (d) å¾
-ã¡å¯¾è±¡ã®åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã¸ã®ãã¤ã³ã¿ãï¼
- *  WINFO_WOBJã®p_wobjcbã«è¨æ¶ããï¼
- *
- *  (e) å¾
-ã¡å¯¾è±¡ã®åæã»éä¿¡ãªãã¸ã§ã¯ãã«ä¾å­ãã¦è¨æ¶ãããã¨ãå¿
-è¦ãª
- *  æ
-å ±ãããå ´åã«ã¯ï¼WINFO_???å
-ã®ãã£ã¼ã«ãã«è¨æ¶ããï¼
- *
- *  å¾
-ã¡ç¶æ
-ãè§£é¤ããéã«ã¯ï¼å¾
-ã¡è§£é¤ããã¿ã¹ã¯ã«å¯¾ããè¿å¤ãWINFOã®
- *  wercdã«è¨­å®ããï¼wercdãå¿
-è¦ãªã®ã¯å¾
-ã¡è§£é¤ä»¥éã§ããã®ã«å¯¾ãã¦ï¼
- *  p_tmevtbã¯å¾
-ã¡è§£é¤å¾ã¯å¿
-è¦ãªãããï¼ã¡ã¢ãªç¯ç´ã®ããã«å
-±ç¨ä½ãä½¿ã£
- *  ã¦ããï¼ãã®ããï¼wercdã¸ã¨ã©ã¼ã³ã¼ããè¨­å®ããã®ã¯ï¼ã¿ã¤ã ã¤ãã³ã
- *  ãã­ãã¯ãç»é²è§£é¤ããå¾ã«ããªããã°ãªããªãï¼
+ *  待ち情報ブロック（WINFO）の定義
+ *
+ *  タスクが待ち状態の間は，TCBおよびそのp_winfoで指されるWINFOを次の
+ *  ように設定しなければならない．
+ *
+ *  (a) TCBのタスク状態を待ち状態（TS_WAITING_???）にする．
+ *
+ *  (b) タイムアウトを監視するために，タイムイベントブロックを登録する．
+ *  登録するタイムイベントブロックは，待ちに入るサービスコール処理関数
+ *  のローカル変数として確保し，それへのポインタをWINFOのp_tmevtbに記
+ *  憶する．タイムアウトの監視が必要ない場合（永久待ちの場合）には，
+ *  p_tmevtbをNULLにする．
+ *
+ *  同期・通信オブジェクトに対する待ち状態の場合には，標準のWINFOに
+ *  p_wobjcbフィールドを追加した構造体（WINFO_WOBJ，wait.hで定義）に，
+ *  待ち対象の同期・通信オブジェクトに依存して記憶することが必要な情報
+ *  のためのフィールドを追加した構造体（WINFO_???）を定義し，WINFOの代
+ *  わりに用いる．また，以下の(c)～(e)の設定を行う必要がある．同期・通
+ *  信オブジェクトに関係しない待ち（起床待ち，時間経過待ち）の場合には，
+ *  これらは必要ない．
+ *
+ *  (c) TCBを待ち対象の同期・通信オブジェクトの待ちキューにつなぐ．待
+ *  ちキューにつなぐために，task_queueを使う．
+ *
+ *  (d) 待ち対象の同期・通信オブジェクトの管理ブロックへのポインタを，
+ *  WINFO_WOBJのp_wobjcbに記憶する．
+ *
+ *  (e) 待ち対象の同期・通信オブジェクトに依存して記憶することが必要な
+ *  情報がある場合には，WINFO_???内のフィールドに記憶する．
+ *
+ *  待ち状態を解除する際には，待ち解除したタスクに対する返値をWINFOの
+ *  wercdに設定する．wercdが必要なのは待ち解除以降であるのに対して，
+ *  p_tmevtbは待ち解除後は必要ないため，メモリ節約のために共用体を使っ
+ *  ている．そのため，wercdへエラーコードを設定するのは，タイムイベント
+ *  ブロックを登録解除した後にしなければならない．
  */
 typedef union waiting_information {
-	ER		wercd;			/* å¾
-ã¡è§£é¤æã®ã¨ã©ã¼ã³ã¼ã */
-	TMEVTB	*p_tmevtb;		/* å¾
-ã¡ç¶æ
-ç¨ã®ã¿ã¤ã ã¤ãã³ããã­ãã¯ */
+	ER		wercd;			/* 待ち解除時のエラーコード */
+	TMEVTB	*p_tmevtb;		/* 待ち状態用のタイムイベントブロック */
 } WINFO;
 
 /*
- *  ãã¥ã¼ããã¯ã¹ç®¡çãã­ãã¯ã®åã®åæ¹åç
-§
+ *  ミューテックス管理ブロックの型の前方参照
  */
 typedef struct mutex_control_block MTXCB;
 
 /*
- *  ã¿ã¹ã¯åæåãã­ãã¯
- *
- *  ã¿ã¹ã¯ã«é¢ããæ
-å ±ãï¼å¤ãå¤ãããªãããã«ROMã«ç½®ããé¨åï¼ã¿ã¹ã¯
- *  åæåãã­ãã¯ï¼ã¨ï¼å¤ãå¤åããããã«RAMã«ç½®ããªããã°ãªããªãé¨
- *  åï¼ã¿ã¹ã¯ç®¡çãã­ãã¯ï¼TCBï¼ã«åé¢ãï¼TCBå
-ã«å¯¾å¿ããã¿ã¹ã¯åæå
- *  ãã­ãã¯ãæããã¤ã³ã¿ãå
-¥ããï¼ã¿ã¹ã¯åæåãã­ãã¯å
-ã«å¯¾å¿ãã
- *  TCBãæããã¤ã³ã¿ãå
-¥ããæ¹æ³ã®æ¹ãï¼RAMã®ç¯ç´ã®è¦³ç¹ããã¯æã¾ãã
- *  ãï¼å®è¡å¹çãæªããªãããã«æ¡ç¨ãã¦ããªãï¼ä»ã®ãªãã¸ã§ã¯ãã«ã¤ã
- *  ã¦ãåæ§ã«æ±ãï¼
- *
- *  ã¿ã¹ã¯åæåãã­ãã¯ã«ã¯ï¼DEF_TEXã§å®ç¾©ãããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ã
- *  ã³ã«é¢ããæ
-å ±ãå«ãï¼
+ *  タスク初期化ブロック
+ *
+ *  タスクに関する情報を，値が変わらないためにROMに置ける部分（タスク
+ *  初期化ブロック）と，値が変化するためにRAMに置かなければならない部
+ *  分（タスク管理ブロック，TCB）に分離し，TCB内に対応するタスク初期化
+ *  ブロックを指すポインタを入れる．タスク初期化ブロック内に対応する
+ *  TCBを指すポインタを入れる方法の方が，RAMの節約の観点からは望ましい
+ *  が，実行効率が悪くなるために採用していない．他のオブジェクトについ
+ *  ても同様に扱う．
+ *
+ *  タスク初期化ブロックには，DEF_TEXで定義されるタスク例外処理ルーチ
+ *  ンに関する情報も含む．
  */
 typedef struct task_initialization_block {
-	ATR			tskatr;			/* ã¿ã¹ã¯å±æ§ */
-	intptr_t	exinf;			/* ã¿ã¹ã¯ã®æ¡å¼µæ
-å ± */
-	TASK		task;			/* ã¿ã¹ã¯ã®èµ·åçªå° */
-	uint_t		ipriority;		/* ã¿ã¹ã¯ã®èµ·åæåªå
-åº¦ï¼å
-é¨è¡¨ç¾ï¼ */
+	ATR			tskatr;			/* タスク属性 */
+	intptr_t	exinf;			/* タスクの拡張情報 */
+	TASK		task;			/* タスクの起動番地 */
+	uint_t		ipriority;		/* タスクの起動時優先度（内部表現） */
 
 #ifdef USE_TSKINICTXB
-	TSKINICTXB	tskinictxb;		/* ã¿ã¹ã¯åæåã³ã³ãã­ã¹ããã­ãã¯ */
+	TSKINICTXB	tskinictxb;		/* タスク初期化コンテキストブロック */
 #else /* USE_TSKINICTXB */
-	size_t		stksz;			/* ã¹ã¿ãã¯é åã®ãµã¤ãºï¼ä¸¸ããå¤ï¼ */
-	void		*stk;			/* ã¹ã¿ãã¯é åã®å
-é ­çªå° */
+	size_t		stksz;			/* スタック領域のサイズ（丸めた値） */
+	void		*stk;			/* スタック領域の先頭番地 */
 #endif /* USE_TSKINICTXB */
 } TINIB;
 
 /*
- *  ã¿ã¹ã¯ç®¡çãã­ãã¯ï¼TCBï¼
- *
- *  ASPã«ã¼ãã«ã§ã¯ï¼ã¿ã¹ã¯ã®èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ï¼TMAX_ACTCNTï¼
- *  ã¨èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ï¼TMAX_WUPCNTï¼ã¯1ã«åºå®ããã¦ãã
- *  ããï¼ã­ã¥ã¼ã¤ã³ã°ããã¦ãããã©ããã®çå½å¤ã§è¡¨ç¾ãããã¨ãã§ããï¼
- *  ã¾ãï¼å¼·å¶å¾
-ã¡è¦æ±ãã¹ãæ°ã®æå¤§å¤ï¼TMAX_SUSCNTï¼ã1ã«åºå®ããã¦ã
- *  ãã®ã§ï¼å¼·å¶å¾
-ã¡è¦æ±ãã¹ãæ°ï¼suscntï¼ã¯å¿
-è¦ãªãï¼
- *
- *  TCBã®ããã¤ãã®ãã£ã¼ã«ãã¯ï¼ç¹å®ã®ã¿ã¹ã¯ç¶æ
-ã§ã®ã¿æå¹ãªå¤ãä¿æãï¼
- *  ããä»¥å¤ã®å ´åã¯å¤ãä¿è¨¼ãããªãï¼ãã£ã¦ï¼åç
-§ãã¦ã¯ãªããªãï¼ï¼å
- *  ãã£ã¼ã«ããæå¹ãªå¤ãä¿æããæ¡ä»¶ã¯æ¬¡ã®éãï¼
- *
- *  ã»åæåå¾ã¯å¸¸ã«æå¹ï¼
- *  		p_tinibï¼tstatï¼actque
- *  ã»ä¼æ­¢ç¶æ
-ä»¥å¤ã§æå¹ï¼ä¼æ­¢ç¶æ
-ã§ã¯åæå¤ã«ãªã£ã¦ããï¼ï¼
- *  		bpriorityï¼priorityï¼wupqueï¼rasterï¼enaterï¼p_lastmtx
- *  ã»å¾
-ã¡ç¶æ
-ï¼äºéå¾
-ã¡ç¶æ
-ãå«ãï¼ã§æå¹ï¼
+ *  タスク管理ブロック（TCB）
+ *
+ *  ASPカーネルでは，タスクの起動要求キューイング数の最大値（TMAX_ACTCNT）
+ *  と起床要求キューイング数の最大値（TMAX_WUPCNT）は1に固定されている
+ *  ため，キューイングされているかどうかの真偽値で表現することができる．
+ *  また，強制待ち要求ネスト数の最大値（TMAX_SUSCNT）が1に固定されてい
+ *  るので，強制待ち要求ネスト数（suscnt）は必要ない．
+ *
+ *  TCBのいくつかのフィールドは，特定のタスク状態でのみ有効な値を保持し，
+ *  それ以外の場合は値が保証されない（よって，参照してはならない）．各
+ *  フィールドが有効な値を保持する条件は次の通り．
+ *
+ *  ・初期化後は常に有効：
+ *  		p_tinib，tstat，actque
+ *  ・休止状態以外で有効（休止状態では初期値になっている）：
+ *  		bpriority，priority，wupque，raster，enater，p_lastmtx
+ *  ・待ち状態（二重待ち状態を含む）で有効：
  *  		p_winfo
- *  ã»å®è¡ã§ããç¶æ
-ã¨åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
-ã¡ç¶æ
-ã§æå¹ï¼
+ *  ・実行できる状態と同期・通信オブジェクトに対する待ち状態で有効：
  *  		task_queue
- *  ã»å®è¡å¯è½ç¶æ
-ï¼å¾
-ã¡ç¶æ
-ï¼å¼·å¶å¾
-ã¡ç¶æ
-ï¼äºéå¾
-ã¡ç¶æ
-ã§æå¹ï¼
+ *  ・実行可能状態，待ち状態，強制待ち状態，二重待ち状態で有効：
  *  		tskctxb
  */
 typedef struct task_control_block {
-	QUEUE			task_queue;		/* ã¿ã¹ã¯ã­ã¥ã¼ */
-	const TINIB		*p_tinib;		/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	QUEUE			task_queue;		/* タスクキュー */
+	const TINIB		*p_tinib;		/* 初期化ブロックへのポインタ */
 
 #ifdef UINT8_MAX
-	uint8_t			tstat;			/* ã¿ã¹ã¯ç¶æ
-ï¼å
-é¨è¡¨ç¾ï¼*/
-	uint8_t			bpriority;		/* ãã¼ã¹åªå
-åº¦ï¼å
-é¨è¡¨ç¾ï¼*/
-	uint8_t			priority;		/* ç¾å¨ã®åªå
-åº¦ï¼å
-é¨è¡¨ç¾ï¼*/
+	uint8_t			tstat;			/* タスク状態（内部表現）*/
+	uint8_t			bpriority;		/* ベース優先度（内部表現）*/
+	uint8_t			priority;		/* 現在の優先度（内部表現）*/
 #else /* UINT8_MAX */
-	BIT_FIELD_UINT	tstat : 8;		/* ã¿ã¹ã¯ç¶æ
-ï¼å
-é¨è¡¨ç¾ï¼*/
-	BIT_FIELD_UINT	bpriority : 8;	/* ãã¼ã¹åªå
-åº¦ï¼å
-é¨è¡¨ç¾ï¼*/
-	BIT_FIELD_UINT	priority : 8	/* ç¾å¨ã®åªå
-åº¦ï¼å
-é¨è¡¨ç¾ï¼*/;
+	BIT_FIELD_UINT	tstat : 8;		/* タスク状態（内部表現）*/
+	BIT_FIELD_UINT	bpriority : 8;	/* ベース優先度（内部表現）*/
+	BIT_FIELD_UINT	priority : 8	/* 現在の優先度（内部表現）*/;
 #endif /* UINT8_MAX */
-	BIT_FIELD_BOOL	actque : 1;		/* èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã° */
-	BIT_FIELD_BOOL	wupque : 1;		/* èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã° */
-	BIT_FIELD_BOOL	raster : 1;		/* ã¿ã¹ã¯çµäºè¦æ±ç¶æ
- */
-	BIT_FIELD_BOOL	enater : 1;		/* ã¿ã¹ã¯çµäºè¨±å¯ç¶æ
- */
-
-	WINFO			*p_winfo;		/* å¾
-ã¡æ
-å ±ãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
-	MTXCB			*p_lastmtx;		/* æå¾ã«ã­ãã¯ãããã¥ã¼ããã¯ã¹ */
-	TSKCTXB			tskctxb;		/* ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯ */
+	BIT_FIELD_BOOL	actque : 1;		/* 起動要求キューイング */
+	BIT_FIELD_BOOL	wupque : 1;		/* 起床要求キューイング */
+	BIT_FIELD_BOOL	raster : 1;		/* タスク終了要求状態 */
+	BIT_FIELD_BOOL	enater : 1;		/* タスク終了許可状態 */
+
+	WINFO			*p_winfo;		/* 待ち情報ブロックへのポインタ */
+	MTXCB			*p_lastmtx;		/* 最後にロックしたミューテックス */
+	TSKCTXB			tskctxb;		/* タスクコンテキストブロック */
 } TCB;
 
 /*
- *  å®è¡ç¶æ
-ã®ã¿ã¹ã¯
- *
- *  å®è¡ç¶æ
-ã®ã¿ã¹ã¯ï¼ï¼ãã­ã»ããµãã³ã³ãã­ã¹ããæã£ã¦ããã¿ã¹ã¯ï¼ã®
- *  TCBãæããã¤ã³ã¿ï¼å®è¡ç¶æ
-ã®ã¿ã¹ã¯ããªãå ´åã¯NULLã«ããï¼
- *
- *  ãµã¼ãã¹ã³ã¼ã«ã®å¦çä¸­ã§ï¼èªã¿ã¹ã¯ï¼ãµã¼ãã¹ã³ã¼ã«ãå¼ã³åºããã¿ã¹
- *  ã¯ï¼ã«é¢ããæ
-å ±ãåç
-§ããå ´åã¯p_runtskãä½¿ãï¼p_runtskãæ¸ãæã
- *  ãã®ã¯ï¼ãã£ã¹ãããã£ï¼ã¨åæåå¦çï¼ã®ã¿ã§ããï¼
+ *  実行状態のタスク
+ *
+ *  実行状態のタスク（＝プロセッサがコンテキストを持っているタスク）の
+ *  TCBを指すポインタ．実行状態のタスクがない場合はNULLにする．
+ *
+ *  サービスコールの処理中で，自タスク（サービスコールを呼び出したタス
+ *  ク）に関する情報を参照する場合はp_runtskを使う．p_runtskを書き換え
+ *  るのは，ディスパッチャ（と初期化処理）のみである．
  */
 extern TCB	*p_runtsk;
 
 /*
- *  å®è¡ãã¹ãã¿ã¹ã¯
- *
- *  å®è¡ãã¹ãã¿ã¹ã¯ã®TCBãæããã¤ã³ã¿ï¼å®è¡ã§ããã¿ã¹ã¯ããªãå ´åã¯
- *  NULLã«ããï¼
- *
- *  p_runtskã¯ï¼éå¸¸ã¯p_schedtskã¨ä¸è´ãã¦ãããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ã
- *  å®è¡ä¸­ã¯ï¼ä¸è´ãã¦ããã¨ã¯éããªãï¼å²è¾¼ã¿åªå
-åº¦ãã¹ã¯å
-¨è§£é¤ã§ãªã
- *  ç¶æ
-ã®éã¨ãã£ã¹ãããç¦æ­¢ç¶æ
-ã®éï¼ããªãã¡ï¼dspflgãfalseã§ããéï¼
- *  ã¯ï¼p_schedtskãæ´æ°ããªãï¼
+ *  実行すべきタスク
+ *
+ *  実行すべきタスクのTCBを指すポインタ．実行できるタスクがない場合は
+ *  NULLにする．
+ *
+ *  p_runtskは，通常はp_schedtskと一致しているが，非タスクコンテキスト
+ *  実行中は，一致しているとは限らない．割込み優先度マスク全解除でない
+ *  状態の間とディスパッチ禁止状態の間（すなわち，dspflgがfalseである間）
+ *  は，p_schedtskを更新しない．
  */
 extern TCB	*p_schedtsk;
 
 /*
- *  ãã£ã¹ãããè¨±å¯ç¶æ
-
- *
- *  ãã£ã¹ãããè¨±å¯ç¶æ
-ã§ãããã¨ãç¤ºããã©ã°ï¼
+ *  ディスパッチ許可状態
+ *
+ *  ディスパッチ許可状態であることを示すフラグ．
  */
 extern bool_t	enadsp;
 
 /*
- *  ã¿ã¹ã¯ãã£ã¹ãããå¯è½ç¶æ
-
- *
- *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯å
-¨è§£é¤ç¶æ
-ã§ããï¼ãã£ã¹ãããè¨±å¯ç¶æ
-ã§ããï¼ãã£
- *  ã¹ãããç¦æ­¢ç¶æ
-ã§ãªãï¼ãã¨ãç¤ºããã©ã°ï¼ãã£ã¹ãããä¿çç¶æ
-ã§ãª
- *  ããã¨ã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãå®è¡ä¸­ã§ï¼CPUã­ãã¯ç¶æ
-ã§ãªãï¼dspflgã
- *  trueã§ãããã¨ã§å¤å¥ãããã¨ãã§ããï¼
+ *  タスクディスパッチ可能状態
+ *
+ *  割込み優先度マスク全解除状態であり，ディスパッチ許可状態である（ディ
+ *  スパッチ禁止状態でない）ことを示すフラグ．ディスパッチ保留状態でな
+ *  いことは，タスクコンテキスト実行中で，CPUロック状態でなく，dspflgが
+ *  trueであることで判別することができる．
  */
 extern bool_t	dspflg;
 
 /*
- *  ã¬ãã£ã­ã¥ã¼
- *
- *  ã¬ãã£ã­ã¥ã¼ã¯ï¼å®è¡ã§ããç¶æ
-ã®ã¿ã¹ã¯ãç®¡çããããã®ã­ã¥ã¼ã§ããï¼
- *  å®è¡ç¶æ
-ã®ã¿ã¹ã¯ãç®¡çãã¦ããããï¼ã¬ãã£ï¼å®è¡å¯è½ï¼ã­ã¥ã¼ã¨ãã
- *  åç§°ã¯æ­£ç¢ºã§ã¯ãªããï¼ã¬ãã£ã­ã¥ã¼ã¨ããåç§°ãå®çãã¦ããããï¼ã
- *  ã®åç§°ã§å¼ã¶ãã¨ã«ããï¼
- *
- *  ã¬ãã£ã­ã¥ã¼ã¯ï¼åªå
-åº¦ãã¨ã®ã¿ã¹ã¯ã­ã¥ã¼ã§æ§æããã¦ããï¼ã¿ã¹ã¯ã®
- *  TCBã¯ï¼è©²å½ããåªå
-åº¦ã®ã­ã¥ã¼ã«ç»é²ãããï¼
+ *  レディキュー
+ *
+ *  レディキューは，実行できる状態のタスクを管理するためのキューである．
+ *  実行状態のタスクも管理しているため，レディ（実行可能）キューという
+ *  名称は正確ではないが，レディキューという名称が定着しているため，こ
+ *  の名称で呼ぶことにする．
+ *
+ *  レディキューは，優先度ごとのタスクキューで構成されている．タスクの
+ *  TCBは，該当する優先度のキューに登録される．
  */
 extern QUEUE	ready_queue[TNUM_TPRI];
 
 /*
- *  ã¬ãã£ã­ã¥ã¼ãµã¼ãã®ããã®ãããããã
- *
- *  ã¬ãã£ã­ã¥ã¼ã®ãµã¼ããå¹çããè¡ãããã«ï¼åªå
-åº¦ãã¨ã®ã¿ã¹ã¯ã­ã¥ã¼
- *  ã«ã¿ã¹ã¯ãå
-¥ã£ã¦ãããã©ãããç¤ºããããããããç¨æãã¦ããï¼ãã
- *  ãããããä½¿ããã¨ã§ï¼ã¡ã¢ãªã¢ã¯ã»ã¹ã®åæ°ãæ¸ãããã¨ãã§ãããï¼
- *  ãããæä½å½ä»¤ãå
-
-å®ãã¦ããªããã­ã»ããµã§ï¼åªå
-åº¦ã®æ®µéæ°ãå°ãªã
- *  å ´åã«ã¯ï¼ããããããæä½ã®ãªã¼ãã¼ãããã®ããã«ï¼éã«å¹çãè½ã¡
- *  ãå¯è½æ§ãããï¼
- *
- *  åªå
-åº¦ã16æ®µéã§ãããã¨ãä»®å®ãã¦ããããï¼uint16_tåã¨ãã¦ããï¼
+ *  レディキューサーチのためのビットマップ
+ *
+ *  レディキューのサーチを効率よく行うために，優先度ごとのタスクキュー
+ *  にタスクが入っているかどうかを示すビットマップを用意している．ビッ
+ *  トマップを使うことで，メモリアクセスの回数を減らすことができるが，
+ *  ビット操作命令が充実していないプロセッサで，優先度の段階数が少ない
+ *  場合には，ビットマップ操作のオーバーヘッドのために，逆に効率が落ち
+ *  る可能性もある．
+ *
+ *  優先度が16段階であることを仮定しているため，uint16_t型としている．
  */
 extern uint16_t	ready_primap;
 
 /*
- *  ä½¿ç¨ãã¦ããªãTCBã®ãªã¹ã
+ *  使用していないTCBのリスト
  */
 extern QUEUE	free_tcb;
 
 /*
- *  ã¿ã¹ã¯IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *  タスクIDの最大値（kernel_cfg.c）
  */
 extern const ID	tmax_tskid;
@@ -527,5 +332,5 @@
 
 /*
- *  ã¿ã¹ã¯åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  タスク初期化ブロックのエリア（kernel_cfg.c）
  */
 extern const TINIB	tinib_table[];
@@ -533,15 +338,15 @@
 
 /*
- *  ã¿ã¹ã¯çæé åºãã¼ãã«ï¼kernel_cfg.cï¼
+ *  タスク生成順序テーブル（kernel_cfg.c）
  */
 extern const ID	torder_table[];
 
 /*
- *  TCBã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ *  TCBのエリア（kernel_cfg.c）
  */
 extern TCB	tcb_table[];
 
 /*
- *  ã¿ã¹ã¯ã®æ°
+ *  タスクの数
  */
 #define tnum_tsk	((uint_t)(tmax_tskid - TMIN_TSKID + 1))
@@ -549,5 +354,5 @@
 
 /*
- *  ã¿ã¹ã¯IDããTCBãåãåºãããã®ãã¯ã­
+ *  タスクIDからTCBを取り出すためのマクロ
  */
 #define INDEX_TSK(tskid)	((uint_t)((tskid) - TMIN_TSKID))
@@ -555,103 +360,79 @@
 
 /*
- *  TCBããã¿ã¹ã¯IDãåãåºãããã®ãã¯ã­
+ *  TCBからタスクIDを取り出すためのマクロ
  */
 #define	TSKID(p_tcb)	((ID)(((p_tcb) - tcb_table) + TMIN_TSKID))
 
 /*
- *  ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®åæå
+ *  タスク管理モジュールの初期化
  */
 extern void	initialize_task(void);
 
 /*
- *  æé«åªå
-é ä½ã¿ã¹ã¯ã®ãµã¼ã
- *
- *  ã¬ãã£ã­ã¥ã¼ä¸­ã®æé«åªå
-é ä½ã®ã¿ã¹ã¯ããµã¼ããï¼ãã®TCBã¸ã®ãã¤ã³ã¿
- *  ãè¿ãï¼ã¬ãã£ã­ã¥ã¼ãç©ºã®å ´åã«ã¯ï¼ãã®é¢æ°ãå¼ã³åºãã¦ã¯ãªããªãï¼
+ *  最高優先順位タスクのサーチ
+ *
+ *  レディキュー中の最高優先順位のタスクをサーチし，そのTCBへのポインタ
+ *  を返す．レディキューが空の場合には，この関数を呼び出してはならない．
  */
 extern TCB	*search_schedtsk(void);
 
 /*
- *  å®è¡ã§ããç¶æ
-ã¸ã®é·ç§»
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãã¬ãã£ã­ã¥ã¼ã«æ¿å
-¥ããï¼ã¬ãã£ã­ã¥ã¼ã«æ¿å
-¥
- *  ããã¿ã¹ã¯ã®åªå
-åº¦ãï¼å®è¡ãã¹ãã¿ã¹ã¯ã®åªå
-åº¦ãããé«ãå ´åã¯ï¼å®
- *  è¡ãã¹ãã¿ã¹ã¯ãæ´æ°ããï¼
+ *  実行できる状態への遷移
+ *
+ *  p_tcbで指定されるタスクをレディキューに挿入する．レディキューに挿入
+ *  したタスクの優先度が，実行すべきタスクの優先度よりも高い場合は，実
+ *  行すべきタスクを更新する．
  */
 extern void	make_runnable(TCB *p_tcb);
 
 /*
- *  å®è¡ã§ããç¶æ
-ããä»ã®ç¶æ
-ã¸ã®é·ç§»
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãã¬ãã£ã­ã¥ã¼ããåé¤ããï¼p_tcbã§æå®ãã
- *  ã¿ã¹ã¯ãå®è¡ãã¹ãã¿ã¹ã¯ã§ãã£ãå ´åã«ã¯ï¼å®è¡ãã¹ãã¿ã¹ã¯ãæ´æ°ã
- *  ãï¼
+ *  実行できる状態から他の状態への遷移
+ *
+ *  p_tcbで指定されるタスクをレディキューから削除する．p_tcbで指定した
+ *  タスクが実行すべきタスクであった場合には，実行すべきタスクを更新す
+ *  る．
  */
 extern void	make_non_runnable(TCB *p_tcb);
 
 /*
- *  ä¼æ­¢ç¶æ
-ã¸ã®é·ç§»
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ã®ç¶æ
-ãä¼æ­¢ç¶æ
-ã¨ããï¼ã¾ãï¼ã¿ã¹ã¯ã®èµ·å
- *  æã«åæåãã¹ãå¤æ°ã®åæåã¨ï¼ã¿ã¹ã¯èµ·åã®ããã®ã³ã³ãã­ã¹ããè¨­
- *  å®ããï¼
+ *  休止状態への遷移
+ *
+ *  p_tcbで指定されるタスクの状態を休止状態とする．また，タスクの起動
+ *  時に初期化すべき変数の初期化と，タスク起動のためのコンテキストを設
+ *  定する．
  */
 extern void	make_dormant(TCB *p_tcb);
 
 /*
- *  ä¼æ­¢ç¶æ
-ããå®è¡ã§ããç¶æ
-ã¸ã®é·ç§»
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ã®ç¶æ
-ãä¼æ­¢ç¶æ
-ããå®è¡ã§ããç¶æ
-ã¨ããï¼
+ *  休止状態から実行できる状態への遷移
+ *
+ *  p_tcbで指定されるタスクの状態を休止状態から実行できる状態とする．
  */
 extern void	make_active(TCB *p_tcb);
 
 /*
- *  ã¿ã¹ã¯ã®åªå
-åº¦ã®å¤æ´
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ã®åªå
-åº¦ãnewpriï¼å
-é¨è¡¨ç¾ï¼ã«å¤æ´ããï¼ã¾ãï¼
- *  å¿
-è¦ãªå ´åã«ã¯ï¼å®è¡ãã¹ãã¿ã¹ã¯ãæ´æ°ããï¼
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ã®åªå
-é ä½ã¯ï¼åªå
-åº¦ãåãã¿ã¹ã¯ã®ä¸­ã§ï¼
- *  mtxmodeãfalseã®æã¯æä½ï¼mtxmodeãtrueã®æã¯æé«ã¨ããï¼
+ *  タスクの優先度の変更
+ *
+ *  p_tcbで指定されるタスクの優先度をnewpri（内部表現）に変更する．また，
+ *  必要な場合には，実行すべきタスクを更新する．
+ *
+ *  p_tcbで指定されるタスクの優先順位は，優先度が同じタスクの中で，
+ *  mtxmodeがfalseの時は最低，mtxmodeがtrueの時は最高とする．
  */
 extern void	change_priority(TCB *p_tcb, uint_t newpri, bool_t mtxmode);
 
 /*
- *  ã¬ãã£ã­ã¥ã¼ã®åè»¢
- *
- *  ã¬ãã£ã­ã¥ã¼ä¸­ã®ï¼p_queueã§æå®ãããã¿ã¹ã¯ã­ã¥ã¼ãåè»¢ãããï¼ã¾ãï¼
- *  å¿
-è¦ãªå ´åã«ã¯ï¼å®è¡ãã¹ãã¿ã¹ã¯ãæ´æ°ããï¼
+ *  レディキューの回転
+ *
+ *  レディキュー中の，p_queueで指定されるタスクキューを回転させる．また，
+ *  必要な場合には，実行すべきタスクを更新する．
  */
 extern void	rotate_ready_queue(QUEUE *p_queue);
 
 /*
- *  ã¿ã¹ã¯ã®çµäºå¦ç
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãçµäºãããå¦çãè¡ãï¼ã¿ã¹ã¯ã®èµ·åè¦æ±ã­ã¥ã¼
- *  ã¤ã³ã°æ°ã0ã§ãªãå ´åã«ã¯ï¼ååº¦èµ·åããããã®å¦çãè¡ãï¼
+ *  タスクの終了処理
+ *
+ *  p_tcbで指定されるタスクを終了させる処理を行う．タスクの起動要求キュー
+ *  イング数が0でない場合には，再度起動するための処理を行う．
  */
 extern void	task_terminate(TCB *p_tcb);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task.trb	(revision 321)
@@ -9,53 +9,38 @@
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   $Id: task.trb 668 2016-03-03 13:57:53Z ertl-hiro $
+#   $Id$
 # 
 
 #
-#		ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®çæã¹ã¯ãªãã
+#		タスク管理モジュールの生成スクリプト
 #
 
@@ -66,32 +51,32 @@
 
   def prepare(key, params)
-    # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+    # パラメータが省略された時のデフォルト値の設定
     params[:stk] ||= "NULL"
 
-    # tskatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1028ï¼½
-    #ï¼TA_ACTï¼TA_NOACTQUEï¼TARGET_TSKATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    # tskatrが無効の場合（E_RSATR）［NGKI1028］
+    #（TA_ACT，TA_NOACTQUE，TARGET_TSKATR以外のビットがセットされている場合）
     if (params[:tskatr] & ~($TA_ACT|$TA_NOACTQUE|$TARGET_TSKATR)) != 0
       error_illegal_id("E_RSATR", params, :tskatr, :tskid)
     end
 
-    # (TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)ã§ãªãå ´åï¼»NGKI1034ï¼½
+    # (TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)でない場合［NGKI1034］
     if !($TMIN_TPRI <= params[:itskpri] && params[:itskpri] <= $TMAX_TPRI)
       error_illegal_id("E_PAR", params, :itskpri, :tskid)
     end
 
-    # stkszãã¿ã¼ã²ããå®ç¾©ã®æå°å¤ï¼TARGET_MIN_STKSZï¼æªå®ç¾©ã®å ´åã¯1ï¼
-    # ãããå°ããå ´åï¼»NGKI1042ï¼½
+    # stkszがターゲット定義の最小値（TARGET_MIN_STKSZ，未定義の場合は1）
+    # よりも小さい場合［NGKI1042］
     if params[:stksz] < $TARGET_MIN_STKSZ
       error_wrong_id("E_PAR", params, :stksz, :tskid, "too small")
     end
 
-    # ã¹ã¿ãã¯é åã®è¨­å®ï¼»NGKI1041ï¼½
+    # スタック領域の設定［NGKI1041］
     if params[:stk] == "NULL"
-      # ã¹ã¿ãã¯é åã®çæï¼»NGKI1049ï¼½
+      # スタック領域の生成［NGKI1049］
       stkName = "_kernel_stack_#{params[:tskid]}"
       params[:tinib_stksz] = AllocStack(stkName, params[:stksz])
       params[:tinib_stk] = stkName
     else
-      # stkszãã¹ã¿ãã¯é åã®ãµã¤ãºã¨ãã¦æ­£ãããªãå ´åï¼»NGKI1056ï¼½
+      # stkszがスタック領域のサイズとして正しくない場合［NGKI1056］
       if (params[:stksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
         error_wrong_id("E_PAR", params, :stksz, :tskid, "not aligned")
@@ -116,6 +101,5 @@
 
 #
-#  ã¿ã¹ã¯ç®¡çã«é¢ããæ
-å ±ã®çæ
+#  タスク管理に関する情報の生成
 #
 $kernelCfgC.comment_header("Task Management Functions")
@@ -125,5 +109,5 @@
 TaskObject.new.generate()
 
-# ã¿ã¹ã¯çæé åºãã¼ãã«ã®çæ
+# タスク生成順序テーブルの生成
 $kernelCfgC.add("const ID _kernel_torder_table[TNUM_STSKID] = { ")
 $kernelCfgC.append("\t")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task_manage.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task_manage.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task_manage.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¿ã¹ã¯ç®¡çæ©è½
+ *		タスク管理機能
  */
 
@@ -67,5 +52,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_ACRE_TSK_ENTER
@@ -134,15 +119,13 @@
 
 /*
- *  ã¿ã¹ã¯ã®çæ
+ *  タスクの生成
  *
- *  pk_ctsk->exinfã¯ï¼ã¨ã©ã¼ãã§ãã¯ãããï¼ä¸åº¦ããåç
-§ããªãããï¼ã­ã¼
- *  ã«ã«å¤æ°ã«ã³ãã¼ããå¿
-è¦ããªãï¼éä¸­ã§æ¸ãæãã£ã¦ãæ¯éããªãï¼ï¼
+ *  pk_ctsk->exinfは，エラーチェックをせず，一度しか参照しないため，ロー
+ *  カル変数にコピーする必要がない（途中で書き換わっても支障がない）．
  */
 #ifdef TOPPERS_acre_tsk
 
 #ifndef TARGET_MIN_STKSZ
-#define TARGET_MIN_STKSZ	1U		/* æªå®ç¾©ã®å ´åã¯0ã§ãªããã¨ããã§ãã¯ */
+#define TARGET_MIN_STKSZ	1U		/* 未定義の場合は0でないことをチェック */
 #endif /* TARGET_MIN_STKSZ */
 
@@ -223,5 +206,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®åé¤ï¼»NGKI1100ï¼½
+ *  タスクの削除［NGKI1100］
  */
 #ifdef TOPPERS_del_tsk
@@ -235,14 +218,14 @@
 
 	LOG_DEL_TSK_ENTER(tskid);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI1101ï¼½ï¼»NGKI1102ï¼½*/
-	CHECK_ID(VALID_TSKID(tskid));				/*ï¼»NGKI1103ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI1101］［NGKI1102］*/
+	CHECK_ID(VALID_TSKID(tskid));				/*［NGKI1103］*/
 	p_tcb = get_tcb(tskid);
 
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI1104ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI1104］*/
 	}
 	else if (tskid <= tmax_stskid || !TSTAT_DORMANT(p_tcb->tstat)) {
-		ercd = E_OBJ;							/*ï¼»NGKI1106ï¼½ï¼»NGKI1107ï¼½*/
+		ercd = E_OBJ;							/*［NGKI1106］［NGKI1107］*/
 	}
 	else {
@@ -251,9 +234,9 @@
 		term_tskinictxb(&(p_tinib->tskinictxb));
 #else /* USE_TSKINICTXB */
-		if ((p_tinib->tskatr & TA_MEMALLOC) != 0U) {	/*ï¼»NGKI1109ï¼½*/
+		if ((p_tinib->tskatr & TA_MEMALLOC) != 0U) {	/*［NGKI1109］*/
 			kernel_free(p_tinib->stk);
 		}
 #endif /* USE_TSKINICTXB */
-		p_tinib->tskatr = TA_NOEXS;				/*ï¼»NGKI1108ï¼½*/
+		p_tinib->tskatr = TA_NOEXS;				/*［NGKI1108］*/
 		queue_insert_prev(&free_tcb, &(p_tcb->task_queue));
 		ercd = E_OK;
@@ -269,5 +252,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®èµ·åï¼»NGKI3529ï¼½
+ *  タスクの起動［NGKI3529］
  */
 #ifdef TOPPERS_act_tsk
@@ -280,10 +263,10 @@
 
 	LOG_ACT_TSK_ENTER(tskid);
-	CHECK_UNL();								/*ï¼»NGKI1114ï¼½*/
+	CHECK_UNL();								/*［NGKI1114］*/
 	if (tskid == TSK_SELF && !sense_context()) {
-		p_tcb = p_runtsk;						/*ï¼»NGKI1121ï¼½*/
-	}
-	else {
-		CHECK_ID(VALID_TSKID(tskid));			/*ï¼»NGKI1115ï¼½*/
+		p_tcb = p_runtsk;						/*［NGKI1121］*/
+	}
+	else {
+		CHECK_ID(VALID_TSKID(tskid));			/*［NGKI1115］*/
 		p_tcb = get_tcb(tskid);
 	}
@@ -291,8 +274,8 @@
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI1116ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI1116］*/
 	}
 	else if (TSTAT_DORMANT(p_tcb->tstat)) {
-		make_active(p_tcb);						/*ï¼»NGKI1118ï¼½*/
+		make_active(p_tcb);						/*［NGKI1118］*/
 		if (p_runtsk != p_schedtsk) {
 			if (!sense_context()) {
@@ -306,8 +289,8 @@
 	}
 	else if ((p_tcb->p_tinib->tskatr & TA_NOACTQUE) != 0U || p_tcb->actque) {
-		ercd = E_QOVR;			   				/*ï¼»NGKI3528ï¼½*/
-	}
-	else {
-		p_tcb->actque = true;					/*ï¼»NGKI3527ï¼½*/
+		ercd = E_QOVR;			   				/*［NGKI3528］*/
+	}
+	else {
+		p_tcb->actque = true;					/*［NGKI3527］*/
 		ercd = E_OK;
 	}
@@ -322,5 +305,5 @@
 
 /*
- *  ã¿ã¹ã¯èµ·åè¦æ±ã®ã­ã£ã³ã»ã«ï¼»NGKI1138ï¼½
+ *  タスク起動要求のキャンセル［NGKI1138］
  */
 #ifdef TOPPERS_can_act
@@ -333,10 +316,10 @@
 
 	LOG_CAN_ACT_ENTER(tskid);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI1139ï¼½ï¼»NGKI1140ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI1139］［NGKI1140］*/
 	if (tskid == TSK_SELF) {
-		p_tcb = p_runtsk;						/*ï¼»NGKI1146ï¼½*/
-	}
-	else {
-		CHECK_ID(VALID_TSKID(tskid));			/*ï¼»NGKI1141ï¼½*/
+		p_tcb = p_runtsk;						/*［NGKI1146］*/
+	}
+	else {
+		CHECK_ID(VALID_TSKID(tskid));			/*［NGKI1141］*/
 		p_tcb = get_tcb(tskid);
 	}
@@ -344,9 +327,9 @@
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI1142ï¼½*/
-	}
-	else {
-		ercd = p_tcb->actque ? 1 : 0;			/*ï¼»NGKI1144ï¼½*/
-		p_tcb->actque = false;					/*ï¼»NGKI1144ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI1142］*/
+	}
+	else {
+		ercd = p_tcb->actque ? 1 : 0;			/*［NGKI1144］*/
+		p_tcb->actque = false;					/*［NGKI1144］*/
 	}
 	unlock_cpu();
@@ -360,7 +343,5 @@
 
 /*
- *  ã¿ã¹ã¯ç¶æ
-ã®åç
-§ï¼»NGKI3613ï¼½
+ *  タスク状態の参照［NGKI3613］
  */
 #ifdef TOPPERS_get_tst
@@ -374,10 +355,10 @@
 
 	LOG_GET_TST_ENTER(tskid, p_tskstat);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI3614ï¼½ï¼»NGKI3615ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI3614］［NGKI3615］*/
 	if (tskid == TSK_SELF) {
-		p_tcb = p_runtsk;						/*ï¼»NGKI3621ï¼½*/
-	}
-	else {
-		CHECK_ID(VALID_TSKID(tskid));			/*ï¼»NGKI3616ï¼½*/
+		p_tcb = p_runtsk;						/*［NGKI3621］*/
+	}
+	else {
+		CHECK_ID(VALID_TSKID(tskid));			/*［NGKI3616］*/
 		p_tcb = get_tcb(tskid);
 	}
@@ -386,8 +367,8 @@
 	tstat = p_tcb->tstat;
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI3617ï¼½*/
-	}
-	else {
-		if (TSTAT_DORMANT(tstat)) {				/*ï¼»NGKI3620ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI3617］*/
+	}
+	else {
+		if (TSTAT_DORMANT(tstat)) {				/*［NGKI3620］*/
 			*p_tskstat = TTS_DMT;
 		}
@@ -421,6 +402,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®ãã¼ã¹åªå
-åº¦ã®å¤æ´ï¼»NGKI1183ï¼½
+ *  タスクのベース優先度の変更［NGKI1183］
  */
 #ifdef TOPPERS_chg_pri
@@ -434,17 +414,17 @@
 
 	LOG_CHG_PRI_ENTER(tskid, tskpri);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI1184ï¼½ï¼»NGKI1185ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI1184］［NGKI1185］*/
 	if (tskid == TSK_SELF) {
-		p_tcb = p_runtsk;						/*ï¼»NGKI1198ï¼½*/
-	}
-	else {
-		CHECK_ID(VALID_TSKID(tskid));			/*ï¼»NGKI1187ï¼½*/
+		p_tcb = p_runtsk;						/*［NGKI1198］*/
+	}
+	else {
+		CHECK_ID(VALID_TSKID(tskid));			/*［NGKI1187］*/
 		p_tcb = get_tcb(tskid);
 	}
 	if (tskpri == TPRI_INI) {
-		newbpri = p_tcb->p_tinib->ipriority;	/*ï¼»NGKI1199ï¼½*/
-	}
-	else {
-		CHECK_PAR(VALID_TPRI(tskpri));			/*ï¼»NGKI1188ï¼½*/
+		newbpri = p_tcb->p_tinib->ipriority;	/*［NGKI1199］*/
+	}
+	else {
+		CHECK_PAR(VALID_TPRI(tskpri));			/*［NGKI1188］*/
 		newbpri = INT_PRIORITY(tskpri);
 	}
@@ -452,20 +432,20 @@
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI1189ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI1189］*/
 	}
 	else if (TSTAT_DORMANT(p_tcb->tstat)) {
-		ercd = E_OBJ;							/*ï¼»NGKI1191ï¼½*/
+		ercd = E_OBJ;							/*［NGKI1191］*/
 	}
 	else if ((p_tcb->p_lastmtx != NULL || TSTAT_WAIT_MTX(p_tcb->tstat))
 						&& !((*mtxhook_check_ceilpri)(p_tcb, newbpri))) {
-		ercd = E_ILUSE;							/*ï¼»NGKI1201ï¼½*/
-	}
-	else {
-		p_tcb->bpriority = newbpri;				/*ï¼»NGKI1192ï¼½*/
+		ercd = E_ILUSE;							/*［NGKI1201］*/
+	}
+	else {
+		p_tcb->bpriority = newbpri;				/*［NGKI1192］*/
 		if (p_tcb->p_lastmtx == NULL || !((*mtxhook_scan_ceilmtx)(p_tcb))) {
-			change_priority(p_tcb, newbpri, false);		/*ï¼»NGKI1193ï¼½*/
+			change_priority(p_tcb, newbpri, false);		/*［NGKI1193］*/
 			if (p_runtsk != p_schedtsk) {
 				dispatch();
-			}									/*ï¼»NGKI1197ï¼½*/
+			}									/*［NGKI1197］*/
 		}
 		ercd = E_OK;
@@ -481,7 +461,5 @@
 
 /*
- *  ã¿ã¹ã¯åªå
-åº¦ã®åç
-§ï¼»NGKI1202ï¼½
+ *  タスク優先度の参照［NGKI1202］
  */
 #ifdef TOPPERS_get_pri
@@ -494,10 +472,10 @@
 
 	LOG_GET_PRI_ENTER(tskid, p_tskpri);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI1203ï¼½ï¼»NGKI1204ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI1203］［NGKI1204］*/
 	if (tskid == TSK_SELF) {
-		p_tcb = p_runtsk;						/*ï¼»NGKI1211ï¼½*/
-	}
-	else {
-		CHECK_ID(VALID_TSKID(tskid));			/*ï¼»NGKI1205ï¼½*/
+		p_tcb = p_runtsk;						/*［NGKI1211］*/
+	}
+	else {
+		CHECK_ID(VALID_TSKID(tskid));			/*［NGKI1205］*/
 		p_tcb = get_tcb(tskid);
 	}
@@ -505,11 +483,11 @@
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI1206ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI1206］*/
 	}
 	else if (TSTAT_DORMANT(p_tcb->tstat)) {
-		ercd = E_OBJ;							/*ï¼»NGKI1209ï¼½*/
-	}
-	else {
-		*p_tskpri = EXT_TSKPRI(p_tcb->priority);	/*ï¼»NGKI1210ï¼½*/
+		ercd = E_OBJ;							/*［NGKI1209］*/
+	}
+	else {
+		*p_tskpri = EXT_TSKPRI(p_tcb->priority);	/*［NGKI1210］*/
 		ercd = E_OK;
 	}
@@ -524,7 +502,5 @@
 
 /*
- *  èªã¿ã¹ã¯ã®æ¡å¼µæ
-å ±ã®åç
-§ï¼»NGKI1212ï¼½
+ *  自タスクの拡張情報の参照［NGKI1212］
  */
 #ifdef TOPPERS_get_inf
@@ -536,8 +512,8 @@
 
 	LOG_GET_INF_ENTER(p_exinf);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI1213ï¼½ï¼»NGKI1214ï¼½*/
-
-	lock_cpu();
-	*p_exinf = p_runtsk->p_tinib->exinf;		/*ï¼»NGKI1216ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI1213］［NGKI1214］*/
+
+	lock_cpu();
+	*p_exinf = p_runtsk->p_tinib->exinf;		/*［NGKI1216］*/
 	ercd = E_OK;
 	unlock_cpu();
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task_refer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task_refer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task_refer.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,7 +40,5 @@
 
 /*
- *		ã¿ã¹ã¯ã®ç¶æ
-åç
-§æ©è½
+ *		タスクの状態参照機能
  */
 
@@ -73,5 +56,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_REF_TSK_ENTER
@@ -84,7 +67,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®ç¶æ
-åç
-§
+ *  タスクの状態参照
  */
 #ifdef TOPPERS_ref_tsk
@@ -115,6 +96,5 @@
 		if (TSTAT_DORMANT(tstat)) {
 			/*
-	 		 *  å¯¾è±¡ã¿ã¹ã¯ãä¼æ­¢ç¶æ
-ã®å ´å
+	 		 *  対象タスクが休止状態の場合
 			 */
 			pk_rtsk->tskstat = TTS_DMT;
@@ -122,6 +102,5 @@
 		else {
 			/*
-	 		 *  ã¿ã¹ã¯ç¶æ
-ã®ååºã
+	 		 *  タスク状態の取出し
 			 */
 			if (TSTAT_SUSPENDED(tstat)) {
@@ -144,7 +123,5 @@
 
 			/*
-	 		 *  ç¾å¨åªå
-åº¦ã¨ãã¼ã¹åªå
-åº¦ã®ååºã
+	 		 *  現在優先度とベース優先度の取出し
 			 */
 			pk_rtsk->tskpri = EXT_TSKPRI(p_tcb->priority);
@@ -153,7 +130,5 @@
 			if (TSTAT_WAITING(tstat)) {
 				/*
-		 		 *  å¾
-ã¡è¦å ã¨å¾
-ã¡å¯¾è±¡ã®ãªãã¸ã§ã¯ãã®IDã®ååºã
+		 		 *  待ち要因と待ち対象のオブジェクトのIDの取出し
 				 */
 				switch (tstat) {
@@ -207,5 +182,5 @@
 
 				/*
-		 		 *  ã¿ã¤ã ã¢ã¦ãããã¾ã§ã®æéã®ååºã
+		 		 *  タイムアウトするまでの時間の取出し
 				 */
 				if (p_tcb->p_winfo->p_tmevtb != NULL) {
@@ -219,17 +194,15 @@
 
 			/*
-	 		 *  èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®ååºã
+	 		 *  起床要求キューイング数の取出し
 			 */
 			pk_rtsk->wupcnt = p_tcb->wupque ? 1U : 0U;
 
 			/*
-			 *  ã¿ã¹ã¯çµäºè¦æ±ç¶æ
-ã®ååºã
+			 *  タスク終了要求状態の取出し
 			 */
 			pk_rtsk->raster = p_tcb->raster;
 
 			/*
-			 *  ã¿ã¹ã¯çµäºç¦æ­¢ç¶æ
-ã®ååºã
+			 *  タスク終了禁止状態の取出し
 			 */
 			pk_rtsk->dister = !(p_tcb->enater);
@@ -237,5 +210,5 @@
 
 		/*
-		 *  èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®ååºã
+		 *  起動要求キューイング数の取出し
 		 */
 		pk_rtsk->actcnt = p_tcb->actque ? 1U : 0U;
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task_sync.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task_sync.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task_sync.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¿ã¹ã¯ä»å±åææ©è½
+ *		タスク付属同期機能
  */
 
@@ -66,5 +51,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_SLP_TSK_ENTER
@@ -133,6 +118,5 @@
 
 /*
- *  èµ·åºå¾
-ã¡
+ *  起床待ち
  */
 #ifdef TOPPERS_slp_tsk
@@ -172,6 +156,5 @@
 
 /*
- *  èµ·åºå¾
-ã¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  起床待ち（タイムアウトあり）
  */
 #ifdef TOPPERS_tslp_tsk
@@ -216,5 +199,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®èµ·åº
+ *  タスクの起床
  */
 #ifdef TOPPERS_wup_tsk
@@ -272,5 +255,5 @@
 
 /*
- *  ã¿ã¹ã¯èµ·åºè¦æ±ã®ã­ã£ã³ã»ã«
+ *  タスク起床要求のキャンセル
  */
 #ifdef TOPPERS_can_wup
@@ -313,7 +296,5 @@
 
 /*
- *  å¾
-ã¡ç¶æ
-ã®å¼·å¶è§£é¤
+ *  待ち状態の強制解除
  */
 #ifdef TOPPERS_rel_wai
@@ -362,7 +343,5 @@
 
 /*
- *  å¼·å¶å¾
-ã¡ç¶æ
-ã¸ã®ç§»è¡ï¼»NGKI1298ï¼½
+ *  強制待ち状態への移行［NGKI1298］
  */
 #ifdef TOPPERS_sus_tsk
@@ -375,32 +354,29 @@
 
 	LOG_SUS_TSK_ENTER(tskid);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI1299ï¼½ï¼»NGKI1300ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI1299］［NGKI1300］*/
 	if (tskid == TSK_SELF) {
-		p_tcb = p_runtsk;						/*ï¼»NGKI1310ï¼½*/
-	}
-	else {
-		CHECK_ID(VALID_TSKID(tskid));			/*ï¼»NGKI1302ï¼½*/
+		p_tcb = p_runtsk;						/*［NGKI1310］*/
+	}
+	else {
+		CHECK_ID(VALID_TSKID(tskid));			/*［NGKI1302］*/
 		p_tcb = get_tcb(tskid);
 	}
 
 	lock_cpu();
-	if (p_tcb == p_runtsk && !dspflg) {			/*ï¼»NGKI1311ï¼½ï¼»NGKI3604ï¼½*/
+	if (p_tcb == p_runtsk && !dspflg) {			/*［NGKI1311］［NGKI3604］*/
 		ercd = E_CTX;
 	}
 	else if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI1303ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI1303］*/
 	}
 	else if (TSTAT_DORMANT(p_tcb->tstat)) {
-		ercd = E_OBJ;							/*ï¼»NGKI1305ï¼½*/
+		ercd = E_OBJ;							/*［NGKI1305］*/
 	}
 	else if (p_tcb->raster) {
-		ercd = E_RASTER;						/*ï¼»NGKI3605ï¼½*/
+		ercd = E_RASTER;						/*［NGKI3605］*/
 	}
 	else if (TSTAT_RUNNABLE(p_tcb->tstat)) {
 		/*
-		 *  å®è¡ã§ããç¶æ
-ããå¼·å¶å¾
-ã¡ç¶æ
-ã¸ã®é·ç§»ï¼»NGKI1307ï¼½
+		 *  実行できる状態から強制待ち状態への遷移［NGKI1307］
 		 */
 		p_tcb->tstat = TS_SUSPENDED;
@@ -413,13 +389,9 @@
 	}
 	else if (TSTAT_SUSPENDED(p_tcb->tstat)) {
-		ercd = E_QOVR;							/*ï¼»NGKI1306ï¼½*/
+		ercd = E_QOVR;							/*［NGKI1306］*/
 	}
 	else {
 		/*
-		 *  å¾
-ã¡ç¶æ
-ããäºéå¾
-ã¡ç¶æ
-ã¸ã®é·ç§»ï¼»NGKI1308ï¼½
+		 *  待ち状態から二重待ち状態への遷移［NGKI1308］
 		 */
 		p_tcb->tstat |= TS_SUSPENDED;
@@ -437,7 +409,5 @@
 
 /*
- *  å¼·å¶å¾
-ã¡ç¶æ
-ããã®åé
+ *  強制待ち状態からの再開
  */
 #ifdef TOPPERS_rsm_tsk
@@ -463,8 +433,5 @@
 	else if (!TSTAT_WAITING(p_tcb->tstat)) {
 		/*
-		 *  å¼·å¶å¾
-ã¡ç¶æ
-ããå®è¡ã§ããç¶æ
-ã¸ã®é·ç§»
+		 *  強制待ち状態から実行できる状態への遷移
 		 */
 		p_tcb->tstat = TS_RUNNABLE;
@@ -478,9 +445,5 @@
 	else {
 		/*
-		 *  äºéå¾
-ã¡ç¶æ
-ããå¾
-ã¡ç¶æ
-ã¸ã®é·ç§»
+		 *  二重待ち状態から待ち状態への遷移
 		 */
 		p_tcb->tstat &= ~TS_SUSPENDED;
@@ -498,6 +461,5 @@
 
 /*
- *  èªã¿ã¹ã¯ã®é
-å»¶
+ *  自タスクの遅延
  */
 #ifdef TOPPERS_dly_tsk
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task_term.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task_term.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task_term.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¿ã¹ã¯çµäºæ©è½
+ *		タスク終了機能
  */
 
@@ -66,5 +51,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_EXT_TSK_ENTER
@@ -117,5 +102,5 @@
 
 /*
- *  èªã¿ã¹ã¯ã®çµäºï¼»NGKI1162ï¼½
+ *  自タスクの終了［NGKI1162］
  */
 #ifdef TOPPERS_ext_tsk
@@ -128,14 +113,11 @@
 
 	LOG_EXT_TSK_ENTER();
-	CHECK_TSKCTX();							/*ï¼»NGKI1164ï¼½*/
+	CHECK_TSKCTX();							/*［NGKI1164］*/
 
 	if (sense_lock()) {
 		/*
-		 *  CPUã­ãã¯ç¶æ
-ã§ext_tskãå¼ã°ããå ´åã¯ï¼CPUã­ãã¯ãè§£é¤ã
-		 *  ã¦ããã¿ã¹ã¯ãçµäºããï¼å®è£
-ä¸ã¯ï¼ãµã¼ãã¹ã³ã¼ã«å
-ã§ã®CPU
-		 *  ã­ãã¯ãçç¥ããã°ããã ãï¼ï¼»NGKI1168ï¼½
+		 *  CPUロック状態でext_tskが呼ばれた場合は，CPUロックを解除し
+		 *  てからタスクを終了する．実装上は，サービスコール内でのCPU
+		 *  ロックを省略すればよいだけ．［NGKI1168］
 		 */
 	}
@@ -148,8 +130,6 @@
 		if (!enadsp) {
 			/*
-			 *  ãã£ã¹ãããç¦æ­¢ç¶æ
-ã§ext_tskãå¼ã°ããå ´åã¯ï¼ãã£ã¹ãã
-			 *  ãè¨±å¯ç¶æ
-ã«ãã¦ããã¿ã¹ã¯ãçµäºããï¼ï¼»NGKI1168ï¼½
+			 *  ディスパッチ禁止状態でext_tskが呼ばれた場合は，ディスパッ
+			 *  チ許可状態にしてからタスクを終了する．［NGKI1168］
 			 */
 			enadsp = true;
@@ -157,9 +137,7 @@
 		if (intpri != TIPM_ENAALL) {
 			/*
-			 *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ï¼IPMï¼ãTIPM_ENAALLä»¥å¤ã®ç¶æ
-ã§
-			 *  ext_tskãå¼ã°ããå ´åã¯ï¼IPMãTIPM_ENAALLã«ãã¦ããã¿ã¹
-			 *  ã¯ãçµäºããï¼ï¼»NGKI1168ï¼½
+			 *  割込み優先度マスク（IPM）がTIPM_ENAALL以外の状態で
+			 *  ext_tskが呼ばれた場合は，IPMをTIPM_ENAALLにしてからタス
+			 *  クを終了する．［NGKI1168］
 			 */
 			t_set_ipm(TIPM_ENAALL);
@@ -169,7 +147,7 @@
 	}
 
-	task_terminate(p_runtsk);				/* ï¼»NGKI3449ï¼½*/
-	exit_and_dispatch();					/* ï¼»NGKI1169ï¼½*/
-	ercd = E_SYS;							/* ï¼»NGKI1163ï¼½*/
+	task_terminate(p_runtsk);				/* ［NGKI3449］*/
+	exit_and_dispatch();					/* ［NGKI1169］*/
+	ercd = E_SYS;							/* ［NGKI1163］*/
 
   error_exit:
@@ -181,5 +159,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®çµäºè¦æ±ï¼»NGKI3469ï¼½
+ *  タスクの終了要求［NGKI3469］
  */
 #ifdef TOPPERS_ras_ter
@@ -192,18 +170,18 @@
 
 	LOG_RAS_TER_ENTER(tskid);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI3470ï¼½ï¼»NGKI3471ï¼½*/
-	CHECK_ID(VALID_TSKID(tskid));				/*ï¼»NGKI3472ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI3470］［NGKI3471］*/
+	CHECK_ID(VALID_TSKID(tskid));				/*［NGKI3472］*/
 	p_tcb = get_tcb(tskid);
-	CHECK_ILUSE(p_tcb != p_runtsk);				/*ï¼»NGKI3475ï¼½*/
+	CHECK_ILUSE(p_tcb != p_runtsk);				/*［NGKI3475］*/
 
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI3473ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI3473］*/
 	}
 	else if (TSTAT_DORMANT(p_tcb->tstat)) {
-		ercd = E_OBJ;							/*ï¼»NGKI3476ï¼½*/
+		ercd = E_OBJ;							/*［NGKI3476］*/
 	}
 	else if (p_tcb->enater) {
-		task_terminate(p_tcb);					/*ï¼»NGKI3477ï¼½*/
+		task_terminate(p_tcb);					/*［NGKI3477］*/
 		if (p_runtsk != p_schedtsk) {
 			dispatch();
@@ -212,12 +190,12 @@
 	}
 	else {
-		p_tcb->raster = true;					/*ï¼»NGKI3478ï¼½*/
+		p_tcb->raster = true;					/*［NGKI3478］*/
 		if (!TSTAT_RUNNABLE(p_tcb->tstat)) {
 			if (TSTAT_WAITING(p_tcb->tstat)) {
-				wait_dequeue_wobj(p_tcb);		/*ï¼»NGKI3479ï¼½*/
+				wait_dequeue_wobj(p_tcb);		/*［NGKI3479］*/
 				wait_dequeue_tmevtb(p_tcb);
-				p_tcb->p_winfo->wercd = E_RASTER;	/*ï¼»NGKI3480ï¼½*/
+				p_tcb->p_winfo->wercd = E_RASTER;	/*［NGKI3480］*/
 			}
-			p_tcb->tstat = TS_RUNNABLE;			/*ï¼»NGKI3606ï¼½*/
+			p_tcb->tstat = TS_RUNNABLE;			/*［NGKI3606］*/
 			LOG_TSKSTAT(p_tcb);
 			make_runnable(p_tcb);
@@ -238,5 +216,5 @@
 
 /*
- *  ã¿ã¹ã¯çµäºã®ç¦æ­¢ï¼»NGKI3482ï¼½
+ *  タスク終了の禁止［NGKI3482］
  */
 #ifdef TOPPERS_dis_ter
@@ -248,8 +226,8 @@
 
 	LOG_DIS_TER_ENTER();
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI3483ï¼½ï¼»NGKI3484ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI3483］［NGKI3484］*/
 
 	lock_cpu();
-	p_runtsk->enater = false;					/*ï¼»NGKI3486ï¼½*/
+	p_runtsk->enater = false;					/*［NGKI3486］*/
 	ercd = E_OK;
 	unlock_cpu();
@@ -263,5 +241,5 @@
 
 /*
- *  ã¿ã¹ã¯çµäºã®è¨±å¯ï¼»NGKI3487ï¼½
+ *  タスク終了の許可［NGKI3487］
  */
 #ifdef TOPPERS_ena_ter
@@ -273,5 +251,5 @@
 
 	LOG_ENA_TER_ENTER();
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI3488ï¼½ï¼»NGKI3489ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI3488］［NGKI3489］*/
 
 	lock_cpu();
@@ -282,5 +260,5 @@
 	}
 	else {
-		p_runtsk->enater = true;				/*ï¼»NGKI3491ï¼½*/
+		p_runtsk->enater = true;				/*［NGKI3491］*/
 		ercd = E_OK;
 	}
@@ -295,7 +273,5 @@
 
 /*
- *  ã¿ã¹ã¯çµäºç¦æ­¢ç¶æ
-ã®åç
-§ï¼»NGKI3494ï¼½
+ *  タスク終了禁止状態の参照［NGKI3494］
  */
 #ifdef TOPPERS_sns_ter
@@ -308,9 +284,9 @@
 	LOG_SNS_TER_ENTER();
 	/*
-	 *  enaterãå¤æ´ã§ããã®ã¯èªã¿ã¹ã¯ã®ã¿ã§ããããï¼æä»å¶å¾¡ããã«èª­
-	 *  ãã§ãåé¡ãªãï¼
+	 *  enaterを変更できるのは自タスクのみであるため，排他制御せずに読
+	 *  んでも問題ない．
 	 */
 	state = (p_runtsk != NULL && p_runtsk->enater) ? false : true;
-												/*ï¼»NGKI3495ï¼½ï¼»NGKI3496ï¼½*/
+												/*［NGKI3495］［NGKI3496］*/
 	LOG_SNS_TER_LEAVE(state);
 	return(state);
@@ -320,5 +296,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®å¼·å¶çµäºï¼»NGKI1170ï¼½
+ *  タスクの強制終了［NGKI1170］
  */
 #ifdef TOPPERS_ter_tsk
@@ -331,18 +307,18 @@
 
 	LOG_TER_TSK_ENTER(tskid);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI1171ï¼½ï¼»NGKI1172ï¼½*/
-	CHECK_ID(VALID_TSKID(tskid));				/*ï¼»NGKI1173ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI1171］［NGKI1172］*/
+	CHECK_ID(VALID_TSKID(tskid));				/*［NGKI1173］*/
 	p_tcb = get_tcb(tskid);
-	CHECK_ILUSE(p_tcb != p_runtsk);				/*ï¼»NGKI1176ï¼½*/
+	CHECK_ILUSE(p_tcb != p_runtsk);				/*［NGKI1176］*/
 
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;							/*ï¼»NGKI1174ï¼½*/
+		ercd = E_NOEXS;							/*［NGKI1174］*/
 	}
 	else if (TSTAT_DORMANT(p_tcb->tstat)) {
-		ercd = E_OBJ;							/*ï¼»NGKI1177ï¼½*/
+		ercd = E_OBJ;							/*［NGKI1177］*/
 	}
 	else {
-		task_terminate(p_tcb);					/*ï¼»NGKI3450ï¼½*/
+		task_terminate(p_tcb);					/*［NGKI3450］*/
 		if (p_runtsk != p_schedtsk) {
 			dispatch();
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/taskhook.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/taskhook.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/taskhook.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *  ã¿ã¹ã¯ç®¡çã«é¢é£ããããã¯ã«ã¼ãã³
+ *  タスク管理に関連するフックルーチン
  */
 
@@ -63,5 +48,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹æ©è½ã®ããã®ããã¯ã«ã¼ãã³
+ *  ミューテックス機能のためのフックルーチン
  */
 #ifdef TOPPERS_mtxhook
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/taskhook.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/taskhook.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/taskhook.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *  ã¿ã¹ã¯ç®¡çã«é¢é£ããããã¯ã«ã¼ãã³
+ *  タスク管理に関連するフックルーチン
  */
 
@@ -65,5 +50,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹æ©è½ã®ããã®ããã¯ã«ã¼ãã³
+ *  ミューテックス機能のためのフックルーチン
  */
 extern bool_t	(*mtxhook_check_ceilpri)(TCB *p_tcb, uint_t bpriority);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¿ã¤ã ã¤ãã³ãç®¡çã¢ã¸ã¥ã¼ã«
+ *		タイムイベント管理モジュール
  */
 
@@ -64,5 +49,5 @@
 
 /*
- *  TSTEP_HRTCNTã®ç¯å²ãã§ãã¯
+ *  TSTEP_HRTCNTの範囲チェック
  */
 #if TSTEP_HRTCNT > 4000U
@@ -71,5 +56,5 @@
 
 /*
- *  HRTCNT_BOUNDã®ç¯å²ãã§ãã¯
+ *  HRTCNT_BOUNDの範囲チェック
  */
 #if HRTCNT_BOUND >= 4294000000U
@@ -84,30 +69,27 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããã¼ãæä½ãã¯ã­
+ *  タイムイベントヒープ操作マクロ
  */
 #define PARENT(p_tmevtn)	(tmevt_heap + (((p_tmevtn) - tmevt_heap) >> 1))
-													/* è¦ªãã¼ããæ±ãã */
+													/* 親ノードを求める */
 #define LCHILD(p_tmevtn)	(tmevt_heap + (((p_tmevtn) - tmevt_heap) << 1))
-													/* å·¦ã®å­ãã¼ããæ±ãã */
-/*
- *  ã¿ã¤ã ã¤ãã³ããã¼ãä¸­ã®å
-é ­ã®ãã¼ã
+													/* 左の子ノードを求める */
+/*
+ *  タイムイベントヒープ中の先頭のノード
  */
 #define p_top_tmevtn	(&(tmevt_heap[1]))
 #define top_evttim		(tmevt_heap[1].p_tmevtb->evttim)
-										/* å
-é ­ã®ã¿ã¤ã ã¤ãã³ãã®çºçæå» */
-/*
- *  ã¿ã¤ã ã¤ãã³ããã¼ãä¸­ã®æå¾ã®ãã¼ã
+										/* 先頭のタイムイベントの発生時刻 */
+/*
+ *  タイムイベントヒープ中の最後のノード
  */
 #define p_last_tmevtn	(tmevt_heap[0].p_last)
 
 /*
- *  ã¤ãã³ãæå»ã®åå¾é¢ä¿ã®å¤å®ï¼»ASPD1009ï¼½
+ *  イベント時刻の前後関係の判定［ASPD1009］
  *
- *  ã¤ãã³ãæå»ã¯ï¼boundary_evttimããã®ç¸å¯¾å¤ã§æ¯è¼ããï¼ããªãã¡ï¼
- *  boundary_evttimãæãæ©ãæå»ï¼boundary_evttim-1ãæãé
-ãæå»ã¨ã¿
- *  ãªãã¦æ¯è¼ããï¼
+ *  イベント時刻は，boundary_evttimからの相対値で比較する．すなわち，
+ *  boundary_evttimを最も早い時刻，boundary_evttim-1が最も遅い時刻とみ
+ *  なして比較する．
  */
 #define EVTTIM_ADVANCE(t)	((t) - boundary_evttim)
@@ -118,45 +100,45 @@
 
 /*
- *  å¢çã¤ãã³ãæå»ï¼»ASPD1008ï¼½
+ *  境界イベント時刻［ASPD1008］
  */
 EVTTIM	boundary_evttim;
 
 /*
- *  æå¾ã«ç¾å¨æå»ãç®åºããæç¹ã§ã®ã¤ãã³ãæå»ï¼»ASPD1012ï¼½
+ *  最後に現在時刻を算出した時点でのイベント時刻［ASPD1012］
  */
 EVTTIM	current_evttim;
 
 /*
- *  æå¾ã«ç¾å¨æå»ãç®åºããæç¹ã§ã®é«åè§£è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ï¼»ASPD1012ï¼½
+ *  最後に現在時刻を算出した時点での高分解能タイマのカウント値［ASPD1012］
  */
 HRTCNT	current_hrtcnt;
 
 /*
- *  æãé²ãã§ããæã®ã¤ãã³ãæå»ï¼»ASPD1041ï¼½
+ *  最も進んでいた時のイベント時刻［ASPD1041］
  */
 EVTTIM	monotonic_evttim;
 
 /*
- *  ã·ã¹ãã æå»ã®ãªãã»ããï¼»ASPD1043ï¼½
+ *  システム時刻のオフセット［ASPD1043］
  */
 SYSTIM	systim_offset;
 
 /*
- *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®å¦çä¸­ã§ãããã¨ãç¤ºããã©ã°ï¼»ASPD1032ï¼½
+ *  高分解能タイマ割込みの処理中であることを示すフラグ［ASPD1032］
  */
 bool_t	in_signal_time;
 
 /*
- *  ã¿ã¤ã ã¤ãã³ãç®¡çã¢ã¸ã¥ã¼ã«ã®åæåï¼»ASPD1061ï¼½
+ *  タイムイベント管理モジュールの初期化［ASPD1061］
  */
 void
 initialize_tmevt(void)
 {
-	current_evttim = 0U;							/*ï¼»ASPD1047ï¼½*/
+	current_evttim = 0U;							/*［ASPD1047］*/
 	boundary_evttim = current_evttim - BOUNDARY_MARGIN;
-													/*ï¼»ASPD1048ï¼½*/
-	monotonic_evttim = 0U;							/*ï¼»ASPD1046ï¼½*/
-	systim_offset = 0U;								/*ï¼»ASPD1044ï¼½*/
-	in_signal_time = false;							/*ï¼»ASPD1033ï¼½*/
+													/*［ASPD1048］*/
+	monotonic_evttim = 0U;							/*［ASPD1046］*/
+	systim_offset = 0U;								/*［ASPD1044］*/
+	in_signal_time = false;							/*［ASPD1033］*/
 	p_last_tmevtn = tmevt_heap;
 }
@@ -165,12 +147,9 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ãã®æ¿å
-¥ä½ç½®ãä¸åãã«æ¢ç´¢
+ *  タイムイベントの挿入位置を上向きに探索
  *
- *  æå»evttimã«çºçããã¿ã¤ã ã¤ãã³ããæ¿å
-¥ãããã¼ããç©ºããããã«ï¼
- *  ãã¼ãã®ä¸ã«åãã£ã¦ç©ºãã¼ããç§»åãããï¼ç§»ååã®ç©ºãã¼ãã®ä½ç½®ã
- *  p_tmevtnã«æ¸¡ãã¨ï¼ç§»åå¾ã®ç©ºãã¼ãã®ä½ç½®ï¼ããªãã¡æ¿å
-¥ä½ç½®ï¼ãè¿ãï¼
+ *  時刻evttimに発生するタイムイベントを挿入するノードを空けるために，
+ *  ヒープの上に向かって空ノードを移動させる．移動前の空ノードの位置を
+ *  p_tmevtnに渡すと，移動後の空ノードの位置（すなわち挿入位置）を返す．
  */
 #ifdef TOPPERS_tmeup
@@ -183,7 +162,6 @@
 	while (p_tmevtn > p_top_tmevtn) {
 		/*
-		 *  è¦ªãã¼ãã®ã¤ãã³ãçºçæå»ã®æ¹ãæ©ãï¼ã¾ãã¯åãï¼ãªãã°ï¼
-		 *  p_tmevtnãæ¿å
-¥ä½ç½®ãªã®ã§ã«ã¼ããæããï¼
+		 *  親ノードのイベント発生時刻の方が早い（または同じ）ならば，
+		 *  p_tmevtnが挿入位置なのでループを抜ける．
 		 */
 		p_parent = PARENT(p_tmevtn);
@@ -193,5 +171,5 @@
 
 		/*
-		 *  è¦ªãã¼ããp_tmevtnã®ä½ç½®ã«ç§»åãããï¼
+		 *  親ノードをp_tmevtnの位置に移動させる．
 		 */
 		*p_tmevtn = *p_parent;
@@ -199,5 +177,5 @@
 
 		/*
-		 *  p_tmevtnãè¦ªãã¼ãã®ä½ç½®ã«æ´æ°ï¼
+		 *  p_tmevtnを親ノードの位置に更新．
 		 */
 		p_tmevtn = p_parent;
@@ -209,12 +187,9 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ãã®æ¿å
-¥ä½ç½®ãä¸åãã«æ¢ç´¢
+ *  タイムイベントの挿入位置を下向きに探索
  *
- *  æå»evttimã«çºçããã¿ã¤ã ã¤ãã³ããæ¿å
-¥ãããã¼ããç©ºããããã«ï¼
- *  ãã¼ãã®ä¸ã«åãã£ã¦ç©ºãã¼ããç§»åãããï¼ç§»ååã®ç©ºãã¼ãã®ä½ç½®ã
- *  p_tmevtnã«æ¸¡ãã¨ï¼ç§»åå¾ã®ç©ºãã¼ãã®ä½ç½®ï¼ããªãã¡æ¿å
-¥ä½ç½®ï¼ãè¿ãï¼
+ *  時刻evttimに発生するタイムイベントを挿入するノードを空けるために，
+ *  ヒープの下に向かって空ノードを移動させる．移動前の空ノードの位置を
+ *  p_tmevtnに渡すと，移動後の空ノードの位置（すなわち挿入位置）を返す．
  */
 #ifdef TOPPERS_tmedown
@@ -227,7 +202,7 @@
 	while ((p_child = LCHILD(p_tmevtn)) <= p_last_tmevtn) {
 		/*
-		 *  å·¦å³ã®å­ãã¼ãã®ã¤ãã³ãçºçæå»ãæ¯è¼ãï¼æ©ãæ¹ã®å­ãã¼ã
-		 *  ã®ä½ç½®ãp_childã«è¨­å®ããï¼ä»¥ä¸ã®å­ãã¼ãã¯ï¼ããã§é¸ã°ãã
-		 *  æ¹ã®å­ãã¼ãã®ãã¨ï¼
+		 *  左右の子ノードのイベント発生時刻を比較し，早い方の子ノード
+		 *  の位置をp_childに設定する．以下の子ノードは，ここで選ばれた
+		 *  方の子ノードのこと．
 		 */
 		if (p_child + 1 <= p_last_tmevtn
@@ -238,8 +213,6 @@
 
 		/*
-		 *  å­ãã¼ãã®ã¤ãã³ãçºçæå»ã®æ¹ãé
-ãï¼ã¾ãã¯åãï¼ãªãã°ï¼
-		 *  p_tmevtnãæ¿å
-¥ä½ç½®ãªã®ã§ã«ã¼ããæããï¼
+		 *  子ノードのイベント発生時刻の方が遅い（または同じ）ならば，
+		 *  p_tmevtnが挿入位置なのでループを抜ける．
 		 */
 		if (EVTTIM_LE(evttim, p_child->p_tmevtb->evttim)) {
@@ -248,5 +221,5 @@
 
 		/*
-		 *  å­ãã¼ããp_tmevtnã®ä½ç½®ã«ç§»åãããï¼
+		 *  子ノードをp_tmevtnの位置に移動させる．
 		 */
 		*p_tmevtn = *p_child;
@@ -254,5 +227,5 @@
 
 		/*
-		 *  p_tmevtnãå­ãã¼ãã®ä½ç½®ã«æ´æ°ï¼
+		 *  p_tmevtnを子ノードの位置に更新．
 		 */
 		p_tmevtn = p_child;
@@ -264,8 +237,8 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããã¼ãã¸ã®è¿½å 
+ *  タイムイベントヒープへの追加
  *
- *  p_tmevtbã§æå®ããã¿ã¤ã ã¤ãã³ããã­ãã¯ãï¼ã¿ã¤ã ã¤ãã³ããã¼ãã«
- *  è¿½å ããï¼
+ *  p_tmevtbで指定したタイムイベントブロックを，タイムイベントヒープに
+ *  追加する．
  */
 Inline void
@@ -275,12 +248,10 @@
 
 	/*
-	 *  p_last_tmevtnãã¤ã³ã¯ãªã¡ã³ããï¼ããããä¸ã«æ¿å
-¥ä½ç½®ãæ¢ãï¼
+	 *  p_last_tmevtnをインクリメントし，そこから上に挿入位置を探す．
 	 */
 	p_tmevtn = tmevt_up(++p_last_tmevtn, p_tmevtb->evttim);
 
 	/*
-	 *  ã¿ã¤ã ã¤ãã³ããp_tmevtnã®ä½ç½®ã«æ¿å
-¥ããï¼
+	 *  タイムイベントをp_tmevtnの位置に挿入する．
 	 */ 
 	p_tmevtn->p_tmevtb = p_tmevtb;
@@ -289,5 +260,5 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããã¼ãããã®åé¤
+ *  タイムイベントヒープからの削除
  */
 Inline void
@@ -299,5 +270,5 @@
 
 	/*
-	 *  åé¤ã«ããã¿ã¤ã ã¤ãã³ããã¼ããç©ºã«ãªãå ´åã¯ä½ãããªãï¼
+	 *  削除によりタイムイベントヒープが空になる場合は何もしない．
 	 */
 	if (--p_last_tmevtn < p_top_tmevtn) {
@@ -306,17 +277,13 @@
 
 	/*
-	 *  åé¤ãããã¼ãã®ä½ç½®ã«æå¾ã®ãã¼ãï¼p_last_tmevtn + 1 ã®ä½ç½®ã®
-	 *  ãã¼ãï¼ãæ¿å
-¥ãï¼ãããé©åãªä½ç½®ã¸ç§»åãããï¼å®éã«ã¯ï¼æå¾
-	 *  ã®ãã¼ããå®éã«æ¿å
-¥ããã®ã§ã¯ãªãï¼åé¤ãããã¼ãã®ä½ç½®ãç©ºãã¼
-	 *  ãã«ãªãã®ã§ï¼æå¾ã®ãã¼ããæ¿å
-¥ãã¹ãä½ç½®ã¸åãã¦ç©ºãã¼ããç§»
-	 *  åãããï¼
+	 *  削除したノードの位置に最後のノード（p_last_tmevtn + 1 の位置の
+	 *  ノード）を挿入し，それを適切な位置へ移動させる．実際には，最後
+	 *  のノードを実際に挿入するのではなく，削除したノードの位置が空ノー
+	 *  ドになるので，最後のノードを挿入すべき位置へ向けて空ノードを移
+	 *  動させる．
 	 *
-	 *  æå¾ã®ãã¼ãã®ã¤ãã³ãçºçæå»ãï¼åé¤ãããã¼ãã®è¦ªãã¼ãã®ã¤
-	 *  ãã³ãçºçæå»ããåã®å ´åã«ã¯ï¼ä¸ã«åãã£ã¦æ¿å
-¥ä½ç½®ãæ¢ãï¼ã
-	 *  ãã§ãªãå ´åã«ã¯ï¼ä¸ã«åãã£ã¦æ¢ãï¼
+	 *  最後のノードのイベント発生時刻が，削除したノードの親ノードのイ
+	 *  ベント発生時刻より前の場合には，上に向かって挿入位置を探す．そ
+	 *  うでない場合には，下に向かって探す．
 	 */
 	event_evttim = (p_last_tmevtn + 1)->p_tmevtb->evttim;
@@ -325,5 +292,5 @@
 						(p_parent = PARENT(p_tmevtn))->p_tmevtb->evttim)) {
 		/*
-		 *  è¦ªãã¼ããp_tmevtnã®ä½ç½®ã«ç§»åãããï¼
+		 *  親ノードをp_tmevtnの位置に移動させる．
 		 */
 		*p_tmevtn = *p_parent;
@@ -331,6 +298,5 @@
 
 		/*
-		 *  åé¤ãããã¼ãã®è¦ªãã¼ãããä¸ã«åãã£ã¦æ¿å
-¥ä½ç½®ãæ¢ãï¼
+		 *  削除したノードの親ノードから上に向かって挿入位置を探す．
 		 */
 		p_tmevtn = tmevt_up(p_parent, event_evttim);
@@ -338,6 +304,5 @@
 	else {
 		/*
-		 *  åé¤ãããã¼ãããä¸ã«åãã£ã¦æ¿å
-¥ä½ç½®ãæ¢ãï¼
+		 *  削除したノードから下に向かって挿入位置を探す．
 		 */
 		p_tmevtn = tmevt_down(p_tmevtn, event_evttim);
@@ -345,6 +310,5 @@
 
 	/*
-	 *  æå¾ã®ãã¼ããp_tmevtnã®ä½ç½®ã«æ¿å
-¥ããï¼
+	 *  最後のノードをp_tmevtnの位置に挿入する．
 	 */ 
 	*p_tmevtn = *(p_last_tmevtn + 1);
@@ -353,6 +317,5 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããã¼ãã®å
-é ­ã®ãã¼ãã®åé¤
+ *  タイムイベントヒープの先頭のノードの削除
  */
 Inline TMEVTB *
@@ -364,16 +327,13 @@
 
 	/*
-	 *  åé¤ã«ããã¿ã¤ã ã¤ãã³ããã¼ããç©ºã«ãªãå ´åã¯ä½ãããªãï¼
+	 *  削除によりタイムイベントヒープが空になる場合は何もしない．
 	 */
 	if (--p_last_tmevtn >= p_top_tmevtn) {
 		/*
-		 *  ã«ã¼ããã¼ãã«æå¾ã®ãã¼ãï¼p_last_tmevtn + 1 ã®ä½ç½®ã®ãã¼
-		 *  ãï¼ãæ¿å
-¥ãï¼ãããé©åãªä½ç½®ã¸ç§»åãããï¼å®éã«ã¯ï¼æå¾
-		 *  ã®ãã¼ããå®éã«æ¿å
-¥ããã®ã§ã¯ãªãï¼ã«ã¼ããã¼ããç©ºãã¼ã
-		 *  ã«ãªãã®ã§ï¼æå¾ã®ãã¼ããæ¿å
-¥ãã¹ãä½ç½®ã¸åãã¦ç©ºãã¼ãã
-		 *  ç§»åãããï¼
+		 *  ルートノードに最後のノード（p_last_tmevtn + 1 の位置のノー
+		 *  ド）を挿入し，それを適切な位置へ移動させる．実際には，最後
+		 *  のノードを実際に挿入するのではなく，ルートノードが空ノード
+		 *  になるので，最後のノードを挿入すべき位置へ向けて空ノードを
+		 *  移動させる．
 		 */
 		event_evttim = (p_last_tmevtn + 1)->p_tmevtb->evttim;
@@ -381,6 +341,5 @@
 
 		/*
-		 *  æå¾ã®ãã¼ããp_tmevtnã®ä½ç½®ã«æ¿å
-¥ããï¼
+		 *  最後のノードをp_tmevtnの位置に挿入する．
 		 */ 
 		*p_tmevtn = *(p_last_tmevtn + 1);
@@ -391,5 +350,5 @@
 
 /*
- *  ç¾å¨ã®ã¤ãã³ãæå»ã®æ´æ°
+ *  現在のイベント時刻の更新
  */
 #ifdef TOPPERS_tmecur
@@ -401,6 +360,6 @@
 	EVTTIM	previous_evttim;
 
-	new_hrtcnt = target_hrt_get_current();			/*ï¼»ASPD1013ï¼½*/
-	hrtcnt_advance = new_hrtcnt - current_hrtcnt;	/*ï¼»ASPD1014ï¼½*/
+	new_hrtcnt = target_hrt_get_current();			/*［ASPD1013］*/
+	hrtcnt_advance = new_hrtcnt - current_hrtcnt;	/*［ASPD1014］*/
 #ifdef TCYC_HRTCNT
 	if (new_hrtcnt < current_hrtcnt) {
@@ -410,15 +369,15 @@
 
 	previous_evttim = current_evttim;
-	current_evttim += (EVTTIM) hrtcnt_advance;		/*ï¼»ASPD1015ï¼½*/
-	current_hrtcnt = new_hrtcnt;					/*ï¼»ASPD1016ï¼½*/
-	boundary_evttim = current_evttim - BOUNDARY_MARGIN;	/*ï¼»ASPD1011ï¼½*/
+	current_evttim += (EVTTIM) hrtcnt_advance;		/*［ASPD1015］*/
+	current_hrtcnt = new_hrtcnt;					/*［ASPD1016］*/
+	boundary_evttim = current_evttim - BOUNDARY_MARGIN;	/*［ASPD1011］*/
 
 	if (monotonic_evttim - previous_evttim < (EVTTIM) hrtcnt_advance) {
 #ifdef UINT64_MAX
 		if (current_evttim < monotonic_evttim) {
-			systim_offset += 1LLU << 32;			/*ï¼»ASPD1045ï¼½*/
+			systim_offset += 1LLU << 32;			/*［ASPD1045］*/
 		}
 #endif /* UINT64_MAX */
-		monotonic_evttim = current_evttim;			/*ï¼»ASPD1042ï¼½*/
+		monotonic_evttim = current_evttim;			/*［ASPD1042］*/
 	}
 }
@@ -427,8 +386,7 @@
 
 /*
- *  ç¾å¨ã®ã¤ãã³ãæå»ãé
-ãæ¹ã«ä¸¸ããã¤ãã³ãæå»ã®ç®åºï¼»ASPD1027ï¼½
+ *  現在のイベント時刻を遅い方に丸めたイベント時刻の算出［ASPD1027］
  *
- *  ç¾å¨ã®ã¤ãã³ãæå»ãæ´æ°ããå¾ã«å¼ã¶ãã¨ãæ³å®ãã¦ããï¼
+ *  現在のイベント時刻を更新した後に呼ぶことを想定している．
  */
 Inline EVTTIM
@@ -439,5 +397,5 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®çºçã¿ã¤ãã³ã°ã®è¨­å®
+ *  高分解能タイマ割込みの発生タイミングの設定
  */
 #ifdef TOPPERS_tmeset
@@ -449,16 +407,16 @@
 
 	if (p_last_tmevtn < p_top_tmevtn) {
-		target_hrt_set_event(HRTCNT_BOUND);			/*ï¼»ASPD1007ï¼½*/
+		target_hrt_set_event(HRTCNT_BOUND);			/*［ASPD1007］*/
 	}
 	else if (EVTTIM_LE(top_evttim, current_evttim)) {
-		target_hrt_raise_event();					/*ï¼»ASPD1017ï¼½*/
+		target_hrt_raise_event();					/*［ASPD1017］*/
 	}
 	else {
 		hrtcnt = (HRTCNT)(top_evttim - current_evttim);
 		if (hrtcnt > HRTCNT_BOUND) {
-			target_hrt_set_event(HRTCNT_BOUND);		/*ï¼»ASPD1006ï¼½*/
+			target_hrt_set_event(HRTCNT_BOUND);		/*［ASPD1006］*/
 		}
 		else {
-			target_hrt_set_event(hrtcnt);			/*ï¼»ASPD1002ï¼½*/
+			target_hrt_set_event(hrtcnt);			/*［ASPD1002］*/
 		}
 	}
@@ -468,6 +426,5 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ãã¼ãã¸ã®æ¿å
-¥
+ *  タイムイベントブロックのヒープへの挿入
  */
 #ifdef TOPPERS_tmereg
@@ -482,5 +439,5 @@
 
 /*
- *  ç¸å¯¾æéæå®ã«ããã¿ã¤ã ã¤ãã³ãã®ç»é²
+ *  相対時間指定によるタイムイベントの登録
  *  
  */
@@ -491,5 +448,5 @@
 {
 	/*
-	 *  ç¾å¨ã®ã¤ãã³ãæå»ã¨ã¿ã¤ã ã¤ãã³ãã®çºçæå»ãæ±ããï¼»ASPD1026ï¼½ï¼
+	 *  現在のイベント時刻とタイムイベントの発生時刻を求める［ASPD1026］．
 	 */
 	update_current_evttim();
@@ -497,12 +454,11 @@
 
 	/*
-	 *  ã¿ã¤ã ã¤ãã³ããã­ãã¯ããã¼ãã«æ¿å
-¥ããï¼»ASPD1030ï¼½ï¼
+	 *  タイムイベントブロックをヒープに挿入する［ASPD1030］．
 	 */
 	tmevtb_insert(p_tmevtb);
 
 	/*
-	 *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®çºçã¿ã¤ãã³ã°ãè¨­å®ããï¼»ASPD1031ï¼½
-	 *  ï¼»ASPD1034ï¼½ï¼
+	 *  高分解能タイマ割込みの発生タイミングを設定する［ASPD1031］
+	 *  ［ASPD1034］．
 	 */
 	if (!in_signal_time && p_tmevtb->p_tmevtn == p_top_tmevtn) {
@@ -514,5 +470,5 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ãã®ç»é²è§£é¤
+ *  タイムイベントの登録解除
  */
 #ifdef TOPPERS_tmedeq
@@ -524,5 +480,5 @@
 
 	/*
-	 *  ã¿ã¤ã ã¤ãã³ããã­ãã¯ããã¼ãããåé¤ããï¼»ASPD1039ï¼½ï¼
+	 *  タイムイベントブロックをヒープから削除する［ASPD1039］．
 	 */
 	p_tmevtn = p_tmevtb->p_tmevtn;
@@ -530,5 +486,5 @@
 
 	/*
-	 *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®çºçã¿ã¤ãã³ã°ãè¨­å®ããï¼»ASPD1040ï¼½ï¼
+	 *  高分解能タイマ割込みの発生タイミングを設定する［ASPD1040］．
 	 */
 	if (!in_signal_time && p_tmevtn == p_top_tmevtn) {
@@ -541,5 +497,5 @@
 
 /*
- *  ã·ã¹ãã æå»ã®èª¿æ´æã®ã¨ã©ã¼ãã§ãã¯
+ *  システム時刻の調整時のエラーチェック
  */
 #ifdef TOPPERS_tmechk
@@ -549,8 +505,8 @@
 {
 	if (adjtim > 0) {
-		return(p_last_tmevtn >= p_top_tmevtn	/*ï¼»NGKI3588ï¼½*/
+		return(p_last_tmevtn >= p_top_tmevtn	/*［NGKI3588］*/
 					&& EVTTIM_LE(top_evttim, current_evttim - TMAX_ADJTIM));
 	}
-	else if (adjtim < 0) {						/*ï¼»NGKI3589ï¼½*/
+	else if (adjtim < 0) {						/*［NGKI3589］*/
 		return(monotonic_evttim - current_evttim >= -TMIN_ADJTIM);
 	}
@@ -561,5 +517,5 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããçºçããã¾ã§ã®æéã®è¨ç®
+ *  タイムイベントが発生するまでの時間の計算
  */
 #ifdef TOPPERS_tmeltim
@@ -571,6 +527,5 @@
 
 	/*
-	 *  ç¾å¨ã®ã¤ãã³ãæå»ãé
-ãæ¹ã«ä¸¸ããæå»ãæ±ããï¼»ASPD1050ï¼½ï¼
+	 *  現在のイベント時刻を遅い方に丸めた時刻を求める［ASPD1050］．
 	 */
 	update_current_evttim();
@@ -578,10 +533,10 @@
 
 	/*
-	 *  ã¿ã¤ã ã¤ãã³ãçºçã¾ã§ã®ç¸å¯¾æéãæ±ããï¼»ASPD1049ï¼½ï¼
+	 *  タイムイベント発生までの相対時間を求める［ASPD1049］．
 	 */
 	evttim = p_tmevtb->evttim;
 	if (EVTTIM_LE(evttim, current_evttim_ub)) {
 		/*
-		 *  ã¿ã¤ã ã¤ãã³ãã®çºçæå»ãéãã¦ããå ´åã«ã¯0ãè¿ãï¼»NGKI0552ï¼½ï¼
+		 *  タイムイベントの発生時刻を過ぎている場合には0を返す［NGKI0552］．
 		 */
 		return(0U);
@@ -595,5 +550,5 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®å¦ç
+ *  高分解能タイマ割込みの処理
  */
 #ifdef TOPPERS_sigtim
@@ -609,21 +564,21 @@
 
 	lock_cpu();
-	in_signal_time = true;							/*ï¼»ASPD1033ï¼½*/
+	in_signal_time = true;							/*［ASPD1033］*/
 
 	do {
 		/*
-		 *  ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããªããã°ã«ã¼ããæããï¼»ASPD1020ï¼½ï¼
+		 *  コールバック関数を呼び出さなければループを抜ける［ASPD1020］．
 		 */
 		callflag = false;
 
 		/*
-		 *  ç¾å¨ã®ã¤ãã³ãæå»ãæ±ããï¼»ASPD1022ï¼½ï¼
+		 *  現在のイベント時刻を求める［ASPD1022］．
 		 */
 		update_current_evttim();
 
 		/*
-		 *  çºçæå»ãcurrent_evttimä»¥åã®ã¿ã¤ã ã¤ãã³ããããã°ï¼ã¿ã¤
-		 *  ã ã¤ãã³ããã¼ãããåé¤ãï¼ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºã
-		 *  ï¼»ASPD1018ï¼½ï¼»ASPD1019ï¼½ï¼
+		 *  発生時刻がcurrent_evttim以前のタイムイベントがあれば，タイ
+		 *  ムイベントヒープから削除し，コールバック関数を呼び出す
+		 *  ［ASPD1018］［ASPD1019］．
 		 */
 		while (p_last_tmevtn >= p_top_tmevtn
@@ -633,12 +588,12 @@
 			callflag = true;
 		}
-	} while (callflag);								/*ï¼»ASPD1020ï¼½*/
-
-	/*
-	 *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®çºçã¿ã¤ãã³ã°ãè¨­å®ããï¼»ASPD1025ï¼½ï¼
+	} while (callflag);								/*［ASPD1020］*/
+
+	/*
+	 *  高分解能タイマ割込みの発生タイミングを設定する［ASPD1025］．
 	 */
 	set_hrt_event();
 
-	in_signal_time = false;							/*ï¼»ASPD1033ï¼½*/
+	in_signal_time = false;							/*［ASPD1033］*/
 	unlock_cpu();
 }
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã¿ã¤ã ã¤ãã³ãç®¡çã¢ã¸ã¥ã¼ã«
+ *		タイムイベント管理モジュール
  */
 
@@ -67,94 +52,90 @@
 
 /*
- *  ã¤ãã³ãæå»ã®ãã¼ã¿åã®å®ç¾©ï¼»ASPD1001ï¼½
- *
- *  ã¿ã¤ã ã¤ãã³ããã¼ãã«ç»é²ããã¿ã¤ã ã¤ãã³ãã®çºçæå»ãè¡¨ç¾ããã
- *  ãã®ãã¼ã¿åï¼ãªã¼ããããä½æ¸ã®ããã«ï¼32ãããã§æ±ãï¼
+ *  イベント時刻のデータ型の定義［ASPD1001］
+ *
+ *  タイムイベントヒープに登録するタイムイベントの発生時刻を表現するた
+ *  めのデータ型．オーバヘッド低減のために，32ビットで扱う．
  */
 typedef uint32_t	EVTTIM;
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããã¼ãä¸­ã®ãã¼ãã®ãã¼ã¿åã®åæ¹åç
-§
+ *  タイムイベントヒープ中のノードのデータ型の前方参照
  */
 typedef union time_event_node TMEVTN;
 
 /* 
- *  ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ãã¼ã¿åã®å®ç¾©
- */
-typedef void	(*CBACK)(void *);	/* ã³ã¼ã«ããã¯é¢æ°ã®å */
+ *  タイムイベントブロックのデータ型の定義
+ */
+typedef void	(*CBACK)(void *);	/* コールバック関数の型 */
 
 typedef struct time_event_block {
-	EVTTIM	evttim;			/* ã¿ã¤ã ã¤ãã³ãã®çºçæå» */
-	TMEVTN	*p_tmevtn;		/* ã¿ã¤ã ã¤ãã³ããã¼ãä¸­ã§ã®ä½ç½® */
-	CBACK	callback;		/* ã³ã¼ã«ããã¯é¢æ° */
-	void	*arg;			/* ã³ã¼ã«ããã¯é¢æ°ã¸æ¸¡ãå¼æ° */
+	EVTTIM	evttim;			/* タイムイベントの発生時刻 */
+	TMEVTN	*p_tmevtn;		/* タイムイベントヒープ中での位置 */
+	CBACK	callback;		/* コールバック関数 */
+	void	*arg;			/* コールバック関数へ渡す引数 */
 } TMEVTB;
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããã¼ãä¸­ã®ãã¼ãã®ãã¼ã¿åã®å®ç¾©
- *
- *  ã¿ã¤ã ã¤ãã³ããã¼ãã®å
-é ­ã®ãã¼ãï¼tmevt_heap[0]ï¼ã«ï¼æå¾ã®ä½¿ç¨é 
- *  åãæããã¤ã³ã¿ï¼p_lastï¼ãæ ¼ç´ãï¼ããä»¥éãã¿ã¤ã ã¤ãã³ããã¼ã
- *  ã¨ãã¦ä½¿ç¨ããï¼(tmevt_heap[0].p_last - tmevt_heap) ãï¼ã¿ã¤ã ã¤ã
- *  ã³ããã¼ãã«ç»é²ããã¦ããã¿ã¤ã ã¤ãã³ãã®æ°ã¨ãªãï¼
+ *  タイムイベントヒープ中のノードのデータ型の定義
+ *
+ *  タイムイベントヒープの先頭のノード（tmevt_heap[0]）に，最後の使用領
+ *  域を指すポインタ（p_last）を格納し，それ以降をタイムイベントヒープ
+ *  として使用する．(tmevt_heap[0].p_last - tmevt_heap) が，タイムイベ
+ *  ントヒープに登録されているタイムイベントの数となる．
  */
 union time_event_node {
-	TMEVTB	*p_tmevtb;		/* å¯¾å¿ããã¿ã¤ã ã¤ãã³ããã­ãã¯ */
-	TMEVTN	*p_last;		/* ã¿ã¤ã ã¤ãã³ããã¼ãã®æå¾ã®ä½¿ç¨é å */
+	TMEVTB	*p_tmevtb;		/* 対応するタイムイベントブロック */
+	TMEVTN	*p_last;		/* タイムイベントヒープの最後の使用領域 */
 };
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããã¼ãï¼kernel_cfg.cï¼
+ *  タイムイベントヒープ（kernel_cfg.c）
  */
 extern TMEVTN	tmevt_heap[];
 
 /*
- *  å¢çã¤ãã³ãæå»ï¼»ASPD1008ï¼½
+ *  境界イベント時刻［ASPD1008］
  */
 extern EVTTIM	boundary_evttim;
 
 /*
- *  ç¾å¨ã®ã¤ãã³ãæå»ã¨å¢çã¤ãã³ãæå»ã®å·®ï¼»ASPD1010ï¼½
+ *  現在のイベント時刻と境界イベント時刻の差［ASPD1010］
  */
 #define BOUNDARY_MARGIN		(200000000U)
 
 /*
- *  æå¾ã«ç¾å¨æå»ãç®åºããæç¹ã§ã®ã¤ãã³ãæå»ï¼»ASPD1012ï¼½
+ *  最後に現在時刻を算出した時点でのイベント時刻［ASPD1012］
  */
 extern EVTTIM	current_evttim;
 
 /*
- *  æå¾ã«ç¾å¨æå»ãç®åºããæç¹ã§ã®é«åè§£è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ï¼»ASPD1012ï¼½
+ *  最後に現在時刻を算出した時点での高分解能タイマのカウント値［ASPD1012］
  */
 extern HRTCNT	current_hrtcnt;
 
 /*
- *  æãé²ãã§ããæã®ã¤ãã³ãæå»ï¼»ASPD1041ï¼½
+ *  最も進んでいた時のイベント時刻［ASPD1041］
  */
 extern EVTTIM	monotonic_evttim;
 
 /*
- *  ã·ã¹ãã æå»ã®ãªãã»ããï¼»ASPD1043ï¼½
- *
- *  get_timã§åç
-§ããã·ã¹ãã æå»ã¨monotonic_evttimã®å·®ãä¿æããï¼
+ *  システム時刻のオフセット［ASPD1043］
+ *
+ *  get_timで参照するシステム時刻とmonotonic_evttimの差を保持する．
  */
 extern SYSTIM	systim_offset;
 
 /*
- *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®å¦çä¸­ã§ãããã¨ãç¤ºããã©ã°ï¼»ASPD1032ï¼½
+ *  高分解能タイマ割込みの処理中であることを示すフラグ［ASPD1032］
  */
 extern bool_t	in_signal_time;
 
 /*
- *  ã¿ã¤ã ã¤ãã³ãç®¡çã¢ã¸ã¥ã¼ã«ã®åæå
+ *  タイムイベント管理モジュールの初期化
  */
 extern void	initialize_tmevt(void);
 
 /*
- *  ã¿ã¤ã ã¤ãã³ãã®æ¿å
-¥ä½ç½®ã®æ¢ç´¢
+ *  タイムイベントの挿入位置の探索
  */
 extern TMEVTN	*tmevt_up(TMEVTN *p_tmevtn, EVTTIM evttim);
@@ -162,57 +143,57 @@
 
 /*
- *  ç¾å¨ã®ã¤ãã³ãæå»ã®æ´æ°
- *
- *  current_evttimã¨current_hrtcntãï¼ç¾å¨ã®å¤ã«æ´æ°ããï¼
+ *  現在のイベント時刻の更新
+ *
+ *  current_evttimとcurrent_hrtcntを，現在の値に更新する．
  */
 extern void		update_current_evttim(void);
 
 /*
- *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®çºçã¿ã¤ãã³ã°ã®è¨­å®
- *
- *  ç¾å¨ã®ã¤ãã³ãæå»ãåå¾ããå¾ã«å¼ã³åºããã¨ãæ³å®ãã¦ããï¼
+ *  高分解能タイマ割込みの発生タイミングの設定
+ *
+ *  現在のイベント時刻を取得した後に呼び出すことを想定している．
  */
 extern void		set_hrt_event(void);
 
 /*
- *  ã¿ã¤ã ã¤ãã³ãã®ç»é²
- *
- *  p_tmevtbã§æå®ããã¿ã¤ã ã¤ãã³ããã­ãã¯ãç»é²ããï¼ã¿ã¤ã ã¤ãã³ã
- *  ã®çºçæå»ï¼ã³ã¼ã«ããã¯é¢æ°ï¼ã³ã¼ã«ããã¯é¢æ°ã¸æ¸¡ãå¼æ°ã¯ï¼
- *  p_tmevtbãæãã¿ã¤ã ã¤ãã³ããã­ãã¯ä¸­ã«è¨­å®ãã¦ããï¼
+ *  タイムイベントの登録
+ *
+ *  p_tmevtbで指定したタイムイベントブロックを登録する．タイムイベント
+ *  の発生時刻，コールバック関数，コールバック関数へ渡す引数は，
+ *  p_tmevtbが指すタイムイベントブロック中に設定しておく．
  */
 extern void		tmevtb_register(TMEVTB *p_tmevtb);
 
 /*
- *  ç¸å¯¾æéæå®ã«ããã¿ã¤ã ã¤ãã³ãã®ç»é²
- *
- *  timeã§æå®ããç¸å¯¾æéãçµéããå¾ã«ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã
- *  ããã«ï¼p_tmevtbã§æå®ããã¿ã¤ã ã¤ãã³ããã­ãã¯ãç»é²ããï¼ã³ã¼ã«
- *  ããã¯é¢æ°ï¼ã³ã¼ã«ããã¯é¢æ°ã¸æ¸¡ãå¼æ°ã¯ï¼p_tmevtbãæãã¿ã¤ã ã¤ã
- *  ã³ããã­ãã¯ä¸­ã«è¨­å®ãã¦ããï¼
+ *  相対時間指定によるタイムイベントの登録
+ *
+ *  timeで指定した相対時間が経過した後にコールバック関数が呼び出される
+ *  ように，p_tmevtbで指定したタイムイベントブロックを登録する．コール
+ *  バック関数，コールバック関数へ渡す引数は，p_tmevtbが指すタイムイベ
+ *  ントブロック中に設定しておく．
  */
 extern void		tmevtb_enqueue(TMEVTB *p_tmevtb, RELTIM time);
 
 /*
- *  ã¿ã¤ã ã¤ãã³ãã®ç»é²è§£é¤
+ *  タイムイベントの登録解除
  */
 extern void		tmevtb_dequeue(TMEVTB *p_tmevtb);
 
 /*
- *  ã·ã¹ãã æå»ã®èª¿æ´æã®ã¨ã©ã¼ãã§ãã¯
- *
- *  adjtimã§æå®ãããæéã®åï¼ã·ã¹ãã æå»ãèª¿æ´ãã¦ãããå¤å®ããï¼
- *  èª¿æ´ãã¦ã¯ãªããªãå ´åã«trueï¼ããã§ãªãå ´åã«falseãè¿ãï¼ç¾å¨ã®ã¤
- *  ãã³ãæå»ãåå¾ããå¾ã«å¼ã³åºããã¨ãæ³å®ãã¦ããï¼
+ *  システム時刻の調整時のエラーチェック
+ *
+ *  adjtimで指定された時間の分，システム時刻を調整してよいか判定する．
+ *  調整してはならない場合にtrue，そうでない場合にfalseを返す．現在のイ
+ *  ベント時刻を取得した後に呼び出すことを想定している．
  */
 extern bool_t	check_adjtim(int_t adjtim);
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããçºçããã¾ã§ã®æéã®è¨ç®
+ *  タイムイベントが発生するまでの時間の計算
  */
 extern RELTIM	tmevt_lefttim(TMEVTB *p_tmevtb);
 
 /*
- *  é«åè§£è½ã¿ã¤ãå²è¾¼ã¿ã®å¦ç
+ *  高分解能タイマ割込みの処理
  */
 extern void	signal_time(void);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/time_manage.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/time_manage.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/time_manage.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã·ã¹ãã æå»ç®¡çæ©è½
+ *		システム時刻管理機能
  */
 
@@ -70,5 +55,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ *  トレースログマクロのデフォルト定義
  */
 #ifndef LOG_SET_TIM_ENTER
@@ -105,5 +90,5 @@
 
 /*
- *  ã·ã¹ãã æå»ã®è¨­å®ï¼»NGKI3563ï¼½
+ *  システム時刻の設定［NGKI3563］
  */
 #ifdef TOPPERS_set_tim
@@ -115,9 +100,9 @@
 
 	LOG_SET_TIM_ENTER(systim);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI3564ï¼½ï¼»NGKI3565ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI3564］［NGKI3565］*/
 
 	lock_cpu();
-	update_current_evttim();					/*ï¼»ASPD1059ï¼½*/
-	systim_offset = systim - monotonic_evttim;	/*ï¼»ASPD1060ï¼½*/
+	update_current_evttim();					/*［ASPD1059］*/
+	systim_offset = systim - monotonic_evttim;	/*［ASPD1060］*/
 	ercd = E_OK;
 	unlock_cpu();
@@ -131,6 +116,5 @@
 
 /*
- *  ã·ã¹ãã æå»ã®åç
-§ï¼»NGKI2349ï¼½
+ *  システム時刻の参照［NGKI2349］
  */
 #ifdef TOPPERS_get_tim
@@ -142,9 +126,9 @@
 
 	LOG_GET_TIM_ENTER(p_systim);
-	CHECK_TSKCTX_UNL();							/*ï¼»NGKI2350ï¼½ï¼»NGKI2351ï¼½*/
+	CHECK_TSKCTX_UNL();							/*［NGKI2350］［NGKI2351］*/
 
 	lock_cpu();
-	update_current_evttim();					/*ï¼»ASPD1057ï¼½*/
-	*p_systim = systim_offset + monotonic_evttim;	/*ï¼»ASPD1058ï¼½*/
+	update_current_evttim();					/*［ASPD1057］*/
+	*p_systim = systim_offset + monotonic_evttim;	/*［ASPD1058］*/
 	ercd = E_OK;
 	unlock_cpu();
@@ -158,5 +142,5 @@
 
 /*
- *  ã·ã¹ãã æå»ã®èª¿æ´ï¼»NGKI3581ï¼½
+ *  システム時刻の調整［NGKI3581］
  */
 #ifdef TOPPERS_adj_tim
@@ -169,16 +153,16 @@
 
 	LOG_ADJ_TIM_ENTER(adjtim);
-	CHECK_UNL();								/*ï¼»NGKI3583ï¼½*/
+	CHECK_UNL();								/*［NGKI3583］*/
 	CHECK_PAR(TMIN_ADJTIM <= adjtim && adjtim <= TMAX_ADJTIM);
-												/*ï¼»NGKI3584ï¼½*/
+												/*［NGKI3584］*/
 	lock_cpu();
-	update_current_evttim();					/*ï¼»ASPD1051ï¼½*/
-	if (check_adjtim(adjtim)) {					/*ï¼»ASPD1052ï¼½*/
+	update_current_evttim();					/*［ASPD1051］*/
+	if (check_adjtim(adjtim)) {					/*［ASPD1052］*/
 		ercd = E_OBJ;
 	}
 	else {
 		previous_evttim = current_evttim;
-		current_evttim += adjtim;				/*ï¼»ASPD1053ï¼½*/
-		boundary_evttim = current_evttim - BOUNDARY_MARGIN;	/*ï¼»ASPD1055ï¼½*/
+		current_evttim += adjtim;				/*［ASPD1053］*/
+		boundary_evttim = current_evttim - BOUNDARY_MARGIN;	/*［ASPD1055］*/
 
 		if (adjtim > 0
@@ -189,8 +173,8 @@
 			}
 #endif /* UINT64_MAX */
-			monotonic_evttim = current_evttim;	/*ï¼»ASPD1054ï¼½*/
+			monotonic_evttim = current_evttim;	/*［ASPD1054］*/
 		}
 
-		set_hrt_event();						/*ï¼»ASPD1056ï¼½*/
+		set_hrt_event();						/*［ASPD1056］*/
 		ercd = E_OK;
 	}
@@ -205,12 +189,8 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ãã®åç
-§ï¼»NGKI3569ï¼½
+ *  高分解能タイマの参照［NGKI3569］
  *
- *  ä»»æã®ç¶æ
-ããå¼ã³åºããããã«ããããã«ï¼SILã®å
-¨å²è¾¼ã¿ã­ãã¯ç¶æ
-ã®
- *  å¶å¾¡æ©è½ãç¨ãã¦ï¼æä»å¶å¾¡ãå®ç¾ãã¦ããï¼»NGKI3572ï¼½ï¼
+ *  任意の状態から呼び出せるようにするために，SILの全割込みロック状態の
+ *  制御機能を用いて，排他制御を実現している［NGKI3572］．
  */
 #ifdef TOPPERS_fch_hrt
@@ -225,5 +205,5 @@
 
 	SIL_LOC_INT();
-	hrtcnt = target_hrt_get_current();			/*ï¼»NGKI3571ï¼½*/
+	hrtcnt = target_hrt_get_current();			/*［NGKI3571］*/
 	SIL_UNL_INT();
 
@@ -235,5 +215,5 @@
 
 /*
- *  éç¥æ¹æ³ã®ã¨ã©ã¼ãã§ãã¯
+ *  通知方法のエラーチェック
  */
 #ifdef TOPPERS_chknfy
@@ -319,5 +299,5 @@
 
 /*
- *  éç¥ãã³ãã©
+ *  通知ハンドラ
  */
 #ifdef TOPPERS_nfyhdr
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/wait.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/wait.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/wait.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,7 +42,5 @@
 
 /*
- *		å¾
-ã¡ç¶æ
-ç®¡çã¢ã¸ã¥ã¼ã«
+ *		待ち状態管理モジュール
  */
 
@@ -66,7 +49,5 @@
 
 /*
- *  å¾
-ã¡ç¶æ
-ã¸ã®é·ç§»ï¼ã¿ã¤ã ã¢ã¦ãæå®ï¼
+ *  待ち状態への遷移（タイムアウト指定）
  */
 #ifdef TOPPERS_waimake
@@ -92,6 +73,5 @@
 
 /*
- *  å¾
-ã¡è§£é¤
+ *  待ち解除
  */
 #ifdef TOPPERS_waicmp
@@ -108,6 +88,5 @@
 
 /*
- *  ã¿ã¤ã ã¢ã¦ãã«ä¼´ãå¾
-ã¡è§£é¤
+ *  タイムアウトに伴う待ち解除
  */
 #ifdef TOPPERS_waitmo
@@ -124,6 +103,5 @@
 
 	/*
-	 *  ããã§åªå
-åº¦ã®é«ãå²è¾¼ã¿ãåãä»ããï¼
+	 *  ここで優先度の高い割込みを受け付ける．
 	 */
 	unlock_cpu();
@@ -145,6 +123,5 @@
 
 	/*
-	 *  ããã§åªå
-åº¦ã®é«ãå²è¾¼ã¿ãåãä»ããï¼
+	 *  ここで優先度の高い割込みを受け付ける．
 	 */
 	unlock_cpu();
@@ -156,14 +133,8 @@
 
 /*
- *  å®è¡ä¸­ã®ã¿ã¹ã¯ã®åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡ã­ã¥ã¼ã¸ã®æ¿å
-¥
+ *  実行中のタスクの同期・通信オブジェクトの待ちキューへの挿入
  *
- *  å®è¡ä¸­ã®ã¿ã¹ã¯ãï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡ã­ã¥ã¼ã¸æ¿å
-¥ããï¼ãª
- *  ãã¸ã§ã¯ãã®å±æ§ã«å¿ãã¦ï¼FIFOé ã¾ãã¯ã¿ã¹ã¯åªå
-åº¦é ã§æ¿å
-¥ããï¼
+ *  実行中のタスクを，同期・通信オブジェクトの待ちキューへ挿入する．オ
+ *  ブジェクトの属性に応じて，FIFO順またはタスク優先度順で挿入する．
  */
 Inline void
@@ -179,7 +150,5 @@
 
 /*
- *  åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
-ã¡ç¶æ
-ã¸ã®é·ç§»
+ *  同期・通信オブジェクトに対する待ち状態への遷移
  */
 #ifdef TOPPERS_wobjwai
@@ -210,6 +179,5 @@
 
 /*
- *  å¾
-ã¡ã­ã¥ã¼ã®åæå
+ *  待ちキューの初期化
  */
 #ifdef TOPPERS_iniwque
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/wait.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/wait.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/wait.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,7 +42,5 @@
 
 /*
- *		å¾
-ã¡ç¶æ
-ç®¡çã¢ã¸ã¥ã¼ã«
+ *		待ち状態管理モジュール
  */
 
@@ -71,15 +54,8 @@
 
 /*
- *  ã¿ã¹ã¯ã®åªå
-åº¦é ã®å¾
-ã¡ã­ã¥ã¼ã¸ã®æ¿å
-¥
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãï¼ã¿ã¹ã¯åªå
-åº¦é ã®ã­ã¥ã¼p_queueã«æ¿å
-¥ããï¼
- *  ã­ã¥ã¼ã®ä¸­ã«åãåªå
-åº¦ã®ã¿ã¹ã¯ãããå ´åã«ã¯ï¼ãã®æå¾ã«æ¿å
-¥ããï¼
+ *  タスクの優先度順の待ちキューへの挿入
+ *
+ *  p_tcbで指定されるタスクを，タスク優先度順のキューp_queueに挿入する．
+ *  キューの中に同じ優先度のタスクがある場合には，その最後に挿入する．
  */
 Inline void
@@ -99,14 +75,9 @@
 
 /*
- *  å¾
-ã¡ç¶æ
-ã¸ã®é·ç§»
- *
- *  å®è¡ä¸­ã®ã¿ã¹ã¯ãå¾
-ã¡ç¶æ
-ã«é·ç§»ãããï¼å
-·ä½çã«ã¯ï¼å®è¡ä¸­ã®ã¿ã¹ã¯ã
- *  ã¬ãã£ã­ã¥ã¼ããåé¤ãï¼TCBã®p_winfoãã£ã¼ã«ãï¼WINFOã®p_tmevtbãã£ã¼
- *  ã«ããè¨­å®ããï¼
+ *  待ち状態への遷移
+ *
+ *  実行中のタスクを待ち状態に遷移させる．具体的には，実行中のタスクを
+ *  レディキューから削除し，TCBのp_winfoフィールド，WINFOのp_tmevtbフィー
+ *  ルドを設定する．
  */
 Inline void
@@ -119,30 +90,19 @@
 
 /*
- *  å¾
-ã¡ç¶æ
-ã¸ã®é·ç§»ï¼ã¿ã¤ã ã¢ã¦ãæå®ï¼
- *
- *  å®è¡ä¸­ã®ã¿ã¹ã¯ãï¼ã¿ã¤ã ã¢ã¦ãæå®ä»ãã§å¾
-ã¡ç¶æ
-ã«é·ç§»ãããï¼å
-·ä½
- *  çã«ã¯ï¼å®è¡ä¸­ã®ã¿ã¹ã¯ãã¬ãã£ã­ã¥ã¼ããåé¤ãï¼TCBã®p_winfoãã£ã¼
- *  ã«ãï¼WINFOã®p_tmevtbãã£ã¼ã«ããè¨­å®ããï¼ã¾ãï¼ã¿ã¤ã ã¤ãã³ãã
- *  ã­ãã¯ãç»é²ããï¼
+ *  待ち状態への遷移（タイムアウト指定）
+ *
+ *  実行中のタスクを，タイムアウト指定付きで待ち状態に遷移させる．具体
+ *  的には，実行中のタスクをレディキューから削除し，TCBのp_winfoフィー
+ *  ルド，WINFOのp_tmevtbフィールドを設定する．また，タイムイベントブ
+ *  ロックを登録する．
  */
 extern void	make_wait_tmout(WINFO *p_winfo, TMEVTB *p_tmevtb, TMO tmout);
 
 /*
- *  å¾
-ã¡è§£é¤ã®ããã®ã¿ã¹ã¯ç¶æ
-ã®æ´æ°
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãï¼å¾
-ã¡è§£é¤ããããã¿ã¹ã¯ç¶æ
-ãæ´æ°ããï¼
- *  å¾
-ã¡è§£é¤ããã¿ã¹ã¯ãå®è¡ã§ããç¶æ
-ã«ãªãå ´åã¯ï¼ã¬ãã£ã­ã¥ã¼ã«ã¤ãª
- *  ãï¼
+ *  待ち解除のためのタスク状態の更新
+ *
+ *  p_tcbで指定されるタスクを，待ち解除するようタスク状態を更新する．
+ *  待ち解除するタスクが実行できる状態になる場合は，レディキューにつな
+ *  ぐ．
  */
 Inline void
@@ -153,8 +113,5 @@
 	if (!TSTAT_SUSPENDED(p_tcb->tstat)) {
 		/*
-		 *  å¾
-ã¡ç¶æ
-ããå®è¡ã§ããç¶æ
-ã¸ã®é·ç§»
+		 *  待ち状態から実行できる状態への遷移
 		 */
 		p_tcb->tstat = TS_RUNNABLE;
@@ -164,9 +121,5 @@
 	else {
 		/*
-		 *  äºéå¾
-ã¡ç¶æ
-ããå¼·å¶å¾
-ã¡ç¶æ
-ã¸ã®é·ç§»
+		 *  二重待ち状態から強制待ち状態への遷移
 		 */
 		p_tcb->tstat = TS_SUSPENDED;
@@ -176,11 +129,8 @@
 
 /*
- *  ãªãã¸ã§ã¯ãå¾
-ã¡ã­ã¥ã¼ããã®åé¤
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡ã­ã¥ã¼ã«ã¤
- *  ãªããã¦ããã°ï¼å¾
-ã¡ã­ã¥ã¼ããåé¤ããï¼
+ *  オブジェクト待ちキューからの削除
+ *
+ *  p_tcbで指定されるタスクが，同期・通信オブジェクトの待ちキューにつ
+ *  ながれていれば，待ちキューから削除する．
  */
 Inline void
@@ -193,10 +143,8 @@
 
 /*
- *  æéå¾
-ã¡ã®ããã®ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ç»é²è§£é¤
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ã«å¯¾ãã¦ï¼æéå¾
-ã¡ã®ããã®ã¿ã¤ã ã¤ãã³ãã
- *  ã­ãã¯ãç»é²ããã¦ããã°ï¼ãããç»é²è§£é¤ããï¼
+ *  時間待ちのためのタイムイベントブロックの登録解除
+ *
+ *  p_tcbで指定されるタスクに対して，時間待ちのためのタイムイベントブ
+ *  ロックが登録されていれば，それを登録解除する．
  */
 Inline void
@@ -209,38 +157,25 @@
 
 /*
- *  å¾
-ã¡è§£é¤
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ã®å¾
-ã¡ç¶æ
-ãè§£é¤ããï¼å
-·ä½çã«ã¯ï¼ã¿ã¤ã ã¤
- *  ãã³ããã­ãã¯ãç»é²ããã¦ããã°ï¼ãããç»é²è§£é¤ããï¼ã¾ãï¼ã¿ã¹ã¯
- *  ç¶æ
-ãæ´æ°ãï¼å¾
-ã¡è§£é¤ããã¿ã¹ã¯ããã®è¿å¤ãE_OKã¨ããï¼å¾
-ã¡ã­ã¥ã¼
- *  ããã®åé¤ã¯è¡ããªãï¼
+ *  待ち解除
+ *
+ *  p_tcbで指定されるタスクの待ち状態を解除する．具体的には，タイムイ
+ *  ベントブロックが登録されていれば，それを登録解除する．また，タスク
+ *  状態を更新し，待ち解除したタスクからの返値をE_OKとする．待ちキュー
+ *  からの削除は行わない．
  */
 extern void	wait_complete(TCB *p_tcb);
 
 /*
- *  ã¿ã¤ã ã¢ã¦ãã«ä¼´ãå¾
-ã¡è§£é¤
- *
- *  p_tcbã§æå®ãããã¿ã¹ã¯ãï¼å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ããã°å¾
-ã¡ã­ã¥ã¼
- *  ããåé¤ãï¼ã¿ã¹ã¯ç¶æ
-ãæ´æ°ããï¼ã¾ãï¼å¾
-ã¡è§£é¤ããã¿ã¹ã¯ããã®è¿
- *  å¤ãï¼wait_tmoutã§ã¯E_TMOUTï¼wait_tmout_okã§ã¯E_OKã¨ããï¼
- *
- *  wait_tmout_okã¯ï¼dly_tskã§ä½¿ãããã®ãã®ã§ï¼å¾
-ã¡ã­ã¥ã¼ããåé¤ãã
- *  å¦çãè¡ããªãï¼
- *
- *  ãããã®é¢æ°ãï¼ã¿ã¤ã ã¤ãã³ãã®ã³ã¼ã«ããã¯é¢æ°ã¨ãã¦ç¨ããããã®
- *  ãã®ã§ï¼å²è¾¼ã¿ãã³ãã©ããå¼ã³åºããããã¨ãæ³å®ãã¦ããï¼
+ *  タイムアウトに伴う待ち解除
+ *
+ *  p_tcbで指定されるタスクが，待ちキューにつながれていれば待ちキュー
+ *  から削除し，タスク状態を更新する．また，待ち解除したタスクからの返
+ *  値を，wait_tmoutではE_TMOUT，wait_tmout_okではE_OKとする．
+ *
+ *  wait_tmout_okは，dly_tskで使うためのもので，待ちキューから削除する
+ *  処理を行わない．
+ *
+ *  いずれの関数も，タイムイベントのコールバック関数として用いるための
+ *  もので，割込みハンドラから呼び出されることを想定している．
  */
 extern void	wait_tmout(TCB *p_tcb);
@@ -248,13 +183,8 @@
 
 /*
- *  å¾
-ã¡ã­ã¥ã¼ã®å
-é ­ã®ã¿ã¹ã¯ID
- *
- *  p_wait_queueã§æå®ããå¾
-ã¡ã­ã¥ã¼ã®å
-é ­ã®ã¿ã¹ã¯IDãè¿ãï¼å¾
-ã¡ã­ã¥ã¼
- *  ãç©ºã®å ´åã«ã¯ï¼TSK_NONEãè¿ãï¼
+ *  待ちキューの先頭のタスクID
+ *
+ *  p_wait_queueで指定した待ちキューの先頭のタスクIDを返す．待ちキュー
+ *  が空の場合には，TSK_NONEを返す．
  */
 Inline ID
@@ -270,76 +200,49 @@
 
 /*
- *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨åæä½ã«ã¼ãã³
- *
- *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã¨ç®¡çãã­ãã¯ã®å
-é ­é¨åã¯å
-±
- *  éã«ãªã£ã¦ããï¼ä»¥ä¸ã¯ï¼ãã®å
-±éé¨åãæ±ãããã®åããã³ã«ã¼ãã³ç¾¤
- *  ã§ããï¼
- *
- *  è¤æ°ã®å¾
-ã¡ã­ã¥ã¼ãæã¤åæã»éä¿¡ãªãã¸ã§ã¯ãã®å ´åï¼å
-é ­ä»¥å¤ã®å¾
-ã¡
- *  ã­ã¥ã¼ãæä½ããå ´åã«ã¯ï¼ãããã®ã«ã¼ãã³ã¯ä½¿ããªãï¼ã¾ãï¼ãªãã¸ã§
- *  ã¯ãå±æ§ã®TA_TPRIããããåç
-§ããã®ã§ï¼ãã®ããããä»ã®ç®çã«ä½¿ã£ã¦
- *  ããå ´åãï¼ãããã®ã«ã¼ãã³ã¯ä½¿ããªãï¼
- */
-
-/*
- *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
-±éé¨å
+ *  同期・通信オブジェクトの管理ブロックの共通部分操作ルーチン
+ *
+ *  同期・通信オブジェクトの初期化ブロックと管理ブロックの先頭部分は共
+ *  通になっている．以下は，その共通部分を扱うための型およびルーチン群
+ *  である．
+ *
+ *  複数の待ちキューを持つ同期・通信オブジェクトの場合，先頭以外の待ち
+ *  キューを操作する場合には，これらのルーチンは使えない．また，オブジェ
+ *  クト属性のTA_TPRIビットを参照するので，このビットを他の目的に使って
+ *  いる場合も，これらのルーチンは使えない．
+ */
+
+/*
+ *  同期・通信オブジェクトの初期化ブロックの共通部分
  */
 typedef struct wait_object_initialization_block {
-	ATR			wobjatr;		/* ãªãã¸ã§ã¯ãå±æ§ */
+	ATR			wobjatr;		/* オブジェクト属性 */
 } WOBJINIB;
 
 /*
- *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
-±éé¨å
+ *  同期・通信オブジェクトの管理ブロックの共通部分
  */
 typedef struct wait_object_control_block {
-	QUEUE		wait_queue;		/* å¾
-ã¡ã­ã¥ã¼ */
-	const WOBJINIB *p_wobjinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	QUEUE		wait_queue;		/* 待ちキュー */
+	const WOBJINIB *p_wobjinib;	/* 初期化ブロックへのポインタ */
 } WOBJCB;
 
 /*
- *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡æ
-å ±ãã­ãã¯ã®å
-±éé¨å
- *
- *  ãã®æ§é ä½ã¯ï¼å¾
-ã¡æ
-å ±ãã­ãã¯ï¼WINFOï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨
- *  èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ãããï¼WINFOãå
-±ç¨ä½ã§å®ç¾©ããã¦ããã
- *  ãã«ï¼1ã¤ã®ãã£ã¼ã«ãã¨ãã¦å«ãã¦ããï¼
+ *  同期・通信オブジェクトの待ち情報ブロックの共通部分
+ *
+ *  この構造体は，待ち情報ブロック（WINFO）を拡張（オブジェクト指向言
+ *  語の継承に相当）したものであるが，WINFOが共用体で定義されているた
+ *  めに，1つのフィールドとして含めている．
  */
 typedef struct wait_object_waiting_information {
-	WINFO	winfo;			/* æ¨æºã®å¾
-ã¡æ
-å ±ãã­ãã¯ */
-	WOBJCB	*p_wobjcb;		/* å¾
-ã¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ */
+	WINFO	winfo;			/* 標準の待ち情報ブロック */
+	WOBJCB	*p_wobjcb;		/* 待ちオブジェクトの管理ブロック */
 } WINFO_WOBJ;
 
 /*
- *  åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
-ã¡ç¶æ
-ã¸ã®é·ç§»
+ *  同期・通信オブジェクトに対する待ち状態への遷移
  *  
- *  å®è¡ä¸­ã®ã¿ã¹ã¯ãå¾
-ã¡ç¶æ
-ã«é·ç§»ããï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
-ã¡ã­ã¥ã¼
- *  ã«ã¤ãªãï¼ã¾ãï¼å¾
-ã¡æ
-å ±ãã­ãã¯ï¼WINFOï¼ã®p_wobjcbãè¨­å®ããï¼
- *  wobj_make_wait_tmoutã¯ï¼ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ç»é²ãè¡ãï¼
+ *  実行中のタスクを待ち状態に遷移させ，同期・通信オブジェクトの待ちキュー
+ *  につなぐ．また，待ち情報ブロック（WINFO）のp_wobjcbを設定する．
+ *  wobj_make_wait_tmoutは，タイムイベントブロックの登録も行う．
  */
 extern void	wobj_make_wait(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo);
@@ -348,13 +251,8 @@
 
 /*
- *  ã¿ã¹ã¯åªå
-åº¦å¤æ´æã®å¦ç
- *
- *  åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
-ã¡ç¶æ
-ã«ããã¿ã¹ã¯ã®åªå
-åº¦ãå¤æ´ã
- *  ããå ´åã«ï¼å¾
-ã¡ã­ã¥ã¼ã®ä¸­ã§ã®ã¿ã¹ã¯ã®ä½ç½®ãä¿®æ­£ããï¼
+ *  タスク優先度変更時の処理
+ *
+ *  同期・通信オブジェクトに対する待ち状態にあるタスクの優先度が変更さ
+ *  れた場合に，待ちキューの中でのタスクの位置を修正する．
  */
 Inline void
@@ -368,12 +266,8 @@
 
 /*
- *  å¾
-ã¡ã­ã¥ã¼ã®åæå
- *
- *  å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ããã¿ã¹ã¯ããã¹ã¦å¾
-ã¡è§£é¤ããï¼å¾
-ã¡è§£é¤ãã
- *  ã¿ã¹ã¯ããã®è¿å¤ã¯ï¼E_DLTã¨ããï¼
+ *  待ちキューの初期化
+ *
+ *  待ちキューにつながれているタスクをすべて待ち解除する．待ち解除した
+ *  タスクからの返値は，E_DLTとする．
  */
 extern void	init_wait_queue(QUEUE *p_wait_queue);
Index: EcnlProtoTool/trunk/asp3_dcre/library/log_output.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/library/log_output.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/library/log_output.c	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,5 +41,5 @@
 
 /*
- *		ã·ã¹ãã ã­ã°ã®ãã©ã¼ãããåºå
+ *		システムログのフォーマット出力
  */
 
@@ -64,8 +49,8 @@
 
 /*
- *  æ°å¤ãæå­åã«å¤æ
+ *  数値を文字列に変換
  */
 #define CONVERT_BUFLEN	((sizeof(ULOGPAR) * CHAR_BIT + 2) / 3)
-										/* ULOGPARåã®æ°å¤ã®æå¤§æå­æ° */
+										/* ULOGPAR型の数値の最大文字数 */
 static void
 convert(ULOGPAR val, uint_t radix, const char *radchar,
@@ -99,5 +84,5 @@
 
 /*
- *  æå­åæ´å½¢åºå
+ *  文字列整形出力
  */
 static const char raddec[] = "0123456789";
@@ -180,6 +165,5 @@
 
 /*
- *  ã­ã°æ
-å ±ã®åºå
+ *  ログ情報の出力
  */
 void
@@ -197,6 +181,5 @@
 	default:
 		/*
-		 *  ä»ã®ç¨®å¥ã®ã­ã°æ
-å ±ã«ã¯å¯¾å¿ãã¦ããªãï¼
+		 *  他の種別のログ情報には対応していない．
 		 */
 		break;
@@ -205,6 +188,5 @@
 
 /*
- *  ã­ã°æ
-å ±åªå¤±ã¡ãã»ã¼ã¸ã®åºå
+ *  ログ情報喪失メッセージの出力
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/library/strerror.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/library/strerror.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/library/strerror.c	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,5 +41,5 @@
 
 /*
- *		ã¨ã©ã¼ã¡ãã»ã¼ã¸æå­åãè¿ãé¢æ°
+ *		エラーメッセージ文字列を返す関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/library/t_perror.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/library/t_perror.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/library/t_perror.c	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,5 +41,5 @@
 
 /*
- *		ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®åºå
+ *		エラーメッセージの出力
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/library/vasyslog.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/library/vasyslog.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/library/vasyslog.c	(revision 321)
@@ -8,47 +8,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -56,5 +41,5 @@
 
 /*
- *		å¯å¤æ°å¼æ°ã®ã·ã¹ãã ã­ã°ã©ã¤ãã©ãª
+ *		可変数引数のシステムログライブラリ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/Makefile.mbed
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/Makefile.mbed	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/Makefile.mbed	(revision 321)
@@ -1,15 +1,15 @@
 #
-#		Makefile ã®mbedï¼RZ/A1ç¨ï¼
+#		Makefile のmbed（RZ/A1用）
 #
-#  $Id: Makefile.chip 720 2016-04-01 22:16:17Z ertl-hiro $
+#  $Id$
 # 
 
 #
-#  mbedãã£ã¬ã¯ããªåã®å®ç¾©
+#  mbedディレクトリ名の定義
 #
 MBEDDIR = $(SRCDIR)/mbed
 
 #
-#  ã³ã³ãã¤ã«ãªãã·ã§ã³
+#  コンパイルオプション
 #
 INCLUDES := $(INCLUDES)\
@@ -49,5 +49,5 @@
 
 #
-#  ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
+#  システムサービスに関する定義
 #
 SYSSVC_DIRS := $(SYSSVC_DIRS)\
Index: EcnlProtoTool/trunk/asp3_dcre/sample/Makefile
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/Makefile	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/Makefile	(revision 321)
@@ -9,63 +9,48 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 # 
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 # 
-#  $Id: Makefile 735 2016-04-03 14:11:07Z ertl-hiro $
+#  $Id$
 # 
 
 #
-#  ã¿ã¼ã²ããã®æå®ï¼Makefile.targetã§ä¸æ¸ããããã®ãé²ãããï¼
+#  ターゲットの指定（Makefile.targetで上書きされるのを防ぐため）
 #
 all:
 
 #
-#  ã¿ã¼ã²ããç¥ç§°ã®å®ç¾©
+#  ターゲット略称の定義
 #
 TARGET = @(TARGET)
 
 #
-#  ãã­ã°ã©ãã³ã°è¨èªã®å®ç¾©
+#  プログラミング言語の定義
 #
 SRCLANG = @(SRCLANG)
@@ -80,41 +65,41 @@
 
 #
-#  ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  ソースファイルのディレクトリの定義
 #
 SRCDIR = @(SRCDIR)
 
 #
-#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®æ¡å¼µå­ã®è¨­å®
+#  オブジェクトファイル名の拡張子の設定
 #
 OBJEXT = @(OBJEXT)
 
 #
-#  ã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ã®ãã£ã¬ã¯ããªå
-#  ï¼ã«ã¼ãã«ã©ã¤ãã©ãªãmakeå¯¾è±¡ã«ããæã¯ï¼ç©ºã«å®ç¾©ããï¼
+#  カーネルライブラリ（libkernel.a）のディレクトリ名
+#  （カーネルライブラリもmake対象にする時は，空に定義する）
 #
 KERNEL_LIB = @(KERNEL_LIB)
 
 #
-#  ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®å®ç¾©
+#  カーネルを関数単位でコンパイルするかどうかの定義
 #
 KERNEL_FUNCOBJS = @(KERNEL_FUNCOBJS)
 
 #
-#  TECSãå¤ããã©ããã®å®ç¾©
+#  TECSを外すかどうかの定義
 #
 OMIT_TECS = @(OMIT_TECS)
 
 #
-#  ãã¬ã¼ã¹ã­ã°ãåå¾ãããã©ããã®å®ç¾©
+#  トレースログを取得するかどうかの定義
 #
 ENABLE_TRACE = @(ENABLE_TRACE)
 
 #
-#  éçºãã¼ã«ï¼ã³ã³ãã¤ã©ç­ï¼ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  開発ツール（コンパイラ等）のディレクトリの定義
 #
 DEVTOOLDIR = @(DEVTOOLDIR)
 
 #
-#  ã¦ã¼ãã£ãªãã£ãã­ã°ã©ã ã®åç§°
+#  ユーティリティプログラムの名称
 #
 CFG = @(CFG)
@@ -122,5 +107,5 @@
 
 #
-#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®å®ç¾©
+#  オブジェクトファイル名の定義
 #
 OBJNAME = asp
@@ -134,20 +119,20 @@
 
 #
-#  ä¾å­é¢ä¿ãã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã®å®ç¾©
+#  依存関係ファイルを置くディレクトリの定義
 #
 DEPDIR = @(DEPDIR)
 
 #
-#  ã¿ã¼ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  ターゲット依存部のディレクトリの定義
 #
 TARGETDIR = $(SRCDIR)/target/$(TARGET)
 
 #
-#  ã¿ã¼ã²ããä¾å­ã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+#  ターゲット依存の定義のインクルード
 #
 include $(TARGETDIR)/Makefile.target
 
 #
-#  TECSçæãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  TECS生成ファイルのディレクトリの定義
 #
 TECSGENDIR = ./gen
@@ -158,5 +143,5 @@
 
 #
-#  TECSãçæããå®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+#  TECSが生成する定義のインクルード
 #
 ifndef OMIT_TECS
@@ -166,5 +151,5 @@
 
 #
-#  mbedãµã¼ãã¹ã®å®ç¾©
+#  mbedサービスの定義
 #
 
@@ -172,6 +157,5 @@
 
 #
-#  å
-±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©
+#  共通コンパイルオプションの定義
 #
 COPTS := -g @(COPTS) $(COPTS)
@@ -192,5 +176,5 @@
 
 #
-#  ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã«é¢ããå®ç¾©
+#  アプリケーションプログラムに関する定義
 #
 APPLNAME = @(APPLNAME)
@@ -214,27 +198,27 @@
 
 #
-#  ãããã¯ã¼ã¯ãµã¼ãã¹ã®å®ç¾©
+#  ネットワークサービスの定義
 #
 
 NO_USE_TINET_LIBRARY = true
 
-#  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãä½ããä¸ã¤é¸æããã
+#  ネットワークインタフェースの選択、何れか一つ選択する。
 
 NET_IF = ether
 
-#  ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ
+#  イーサネット・ディバイスドライバの選択
 
 NET_DEV = if_mbed
 
-#  ãããã¯ã¼ã¯å±¤ã®é¸æ
+#  ネットワーク層の選択
 
 #SUPPORT_INET6 = true
 SUPPORT_INET4 = true
 
-#  API ã«çµè¾¼ãæ©è½ã®é¸æ
+#  API に組込む機能の選択
 
 #API_CFG_IP4MAPPED_ADDR = true
 
-#  ãã©ã³ã¹ãã¼ãå±¤ã®é¸æ
+#  トランスポート層の選択
 
 SUPPORT_TCP = true
@@ -242,10 +226,10 @@
 
 #
-#  ã·ã¹ãã ãµã¼ãã¹ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã
+#  システムサービスの Makefile のインクルード
 #
 include $(SRCDIR)/tinet/Makefile.tinet
 
 #
-#  ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
+#  システムサービスに関する定義
 #
 SYSSVC_DIRS := $(TECSGENDIR) $(SRCDIR)/tecs_kernel \
@@ -258,5 +242,5 @@
 
 #
-#  ã¿ã¼ã²ãããã¡ã¤ã«
+#  ターゲットファイル
 #
 .PHONY: all
@@ -272,8 +256,8 @@
 endif
 
-##### ä»¥ä¸ã¯ç·¨éããªããã¨ #####
-
-#
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«é¢ããå®ç¾©
+##### 以下は編集しないこと #####
+
+#
+#  コンフィギュレータに関する定義
 #
 CFG_TABS := --api-table $(SRCDIR)/tinet/tcpip_api.def:tcpip \
@@ -288,14 +272,14 @@
 
 #
-#  ã«ã¼ãã«ã«é¢ããå®ç¾©
-#
-#  KERNEL_ASMOBJS: ã«ã¼ãã«ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãã¢ã»ã³ããªè¨èªã®
-#				   ãªãã¸ã§ã¯ããã¡ã¤ã«ï¼
-#  KERNEL_COBJS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãCè¨èªã§ï¼ã½ã¼ã¹
-#				 ãã¡ã¤ã«ã¨1å¯¾1ã«å¯¾å¿ãããªãã¸ã§ã¯ããã¡ã¤ã«ï¼
-#  KERNEL_LCSRCS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããCè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ã§ï¼
-#				  1ã¤ã®ã½ã¼ã¹ãã¡ã¤ã«ããè¤æ°ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãç
-#				  æãããã®ï¼
-#  KERNEL_LCOBJS: ä¸ã®ã½ã¼ã¹ãã¡ã¤ã«ããçæããããªãã¸ã§ã¯ããã¡ã¤ã«ï¼
+#  カーネルに関する定義
+#
+#  KERNEL_ASMOBJS: カーネルライブラリに含める，ソースがアセンブリ言語の
+#				   オブジェクトファイル．
+#  KERNEL_COBJS: カーネルのライブラリに含める，ソースがC言語で，ソース
+#				 ファイルと1対1に対応するオブジェクトファイル．
+#  KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで，
+#				  1つのソースファイルから複数のオブジェクトファイルを生
+#				  成するもの．
+#  KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル．
 #
 KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/kernel
@@ -305,5 +289,5 @@
 
 #
-#  ã«ã¼ãã«ã®ãã¡ã¤ã«æ§æã®å®ç¾©
+#  カーネルのファイル構成の定義
 #
 include $(SRCDIR)/kernel/Makefile.kernel
@@ -338,5 +322,5 @@
 
 #
-#  ã½ã¼ã¹ãã¡ã¤ã«ã®ãããã£ã¬ã¯ããªã«é¢ããå®ç¾©
+#  ソースファイルのあるディレクトリに関する定義
 #
 vpath %.c $(KERNEL_DIRS) $(SYSSVC_DIRS) $(APPL_DIRS)
@@ -346,5 +330,5 @@
 
 #
-#  ã³ã³ãã¤ã«ã®ããã®å¤æ°ã®å®ç¾©
+#  コンパイルのための変数の定義
 #
 KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
@@ -374,10 +358,10 @@
 
 #
-#  tecsgenããCããªãã­ã»ããµãå¼ã³åºãéã®ãªãã·ã§ã³ã®å®ç¾©
+#  tecsgenからCプリプロセッサを呼び出す際のオプションの定義
 #
 TECS_CPP = $(CC) $(CDEFS) $(INCLUDES) $(SYSSVC_CFLAGS) -D TECSGEN -E
 
 #
-#  tecsgenã®å¼åºã
+#  tecsgenの呼出し
 #
 .PHONY: tecs
@@ -387,5 +371,5 @@
 
 #
-#  ã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®çæ
+#  カーネルのコンフィギュレーションファイルの生成
 #
 cfg1_out.c cfg1_out.db: cfg1_out.timestamp ;
@@ -409,5 +393,5 @@
 
 #
-#  ãªãã»ãããã¡ã¤ã«ï¼offset.hï¼ã®çæè¦å
+#  オフセットファイル（offset.h）の生成規則
 #
 $(OFFSET_H): offset.timestamp ;
@@ -417,5 +401,5 @@
 
 #
-#  ã«ã¼ãã«ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ
+#  カーネルライブラリファイルの生成
 #
 libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
@@ -425,11 +409,10 @@
 
 #
-#  ç¹å¥ãªä¾å­é¢ä¿ã®å®ç¾©
+#  特別な依存関係の定義
 #
 tBannerMain.o: $(filter-out tBannerMain.o,$(ALL_OBJS)) $(LIBS_DEP)
 
 #
-#  å
-¨ä½ã®ãªã³ã¯
+#  全体のリンク
 #
 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
@@ -439,5 +422,5 @@
 
 #
-#  ã·ã³ãã«ãã¡ã¤ã«ã®çæ
+#  シンボルファイルの生成
 #
 $(OBJNAME).syms: $(OBJFILE)
@@ -445,5 +428,5 @@
 
 #
-#  ãã¤ããªãã¡ã¤ã«ã®çæ
+#  バイナリファイルの生成
 #
 $(OBJNAME).bin: $(OBJFILE)
@@ -451,5 +434,5 @@
 
 #
-#  Sã¬ã³ã¼ããã¡ã¤ã«ã®çæ
+#  Sレコードファイルの生成
 #
 $(OBJNAME).srec: $(OBJFILE)
@@ -457,5 +440,5 @@
 
 #
-#  ã¨ã©ã¼ãã§ãã¯å¦ç
+#  エラーチェック処理
 #
 .PHONY: check
@@ -467,5 +450,5 @@
 
 #
-#  ã³ã³ãã¤ã«çµæã®æ¶å»
+#  コンパイル結果の消去
 #
 .PHONY: clean
@@ -492,9 +475,8 @@
 
 #
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
-#
-#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã¯ï¼å
-±éã®ã³ã³ãã¤ã«ãªãã·ã§ã³
-#  ã®ã¿ãä»ãã¦ã³ã³ãã¤ã«ããï¼
+#  コンフィギュレータが生成したファイルのコンパイルルールの定義
+#
+#  コンフィギュレータが生成したファイルは，共通のコンパイルオプション
+#  のみを付けてコンパイルする．
 #
 ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o
@@ -511,14 +493,14 @@
 
 #
-#  ä¾å­é¢ä¿ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+#  依存関係ファイルのインクルード
 #
 -include $(DEPDIR)/*.d
 
 #
-#  éçºãã¼ã«ã®ã³ãã³ãåã®å®ç¾©
+#  開発ツールのコマンド名の定義
 #
 ifeq ($(TOOL),gcc)
 	#
-	#  GNUéçºç°å¢ç¨
+	#  GNU開発環境用
 	#
 	ifdef GCC_TARGET
@@ -557,5 +539,5 @@
 
 #
-#  ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
+#  コンパイルルールの定義
 #
 $(KERNEL_COBJS): %.o: %.c
@@ -600,5 +582,5 @@
 
 #
-#  ããã©ã«ãã³ã³ãã¤ã«ã«ã¼ã«ãä¸æ¸ã
+#  デフォルトコンパイルルールを上書き
 #
 %.o: %.c
Index: EcnlProtoTool/trunk/asp3_dcre/sample/route_cfg.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/route_cfg.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/route_cfg.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  ã«ã¼ãã£ã³ã°è¡¨
+ *  ルーティング表
  */
 
@@ -56,5 +44,5 @@
 #include <netinet/in_var.h>
 
-/* IPv4 ã«é¢ããå®ç¾© */
+/* IPv4 に関する定義 */
 
 #ifdef SUPPORT_INET4
@@ -80,17 +68,12 @@
 T_IN4_RTENTRY routing_tbl[NUM_ROUTE_ENTRY] = {
 
-	/* ç°ãªã LANãdefault gateway ã«ããéæ¥é
-é	*/
+	/* 異なる LAN、default gateway による間接配送	*/
 	{ 0,			0,			IPV4_ADDR_DEFAULT_GW	},
 
-	/* åä¸ LAN å
-ãç´æ¥é
-é				*/
+	/* 同一 LAN 内、直接配送				*/
 	{ IPV4_ADDR_LOCAL &
 	  IPV4_ADDR_LOCAL_MASK,	IPV4_ADDR_LOCAL_MASK,	0			},
 
-	/* åä¸ LAN å
-ã¸ã®ãã­ã¼ãã­ã£ã¹ããç´æ¥é
-é	*/
+	/* 同一 LAN 内へのブロードキャスト、直接配送	*/
 	{ 0xffffffff,		0xffffffff,		0			},
 
@@ -101,5 +84,5 @@
 #endif	/* of #ifdef SUPPORT_INET4 */
 
-/* IPv6 ã«é¢ããå®ç¾© */
+/* IPv6 に関する定義 */
 
 #ifdef SUPPORT_INET6
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,93 +42,69 @@
 
 /* 
- *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
- *
- *  ASPã«ã¼ãã«ã®åºæ¬çãªåä½ãç¢ºèªããããã®ãµã³ãã«ãã­ã°ã©ã ï¼
- *
- *  ãã­ã°ã©ã ã®æ¦è¦:
- *
- *  ã¦ã¼ã¶ã¤ã³ã¿ãã§ã¼ã¹ãåãæã¤ã¡ã¤ã³ã¿ã¹ã¯ï¼ã¿ã¹ã¯ID: MAIN_TASKï¼åª
- *  å
-åº¦: MAIN_PRIORITYï¼ã¨ï¼3ã¤ã®ä¸¦è¡å®è¡ãããã¿ã¹ã¯ï¼ã¿ã¹ã¯ID:
- *  TASK1ï½TASK3ï¼åæåªå
-åº¦: MID_PRIORITYï¼ã§æ§æãããï¼ã¾ãï¼èµ·åå¨
- *  æã2ç§ã®å¨æãã³ãã©ï¼å¨æãã³ãã©ID: CYCHDR1ï¼ãç¨ããï¼
- *
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¯ï¼task_loopåç©ºã«ã¼ããå®è¡ããåº¦ã«ï¼ã¿ã¹ã¯ã
- *  å®è¡ä¸­ã§ãããã¨ãããããã¡ãã»ã¼ã¸ãè¡¨ç¤ºããï¼ç©ºã«ã¼ããå®è¡ãã
- *  ã®ã¯ï¼ç©ºã«ã¼ããªãã§ã¡ãã»ã¼ã¸ãåºåããã¨ï¼å¤éã®ã¡ãã»ã¼ã¸ãåºå
- *  ããï¼ãã­ã°ã©ã ã®åä½ãç¢ºèªãããããªãããã§ããï¼ã¾ãï¼ä½éãªã·
- *  ãªã¢ã«ãã¼ããç¨ãã¦ã¡ãã»ã¼ã¸ãåºåããå ´åã«ï¼ãã¹ã¦ã®ã¡ãã»ã¼ã¸
- *  ãåºåã§ããããã«ï¼ã¡ãã»ã¼ã¸ã®éãå¶éããã¨ããçç±ãããï¼
- *
- *  å¨æãã³ãã©ã¯ï¼ä¸ã¤ã®åªå
-åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼
- *  LOW_PRIORITYï¼ã®ã¬ãã£ã­ã¥ã¼ãåè»¢ãããï¼ãã­ã°ã©ã ã®èµ·åç´å¾ã¯ï¼
- *  å¨æãã³ãã©ã¯åæ­¢ç¶æ
-ã«ãªã£ã¦ããï¼
- *
- *  ã¡ã¤ã³ã¿ã¹ã¯ã¯ï¼ã·ãªã¢ã«I/Oãã¼ãããã®æå­å
-¥åãè¡ãï¼æå­å
-¥åã
- *  å¾
-ã£ã¦ããéã¯ï¼ä¸¦è¡å®è¡ãããã¿ã¹ã¯ãå®è¡ããã¦ããï¼ï¼å
-¥åããã
- *  æå­ã«å¯¾å¿ããå¦çãå®è¡ããï¼å
-¥åãããæå­ã¨å¦çã®é¢ä¿ã¯æ¬¡ã®éãï¼
- *  Control-Cã¾ãã¯'Q'ãå
-¥åãããã¨ï¼ãã­ã°ã©ã ãçµäºããï¼
- *
- *  '1' : å¯¾è±¡ã¿ã¹ã¯ãTASK1ã«åãæããï¼åæè¨­å®ï¼ï¼
- *  '2' : å¯¾è±¡ã¿ã¹ã¯ãTASK2ã«åãæããï¼
- *  '3' : å¯¾è±¡ã¿ã¹ã¯ãTASK3ã«åãæããï¼
- *  'a' : å¯¾è±¡ã¿ã¹ã¯ãact_tskã«ããèµ·åããï¼
- *  'A' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åè¦æ±ãcan_actã«ããã­ã£ã³ã»ã«ããï¼
- *  'e' : å¯¾è±¡ã¿ã¹ã¯ã«ext_tskãå¼ã³åºããï¼çµäºãããï¼
- *  't' : å¯¾è±¡ã¿ã¹ã¯ãter_tskã«ããå¼·å¶çµäºããï¼
- *  '>' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãHIGH_PRIORITYã«ããï¼
- *  '=' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãMID_PRIORITYã«ããï¼
- *  '<' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãLOW_PRIORITYã«ããï¼
- *  'G' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãget_priã§èª­ã¿åºãï¼
- *  's' : å¯¾è±¡ã¿ã¹ã¯ã«slp_tskãå¼ã³åºããï¼èµ·åºå¾
-ã¡ã«ãããï¼
- *  'S' : å¯¾è±¡ã¿ã¹ã¯ã«tslp_tsk(10ç§)ãå¼ã³åºããï¼èµ·åºå¾
-ã¡ã«ãããï¼
- *  'w' : å¯¾è±¡ã¿ã¹ã¯ãwup_tskã«ããèµ·åºããï¼
- *  'W' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åºè¦æ±ãcan_wupã«ããã­ã£ã³ã»ã«ããï¼
- *  'l' : å¯¾è±¡ã¿ã¹ã¯ãrel_waiã«ããå¼·å¶çã«å¾
-ã¡è§£é¤ã«ããï¼
- *  'u' : å¯¾è±¡ã¿ã¹ã¯ãsus_tskã«ããå¼·å¶å¾
-ã¡ç¶æ
-ã«ããï¼
- *  'm' : å¯¾è±¡ã¿ã¹ã¯ã®å¼·å¶å¾
-ã¡ç¶æ
-ãrsm_tskã«ããè§£é¤ããï¼
- *  'd' : å¯¾è±¡ã¿ã¹ã¯ã«dly_tsk(10ç§)ãå¼ã³åºããï¼æéçµéå¾
-ã¡ã«ãããï¼
- *  'x' : å¯¾è±¡ã¿ã¹ã¯ã«ras_terã«ããçµäºè¦æ±ããï¼
- *  'y' : å¯¾è±¡ã¿ã¹ã¯ã«dis_terãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãç¦æ­¢ããï¼
- *  'Y' : å¯¾è±¡ã¿ã¹ã¯ã«ena_terãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãè¨±å¯ããï¼
- *  'r' : 3ã¤ã®åªå
-åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬
- *        ãã£ã­ã¥ã¼ãåè»¢ãããï¼
- *  'c' : å¨æãã³ãã©ãåä½éå§ãããï¼
- *  'C' : å¨æãã³ãã©ãåä½åæ­¢ãããï¼
- *  'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼
- *  'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ­¢ãããï¼
- *  'z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼
- *  'Z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUã­ãã¯ç¶æ
-ã§CPUä¾å¤ãçºçãããï¼ãã­ã°ã©ã ã
- *        çµäºããï¼ï¼
- *  '@' : ã¿ã¹ã¯3ãacre_tskã«ããçæããï¼
- *  '!' : å¯¾è±¡ã¿ã¹ã¯ãdel_tskã«ããåé¤ããï¼
- *  '$' : ã¢ã©ã¼ã ãã³ãã©ãacre_almã«ããçæããï¼
- *  '#' : ã¢ã©ã¼ã ãã³ãã©ãdel_almã«ããåé¤ããï¼
- *  'V' : fch_hrtã§é«åè§£è½ã¿ã¤ãã2åèª­ãï¼
- *  'v' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããï¼ããã©ã«ãï¼ï¼
- *  'q' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããªãï¼
+ *  サンプルプログラム(1)の本体
+ *
+ *  ASPカーネルの基本的な動作を確認するためのサンプルプログラム．
+ *
+ *  プログラムの概要:
+ *
+ *  ユーザインタフェースを受け持つメインタスク（タスクID: MAIN_TASK，優
+ *  先度: MAIN_PRIORITY）と，3つの並行実行されるタスク（タスクID:
+ *  TASK1～TASK3，初期優先度: MID_PRIORITY）で構成される．また，起動周
+ *  期が2秒の周期ハンドラ（周期ハンドラID: CYCHDR1）を用いる．
+ *
+ *  並行実行されるタスクは，task_loop回空ループを実行する度に，タスクが
+ *  実行中であることをあらわすメッセージを表示する．空ループを実行する
+ *  のは，空ループなしでメッセージを出力すると，多量のメッセージが出力
+ *  され，プログラムの動作が確認しずらくなるためである．また，低速なシ
+ *  リアルポートを用いてメッセージを出力する場合に，すべてのメッセージ
+ *  が出力できるように，メッセージの量を制限するという理由もある．
+ *
+ *  周期ハンドラは，三つの優先度（HIGH_PRIORITY，MID_PRIORITY，
+ *  LOW_PRIORITY）のレディキューを回転させる．プログラムの起動直後は，
+ *  周期ハンドラは停止状態になっている．
+ *
+ *  メインタスクは，シリアルI/Oポートからの文字入力を行い（文字入力を
+ *  待っている間は，並行実行されるタスクが実行されている），入力された
+ *  文字に対応した処理を実行する．入力された文字と処理の関係は次の通り．
+ *  Control-Cまたは'Q'が入力されると，プログラムを終了する．
+ *
+ *  '1' : 対象タスクをTASK1に切り換える（初期設定）．
+ *  '2' : 対象タスクをTASK2に切り換える．
+ *  '3' : 対象タスクをTASK3に切り換える．
+ *  'a' : 対象タスクをact_tskにより起動する．
+ *  'A' : 対象タスクに対する起動要求をcan_actによりキャンセルする．
+ *  'e' : 対象タスクにext_tskを呼び出させ，終了させる．
+ *  't' : 対象タスクをter_tskにより強制終了する．
+ *  '>' : 対象タスクの優先度をHIGH_PRIORITYにする．
+ *  '=' : 対象タスクの優先度をMID_PRIORITYにする．
+ *  '<' : 対象タスクの優先度をLOW_PRIORITYにする．
+ *  'G' : 対象タスクの優先度をget_priで読み出す．
+ *  's' : 対象タスクにslp_tskを呼び出させ，起床待ちにさせる．
+ *  'S' : 対象タスクにtslp_tsk(10秒)を呼び出させ，起床待ちにさせる．
+ *  'w' : 対象タスクをwup_tskにより起床する．
+ *  'W' : 対象タスクに対する起床要求をcan_wupによりキャンセルする．
+ *  'l' : 対象タスクをrel_waiにより強制的に待ち解除にする．
+ *  'u' : 対象タスクをsus_tskにより強制待ち状態にする．
+ *  'm' : 対象タスクの強制待ち状態をrsm_tskにより解除する．
+ *  'd' : 対象タスクにdly_tsk(10秒)を呼び出させ，時間経過待ちにさせる．
+ *  'x' : 対象タスクにras_terにより終了要求する．
+ *  'y' : 対象タスクにdis_terを呼び出させ，タスク終了を禁止する．
+ *  'Y' : 対象タスクにena_terを呼び出させ，タスク終了を許可する．
+ *  'r' : 3つの優先度（HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY）のレ
+ *        ディキューを回転させる．
+ *  'c' : 周期ハンドラを動作開始させる．
+ *  'C' : 周期ハンドラを動作停止させる．
+ *  'b' : アラームハンドラを5秒後に起動するよう動作開始させる．
+ *  'B' : アラームハンドラを動作停止させる．
+ *  'z' : 対象タスクにCPU例外を発生させる（タスクを終了させる）．
+ *  'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる（プログラムを
+ *        終了する）．
+ *  '@' : タスク3をacre_tskにより生成する．
+ *  '!' : 対象タスクをdel_tskにより削除する．
+ *  '$' : アラームハンドラをacre_almにより生成する．
+ *  '#' : アラームハンドラをdel_almにより削除する．
+ *  'V' : fch_hrtで高分解能タイマを2回読む．
+ *  'v' : 発行したシステムコールを表示する（デフォルト）．
+ *  'q' : 発行したシステムコールを表示しない．
  */
 
@@ -158,5 +119,5 @@
 
 /*
- *  ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã®ã­ã°åºå
+ *  サービスコールのエラーのログ出力
  */
 Inline void
@@ -171,16 +132,15 @@
 
 /*
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¸ã®ã¡ãã»ã¼ã¸é å
+ *  並行実行されるタスクへのメッセージ領域
  */
 char	message[3];
 
 /*
- *  ã«ã¼ãåæ°
- */
-ulong_t	task_loop;		/* ã¿ã¹ã¯å
-ã§ã®ã«ã¼ãåæ° */
-
-/*
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯
+ *  ループ回数
+ */
+ulong_t	task_loop;		/* タスク内でのループ回数 */
+
+/*
+ *  並行実行されるタスク
  */
 void task(intptr_t exinf)
@@ -242,5 +202,5 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã©
+ *  割込みハンドラ
  */
 #ifdef INTNO1
@@ -257,7 +217,7 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©
- */
-ID	cpuexc_tskid;		/* CPUä¾å¤ãèµ·ãããã¿ã¹ã¯ã®ID */
+ *  CPU例外ハンドラ
+ */
+ID	cpuexc_tskid;		/* CPU例外を起こしたタスクのID */
 
 #ifdef CPUEXC1
@@ -298,9 +258,8 @@
 
 /*
- *  å¨æãã³ãã©
- *
- *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
-åº¦ã®ã¬ãã£ã­ã¥ã¼
- *  ãåè»¢ãããï¼
+ *  周期ハンドラ
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
  */
 void cyclic_handler(intptr_t exinf)
@@ -312,9 +271,8 @@
 
 /*
- *  ã¢ã©ã¼ã ãã³ãã©
- *
- *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
-åº¦ã®ã¬ãã£ã­ã¥ã¼
- *  ãåè»¢ãããï¼
+ *  アラームハンドラ
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
  */
 void alarm_handler(intptr_t exinf)
@@ -326,5 +284,5 @@
 
 /*
- *  ä¾å¤å¦çã¿ã¹ã¯
+ *  例外処理タスク
  */
 void exc_task(intptr_t exinf)
@@ -334,5 +292,5 @@
 
 /*
- *  ã¡ã¤ã³ã¿ã¹ã¯
+ *  メインタスク
  */
 void main_task(intptr_t exinf)
@@ -357,9 +315,9 @@
 
 	/*
-	 *  ã·ãªã¢ã«ãã¼ãã®åæå
+	 *  シリアルポートの初期化
 	 *
-	 *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ããä½¿ãå ´åãªã©ï¼ã·ãªã¢ã«
-	 *  ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯
-	 *  ãªãï¼
+	 *  システムログタスクと同じシリアルポートを使う場合など，シリアル
+	 *  ポートがオープン済みの場合にはここでE_OBJエラーになるが，支障は
+	 *  ない．
 	 */
 	ercd = serial_opn_por(TASK_PORTID);
@@ -372,31 +330,29 @@
 
 	/*
- 	 *  ã«ã¼ãåæ°ã®è¨­å®
+ 	 *  ループ回数の設定
 	 *
-	 *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯å
-ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼
-	 *  ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨­å®ããï¼ãã®è¨­å®ã®ããã«ï¼
-	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§
-	 *  æ¸¬å®ãï¼ãã®æ¸¬å®çµæããç©ºã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå
-	 *  æ°ãæ±ãï¼task_loopã«è¨­å®ããï¼
+	 *  並行実行されるタスク内での空ループの回数（task_loop）は，空ルー
+	 *  プの実行時間が約0.4秒になるように設定する．この設定のために，
+	 *  LOOP_REF回の空ループの実行時間を，その前後でget_timを呼ぶことで
+	 *  測定し，その測定結果から空ループの実行時間が0.4秒になるループ回
+	 *  数を求め，task_loopに設定する．
 	 *
-	 *  LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨­å®ãã¦ãããï¼æ³å®ããã
-	 *  ãé
-ããã­ã»ããµã§ã¯ï¼ãµã³ãã«ãã­ã°ã©ã ã®å®è¡éå§ã«æéããã
-	 *  ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéããã­ã»ããµã§ã¯ï¼
-	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãç­ããªãï¼task_loopã«è¨­å®ããå¤
-	 *  ã®èª¤å·®ãå¤§ãããªãã¨ããåé¡ãããï¼
+	 *  LOOP_REFは，デフォルトでは1,000,000に設定しているが，想定したよ
+	 *  り遅いプロセッサでは，サンプルプログラムの実行開始に時間がかか
+	 *  りすぎるという問題を生じる．逆に想定したより速いプロセッサでは，
+	 *  LOOP_REF回の空ループの実行時間が短くなり，task_loopに設定する値
+	 *  の誤差が大きくなるという問題がある．
 	 *
-	 *  ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé©
-	 *  åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼
+	 *  そこで，そのようなターゲットでは，target_test.hで，LOOP_REFを適
+	 *  切な値に定義するのが望ましい．
 	 *
-	 *  ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã
-	 *  ã¯ã­å®ç¾©ããï¼TASK_LOOPããã¯ã­å®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã
-	 *  è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ãç©ºã«ã¼ãã®åæ°ã¨ããï¼
+	 *  また，task_loopの値を固定したい場合には，その値をTASK_LOOPにマ
+	 *  クロ定義する．TASK_LOOPがマクロ定義されている場合，上記の測定を
+	 *  行わずに，TASK_LOOPに定義された値を空ループの回数とする．
 	 *
-	 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã
-	 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE
-	 * ããã¯ã­å®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ
-	 * ãä½¿ãï¼
+	 * ターゲットによっては，空ループの実行時間の1回目の測定で，本来よ
+	 * りも長めになるものがある．このようなターゲットでは，MEASURE_TWICE
+	 * をマクロ定義することで，1回目の測定結果を捨てて，2回目の測定結果
+	 * を使う．
 	 */
 #ifdef TASK_LOOP
@@ -420,5 +376,5 @@
 
 	/*
- 	 *  ã¿ã¹ã¯ã®èµ·å
+ 	 *  タスクの起動
 	 */
 	SVC_PERROR(act_tsk(TASK1));
@@ -426,5 +382,5 @@
 
 	/*
- 	 *  ã¡ã¤ã³ã«ã¼ã
+ 	 *  メインループ
 	 */
 	do {
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cdl	(revision 321)
@@ -1,14 +1,14 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		サンプルプログラム(1)のコンポーネント記述ファイル
  *
  *  $Id$
  */
 /*
- *  ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å®ç¾©
+ *  カーネルオブジェクトの定義
  */
 import(<kernel.cdl>);
 
 /*
- *  ã¿ã¼ã²ããéä¾å­ã®ã»ã«ã¿ã¤ãã®å®ç¾©
+ *  ターゲット非依存のセルタイプの定義
  */
 import("syssvc/tSerialPort.cdl");
@@ -20,40 +20,39 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨ã®åãè¾¼ã¿
+ *  ターゲット依存部の取り込み
  */
 import("target.cdl");
 
 /*
- *  ãã»ã«ã®çµä¸ãè¨è¿°ãã¨ã¯ï¼"cell"ã§å§ã¾ãè¡ããï¼ããã«å¯¾å¿ãã"};"
- *  ã®è¡ã¾ã§ã®ãã¨ãè¨ãï¼
+ *  「セルの組上げ記述」とは，"cell"で始まる行から，それに対応する"};"
+ *  の行までのことを言う．
  */
 
 /*
- *  ã·ã¹ãã ã­ã°æ©è½ã®çµä¸ãè¨è¿°
+ *  システムログ機能の組上げ記述
  *
- *  ã·ã¹ãã ã­ã°æ©è½ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãï¼ã³
- *  ã³ãã¤ã«ãªãã·ã§ã³ã«-DTOPPERS_OMIT_SYSLOGãè¿½å ããã°ããï¼ãã ãï¼
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ã¹ãã ã­ã°æ©è½ãä½¿ç¨ããããï¼ãããå¤ããã¨
- *  ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ã¹ãã ã­ã°æ©è½ã®ã¢ããã¿ãå¤ããªããã°ãªããª
- *  ãï¼tecsgenãè­¦åã¡ãã»ã¼ã¸ãåºããï¼ç¡è¦ãã¦ããï¼
+ *  システムログ機能を外す場合には，以下のセルの組上げ記述を削除し，コ
+ *  ンパイルオプションに-DTOPPERS_OMIT_SYSLOGを追加すればよい．ただし，
+ *  システムログタスクはシステムログ機能を使用するため，それも外すこと
+ *  が必要である．また，システムログ機能のアダプタも外さなければならな
+ *  い．tecsgenが警告メッセージを出すが，無視してよい．
  */
 cell tSysLog SysLog {
-	logBufferSize = 32;					/* ã­ã°ãããã¡ã®ãµã¤ãº */
+	logBufferSize = 32;					/* ログバッファのサイズ */
 	initLogMask = C_EXP("LOG_UPTO(LOG_NOTICE)");
-										/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
+										/* ログバッファに記録すべき重要度 */
 	initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)");
-									   	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+									   	/* 低レベル出力すべき重要度 */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ã¹ãã ã­ã°æ©è½
- *  ãå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°
+ *  C言語で記述されたアプリケーションから，TECSベースのシステムログ機能
+ *  を呼び出すためのアダプタの組上げ記述
  *
- *  ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«ï¼syslogé¢æ°ã¨syslog_0é¢æ°ï½syslog_5
- *  é¢æ°ä»¥å¤ã®ãã®ï¼ã«ãCè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããå¼ã³åºããª
- *  ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ããã°ããï¼
+ *  システムログ機能のサービスコール（syslog関数とsyslog_0関数～syslog_5
+ *  関数以外のもの）ルをC言語で記述されたアプリケーションから呼び出さな
+ *  い場合には，以下のセルの組上げ記述を削除すればよい．
  */
 cell tSysLogAdapter SysLogAdapter {
@@ -62,28 +61,27 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®çµä¸ãè¨è¿°
+ *  シリアルインタフェースドライバの組上げ記述
  *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨
- *  è¿°ãåé¤ããã°ããï¼ãã ãï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼
- *  ã¹ãã©ã¤ããä½¿ç¨ããããï¼ãããå¤ããã¨ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ãªã¢
- *  ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¢ããã¿ãå¤ããªããã°ãªããªãï¼
+ *  シリアルインタフェースドライバを外す場合には，以下のセルの組上げ記
+ *  述を削除すればよい．ただし，システムログタスクはシリアルインタフェー
+ *  スドライバを使用するため，それも外すことが必要である．また，シリア
+ *  ルインタフェースドライバのアダプタも外さなければならない．
  */
 cell tSerialPort SerialPort1 {
-	receiveBufferSize = 256;			/* åä¿¡ãããã¡ã®ãµã¤ãº */
-	sendBufferSize    = 256;			/* éä¿¡ãããã¡ã®ãµã¤ãº */
+	receiveBufferSize = 256;			/* 受信バッファのサイズ */
+	sendBufferSize    = 256;			/* 送信バッファのサイズ */
 
-	/* ã¿ã¼ã²ããä¾å­é¨ã¨ã®çµå */
+	/* ターゲット依存部との結合 */
 	cSIOPort = SIOPortTarget1.eSIOPort;
-	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* ã³ã¼ã«ããã¯ */
+	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* コールバック */
 };
 
 /*
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ãªã¢ã«ã¤ã³ã¿
- *  ãã§ã¼ã¹ãã©ã¤ããå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°
+ *  C言語で記述されたアプリケーションから，TECSベースのシリアルインタ
+ *  フェースドライバを呼び出すためのアダプタの組上げ記述
  *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãµã¼ãã¹ã³ã¼ã«ãCè¨èªã§è¨è¿°ãããã¢
- *  ããªã±ã¼ã·ã§ã³ããå¼ã³åºããªãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãå
- *  é¤ããã°ããï¼
+ *  シリアルインタフェースドライバのサービスコールをC言語で記述されたア
+ *  プリケーションから呼び出さない場合には，以下のセルの組上げ記述を削
+ *  除すればよい．
  */
 cell tSerialAdapter SerialAdapter {
@@ -92,33 +90,32 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµä¸ãè¨è¿°
+ *  システムログタスクの組上げ記述
  *
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãã
- *  ã°ããï¼
+ *  システムログタスクを外す場合には，以下のセルの組上げ記述を削除すれ
+ *  ばよい．
  */
 cell tLogTask LogTask {
-	priority  = 3;					/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åªå
-åº¦ */
-	stackSize = LogTaskStackSize;	/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+	priority  = 3;					/* システムログタスクの優先度 */
+	stackSize = LogTaskStackSize;	/* システムログタスクのスタックサイズ */
 
-	/* ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå */
+	/* シリアルインタフェースドライバとの結合 */
 	cSerialPort        = SerialPort1.eSerialPort;
 	cnSerialPortManage = SerialPort1.enSerialPortManage;
 
-	/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®çµå */
+	/* システムログ機能との結合 */
 	cSysLog = SysLog.eSysLog;
 
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®çµä¸ãè¨è¿°
+ *  カーネル起動メッセージ出力の組上げ記述
  *
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°
- *  ãåé¤ããã°ããï¼
+ *  カーネル起動メッセージの出力を外す場合には，以下のセルの組上げ記述
+ *  を削除すればよい．
  */
 cell tBanner Banner {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	targetName      = BannerTargetName;
 	copyrightNotice = BannerCopyrightNotice;
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cfg	(revision 321)
@@ -1,4 +1,4 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *		サンプルプログラム(1)のシステムコンフィギュレーションファイル
  *
  *  $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ããããã¡ã¤ã«
+ *		サンプルプログラム(1)のヘッダファイル
  */
 
@@ -63,47 +48,42 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ *  ターゲット依存の定義
  */
 #include "target_test.h"
 
 /*
- *  åã¿ã¹ã¯ã®åªå
-åº¦ã®å®ç¾©
+ *  各タスクの優先度の定義
  */
 
-#define EXC_PRIORITY	1		/* ä¾å¤å¦çã¿ã¹ã¯ã®åªå
-åº¦ */
-#define MAIN_PRIORITY	6		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
-åº¦ */
-								/* HIGH_PRIORITYããé«ããããã¨ */
+#define EXC_PRIORITY	1		/* 例外処理タスクの優先度 */
+#define MAIN_PRIORITY	6		/* メインタスクの優先度 */
+								/* HIGH_PRIORITYより高くすること */
 
-#define HIGH_PRIORITY	9		/* ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã®åªå
-åº¦ */
+#define HIGH_PRIORITY	9		/* 並行実行されるタスクの優先度 */
 #define MID_PRIORITY	10
 #define LOW_PRIORITY	11
 
 /*
- *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ *  ターゲットに依存する可能性のある定数の定義
  */
 
 #ifndef TASK_PORTID
-#define	TASK_PORTID		1			/* æå­å
-¥åããã·ãªã¢ã«ãã¼ãID */
+#define	TASK_PORTID		1			/* 文字入力するシリアルポートID */
 #endif /* TASK_PORTID */
 
 #ifndef STACK_SIZE
-#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#define	STACK_SIZE		4096		/* タスクのスタックサイズ */
 #endif /* STACK_SIZE */
 
 #ifndef KMM_SIZE
-#define	KMM_SIZE		(STACK_SIZE * 16)	/* ã«ã¼ãã«ãå²ãä»ãã   */
-#endif /* KMM_SIZE */						/*     ã¡ã¢ãªé åã®ãµã¤ãº */
+#define	KMM_SIZE		(STACK_SIZE * 16)	/* カーネルが割り付ける   */
+#endif /* KMM_SIZE */						/*     メモリ領域のサイズ */
 
 #ifndef LOOP_REF
-#define LOOP_REF		ULONG_C(1000000)	/* éåº¦è¨æ¸¬ç¨ã®ã«ã¼ãåæ° */
+#define LOOP_REF		ULONG_C(1000000)	/* 速度計測用のループ回数 */
 #endif /* LOOP_REF */
 
 /*
- *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ *  関数のプロトタイプ宣言
  */
 #ifndef TOPPERS_MACRO_ONLY
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  ãããã¯ã¼ã¯åãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
+ *  ネットワーク化サンプルプログラム(1)の本体
  */
 
@@ -62,8 +50,8 @@
 
 /*
- *  ãã¯ã­å®ç¾©
- */
-
-/*  ãªãã¼ã ã®è§£é¤  */
+ *  マクロ定義
+ */
+
+/*  リネームの解除  */
 
 #undef syslog
@@ -73,5 +61,5 @@
 #define EOF		(-1)
 
-/*  TELNET ãªãã·ã§ã³ */
+/*  TELNET オプション */
 
 #define TELNET_OPT_SE		(240)
@@ -93,16 +81,14 @@
 
 /*
- *  å¤æ°
- */
-
-/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+ *  変数
+ */
+
+/*  TCP 送受信ウィンドバッファ  */
 
 uint8_t tcp_swbuf[TCP_SWBUF_SIZE];
 uint8_t tcp_rwbuf[TCP_RWBUF_SIZE];
 
-bool_t		connected	= false;	/* ã³ãã¯ã·ã§ã³ã®ç¶æ
-	*/
-bool_t		wait_accept	= false;	/* æ¥ç¶è¦æ±å¾
-ã¡ä¸­	*/
+bool_t		connected	= false;	/* コネクションの状態	*/
+bool_t		wait_accept	= false;	/* 接続要求待ち中	*/
 
 #ifdef SUPPORT_INET4
@@ -128,5 +114,5 @@
 
 /*
- *  ãããã¯ã¼ã¯å±¤ã®é¸æ
+ *  ネットワーク層の選択
  */
 
@@ -146,5 +132,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 
@@ -180,5 +166,5 @@
 
 /*
- *  ã³ãã¯ã·ã§ã³ãåæ­
+ *  コネクションを切断
  */
 
@@ -203,5 +189,5 @@
 
 /*
- *  éä¿¡ãããã¡ã®ãã©ãã·ã¥
+ *  送信バッファのフラッシュ
  */
 
@@ -221,5 +207,5 @@
 
 /*
- *  æå­éä¿¡
+ *  文字送信
  */
 
@@ -248,5 +234,5 @@
 
 /*
- *  æå­åä¿¡ï¼å¤æãªãï¼
+ *  文字受信（変換なし）
  */
 
@@ -277,5 +263,5 @@
 
 /*
- *  æå­åä¿¡ï¼TELNET ãªãã·ã§ã³ãã¹ã­ããï¼
+ *  文字受信（TELNET オプションをスキップ）
  */
 
@@ -309,5 +295,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãããã®èª­åºã
+ *  シリアルポートからの読出し
  */
 
@@ -346,5 +332,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡
+ *  シリアルポートの制御
  */
 
@@ -357,5 +343,5 @@
 
 /*
- *  ãã£ã¨ãé·ãæ´æ°å (LONGEST) ã¨ç¬¦å·ãªãæ´æ°å (ULONGEST)
+ *  もっとも長い整数型 (LONGEST) と符号なし整数型 (ULONGEST)
  */
 
@@ -382,8 +368,8 @@
 
 /*
- *  ã­ã°ã®ã·ãã¥ã¬ã¼ã·ã§ã³
- */
-
-/*  æ°å¤å¤æã®ããã®å¤æè¡¨  */
+ *  ログのシミュレーション
+ */
+
+/*  数値変換のための変換表  */
 
 static const char radhex[] = "0123456789abcdef";
@@ -391,5 +377,5 @@
 
 /*
- *  put_num -- printf ã®æ°å¤å¤æ
+ *  put_num -- printf の数値変換
  */
 
@@ -423,5 +409,5 @@
 
 	pad = ix;
-	if (!left)	/* å³è©°ã */
+	if (!left)	/* 右詰め */
 		for ( ; pad < width; pad ++)
 			put_char(cepid, padchar);
@@ -430,5 +416,5 @@
 		put_char(cepid, digits[ix]);
 
-	if (left)	/* å·¦è©°ã */
+	if (left)	/* 左詰め */
 		for ( ; pad < width; pad ++)
 			put_char(cepid, padchar);
@@ -440,5 +426,5 @@
 
 /*
- *  put_ipv4addr -- IPv4 ã¢ãã¬ã¹åºå
+ *  put_ipv4addr -- IPv4 アドレス出力
  */
 
@@ -446,5 +432,5 @@
 put_ipv4addr (ID cepid, ULONGEST *addr, int_t width)
 {
-	int_t len = 3;	/* 3 ã¯ '.' ã®æå­æ° */
+	int_t len = 3;	/* 3 は '.' の文字数 */
 
 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
@@ -483,5 +469,5 @@
 
 /*
- *  ipv6addr -- IPv6 ã¢ãã¬ã¹åºå
+ *  ipv6addr -- IPv6 アドレス出力
  */
 
@@ -535,5 +521,5 @@
 
 /*
- *  put_macaddr -- MAC ã¢ãã¬ã¹åºå
+ *  put_macaddr -- MAC アドレス出力
  */
 
@@ -556,5 +542,5 @@
 
 /*
- *  å¼æ°ãåãåºãããã®ãã¯ã­
+ *  引数を取り出すためのマクロ
  */
 
@@ -590,5 +576,5 @@
 
 /*
- *  ã­ã°åºå
+ *  ログ出力
  */
 
@@ -606,5 +592,5 @@
 		va_start(ap, format);
 		while ((ch = *format ++) != '\0') {
-			if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+			if (ch != '%') {		/* 書式指定以外 */
 				put_char(TCP_CEPID, (char)ch);
 				continue;
@@ -614,5 +600,5 @@
 			padchar = ' ';
 
-			if (ch == '-') {		/* å·¦è©°ã */
+			if (ch == '-') {		/* 左詰め */
 				format ++;
 				left = -1;
@@ -621,16 +607,15 @@
 				left = 1;
 
-			if ((ch = *format ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+			if ((ch = *format ++) == '0') {	/* 上位桁の 0 */
 				padchar = '0';
 				ch = *format ++;
 				}
 
-			while ('0' <= ch && ch <= '9') {	/* åºåå¹
- */
+			while ('0' <= ch && ch <= '9') {	/* 出力幅 */
 				width = width * 10 + ch - '0';
 				ch = *format ++;
 				}
 
-			while (ch == 'l') {		/* long (long) ã®æå® */
+			while (ch == 'l') {		/* long (long) の指定 */
 				longflag ++;
 				ch = *format ++;
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.cdl	(revision 321)
@@ -1,14 +1,14 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		サンプルプログラム(1)のコンポーネント記述ファイル
  *
  *  $Id$
  */
 /*
- *  ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å®ç¾©
+ *  カーネルオブジェクトの定義
  */
 import(<kernel.cdl>);
 
 /*
- *  ã¿ã¼ã²ããéä¾å­ã®ã»ã«ã¿ã¤ãã®å®ç¾©
+ *  ターゲット非依存のセルタイプの定義
  */
 import("syssvc/tSerialPort.cdl");
@@ -20,40 +20,39 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨ã®åãè¾¼ã¿
+ *  ターゲット依存部の取り込み
  */
 import("target.cdl");
 
 /*
- *  ãã»ã«ã®çµä¸ãè¨è¿°ãã¨ã¯ï¼"cell"ã§å§ã¾ãè¡ããï¼ããã«å¯¾å¿ãã"};"
- *  ã®è¡ã¾ã§ã®ãã¨ãè¨ãï¼
+ *  「セルの組上げ記述」とは，"cell"で始まる行から，それに対応する"};"
+ *  の行までのことを言う．
  */
 
 /*
- *  ã·ã¹ãã ã­ã°æ©è½ã®çµä¸ãè¨è¿°
+ *  システムログ機能の組上げ記述
  *
- *  ã·ã¹ãã ã­ã°æ©è½ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãï¼ã³
- *  ã³ãã¤ã«ãªãã·ã§ã³ã«-DTOPPERS_OMIT_SYSLOGãè¿½å ããã°ããï¼ãã ãï¼
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ã¹ãã ã­ã°æ©è½ãä½¿ç¨ããããï¼ãããå¤ããã¨
- *  ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ã¹ãã ã­ã°æ©è½ã®ã¢ããã¿ãå¤ããªããã°ãªããª
- *  ãï¼tecsgenãè­¦åã¡ãã»ã¼ã¸ãåºããï¼ç¡è¦ãã¦ããï¼
+ *  システムログ機能を外す場合には，以下のセルの組上げ記述を削除し，コ
+ *  ンパイルオプションに-DTOPPERS_OMIT_SYSLOGを追加すればよい．ただし，
+ *  システムログタスクはシステムログ機能を使用するため，それも外すこと
+ *  が必要である．また，システムログ機能のアダプタも外さなければならな
+ *  い．tecsgenが警告メッセージを出すが，無視してよい．
  */
 cell tSysLog SysLog {
-	logBufferSize = 32;					/* ã­ã°ãããã¡ã®ãµã¤ãº */
+	logBufferSize = 32;					/* ログバッファのサイズ */
 	initLogMask = C_EXP("LOG_UPTO(LOG_NOTICE)");
-										/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
+										/* ログバッファに記録すべき重要度 */
 	initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)");
-									   	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+									   	/* 低レベル出力すべき重要度 */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ã¹ãã ã­ã°æ©è½
- *  ãå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°
+ *  C言語で記述されたアプリケーションから，TECSベースのシステムログ機能
+ *  を呼び出すためのアダプタの組上げ記述
  *
- *  ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«ï¼syslogé¢æ°ã¨syslog_0é¢æ°ï½syslog_5
- *  é¢æ°ä»¥å¤ã®ãã®ï¼ã«ãCè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããå¼ã³åºããª
- *  ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ããã°ããï¼
+ *  システムログ機能のサービスコール（syslog関数とsyslog_0関数～syslog_5
+ *  関数以外のもの）ルをC言語で記述されたアプリケーションから呼び出さな
+ *  い場合には，以下のセルの組上げ記述を削除すればよい．
  */
 cell tSysLogAdapter SysLogAdapter {
@@ -62,28 +61,27 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®çµä¸ãè¨è¿°
+ *  シリアルインタフェースドライバの組上げ記述
  *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨
- *  è¿°ãåé¤ããã°ããï¼ãã ãï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼
- *  ã¹ãã©ã¤ããä½¿ç¨ããããï¼ãããå¤ããã¨ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ãªã¢
- *  ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¢ããã¿ãå¤ããªããã°ãªããªãï¼
+ *  シリアルインタフェースドライバを外す場合には，以下のセルの組上げ記
+ *  述を削除すればよい．ただし，システムログタスクはシリアルインタフェー
+ *  スドライバを使用するため，それも外すことが必要である．また，シリア
+ *  ルインタフェースドライバのアダプタも外さなければならない．
  */
 cell tSerialPort SerialPort1 {
-	receiveBufferSize = 256;			/* åä¿¡ãããã¡ã®ãµã¤ãº */
-	sendBufferSize    = 256;			/* éä¿¡ãããã¡ã®ãµã¤ãº */
+	receiveBufferSize = 256;			/* 受信バッファのサイズ */
+	sendBufferSize    = 256;			/* 送信バッファのサイズ */
 
-	/* ã¿ã¼ã²ããä¾å­é¨ã¨ã®çµå */
+	/* ターゲット依存部との結合 */
 	cSIOPort = SIOPortTarget1.eSIOPort;
-	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* ã³ã¼ã«ããã¯ */
+	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* コールバック */
 };
 
 /*
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ãªã¢ã«ã¤ã³ã¿
- *  ãã§ã¼ã¹ãã©ã¤ããå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°
+ *  C言語で記述されたアプリケーションから，TECSベースのシリアルインタ
+ *  フェースドライバを呼び出すためのアダプタの組上げ記述
  *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãµã¼ãã¹ã³ã¼ã«ãCè¨èªã§è¨è¿°ãããã¢
- *  ããªã±ã¼ã·ã§ã³ããå¼ã³åºããªãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãå
- *  é¤ããã°ããï¼
+ *  シリアルインタフェースドライバのサービスコールをC言語で記述されたア
+ *  プリケーションから呼び出さない場合には，以下のセルの組上げ記述を削
+ *  除すればよい．
  */
 cell tSerialAdapter SerialAdapter {
@@ -92,33 +90,32 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµä¸ãè¨è¿°
+ *  システムログタスクの組上げ記述
  *
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãã
- *  ã°ããï¼
+ *  システムログタスクを外す場合には，以下のセルの組上げ記述を削除すれ
+ *  ばよい．
  */
 cell tLogTask LogTask {
-	priority  = 3;					/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åªå
-åº¦ */
-	stackSize = LogTaskStackSize;	/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+	priority  = 3;					/* システムログタスクの優先度 */
+	stackSize = LogTaskStackSize;	/* システムログタスクのスタックサイズ */
 
-	/* ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå */
+	/* シリアルインタフェースドライバとの結合 */
 	cSerialPort        = SerialPort1.eSerialPort;
 	cnSerialPortManage = SerialPort1.enSerialPortManage;
 
-	/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®çµå */
+	/* システムログ機能との結合 */
 	cSysLog = SysLog.eSysLog;
 
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®çµä¸ãè¨è¿°
+ *  カーネル起動メッセージ出力の組上げ記述
  *
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°
- *  ãåé¤ããã°ããï¼
+ *  カーネル起動メッセージの出力を外す場合には，以下のセルの組上げ記述
+ *  を削除すればよい．
  */
 cell tBanner Banner {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	targetName      = BannerTargetName;
 	copyrightNotice = BannerCopyrightNotice;
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.cfg	(revision 321)
@@ -4,6 +4,6 @@
 
 /*
- *  ãããã¯ã¼ã¯å¯¾å¿ãµã³ãã«ãã­ã°ã©ã (1)ã®
- *  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ネットワーク対応サンプルプログラム(1)の
+ *  システムコンフィギュレーションファイル
  */
 
@@ -17,5 +17,5 @@
 INCLUDE("tinet_sample1n.cfg");
 
-/* ã»ããã© */
+/* セマフォ */
 
 CRE_SEM(SEM_TCP_SYSLOG, { TA_TPRI, 1, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -50,13 +38,13 @@
 
 /*
- *  ãããã¯ã¼ã¯å¯¾å¿ãµã³ãã«ãã­ã°ã©ã (1)ã®ããããã¡ã¤ã«
+ *  ネットワーク対応サンプルプログラム(1)のヘッダファイル
  */
 
-/*  TCP éåä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº  */
+/*  TCP 送受信ウィンドバッファサイズ  */
 
 #define TCP_SWBUF_SIZE	512
 #define TCP_RWBUF_SIZE	512
 
-/*  ãªãã¼ã   */
+/*  リネーム  */
 
 #define syslog		net_syslog
@@ -66,10 +54,10 @@
 #ifndef _MACRO_ONLY
 
-/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+/*  TCP 送受信ウィンドバッファ  */
 
 extern uint8_t tcp_swbuf[];
 extern uint8_t tcp_rwbuf[];
 
-/*  ãããã¯ã¼ã¯å¯¾å¿åé¢æ°  */
+/*  ネットワーク対応化関数  */
 
 extern void net_syslog(uint_t prio, const char *format, ...) throw();
@@ -77,5 +65,5 @@
 extern ER	net_serial_ctl_por(ID portid, uint_t ioctl) throw();
 
-/*  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°  */
+/*  ノンブロッキングコールのコールバック関数  */
 
 extern ER	callback_nblk_tcp(ID cepid, FN fncd, void *p_parblk);
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,90 +42,66 @@
 
 /* 
- *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
- *
- *  ASPã«ã¼ãã«ã®åºæ¬çãªåä½ãç¢ºèªããããã®ãµã³ãã«ãã­ã°ã©ã ï¼
- *
- *  ãã­ã°ã©ã ã®æ¦è¦:
- *
- *  ã¦ã¼ã¶ã¤ã³ã¿ãã§ã¼ã¹ãåãæã¤ã¡ã¤ã³ã¿ã¹ã¯ï¼ã¿ã¹ã¯ID: MAIN_TASKï¼åª
- *  å
-åº¦: MAIN_PRIORITYï¼ã¨ï¼3ã¤ã®ä¸¦è¡å®è¡ãããã¿ã¹ã¯ï¼ã¿ã¹ã¯ID:
- *  TASK1ï½TASK3ï¼åæåªå
-åº¦: MID_PRIORITYï¼ã§æ§æãããï¼ã¾ãï¼èµ·åå¨
- *  æã2ç§ã®å¨æãã³ãã©ï¼å¨æãã³ãã©ID: CYCHDR1ï¼ãç¨ããï¼
- *
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¯ï¼task_loopåç©ºã«ã¼ããå®è¡ããåº¦ã«ï¼ã¿ã¹ã¯ã
- *  å®è¡ä¸­ã§ãããã¨ãããããã¡ãã»ã¼ã¸ãè¡¨ç¤ºããï¼ç©ºã«ã¼ããå®è¡ãã
- *  ã®ã¯ï¼ç©ºã«ã¼ããªãã§ã¡ãã»ã¼ã¸ãåºåããã¨ï¼å¤éã®ã¡ãã»ã¼ã¸ãåºå
- *  ããï¼ãã­ã°ã©ã ã®åä½ãç¢ºèªãããããªãããã§ããï¼ã¾ãï¼ä½éãªã·
- *  ãªã¢ã«ãã¼ããç¨ãã¦ã¡ãã»ã¼ã¸ãåºåããå ´åã«ï¼ãã¹ã¦ã®ã¡ãã»ã¼ã¸
- *  ãåºåã§ããããã«ï¼ã¡ãã»ã¼ã¸ã®éãå¶éããã¨ããçç±ãããï¼
- *
- *  å¨æãã³ãã©ã¯ï¼ä¸ã¤ã®åªå
-åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼
- *  LOW_PRIORITYï¼ã®ã¬ãã£ã­ã¥ã¼ãåè»¢ãããï¼ãã­ã°ã©ã ã®èµ·åç´å¾ã¯ï¼
- *  å¨æãã³ãã©ã¯åæ­¢ç¶æ
-ã«ãªã£ã¦ããï¼
- *
- *  ã¡ã¤ã³ã¿ã¹ã¯ã¯ï¼ã·ãªã¢ã«I/Oãã¼ãããã®æå­å
-¥åãè¡ãï¼æå­å
-¥åã
- *  å¾
-ã£ã¦ããéã¯ï¼ä¸¦åå®è¡ãããã¿ã¹ã¯ãå®è¡ããã¦ããï¼ï¼å
-¥åããã
- *  æå­ã«å¯¾å¿ããå¦çãå®è¡ããï¼å
-¥åãããæå­ã¨å¦çã®é¢ä¿ã¯æ¬¡ã®éãï¼
- *  Control-Cã¾ãã¯'Q'ãå
-¥åãããã¨ï¼ãã­ã°ã©ã ãçµäºããï¼
- *
- *  '1' : å¯¾è±¡ã¿ã¹ã¯ãTASK1ã«åãæããï¼åæè¨­å®ï¼ï¼
- *  '2' : å¯¾è±¡ã¿ã¹ã¯ãTASK2ã«åãæããï¼
- *  '3' : å¯¾è±¡ã¿ã¹ã¯ãTASK3ã«åãæããï¼
- *  'a' : å¯¾è±¡ã¿ã¹ã¯ãcTask_activateã«ããèµ·åããï¼
- *  'A' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åè¦æ±ãcTask_cancelActivateã«ããã­ã£ã³ã»ã«ããï¼
- *  'e' : å¯¾è±¡ã¿ã¹ã¯ã«exitTaskãå¼ã³åºããï¼çµäºãããï¼
- *  't' : å¯¾è±¡ã¿ã¹ã¯ãcTask_terminateã«ããå¼·å¶çµäºããï¼
- *  '>' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãHIGH_PRIORITYã«ããï¼
- *  '=' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãMID_PRIORITYã«ããï¼
- *  '<' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãLOW_PRIORITYã«ããï¼
- *  'G' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
-åº¦ãcTask_getPriorityã§èª­ã¿åºãï¼
- *  's' : å¯¾è±¡ã¿ã¹ã¯ã«sleepãå¼ã³åºããï¼èµ·åºå¾
-ã¡ã«ãããï¼
- *  'S' : å¯¾è±¡ã¿ã¹ã¯ã«sleepTimeout10ç§)ãå¼ã³åºããï¼èµ·åºå¾
-ã¡ã«ãããï¼
- *  'w' : å¯¾è±¡ã¿ã¹ã¯ãcTask_wakeupã«ããèµ·åºããï¼
- *  'W' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åºè¦æ±ãcTask_cancelWakeupã«ããã­ã£ã³ã»ã«ããï¼
- *  'l' : å¯¾è±¡ã¿ã¹ã¯ãcTask_releaseWaitã«ããå¼·å¶çã«å¾
-ã¡è§£é¤ã«ããï¼
- *  'u' : å¯¾è±¡ã¿ã¹ã¯ãcTask_suspendã«ããå¼·å¶å¾
-ã¡ç¶æ
-ã«ããï¼
- *  'm' : å¯¾è±¡ã¿ã¹ã¯ã®å¼·å¶å¾
-ã¡ç¶æ
-ãcTask_resumeã«ããè§£é¤ããï¼
- *  'd' : å¯¾è±¡ã¿ã¹ã¯ã«delay(10ç§)ãå¼ã³åºããï¼æéçµéå¾
-ã¡ã«ãããï¼
- *  'x' : å¯¾è±¡ã¿ã¹ã¯ã«raiseTerminateã«ããçµäºè¦æ±ããï¼
- *  'y' : å¯¾è±¡ã¿ã¹ã¯ã«disableTerminateãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãç¦æ­¢ããï¼
- *  'Y' : å¯¾è±¡ã¿ã¹ã¯ã«enableTerminateãå¼ã³åºããï¼ã¿ã¹ã¯çµäºãè¨±å¯ããï¼
- *  'r' : 3ã¤ã®åªå
-åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬
- *        ãã£ã­ã¥ã¼ãåè»¢ãããï¼
- *  'c' : å¨æãã³ãã©ãåä½éå§ãããï¼
- *  'C' : å¨æãã³ãã©ãåä½åæ­¢ãããï¼
- *  'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼
- *  'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ­¢ãããï¼
- *  'z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼
- *  'Z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUã­ãã¯ç¶æ
-ã§CPUä¾å¤ãçºçãããï¼ãã­ã°ã©ã ã
- *        çµäºããï¼ï¼
- *  'V' : fetchHighResolutionTimerã§é«åè§£è½ã¿ã¤ãã2åèª­ãï¼
- *  'v' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããï¼ããã©ã«ãï¼ï¼
- *  'q' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããªãï¼
- * å¼ã³å£é¢æ° #_TCPF_#
+ *  サンプルプログラム(1)の本体
+ *
+ *  ASPカーネルの基本的な動作を確認するためのサンプルプログラム．
+ *
+ *  プログラムの概要:
+ *
+ *  ユーザインタフェースを受け持つメインタスク（タスクID: MAIN_TASK，優
+ *  先度: MAIN_PRIORITY）と，3つの並行実行されるタスク（タスクID:
+ *  TASK1～TASK3，初期優先度: MID_PRIORITY）で構成される．また，起動周
+ *  期が2秒の周期ハンドラ（周期ハンドラID: CYCHDR1）を用いる．
+ *
+ *  並行実行されるタスクは，task_loop回空ループを実行する度に，タスクが
+ *  実行中であることをあらわすメッセージを表示する．空ループを実行する
+ *  のは，空ループなしでメッセージを出力すると，多量のメッセージが出力
+ *  され，プログラムの動作が確認しずらくなるためである．また，低速なシ
+ *  リアルポートを用いてメッセージを出力する場合に，すべてのメッセージ
+ *  が出力できるように，メッセージの量を制限するという理由もある．
+ *
+ *  周期ハンドラは，三つの優先度（HIGH_PRIORITY，MID_PRIORITY，
+ *  LOW_PRIORITY）のレディキューを回転させる．プログラムの起動直後は，
+ *  周期ハンドラは停止状態になっている．
+ *
+ *  メインタスクは，シリアルI/Oポートからの文字入力を行い（文字入力を
+ *  待っている間は，並列実行されるタスクが実行されている），入力された
+ *  文字に対応した処理を実行する．入力された文字と処理の関係は次の通り．
+ *  Control-Cまたは'Q'が入力されると，プログラムを終了する．
+ *
+ *  '1' : 対象タスクをTASK1に切り換える（初期設定）．
+ *  '2' : 対象タスクをTASK2に切り換える．
+ *  '3' : 対象タスクをTASK3に切り換える．
+ *  'a' : 対象タスクをcTask_activateにより起動する．
+ *  'A' : 対象タスクに対する起動要求をcTask_cancelActivateによりキャンセルする．
+ *  'e' : 対象タスクにexitTaskを呼び出させ，終了させる．
+ *  't' : 対象タスクをcTask_terminateにより強制終了する．
+ *  '>' : 対象タスクの優先度をHIGH_PRIORITYにする．
+ *  '=' : 対象タスクの優先度をMID_PRIORITYにする．
+ *  '<' : 対象タスクの優先度をLOW_PRIORITYにする．
+ *  'G' : 対象タスクの優先度をcTask_getPriorityで読み出す．
+ *  's' : 対象タスクにsleepを呼び出させ，起床待ちにさせる．
+ *  'S' : 対象タスクにsleepTimeout10秒)を呼び出させ，起床待ちにさせる．
+ *  'w' : 対象タスクをcTask_wakeupにより起床する．
+ *  'W' : 対象タスクに対する起床要求をcTask_cancelWakeupによりキャンセルする．
+ *  'l' : 対象タスクをcTask_releaseWaitにより強制的に待ち解除にする．
+ *  'u' : 対象タスクをcTask_suspendにより強制待ち状態にする．
+ *  'm' : 対象タスクの強制待ち状態をcTask_resumeにより解除する．
+ *  'd' : 対象タスクにdelay(10秒)を呼び出させ，時間経過待ちにさせる．
+ *  'x' : 対象タスクにraiseTerminateにより終了要求する．
+ *  'y' : 対象タスクにdisableTerminateを呼び出させ，タスク終了を禁止する．
+ *  'Y' : 対象タスクにenableTerminateを呼び出させ，タスク終了を許可する．
+ *  'r' : 3つの優先度（HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY）のレ
+ *        ディキューを回転させる．
+ *  'c' : 周期ハンドラを動作開始させる．
+ *  'C' : 周期ハンドラを動作停止させる．
+ *  'b' : アラームハンドラを5秒後に起動するよう動作開始させる．
+ *  'B' : アラームハンドラを動作停止させる．
+ *  'z' : 対象タスクにCPU例外を発生させる（タスクを終了させる）．
+ *  'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる（プログラムを
+ *        終了する）．
+ *  'V' : fetchHighResolutionTimerで高分解能タイマを2回読む．
+ *  'v' : 発行したシステムコールを表示する（デフォルト）．
+ *  'q' : 発行したシステムコールを表示しない．
+ * 呼び口関数 #_TCPF_#
  * require port: signature:sKernel context:task
  *   ER             getExtendedInformation( intptr_t* p_exinf );
@@ -246,5 +207,5 @@
 
 /*
- *  ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã®ã­ã°åºå
+ *  サービスコールのエラーのログ出力
  */
 Inline void
@@ -259,16 +220,15 @@
 
 /*
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¸ã®ã¡ãã»ã¼ã¸é å
+ *  並行実行されるタスクへのメッセージ領域
  */
 char	message[3];
 
 /*
- *  ã«ã¼ãåæ°
- */
-ulong_t	task_loop;		/* ã¿ã¹ã¯å
-ã§ã®ã«ã¼ãåæ° */
-
-/*
- *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯
+ *  ループ回数
+ */
+ulong_t	task_loop;		/* タスク内でのループ回数 */
+
+/*
+ *  並行実行されるタスク
  */
 void eSampleTask_main(int_t subscript)
@@ -330,8 +290,8 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©
- */
-
-ID	cpuexc_tskid;		/* CPUä¾å¤ãèµ·ãããã¿ã¹ã¯ã®ID */
+ *  CPU例外ハンドラ
+ */
+
+ID	cpuexc_tskid;		/* CPU例外を起こしたタスクのID */
 
 #ifdef CPUEXC1
@@ -373,9 +333,8 @@
 
 /*
- *  å¨æãã³ãã©
- *
- *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
-åº¦ã®ã¬ãã£ã­ã¥ã¼
- *  ãåè»¢ãããï¼
+ *  周期ハンドラ
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
  */
 /* #[<ENTRY_FUNC>]# eiCyclicHandler_main
@@ -393,9 +352,8 @@
 
 /*
- *  ã¢ã©ã¼ã ãã³ãã©
- *
- *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
-åº¦ã®ã¬ãã£ã­ã¥ã¼
- *  ãåè»¢ãããï¼
+ *  アラームハンドラ
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
  */
 /* #[<ENTRY_FUNC>]# eiAlarmHandler_main
@@ -412,5 +370,5 @@
 }
 /*
- *  ä¾å¤å¦çã¿ã¹ã¯
+ *  例外処理タスク
  */
 /* #[<ENTRY_FUNC>]# eExceptionTask_main
@@ -424,7 +382,7 @@
 }
 /*
- *  ã¡ã¤ã³ã¿ã¹ã¯
- */
-/* å±æ§ã®è¨­å® *//* #[<ENTRY_FUNC>]# eMainTask_main
+ *  メインタスク
+ */
+/* 属性の設定 *//* #[<ENTRY_FUNC>]# eMainTask_main
  * name:         eMainTask_main
  * global_name:  tSample2_eMainTask_main
@@ -447,7 +405,6 @@
 	} else {
 		/*
-		 *  ã·ãªã¢ã«åºåãã§ããªãå ´åãã­ã°ã¡ãã»ã¼ã¸ãå
-¨ã¦
-		 *  ä½ã¬ãã«åºåã«ããåºåããã
+		 *  シリアル出力ができない場合、ログメッセージを全て
+		 *  低レベル出力により出力する。
 		 */
 		SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_DEBUG)));
@@ -456,9 +413,9 @@
 
 	/*
-	 *  ã·ãªã¢ã«ãã¼ãã®åæå
+	 *  シリアルポートの初期化
 	 *
-	 *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ããä½¿ãå ´åãªã©ï¼ã·ãªã¢ã«
-	 *  ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯
-	 *  ãªãï¼
+	 *  システムログタスクと同じシリアルポートを使う場合など，シリアル
+	 *  ポートがオープン済みの場合にはここでE_OBJエラーになるが，支障は
+	 *  ない．
 	 */
 
@@ -473,31 +430,29 @@
 
 	/*
- 	 *  ã«ã¼ãåæ°ã®è¨­å®
+ 	 *  ループ回数の設定
 	 *
-	 *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯å
-ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼
-	 *  ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨­å®ããï¼ãã®è¨­å®ã®ããã«ï¼
-	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§
-	 *  æ¸¬å®ãï¼ãã®æ¸¬å®çµæããç©ºã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå
-	 *  æ°ãæ±ãï¼task_loopã«è¨­å®ããï¼
+	 *  並行実行されるタスク内での空ループの回数（task_loop）は，空ルー
+	 *  プの実行時間が約0.4秒になるように設定する．この設定のために，
+	 *  LOOP_REF回の空ループの実行時間を，その前後でget_timを呼ぶことで
+	 *  測定し，その測定結果から空ループの実行時間が0.4秒になるループ回
+	 *  数を求め，task_loopに設定する．
 	 *
-	 *  LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨­å®ãã¦ãããï¼æ³å®ããã
-	 *  ãé
-ããã­ã»ããµã§ã¯ï¼ãµã³ãã«ãã­ã°ã©ã ã®å®è¡éå§ã«æéããã
-	 *  ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéããã­ã»ããµã§ã¯ï¼
-	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãç­ããªãï¼task_loopã«è¨­å®ããå¤
-	 *  ã®èª¤å·®ãå¤§ãããªãã¨ããåé¡ãããï¼
+	 *  LOOP_REFは，デフォルトでは1,000,000に設定しているが，想定したよ
+	 *  り遅いプロセッサでは，サンプルプログラムの実行開始に時間がかか
+	 *  りすぎるという問題を生じる．逆に想定したより速いプロセッサでは，
+	 *  LOOP_REF回の空ループの実行時間が短くなり，task_loopに設定する値
+	 *  の誤差が大きくなるという問題がある．
 	 *
-	 *  ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé©
-	 *  åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼
+	 *  そこで，そのようなターゲットでは，target_test.hで，LOOP_REFを適
+	 *  切な値に定義するのが望ましい．
 	 *
-	 *  ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã
-	 *  ã¯ã­å®ç¾©ããï¼TASK_LOOPããã¯ã­å®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã
-	 *  è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ãç©ºã«ã¼ãã®åæ°ã¨ããï¼
+	 *  また，task_loopの値を固定したい場合には，その値をTASK_LOOPにマ
+	 *  クロ定義する．TASK_LOOPがマクロ定義されている場合，上記の測定を
+	 *  行わずに，TASK_LOOPに定義された値を空ループの回数とする．
 	 *
-	 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã
-	 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE
-	 * ããã¯ã­å®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ
-	 * ãä½¿ãï¼
+	 * ターゲットによっては，空ループの実行時間の1回目の測定で，本来よ
+	 * りも長めになるものがある．このようなターゲットでは，MEASURE_TWICE
+	 * をマクロ定義することで，1回目の測定結果を捨てて，2回目の測定結果
+	 * を使う．
 	 */
 #ifdef TASK_LOOP
@@ -521,5 +476,5 @@
 
 	/*
- 	 *  ã¿ã¹ã¯ã®èµ·å
+ 	 *  タスクの起動
 	 */
 
@@ -529,5 +484,5 @@
 
 	/*
- 	 *  ã¡ã¤ã³ã«ã¼ã
+ 	 *  メインループ
 	 */
 	if (is_cSerialPort_joined()) {
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cdl	(revision 321)
@@ -1,14 +1,14 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (2)ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		サンプルプログラム(2)のコンポーネント記述ファイル
  *
  *  $Id$
  */
 /*
- *  ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å®ç¾©
+ *  カーネルオブジェクトの定義
  */
 import("kernel.cdl");
 
 /*
- *  ã¿ã¼ã²ããéä¾å­ã®ã»ã«ã¿ã¤ãã®å®ç¾©
+ *  ターゲット非依存のセルタイプの定義
  */
 import("syssvc/tSerialPort.cdl");
@@ -18,82 +18,79 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨ã®åãè¾¼ã¿
+ *  ターゲット依存部の取り込み
  */
 import("target.cdl");
 
 /*
- *  ãã»ã«ã®çµä¸ãè¨è¿°ãã¨ã¯ï¼"cell"ã§å§ã¾ãè¡ããï¼ããã«å¯¾å¿ãã"};"
- *  ã®è¡ã¾ã§ã®ãã¨ãè¨ãï¼
- */
-
-/*
- *  ã·ã¹ãã ã­ã°æ©è½ã®çµä¸ãè¨è¿°
- *
- *  ã·ã¹ãã ã­ã°æ©è½ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãï¼ã³
- *  ã³ãã¤ã«ãªãã·ã§ã³ã«-DTOPPERS_OMIT_SYSLOGãè¿½å ããã°ããï¼ãã ãï¼
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ã¹ãã ã­ã°æ©è½ãä½¿ç¨ããããï¼ãããå¤ããã¨
- *  ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ã¹ãã ã­ã°æ©è½ã®ã¢ããã¿ãå¤ããªããã°ãªããª
- *  ãï¼tecsgenãè­¦åã¡ãã»ã¼ã¸ãåºããï¼ç¡è¦ãã¦ããï¼
+ *  「セルの組上げ記述」とは，"cell"で始まる行から，それに対応する"};"
+ *  の行までのことを言う．
+ */
+
+/*
+ *  システムログ機能の組上げ記述
+ *
+ *  システムログ機能を外す場合には，以下のセルの組上げ記述を削除し，コ
+ *  ンパイルオプションに-DTOPPERS_OMIT_SYSLOGを追加すればよい．ただし，
+ *  システムログタスクはシステムログ機能を使用するため，それも外すこと
+ *  が必要である．また，システムログ機能のアダプタも外さなければならな
+ *  い．tecsgenが警告メッセージを出すが，無視してよい．
  */
 cell tSysLog SysLog {
-	logBufferSize = 32;					/* ã­ã°ãããã¡ã®ãµã¤ãº */
+	logBufferSize = 32;					/* ログバッファのサイズ */
 	initLogMask = C_EXP("LOG_UPTO(LOG_NOTICE)");
-										/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
+										/* ログバッファに記録すべき重要度 */
 	initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)");
-									   	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
-
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+									   	/* 低レベル出力すべき重要度 */
+
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®çµä¸ãè¨è¿°
- *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨
- *  è¿°ãåé¤ããã°ããï¼ãã ãï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼
- *  ã¹ãã©ã¤ããä½¿ç¨ããããï¼ãããå¤ããã¨ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ãªã¢
- *  ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¢ããã¿ãå¤ããªããã°ãªããªãï¼
+ *  シリアルインタフェースドライバの組上げ記述
+ *
+ *  シリアルインタフェースドライバを外す場合には，以下のセルの組上げ記
+ *  述を削除すればよい．ただし，システムログタスクはシリアルインタフェー
+ *  スドライバを使用するため，それも外すことが必要である．また，シリア
+ *  ルインタフェースドライバのアダプタも外さなければならない．
  */
 cell tSerialPort SerialPort1 {
-	receiveBufferSize = 256;			/* åä¿¡ãããã¡ã®ãµã¤ãº */
-	sendBufferSize    = 256;			/* éä¿¡ãããã¡ã®ãµã¤ãº */
-
-	/* ã¿ã¼ã²ããä¾å­é¨ã¨ã®çµå */
+	receiveBufferSize = 256;			/* 受信バッファのサイズ */
+	sendBufferSize    = 256;			/* 送信バッファのサイズ */
+
+	/* ターゲット依存部との結合 */
 	cSIOPort = SIOPortTarget1.eSIOPort;
-	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* ã³ã¼ã«ããã¯ */
-};
-
-/*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµä¸ãè¨è¿°
- *
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãã
- *  ã°ããï¼
+	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* コールバック */
+};
+
+/*
+ *  システムログタスクの組上げ記述
+ *
+ *  システムログタスクを外す場合には，以下のセルの組上げ記述を削除すれ
+ *  ばよい．
  */
 cell tLogTask LogTask {
-	priority  = 3;					/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åªå
-åº¦ */
-	stackSize = LogTaskStackSize;	/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
-
-	/* ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå */
+	priority  = 3;					/* システムログタスクの優先度 */
+	stackSize = LogTaskStackSize;	/* システムログタスクのスタックサイズ */
+
+	/* シリアルインタフェースドライバとの結合 */
 	cSerialPort        = SerialPort1.eSerialPort;
 	cnSerialPortManage = SerialPort1.enSerialPortManage;
 
-	/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®çµå */
+	/* システムログ機能との結合 */
 	cSysLog = SysLog.eSysLog;
 
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®çµä¸ãè¨è¿°
- *
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°
- *  ãåé¤ããã°ããï¼
+ *  カーネル起動メッセージ出力の組上げ記述
+ *
+ *  カーネル起動メッセージの出力を外す場合には，以下のセルの組上げ記述
+ *  を削除すればよい．
  */
 cell tBanner Banner {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	targetName      = BannerTargetName;
 	copyrightNotice = BannerCopyrightNotice;
@@ -101,33 +98,33 @@
 
 /*
- *  ãµã³ãã«ãã­ã°ã©ã ã®å®ç¾©
+ *  サンプルプログラムの定義
  */
 [singleton]
 celltype tSample2 {
-	require tKernel.eKernel;			/* å¼ã³å£åãªãï¼ä¾ï¼delayï¼*/
-	/*require cKernel = tKernel.eKernel;/* å¼ã³å£åããï¼ä¾ï¼cKernel_delayï¼*/
-	require ciKernel = tKernel.eiKernel;/* å¼ã³å£åããï¼ä¾ï¼ciKernel_ï¼*/
-
-	call sTask		    cTask[4];		/* ã¿ã¹ã¯æä½ */
+	require tKernel.eKernel;			/* 呼び口名なし（例：delay）*/
+	/*require cKernel = tKernel.eKernel;/* 呼び口名あり（例：cKernel_delay）*/
+	require ciKernel = tKernel.eiKernel;/* 呼び口名あり（例：ciKernel_）*/
+
+	call sTask		    cTask[4];		/* タスク操作 */
 	call sTask 			cExceptionTask;
 	call sCyclic        cCyclic;
 	call sAlarm         cAlarm;
 
-	[optional] call sSerialPort	cSerialPort;/* ã·ãªã¢ã«ãã©ã¤ãã¨ã®æ¥ç¶ */
-	call sSysLog		cSysLog;		/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®æ¥ç¶ */
+	[optional] call sSerialPort	cSerialPort;/* シリアルドライバとの接続 */
+	call sSysLog		cSysLog;		/* システムログ機能との接続 */
 	
-	entry sTaskBody		eMainTask;	  	/* Mainã¿ã¹ã¯ */
-	entry sTaskBody		eSampleTask[3];	/* ä¸¦è¡å®è¡ãããã¿ã¹ã¯ */
-	entry sTaskBody		eExceptionTask;	/* ä¾å¤å¦çã¿ã¹ã¯ */
+	entry sTaskBody		eMainTask;	  	/* Mainタスク */
+	entry sTaskBody		eSampleTask[3];	/* 並行実行されるタスク */
+	entry sTaskBody		eExceptionTask;	/* 例外処理タスク */
 	
-	entry siHandlerBody eiCyclicHandler;/* å¨æãã³ãã©*/
-	entry siHandlerBody eiAlarmHandler; /* ã¢ã©ã¼ã ãã³ãã© */
-};
-
-/*
- *  çµã¿ä¸ãè¨è¿°
- */
-
-/* Sample2ã®ãã­ãã¿ã¤ãå®£è¨ */
+	entry siHandlerBody eiCyclicHandler;/* 周期ハンドラ*/
+	entry siHandlerBody eiAlarmHandler; /* アラームハンドラ */
+};
+
+/*
+ *  組み上げ記述
+ */
+
+/* Sample2のプロトタイプ宣言 */
 cell tSample2 Sample2;
 
@@ -136,7 +133,7 @@
 
 cell tTask MainTask {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eMainTask;
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	attribute = C_EXP("TA_ACT");
 	priority = C_EXP("MAIN_PRIORITY");
@@ -145,7 +142,7 @@
 
 cell tTask Task1 {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eSampleTask[0];
-	  /* å±æ§ã®è¨­å® */
+	  /* 属性の設定 */
 	priority = C_EXP("MID_PRIORITY");
 	stackSize = C_EXP("STACK_SIZE");
@@ -153,7 +150,7 @@
 
 cell tTask Task2 {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eSampleTask[1];
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	priority = C_EXP("MID_PRIORITY");
 	stackSize = C_EXP("STACK_SIZE");
@@ -161,7 +158,7 @@
 
 cell tTask Task3 {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eSampleTask[2];
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	priority = C_EXP("MID_PRIORITY");
 	stackSize = C_EXP("STACK_SIZE");
@@ -169,7 +166,7 @@
 
 cell tTask ExceptionTask {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTaskBody = Sample2.eExceptionTask;
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	priority = C_EXP("EXC_PRIORITY");
 	stackSize = C_EXP("STACK_SIZE");
@@ -177,7 +174,7 @@
 
 cell tCyclicHandler CyclicHandler {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	ciHandlerBody = Sample2.eiCyclicHandler;
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	cycleTime = 2000000;
 };
@@ -188,5 +185,5 @@
 
 cell tSample2 Sample2 {
-	/* å¼ã³å£ã®çµå */
+	/* 呼び口の結合 */
 	cTask[ 0 ] = MainTask.eTask;
 	cTask[ 1 ] = Task1.eTask;
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cfg	(revision 321)
@@ -1,4 +1,4 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (2)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *		サンプルプログラム(2)のシステムコンフィギュレーションファイル
  *
  *  $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -57,42 +42,38 @@
 
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (2)ã®ããããã¡ã¤ã«
+ *		サンプルプログラム(2)のヘッダファイル
  */
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ *  ターゲット依存の定義
  */
 #include "target_test.h"
 
 /*
- *  åã¿ã¹ã¯ã®åªå
-åº¦ã®å®ç¾©
+ *  各タスクの優先度の定義
  */
 
-#define EXC_PRIORITY	1		/* ä¾å¤å¦çã¿ã¹ã¯ã®åªå
-åº¦ */
-#define MAIN_PRIORITY	6		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
-åº¦ */
-								/* HIGH_PRIORITYããé«ããããã¨ */
+#define EXC_PRIORITY	1		/* 例外処理タスクの優先度 */
+#define MAIN_PRIORITY	6		/* メインタスクの優先度 */
+								/* HIGH_PRIORITYより高くすること */
 
-#define HIGH_PRIORITY	9		/* ä¸¦åã«å®è¡ãããã¿ã¹ã¯ã®åªå
-åº¦ */
+#define HIGH_PRIORITY	9		/* 並列に実行されるタスクの優先度 */
 #define MID_PRIORITY	10
 #define LOW_PRIORITY	11
 
 /*
- *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ *  ターゲットに依存する可能性のある定数の定義
  */
 
 #ifndef STACK_SIZE
-#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#define	STACK_SIZE		4096		/* タスクのスタックサイズ */
 #endif /* STACK_SIZE */
 
 #ifndef LOOP_REF
-#define LOOP_REF		ULONG_C(1000000)	/* éåº¦è¨æ¸¬ç¨ã®ã«ã¼ãåæ° */
+#define LOOP_REF		ULONG_C(1000000)	/* 速度計測用のループ回数 */
 #endif /* LOOP_REF */
 
 /*
- *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ *  関数のプロトタイプ宣言
  */
 #ifndef TOPPERS_MACRO_ONLY
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tinet_app_config.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tinet_app_config.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tinet_app_config.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,7 +36,7 @@
 
 /*
- *  ã¤ã³ã¿ã¼ããããã­ãã³ã«ãã¡ããªã¼ã®ãµãã¼ã
- *
- *    Makefile ã§æå®ãã¦ãè¯ã
+ *  インターネットプロトコルファミリーのサポート
+ *
+ *    Makefile で指定しても良い
  */
 
@@ -58,6 +46,6 @@
 /*#define SUPPORT_UDP		UDP			*/
 
-/*ãã¼ã¿ãªã³ã¯å±¤ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãé¸æãã	*/
-/*ããããä¸ã¤ã ãé¸æã§ããã				*/
+/*データリンク層のネットワークインタフェースを選択する	*/
+/*いずれか一つだけ選択できる。				*/
 
 /*#define SUPPORT_PPP		PointtoPointProtocol	*/
@@ -68,11 +56,11 @@
 
 /*
- *  TCP/IP ã«é¢ããå®ç¾©
- */
-
-/* TCP ã«é¢ããå®ç¾© */
-
-/*
- *  TCPã®è½åãªã¼ãã³ã®ã¿ãµãã¼ããããã¨ãæå®ããã
+ *  TCP/IP に関する定義
+ */
+
+/* TCP に関する定義 */
+
+/*
+ *  TCPの能動オープンのみサポートすることを指定する。
  */
 
@@ -82,27 +70,27 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
- *    æ³¨æ: Makefile ã§æå®ãã¦ããã
+ *  TCP 通信端点の送受信ウィンドバッファの省コピー機能
+ *    注意: Makefile で指定している。
  */
 /*#define TCP_CFG_RWBUF_CSAVE_ONLY*/
-			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+			/* TCP 通信端点の受信ウィンドバッファの省コピー機能のみ有効にする。	*/
 /*#define TCP_CFG_RWBUF_CSAVE*/
-			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
+			/* TCP 通信端点の受信ウィンドバッファの省コピー機能を有効にする。	*/
 /*#define TCP_CFG_SWBUF_CSAVE_ONLY*/
-			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+			/* TCP 通信端点の送信ウィンドバッファの省コピー機能のみ有効にする。	*/
 /*#define TCP_CFG_SWBUF_CSAVE*/
-			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
-
-/*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã
- *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ã
- *  ãã ããæ­£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã
- *  ã¾ããæå®ããªãã¨å¶éããªãã
+			/* TCP 通信端点の送信ウィンドバッファの省コピー機能を有効にする。	*/
+
+/*
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能の、
+ *  受信ウィンドバッファキューの最大エントリ数。
+ *  ただし、正常に受信したセグメントも破棄するため、再送回数が増加する。
+ *  また、指定しないと制限しない。
  */
 /*#define TCP_CFG_RWBUF_CSAVE_MAX_QUEUES	2*/
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã
- *  éä¿¡ã¦ã£ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能で、
+ *  送信ウィンドバッファに使用するネットワークバッファのサイズ。
  */
 
@@ -110,21 +98,21 @@
 
 #ifdef SUPPORT_INET4
-#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IP4_MSS)		/* æå¤§ãµã¤ãº */
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IP4_MSS)		/* 最大サイズ */
 #endif
 
 #ifdef SUPPORT_INET6
-#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IPV6_MMTU)	/* æå¤§ãµã¤ãº */
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IPV6_MMTU)	/* 最大サイズ */
 #endif
 
 #else	/* of #ifdef USE_TCP_MSS_SEG */
 
-#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	IF_PDU_SIZE			/* æå¤§ãµã¤ãº */
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	IF_PDU_SIZE			/* 最大サイズ */
 
 #endif	/* of #ifdef USE_TCP_MSS_SEG */
 
-#define TCP_CFG_SWBUF_CSAVE_MIN_SIZE	0				/* æå°ãµã¤ãº */
-
-/*
- *  TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+#define TCP_CFG_SWBUF_CSAVE_MIN_SIZE	0				/* 最小サイズ */
+
+/*
+ *  TCP のノンブロッキングコール機能
  */
 
@@ -134,8 +122,8 @@
 
 /*
- *  MAX_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
- *
- *    ç¸æãã MSS ãªãã·ã§ã³ã§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã¦ãã
- *    ãã®å¤ã§ãã»ã°ã¡ã³ããµã¤ãºãå¶éã§ããã
+ *  MAX_TCP_SND_SEG: 送信セグメントサイズの最大値
+ *
+ *    相手から MSS オプションでセグメントサイズを指定されても、
+ *    この値で、セグメントサイズを制限できる。
  */
 
@@ -157,5 +145,5 @@
 
 /*
- *  DEF_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ *  DEF_TCP_RCV_SEG: 受信セグメントサイズの規定値
  */
 
@@ -177,12 +165,9 @@
 
 /*
- *  ã¿ã¹ã¯ããã® Time Wait ç¶æ
-ã® TCP éä¿¡ç«¯ç¹åé¢æ©è½
- *
- *  Time Wait ç¶æ
-ã® TCP éä¿¡ç«¯ç¹ã®ã¨ã³ããªæ°ãæå®ããã
- *  æå®ããªããã0 ãæå®ããã¨ã
- *  ã¿ã¹ã¯ãã Time Wait ç¶æ
-ã® TCP éä¿¡ç«¯ç¹ãåé¢ããæ©è½ã¯çµè¾¼ã¾ãªãã
+ *  タスクからの Time Wait 状態の TCP 通信端点分離機能
+ *
+ *  Time Wait 状態の TCP 通信端点のエントリ数を指定する。
+ *  指定しないか、0 を指定すると、
+ *  タスクから Time Wait 状態の TCP 通信端点を分離する機能は組込まない。
  */
 #if defined(USE_TCP_MSS_SEG)
@@ -193,19 +178,17 @@
 
 /*
- *  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½
+ *  TCP ヘッダのトレース出力機能
  */
 //#define TCP_CFG_TRACE
 
 /*
- *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã® IPv4 ã¢ãã¬ã¹
- *  IPV4_ADDRANY ãæå®ããã¨ãå
-¨ã¦ã®ãã¹ããå¯¾è±¡ã¨ããã
+ *  トレース出力対象のリモートホストの IPv4 アドレス
+ *  IPV4_ADDRANY を指定すると、全てのホストを対象とする。
  */
 #define TCP_CFG_TRACE_IPV4_RADDR	IPV4_ADDRANY
 
 /*
- *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã®ãã¼ãçªå·
- *  TCP_PORTANY ãæå®ããã¨ãå
-¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ *  トレース出力対象のリモートホストのポート番号
+ *  TCP_PORTANY を指定すると、全てのポート番号を対象にする。
  */
 #define TCP_CFG_TRACE_RPORTNO		TCP_PORTANY
@@ -213,7 +196,6 @@
 
 /*
- *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ã­ã¼ã«ã«ãã¹ãã®ãã¼ãçªå·
- *  TCP_PORTANY ãæå®ããã¨ãå
-¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ *  トレース出力対象のローカルホストのポート番号
+ *  TCP_PORTANY を指定すると、全てのポート番号を対象にする。
  */
 #define TCP_CFG_TRACE_LPORTNO		TCP_PORTANY
@@ -221,14 +203,13 @@
 
 /*
- *  ITRON TCP/IP APIãTCP ã®æ¡å¼µæ©è½
+ *  ITRON TCP/IP API、TCP の拡張機能
  */
 //#define TCP_CFG_EXTENTIONS
 
 /*
- *  TCP_CFG_URG_OFFSET: ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãã
- *
- *    -1: BSD ã®å®è£
-ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã
- *     0: RFC1122 ã®è¦å®ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ãã
+ *  TCP_CFG_URG_OFFSET: 緊急データの最後のバイトのオフセット
+ *
+ *    -1: BSD の実装、緊急ポインタは、緊急データの最後のバイトの次のバイトを差す。
+ *     0: RFC1122 の規定、緊急ポインタは、緊急データの最後のバイトを差す。
  */
 
@@ -236,8 +217,8 @@
 //#define TCP_CFG_URG_OFFSET	0
 
-/* UDP ã«é¢ããå®ç¾© */
-
-/*
- *  UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+/* UDP に関する定義 */
+
+/*
+ *  UDP のノンブロッキングコール機能
  */
 
@@ -247,9 +228,9 @@
 
 /*
- *  ITRON TCP/IP APIãUDP ã®æ¡å¼µæ©è½
+ *  ITRON TCP/IP API、UDP の拡張機能
  */
 //#define UDP_CFG_EXTENTIONS
 
-/* IPv4 ã«é¢ããå®ç¾© */
+/* IPv4 に関する定義 */
 
 #ifdef SUPPORT_INET4
@@ -260,5 +241,5 @@
 #define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(192,168,1,21)
 #else
-#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)		/* 相手に割り当ててもらう場合	*/
 #endif
 
@@ -266,5 +247,5 @@
 #define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(192,168,1,31)
 #else
-#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(0,0,0,0)		/* 相手に割り当ててもらう場合	*/
 #endif
 
@@ -304,5 +285,5 @@
 #endif	/* of #ifdef SUPPORT_INET4 */
 
-/* IPv6 ã«é¢ããå®ç¾© */
+/* IPv6 に関する定義 */
 
 #ifdef SUPPORT_INET6
@@ -332,77 +313,75 @@
 
 /*
- *  ãã¼ã¿ãªã³ã¯å±¤ (ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹) ã«é¢ããå®ç¾©
- */
-
-/*
- *  ã¤ã¼ãµãããã«é¢ããå®ç¾©
- */
-
-/*
- *  PPP ã«é¢ããå®ç¾©
- */
-
-#define HDLC_PORTID			1	/* HDLC(PPP)ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·	*/
+ *  データリンク層 (ネットワークインタフェース) に関する定義
+ */
+
+/*
+ *  イーサネットに関する定義
+ */
+
+/*
+ *  PPP に関する定義
+ */
+
+#define HDLC_PORTID			1	/* HDLC(PPP)に用いるシリアルポート番号	*/
 
 /*#define PPP_IDLE_TIMEOUT		(180*NET_TIMER_HZ)*/
-					/* åæ­ã¾ã§ã®ã¢ã¤ãã«æéã		*/
-					/* åæ­ããªãå ´åã¯ã³ã¡ã³ãã¢ã¦ãããã	*/
-
-/*#define PPP_CFG_MODEM			 ã¢ãã æ¥ç¶ã®å ´åã¯ã³ã¡ã³ããå¤ãã	*/
+					/* 切断までのアイドル時間、		*/
+					/* 切断しない場合はコメントアウトする。	*/
+
+/*#define PPP_CFG_MODEM			 モデム接続の場合はコメントを外す。	*/
 
 #define MODEM_CFG_INIT			"ATE1&D0&S0\\V0\\Q1S0=1"
-					/* ã¢ãã åæåæå­å			*/
-					/* NTT DoComo ã¢ãã¤ã«ã¢ããã¿ 96F ç¨	*/
-					/*   E1: ã¨ã³ã¼ããã¯ãã			*/
-					/*  &D0: ERä¿¡å·ç¡è¦			*/
-					/*  &S0: DRä¿¡å·å¸¸æ ON			*/
-					/*  \V0: ãªã¶ã«ãã³ã¼ã TYPE 1		*/
-					/*  \Q1: XON/XOFF ãã­ã¼å¶å¾¡		*/
-					/* S0=1: èªåçä¿¡ãªã³ã°åæ° = 1 å	*/
+					/* モデム初期化文字列			*/
+					/* NTT DoComo モバイルアダプタ 96F 用	*/
+					/*   E1: エコーバックあり			*/
+					/*  &D0: ER信号無視			*/
+					/*  &S0: DR信号常時 ON			*/
+					/*  \V0: リザルトコード TYPE 1		*/
+					/*  \Q1: XON/XOFF フロー制御		*/
+					/* S0=1: 自動着信リング回数 = 1 回	*/
 
 #define MODEM_CFG_PHONE_NUMBER		"090-xxxx-9242"
 
-					/* èªæ§ææ
-å ±ã®è¦å®å¤			*/
+					/* 自構成情報の規定値			*/
 #define DEF_LCP_LOCAL_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
 					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
 
-					/* ç¸æã«è¨±ãæ§ææ
-å ±ã®è¦å®å¤		*/
+					/* 相手に許す構成情報の規定値		*/
 #define DEF_LCP_REMOTE_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
 					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
 
 /*
- *  èªè¨¼ã«é¢ããå®ç¾©
- */
-
-#define AUTH_CFG_CLIENT		   	/* èªè¨¼ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã	*/
-#define AUTH_CFG_SERVER			/* èªè¨¼ãµã¼ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã		*/
-
-#define AUTH_LOCAL_USER			"h8"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å	*/
-#define AUTH_LOCAL_PASSWD		"3048f"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã	*/
-#define AUTH_REMOTE_USER		"pen3"		/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å		*/
-#define AUTH_REMOTE_PASSWD		"600MHz"	/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã		*/
-
-/*
- *  ARP ã«é¢ããå®ç¾©
- */
-
-/*#define ARP_CFG_CALLBACK_DUPLICATED*/	/* IP ã¢ãã¬ã¹éè¤æ¤åºã³ã¼ã«ããã¯é¢æ°ã	*/
-					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã		*/
-
-/*
- *  ICMPv4/v6 ã«é¢ããå®ç¾©
+ *  認証に関する定義
+ */
+
+#define AUTH_CFG_CLIENT		   	/* 認証クライアントモードの時はコメントを外す。	*/
+#define AUTH_CFG_SERVER			/* 認証サーバモードの時はコメントを外す。		*/
+
+#define AUTH_LOCAL_USER			"h8"		/* 自ホストへのログイン認証ユーザ名	*/
+#define AUTH_LOCAL_PASSWD		"3048f"		/* 自ホストへのログイン認証パスワード	*/
+#define AUTH_REMOTE_USER		"pen3"		/* 相手へのログイン認証ユーザ名		*/
+#define AUTH_REMOTE_PASSWD		"600MHz"	/* 相手へのログイン認証パスワード		*/
+
+/*
+ *  ARP に関する定義
+ */
+
+/*#define ARP_CFG_CALLBACK_DUPLICATED*/	/* IP アドレス重複検出コールバック関数を	*/
+					/* 定義する場合はコメントを外す。		*/
+
+/*
+ *  ICMPv4/v6 に関する定義
  */
 
 #ifdef USE_PING
 
-#define ICMP_CFG_CALLBACK_ECHO_REPLY	/* ICMP ECHO å¿ç­ãåä¿¡ããã¨ãå¼åºãã³ã¼ã«ããã¯é¢æ°ã	*/
-					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã			*/
+#define ICMP_CFG_CALLBACK_ECHO_REPLY	/* ICMP ECHO 応答を受信したとき呼出すコールバック関数を	*/
+					/* 定義する場合はコメントを外す。			*/
 
 #endif	/* of #ifdef USE_PING */
 
 /*
- *  ãããã¯ã¼ã¯ãããã¡ã«é¢ããå®ç¾©
+ *  ネットワークバッファに関する定義
  */
 
@@ -410,15 +389,15 @@
 
 /*
- *  ã¤ã¼ãµãããã®å ´åã®ãããã¯ã¼ã¯ãããã¡æ°ã®å²ãå½ã¦
- */
-
-/*
- *  64 ãªã¯ããã
- *
- *    IPv4 ã§ã®ã¿å²ãå½ã¦ãã
- *
- *    IPv6 ã§ã¯ãTCP å¶å¾¡ã»ã°ã¡ã³ãï¼CSEGãSDU ãªãï¼ãµã¤ãºã®
- *    ãããã¯ã¼ã¯ãããã¡ï¼IF + IPv6 + TCP = 74ï¼ä»¥ä¸ã®
- *    ãããã¯ã¼ã¯ãããã¡ã¯ä¸è¦ã§ããã
+ *  イーサネットの場合のネットワークバッファ数の割り当て
+ */
+
+/*
+ *  64 オクテット
+ *
+ *    IPv4 でのみ割り当てる。
+ *
+ *    IPv6 では、TCP 制御セグメント（CSEG、SDU なし）サイズの
+ *    ネットワークバッファ（IF + IPv6 + TCP = 74）以下の
+ *    ネットワークバッファは不要である。
  */
 
@@ -434,13 +413,13 @@
 
 /*
- *  CSEGï¼IF + IP + TCPï¼
- *
- *    IPv6 ã§ã®ã¿å²ãå½ã¦ãã
- *
- *    NE2000 äºæ NIC ã®ãã£ãã¤ã¹ãã©ã¤ãï¼if_edï¼ã®æä½å²å½ã¦é·ã¯ã
- *    ã¤ã¼ãµããããã¬ã¼ã ã®æç­é·ã§ãã 60ï¼CRC ã® 4 ãªã¯ããããé¤ãã
- *    æ´ã«ã¢ã©ã¤ã³ãã¦ 62ï¼ãªã¯ãããã§ããã
- *    å¾ã£ã¦ãIPv4 ã§ã¯ãCSEG ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
- *   ï¼IF + IPv4 + TCP = 54ï¼ã¯ä¸è¦ã§ããã
+ *  CSEG（IF + IP + TCP）
+ *
+ *    IPv6 でのみ割り当てる。
+ *
+ *    NE2000 互換 NIC のディバイスドライバ（if_ed）の最低割当て長は、
+ *    イーサネットフレームの最短長である 60（CRC の 4 オクテットを除き、
+ *    更にアラインして 62）オクテットである。
+ *    従って、IPv4 では、CSEG サイズのネットワークバッファ
+ *   （IF + IPv4 + TCP = 54）は不要である。
  */
 
@@ -456,9 +435,9 @@
 
 /*
- *  128 ãªã¯ããã
- *
- *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
- *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *    128 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *  128 オクテット
+ *
+ *    IPv4 で、TCP MSS（IP MSS、IF + 576 オクテット）の
+ *    ネットワークバッファを割り当てる場合、
+ *    128 オクテットのネットワークバッファは割り当てない。
  */
 
@@ -474,9 +453,9 @@
 
 /*
- *  256 ãªã¯ããã
- *
- *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
- *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *    256 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *  256 オクテット
+ *
+ *    IPv4 で、TCP MSS（IP MSS、IF + 576 オクテット）の
+ *    ネットワークバッファを割り当てる場合、
+ *    256 オクテットのネットワークバッファは割り当てない。
  */
 
@@ -492,9 +471,9 @@
 
 /*
- *  512 ãªã¯ããã	
- *
- *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
- *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *    512 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *  512 オクテット	
+ *
+ *    IPv4 で、TCP MSS（IP MSS、IF + 576 オクテット）の
+ *    ネットワークバッファを割り当てる場合、
+ *    512 オクテットのネットワークバッファは割り当てない。
  */
 
@@ -510,9 +489,9 @@
 
 /*
- *  TCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼
- *
- *   ã»IPv4 ã§ã®ã¿å²ãå½ã¦ãã
- *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
- *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ *  TCP MSS（IP MSS、IF + 576 オクテット）
+ *
+ *   ・IPv4 でのみ割り当てる。
+ *   ・送受信ウィンドバッファの省コピー機能が有効で、
+ *     省コピー API を使用するときは、+1 割り当てる。
  */
 
@@ -527,18 +506,18 @@
 #define NUM_MPF_NET_BUF_IP_MSS		3
 #else
-#define NUM_MPF_NET_BUF_IP_MSS		2	/* IF + 576 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_IP_MSS		2	/* IF + 576 オクテット	*/
 #endif
 
 #else	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
 
-#define NUM_MPF_NET_BUF_IP_MSS		0	/* IF + 576 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_IP_MSS		0	/* IF + 576 オクテット	*/
 
 #endif	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
 
 /*
- *  1024 ãªã¯ããã	
- *
- *    TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *    1024 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *  1024 オクテット	
+ *
+ *    TCP MSS のネットワークバッファを割り当てる場合、
+ *    1024 オクテットのネットワークバッファは割り当てない。
  */
 
@@ -548,15 +527,15 @@
 
 #if defined(USE_TCP_MSS_SEG)
-#define NUM_MPF_NET_BUF_1024		0	/* 1024 ãªã¯ããã	*/
-#else
-#define NUM_MPF_NET_BUF_1024		1	/* 1024 ãªã¯ããã	*/
-#endif
-
-/*
- *  TCP MSSï¼IPV6 MMTUãIF + 1280 ãªã¯ãããï¼
- *
- *   ã»IPv6 ã§ã®ã¿å²ãå½ã¦ãã
- *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
- *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+#define NUM_MPF_NET_BUF_1024		0	/* 1024 オクテット	*/
+#else
+#define NUM_MPF_NET_BUF_1024		1	/* 1024 オクテット	*/
+#endif
+
+/*
+ *  TCP MSS（IPV6 MMTU、IF + 1280 オクテット）
+ *
+ *   ・IPv6 でのみ割り当てる。
+ *   ・送受信ウィンドバッファの省コピー機能が有効で、
+ *     省コピー API を使用するときは、+1 割り当てる。
  */
 
@@ -581,10 +560,10 @@
 
 /*
- *  IF æå¤§ PDU ãµã¤ãº
- *
- *   ã»TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *     IF æå¤§ PDU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
- *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
- *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ *  IF 最大 PDU サイズ
+ *
+ *   ・TCP MSS のネットワークバッファを割り当てる場合、
+ *     IF 最大 PDU サイズのネットワークバッファは割り当てない。
+ *   ・送受信ウィンドバッファの省コピー機能が有効で、
+ *     省コピー API を使用するときは、+1 割り当てる。
  */
 
@@ -608,12 +587,12 @@
 
 /*
- *  65536 ãªã¯ããã
- *
- *  ã»NET_BUF_CFG_LONG_LEN ãå®ç¾©ããã¨ãã®ã¿å²ãå½ã¦ãã
+ *  65536 オクテット
+ *
+ *  ・NET_BUF_CFG_LONG_LEN を定義したときのみ割り当てる。
  */
 
 #ifdef NET_BUF_CFG_LONG_LEN
 
-/* IPv6 ç¨ */
+/* IPv6 用 */
 
 #ifdef NUM_MPF_NET_BUF6_65536
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tinet_sample1n.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tinet_sample1n.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tinet_sample1n.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  ãããã¯ã¼ã¯å¯¾å¿ sample1.c ãã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ネットワーク対応 sample1.c プログラムの TCP/IP コンフィギュレーションファイル
  */
 
 #include "sample1n.h"
 
-/* TCP åä»å£ */
+/* TCP 受付口 */
 
 #ifdef SUPPORT_INET4
@@ -64,5 +52,5 @@
 #endif	/* of #ifdef SUPPORT_INET6 */
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/histogram.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/histogram.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/histogram.h	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		å®è¡æéåå¸éè¨ãµã¼ãã¹
+ *		実行時間分布集計サービス
  */
 
@@ -67,20 +52,20 @@
 
 /*
- *  å®è¡æéåå¸è¨æ¸¬ã®åæå
+ *  実行時間分布計測の初期化
  */
 extern void	init_hist(ID histid);
 
 /*
- *  å®è¡æéè¨æ¸¬ã®éå§
+ *  実行時間計測の開始
  */
 extern void	begin_measure(ID histid);
 
 /*
- *  å®è¡æéè¨æ¸¬ã®çµäº
+ *  実行時間計測の終了
  */
 extern void	end_measure(ID histid);
 
 /*
- *  å®è¡æéåå¸è¨æ¸¬ã®è¡¨ç¤º
+ *  実行時間分布計測の表示
  */
 extern void	print_hist(ID histid);
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/serial.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/serial.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/serial.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
+ *		シリアルインタフェースドライバ
  */
 
@@ -70,13 +55,13 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ç¨ãããã±ãã
+ *  シリアルインタフェースドライバの用いるパケット
  */
 typedef struct {
-	uint_t		reacnt;			/* åä¿¡ãããã¡ä¸­ã®æå­æ° */
-	uint_t		wricnt;			/* éä¿¡ãããã¡ä¸­ã®æå­æ° */
+	uint_t		reacnt;			/* 受信バッファ中の文字数 */
+	uint_t		wricnt;			/* 送信バッファ中の文字数 */
 } T_SERIAL_RPOR;
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãµã¼ãã¹ã³ã¼ã«
+ *  シリアルインタフェースドライバのサービスコール
  */
 extern ER		serial_opn_por(ID portid) throw();
@@ -88,14 +73,14 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®åä½å¶å¾¡ç¨ã®ããã®å®æ°
+ *  シリアルインタフェースドライバの動作制御用のための定数
  *
- *  ä»¥ä¸ã®å®æ°ã¯ï¼ãããæ¯ã«è«çåãã¨ã£ã¦ç¨ããï¼
+ *  以下の定数は，ビット毎に論理和をとって用いる．
  */
-#define	IOCTL_NULL	0U			/* æå®ãªã */
-#define	IOCTL_ECHO	0x0001U		/* åä¿¡ããæå­ãã¨ã³ã¼ããã¯ */
-#define	IOCTL_CRLF	0x0010U		/* LFãéä¿¡ããåã«CRãä»å  */
-#define	IOCTL_FCSND	0x0100U		/* éä¿¡ã«å¯¾ãã¦ãã­ã¼å¶å¾¡ãè¡ã */
-#define	IOCTL_FCANY	0x0200U		/* ã©ã®ãããªæå­ã§ãéä¿¡åé */
-#define	IOCTL_FCRCV	0x0400U		/* åä¿¡ã«å¯¾ãã¦ãã­ã¼å¶å¾¡ãè¡ã */
+#define	IOCTL_NULL	0U			/* 指定なし */
+#define	IOCTL_ECHO	0x0001U		/* 受信した文字をエコーバック */
+#define	IOCTL_CRLF	0x0010U		/* LFを送信する前にCRを付加 */
+#define	IOCTL_FCSND	0x0100U		/* 送信に対してフロー制御を行う */
+#define	IOCTL_FCANY	0x0200U		/* どのような文字でも送信再開 */
+#define	IOCTL_FCRCV	0x0400U		/* 受信に対してフロー制御を行う */
 
 #ifdef __cplusplus
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/syslog.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/syslog.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/syslog.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã·ã¹ãã ã­ã°æ©è½
+ *		システムログ機能
  */
 
@@ -71,31 +56,25 @@
 
 /*
- *  ã­ã°æ
-å ±ã®åºå
+ *  ログ情報の出力
  */
 extern ER	syslog_wri_log(uint_t prio, const SYSLOG *p_syslog) throw();
 
 /*
- *  ã­ã°ãããã¡ããã®ã­ã°æ
-å ±ã®èª­åºã
+ *  ログバッファからのログ情報の読出し
  */
 extern ER_UINT	syslog_rea_log(SYSLOG *p_syslog) throw();
 
 /*
- *  åºåãã¹ãã­ã°æ
-å ±ã®éè¦åº¦ã®è¨­å®
+ *  出力すべきログ情報の重要度の設定
  */
 extern ER	syslog_msk_log(uint_t logmask, uint_t lowmask) throw();
 
 /*
- *  ã­ã°ãããã¡ã®ç¶æ
-åç
-§
+ *  ログバッファの状態参照
  */
 extern ER	syslog_ref_log(T_SYSLOG_RLOG *pk_rlog) throw();
 
 /*
- *  ä½ã¬ãã«åºåã«ãããã¹ã¦ã®ã­ã°æ
-å ±ã®åºå
+ *  低レベル出力によるすべてのログ情報の出力
  */
 extern ER	syslog_fls_log(void) throw();
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tBanner.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tBanner.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tBanner.cdl	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®æ¬ä½ã®ã»ã«ã¿ã¤ã
+ *  カーネル起動メッセージ出力の本体のセルタイプ
  */
 [singleton]
@@ -62,21 +47,21 @@
 
 	attr {
-		char	*targetName;			/* ã¿ã¼ã²ããå */
-		char	*copyrightNotice;		/* èä½æ¨©è¡¨ç¤º */
+		char	*targetName;			/* ターゲット名 */
+		char	*copyrightNotice;		/* 著作権表示 */
 	};
 };
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåï¼è¤åã³ã³ãã¼ãã³ãï¼ã®ã»ã«ã¿ã¤ã
+ *  カーネル起動メッセージ出力（複合コンポーネント）のセルタイプ
  */
 [singleton,active]
 composite tBanner {
 	attr {
-		char	*targetName;			/* ã¿ã¼ã²ããå */
-		char	*copyrightNotice;		/* èä½æ¨©è¡¨ç¤º */
+		char	*targetName;			/* ターゲット名 */
+		char	*copyrightNotice;		/* 著作権表示 */
 	};
 
 	cell tBannerMain BannerMain {
-		/* å±æ§ã®ç¶æ¿ */
+		/* 属性の継承 */
 		targetName      = composite.targetName;
 		copyrightNotice = composite.copyrightNotice;
@@ -84,5 +69,5 @@
 
 	cell tInitializeRoutine InitializeRoutine {
-		/* å¼ã³å£ */
+		/* 呼び口 */
 		cInitializeRoutineBody = BannerMain.eBannerInitialize;
 	};
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tBannerMain.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tBannerMain.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tBannerMain.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®æ¬ä½
+ *		カーネル起動メッセージ出力の本体
  */
 
@@ -64,5 +49,5 @@
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸
+ *  カーネル起動メッセージ
  */
 static const char banner[] = "\n"
@@ -76,5 +61,5 @@
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåï¼åãå£é¢æ°ï¼
+ *  カーネル起動メッセージの出力（受け口関数）
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.c	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		å®è¡æéåå¸éè¨ãµã¼ãã¹
+ *		実行時間分布集計サービス
  */
 
@@ -63,5 +48,5 @@
 
 /* 
- *  å®è¡æéåå¸è¨æ¸¬ã®åæåï¼åãå£é¢æ°ï¼
+ *  実行時間分布計測の初期化（受け口関数）
  */
 void
@@ -79,5 +64,5 @@
 
 /*
- *  å®è¡æéè¨æ¸¬ã®éå§ï¼åãå£é¢æ°ï¼
+ *  実行時間計測の開始（受け口関数）
  */
 void
@@ -91,5 +76,5 @@
 
 /*
- *  å®è¡æéè¨æ¸¬ã®çµäºï¼åãå£é¢æ°ï¼
+ *  実行時間計測の終了（受け口関数）
  */
 void
@@ -121,5 +106,5 @@
 
 /*
- *  å®è¡æéåå¸è¨æ¸¬ã®è¡¨ç¤ºï¼åãå£é¢æ°ï¼
+ *  実行時間分布計測の表示（受け口関数）
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.cdl	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		å®è¡æéåå¸éè¨ãµã¼ãã¹ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		実行時間分布集計サービスのコンポーネント記述ファイル
  */
 
@@ -60,24 +45,24 @@
 
 /*
- *  å®è¡æéåå¸éè¨ãµã¼ãã¹ã®ã·ã°ããã£
+ *  実行時間分布集計サービスのシグニチャ
  */
 signature sHistogram {
 	/*
-	 *  å®è¡æéåå¸è¨æ¸¬ã®åæå
+	 *  実行時間分布計測の初期化
    	 */
 	void	initialize(void);
 
 	/*
-	 *  å®è¡æéè¨æ¸¬ã®éå§
+	 *  実行時間計測の開始
 	 */
 	void	beginMeasure(void);
 
 	/*
-	 *  å®è¡æéè¨æ¸¬ã®çµäº
+	 *  実行時間計測の終了
 	 */
 	void	endMeasure(void);
 
 	/*
-	 *  å®è¡æéåå¸è¨æ¸¬ã®è¡¨ç¤º
+	 *  実行時間分布計測の表示
 	 */
 	void	print(void);
@@ -85,5 +70,5 @@
 
 /*
- *  å®è¡æéåå¸éè¨ãµã¼ãã¹ã®ã»ã«ã¿ã¤ã
+ *  実行時間分布集計サービスのセルタイプ
  */
 celltype tHistogram {
@@ -91,13 +76,12 @@
 
 	attr {
-		uint_t		maxTime = 1000;		/* åå¸ãè¨é²ããæå¤§æé */
+		uint_t		maxTime = 1000;		/* 分布を記録する最大時間 */
 	};
 	var {
 		[size_is(maxTime + 1)] uint_t	*histarea;
-										/* åå¸ãè¨é²ããã¡ã¢ãªé å */
-		histtim_t	begin_time;			/* è¨æ¸¬éå§æå» */
-		uint_t		over;				/* æå¤§æéãè¶
-ããåº¦æ° */
-		uint_t		under;				/* æéã®éè»¢ãçãããåº¦æ° */
+										/* 分布を記録するメモリ領域 */
+		histtim_t	begin_time;			/* 計測開始時刻 */
+		uint_t		over;				/* 最大時間を超えた度数 */
+		uint_t		under;				/* 時間の逆転が疑われる度数 */
 	};
 };
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.h	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,5 +39,5 @@
 
 /*
- *		å®è¡æéåå¸éè¨ãµã¼ãã¹ã®ããããã¡ã¤ã«
+ *		実行時間分布集計サービスのヘッダファイル
  */
 
@@ -63,28 +48,28 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨ã§è¨­å®å¤æ´ããããã®ãã¯ã­
+ *  ターゲット依存部で設定変更するためのマクロ
  */
-#ifndef HISTTIM						/* å®è¡æéè¨æ¸¬ç¨ã®æå»ã®ãã¼ã¿å */
+#ifndef HISTTIM						/* 実行時間計測用の時刻のデータ型 */
 #define HISTTIM					HRTCNT
 
-#ifdef TCYC_HRTCNT					/* å®è¡æéè¨æ¸¬ç¨ã®æå»ã®å¨æ */
+#ifdef TCYC_HRTCNT					/* 実行時間計測用の時刻の周期 */
 #define HISTTIM_CYCLE			TCYC_HRTCNT
 #endif /* TCYC_HRTCNT */
 #endif /* HISTTIM */
 
-#ifndef HIST_GET_TIM				/* å®è¡æéè¨æ¸¬ç¨ã®ç¾å¨æå»ã®åå¾ */
+#ifndef HIST_GET_TIM				/* 実行時間計測用の現在時刻の取得 */
 #define HIST_GET_TIM(p_time)	(*(p_time) = fch_hrt())
 #endif /* HIST_GET_TIM */
 
-#ifndef HIST_CONV_TIM				/* æå»ã®å·®ããå®è¡æéã¸ã®å¤æ */
+#ifndef HIST_CONV_TIM				/* 時刻の差から実行時間への変換 */
 #define HIST_CONV_TIM(time)		((uint_t)(time))
 #endif /* HIST_CONV_TIM */
 
-#ifndef HIST_BM_HOOK				/* å®è¡æéè¨æ¸¬ç´åã«è¡ãã¹ãå¦ç */
+#ifndef HIST_BM_HOOK				/* 実行時間計測直前に行うべき処理 */
 #define HIST_BM_HOOK()			((void) 0)
 #endif
 
 /*
- *  å®è¡æéè¨æ¸¬ç¨ã®æå»ã®ãã¼ã¿åã®å®ç¾©
+ *  実行時間計測用の時刻のデータ型の定義
  */
 typedef HISTTIM	histtim_t;
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogramAdapter.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogramAdapter.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogramAdapter.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,6 +40,6 @@
 
 /*
- *		Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®å®è¡æéåå¸
- *		éè¨ãµã¼ãã¹ãå¼ã³åºãããã®ã¢ããã¿
+ *		C言語で記述されたアプリケーションから，TECSベースの実行時間分布
+ *		集計サービスを呼び出すためのアダプタ
  */
 
@@ -63,5 +48,5 @@
 
 /*
- *  å®è¡æéåå¸è¨æ¸¬ã®åæåï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ *  実行時間分布計測の初期化（サービスコール）
  */
 void
@@ -73,5 +58,5 @@
 
 /*
- *  å®è¡æéè¨æ¸¬ã®éå§
+ *  実行時間計測の開始
  */
 void
@@ -83,5 +68,5 @@
 
 /*
- *  å®è¡æéè¨æ¸¬ã®çµäº
+ *  実行時間計測の終了
  */
 void
@@ -93,5 +78,5 @@
 
 /*
- *  å®è¡æéåå¸è¨æ¸¬ã®è¡¨ç¤º
+ *  実行時間分布計測の表示
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogramAdapter.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogramAdapter.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogramAdapter.cdl	(revision 321)
@@ -1,5 +1,5 @@
 /*
- *		Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®å®è¡æéåå¸
- *		éè¨ãµã¼ãã¹ãå¼ã³åºãããã®ã¢ããã¿ç¨ã»ã«ã¿ã¤ãã®å®ç¾©
+ *		C言語で記述されたアプリケーションから，TECSベースの実行時間分布
+ *		集計サービスを呼び出すためのアダプタ用セルタイプの定義
  * 
  *  $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTask.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTask.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTask.cdl	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,9 +42,9 @@
 
 /*
- *		ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		システムログタスクのコンポーネント記述ファイル
  */
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã·ã°ããã£
+ *  システムログタスクのシグニチャ
  */
 signature sLogTask {
@@ -68,5 +53,5 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®æ¬ä½ã®ã»ã«ã¿ã¤ã
+ *  システムログタスクの本体のセルタイプ
  */
 [singleton]
@@ -76,42 +61,39 @@
 	entry	sLogTask		eLogTask;
 
-	call	sSerialPort		cSerialPort;	/* ã·ãªã¢ã«ãã©ã¤ãã¨ã®æ¥ç¶ */
+	call	sSerialPort		cSerialPort;	/* シリアルドライバとの接続 */
 	call	snSerialPortManage	cnSerialPortManage;
-											/* ã·ãªã¢ã«ãã©ã¤ãç®¡çã¨ã®æ¥ç¶ */
-	call	sSysLog			cSysLog;		/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®æ¥ç¶ */
-	call	sPutLog			cPutLog;		/* ä½ã¬ãã«åºåã¨ã®æ¥ç¶ */
+											/* シリアルドライバ管理との接続 */
+	call	sSysLog			cSysLog;		/* システムログ機能との接続 */
+	call	sPutLog			cPutLog;		/* 低レベル出力との接続 */
 
 	attr {
-		RELTIM	interval;				/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åä½éé */
-		RELTIM	flushWait;				/* ãã©ãã·ã¥å¾
-ã¡ã®åä½æé */
+		RELTIM	interval;				/* システムログタスクの動作間隔 */
+		RELTIM	flushWait;				/* フラッシュ待ちの単位時間 */
 	};
 };
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ï¼è¤åã³ã³ãã¼ãã³ãï¼ã®ã»ã«ã¿ã¤ã
+ *  システムログタスク（複合コンポーネント）のセルタイプ
  */
 [singleton, active]
 composite tLogTask {
-	entry	sLogTask	eLogTask;		/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯æä½ */
+	entry	sLogTask	eLogTask;		/* システムログタスク操作 */
 	
-	call	sSerialPort	cSerialPort;	/* ã·ãªã¢ã«ãã©ã¤ãã¨ã®æ¥ç¶ */
+	call	sSerialPort	cSerialPort;	/* シリアルドライバとの接続 */
 	call	snSerialPortManage	cnSerialPortManage;
-										/* ã·ãªã¢ã«ãã©ã¤ãç®¡çã¨ã®æ¥ç¶ */
-	call	sSysLog		cSysLog;		/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®æ¥ç¶ */
-	call	sPutLog		cPutLog;		/* ä½ã¬ãã«åºåã¨ã®æ¥ç¶ */
+										/* シリアルドライバ管理との接続 */
+	call	sSysLog		cSysLog;		/* システムログ機能との接続 */
+	call	sPutLog		cPutLog;		/* 低レベル出力との接続 */
 
 	attr {
-		[omit] ATR		attribute = C_EXP("TA_ACT");	/* ã¿ã¹ã¯å±æ§ */
-		[omit] PRI  	priority;		/* ã¿ã¹ã¯ã®åæåªå
-åº¦ */
-		[omit] size_t 	stackSize;		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
-		RELTIM		interval = 10000;	/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åä½éé */
-		RELTIM		flushWait = 1000;	/* ãã©ãã·ã¥å¾
-ã¡ã®åä½æé */
+		[omit] ATR		attribute = C_EXP("TA_ACT");	/* タスク属性 */
+		[omit] PRI  	priority;		/* タスクの初期優先度 */
+		[omit] size_t 	stackSize;		/* タスクのスタックサイズ */
+		RELTIM		interval = 10000;	/* システムログタスクの動作間隔 */
+		RELTIM		flushWait = 1000;	/* フラッシュ待ちの単位時間 */
 	};
 
 	cell tLogTaskMain LogTaskMain {
-		/* å¼ã³å£ã®çµå */
+		/* 呼び口の結合 */
 		cSerialPort        => composite.cSerialPort;
 		cnSerialPortManage => composite.cnSerialPortManage;
@@ -119,5 +101,5 @@
 		cPutLog            => composite.cPutLog;
 
-		/* å±æ§ã®ç¶æ¿ */
+		/* 属性の継承 */
 		interval  = composite.interval;
 		flushWait = composite.flushWait;
@@ -125,8 +107,8 @@
 
 	cell tTask Task {
-		/* å¼ã³å£ã®çµå */
+		/* 呼び口の結合 */
 		cTaskBody = LogTaskMain.eLogTaskBody;
 
-		/* å±æ§ã®ç¶æ¿ */
+		/* 属性の継承 */
 		attribute = composite.attribute;
 		priority  = composite.priority;
@@ -135,9 +117,9 @@
 
 	cell tTerminateRoutine TerminateRoutine {
-		/* å¼ã³å£ */
+		/* 呼び口 */
 		cTerminateRoutineBody = LogTaskMain.eLogTaskTerminate;
 	};
 
-	/* åãå£ã®çµå */
+	/* 受け口の結合 */
 	composite.eLogTask => LogTaskMain.eLogTask;
 };
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTaskMain.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTaskMain.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTaskMain.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã·ã¹ãã ã­ã°ã¿ã¹ã¯
+ *		システムログタスク
  */
 
@@ -66,5 +51,5 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ã¸ã®1æå­åºå
+ *  シリアルインタフェースへの1文字出力
  */
 static void
@@ -75,5 +60,5 @@
 
 /*
- *  ä½ã¬ãã«åºåã¸ã®1æå­åºå
+ *  低レベル出力への1文字出力
  */
 static void
@@ -84,6 +69,5 @@
 
 /*
- *  ã·ã¹ãã ã­ã°åºåã®å¾
-ã¡åããï¼åãå£é¢æ°ï¼
+ *  システムログ出力の待ち合わせ（受け口関数）
  */
 ER
@@ -106,6 +90,6 @@
 				if (count == 0U) {
 					/*
-					 *  countã0ã®å ´åã«ã¯ï¼ã·ãªã¢ã«ãããã¡ãç©ºããç¢º
-					 *  èªããï¼
+					 *  countが0の場合には，シリアルバッファが空かを確
+					 *  認する．
 					 */
 					if (cSerialPort_refer(&rpor) < 0) {
@@ -125,7 +109,5 @@
 
 			/*
-			 *  ãã©ãã·ã¥å¾
-ã¡ã®åä½æéï¼ATTR_flushWaitÎ¼ç§ï¼å¾
-ã¤ï¼
+			 *  フラッシュ待ちの単位時間（ATTR_flushWaitμ秒）待つ．
 			 */
 			rercd = dly_tsk(ATTR_flushWait);
@@ -142,5 +124,5 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®æ¬ä½ï¼åãå£é¢æ°ï¼
+ *  システムログタスクの本体（受け口関数）
  */
 void
@@ -173,5 +155,5 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµäºå¦çï¼åãå£é¢æ°ï¼
+ *  システムログタスクの終了処理（受け口関数）
  */
 void
@@ -184,6 +166,6 @@
 
 	/*
-	 *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®éä¿¡ãããã¡ã«èç©ããããã¼ã¿
-	 *  ãï¼ä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåããï¼
+	 *  シリアルインタフェースドライバの送信バッファに蓄積されたデータ
+	 *  を，低レベル出力機能を用いて出力する．
 	 */
 	while (cnSerialPortManage_getChar(&c)) {
@@ -192,14 +174,12 @@
 
 	/*
-	 *  ã­ã°ãããã¡ã«è¨é²ãããã­ã°æ
-å ±ãï¼ä½ã¬ãã«åºåæ©è½ãç¨ãã¦åº
-	 *  åããï¼
+	 *  ログバッファに記録されたログ情報を，低レベル出力機能を用いて出
+	 *  力する．
 	 */
 	while ((rercd = cSysLog_read(&syslog)) >= 0) {
 		if (!msgflg) {
 			/*
-			 *  ã­ã°ãããã¡ã«æ®ã£ãã­ã°æ
-å ±ã§ãããã¨ãç¤ºãæå­åãåº
-			 *  åããï¼
+			 *  ログバッファに残ったログ情報であることを示す文字列を出
+			 *  力する．
 			 */
 			syslog_printf("-- buffered messages --\n", NULL, target_fput_log);
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialAdapter.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialAdapter.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialAdapter.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,6 +40,6 @@
 
 /*
- *		Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ãªã¢ã«ã¤ã³
- *		ã¿ãã§ã¼ã¹ãã©ã¤ããå¼ã³åºãããã®ã¢ããã¿
+ *		C言語で記述されたアプリケーションから，TECSベースのシリアルイン
+ *		タフェースドライバを呼び出すためのアダプタ
  */
 
@@ -63,14 +48,14 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã®ãªã¼ãã³ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ *  シリアルポートのオープン（サービスコール）
  */
 ER
 serial_opn_por(ID portid)
 {
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!(1 <= portid && portid <= N_CP_cSerialPort)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
 	}
 
@@ -79,14 +64,14 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã®ã¯ã­ã¼ãºï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ *  シリアルポートのクローズ（サービスコール）
  */
 ER
 serial_cls_por(ID portid)
 {
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!(1 <= portid && portid <= N_CP_cSerialPort)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
 	}
 
@@ -95,14 +80,14 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãããã®æå­ååä¿¡ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ *  シリアルポートからの文字列受信（サービスコール）
  */
 ER_UINT
 serial_rea_dat(ID portid, char *buf, uint_t len)
 {
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!(1 <= portid && portid <= N_CP_cSerialPort)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
 	}
 
@@ -111,14 +96,14 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã¸ã®æå­åéä¿¡ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ *  シリアルポートへの文字列送信（サービスコール）
  */
 ER_UINT
 serial_wri_dat(ID portid, const char *buf, uint_t len)
 {
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!(1 <= portid && portid <= N_CP_cSerialPort)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
 	}
 
@@ -127,14 +112,14 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ *  シリアルポートの制御（サービスコール）
  */
 ER
 serial_ctl_por(ID portid, uint_t ioctl)
 {
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!(1 <= portid && portid <= N_CP_cSerialPort)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
 	}
 
@@ -143,16 +128,14 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãç¶æ
-ã®åç
-§ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ *  シリアルポート状態の参照（サービスコール）
  */
 ER
 serial_ref_por(ID portid, T_SERIAL_RPOR *pk_rpor)
 {
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!(1 <= portid && portid <= N_CP_cSerialPort)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
 	}
 
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialAdapter.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialAdapter.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialAdapter.cdl	(revision 321)
@@ -1,5 +1,5 @@
 /*
- *		Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ãªã¢ã«ã¤ã³
- *		ã¿ãã§ã¼ã¹ãã©ã¤ããå¼ã³åºãããã®ã¢ããã¿ç¨ã»ã«ã¿ã¤ãã®å®ç¾©
+ *		C言語で記述されたアプリケーションから，TECSベースのシリアルイン
+ *		タフェースドライバを呼び出すためのアダプタ用セルタイプの定義
  * 
  *  $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPort.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPort.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPort.cdl	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,16 +42,15 @@
 
 /*
- *		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		シリアルインタフェースドライバのコンポーネント記述ファイル
  */
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããTECSãç¨ããã«å¼ã³åºãããã«ãå¿
-è¦
- *  ãªå®ç¾©ã®åè¾¼ã¿
+ *  シリアルインタフェースドライバをTECSを用いずに呼び出すためにも必要
+ *  な定義の取込み
  */
 import_C("syssvc/serial.h");
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã·ã°ããã£
+ *  シリアルインタフェースドライバのシグニチャ
  */
 signature sSerialPort {
@@ -80,5 +64,5 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨ãæä¾ããé¢æ°
+ *  シリアルインタフェースドライバのターゲット依存部が提供する関数
  */
 signature sSIOPort {
@@ -92,11 +76,11 @@
 
 /*
- *  ã³ã¼ã«ããã¯ã«ã¼ãã³ã®è­å¥çªå·ï¼cbrtnãã©ã¡ã¼ã¿ã«ç¨ããï¼
+ *  コールバックルーチンの識別番号（cbrtnパラメータに用いる）
  */
-const uint_t SIOSendReady = 1;		/* éä¿¡å¯è½ã³ã¼ã«ããã¯ */
-const uint_t SIOReceiveReady = 2;	/* åä¿¡éç¥ã³ã¼ã«ããã¯ */
+const uint_t SIOSendReady = 1;		/* 送信可能コールバック */
+const uint_t SIOReceiveReady = 2;	/* 受信通知コールバック */
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨ããã®ã³ã¼ã«ããã¯
+ *  ターゲット依存部からのコールバック
  */
 [callback]
@@ -107,6 +91,6 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãç®¡çç¨ã®ã·ã°ããã£ï¼çµäºå¦çã«ã¼ãã³
- *  ããã®ä½¿ç¨ãæ³å®ï¼
+ *  シリアルインタフェースドライバ管理用のシグニチャ（終了処理ルーチン
+ *  からの使用を想定）
  */
 signature snSerialPortManage {
@@ -115,5 +99,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡é¨ã®ã»ã«ã¿ã¤ã
+ *  シリアルポートの制御部のセルタイプ
  */
 celltype tSerialPortMain {
@@ -121,43 +105,41 @@
 	entry	snSerialPortManage	enSerialPortManage;
 
-	call	sSIOPort	cSIOPort;			/* ç°¡æSIOãã©ã¤ãã¨ã®æ¥ç¶ */
+	call	sSIOPort	cSIOPort;			/* 簡易SIOドライバとの接続 */
 	entry	siSIOCBR	eiSIOCBR;
 	
-	call	sSemaphore	cSendSemaphore;		/* éä¿¡ç¨ã»ããã©ã¨ã®æ¥ç¶ */
+	call	sSemaphore	cSendSemaphore;		/* 送信用セマフォとの接続 */
 	call	siSemaphore	ciSendSemaphore;
-	call	sSemaphore	cReceiveSemaphore;	/* åä¿¡ç¨ã»ããã©ã¨ã®æ¥ç¶ */
+	call	sSemaphore	cReceiveSemaphore;	/* 受信用セマフォとの接続 */
 	call	siSemaphore	ciReceiveSemaphore;
 	
 	attr {
-		uint_t	receiveBufferSize = 256;	/* åä¿¡ãããã¡ãµã¤ãº */
-		uint_t	sendBufferSize = 256;		/* éä¿¡ãããã¡ãµã¤ãº */
+		uint_t	receiveBufferSize = 256;	/* 受信バッファサイズ */
+		uint_t	sendBufferSize = 256;		/* 送信バッファサイズ */
 	};
 	var {
-		bool_t	openFlag = C_EXP("false");	/* ãªã¼ãã³æ¸ã¿ãã©ã° */
-		bool_t	errorFlag;					/* ã¨ã©ã¼ãã©ã° */
-		uint_t	ioControl;					/* åä½å¶å¾¡ã®è¨­å®å¤ */
+		bool_t	openFlag = C_EXP("false");	/* オープン済みフラグ */
+		bool_t	errorFlag;					/* エラーフラグ */
+		uint_t	ioControl;					/* 動作制御の設定値 */
 
-		[size_is(receiveBufferSize)] char *receiveBuffer;	/* åä¿¡ãããã¡ */
-		uint_t	receiveReadPointer;			/* åä¿¡ãããã¡èª­åºããã¤ã³ã¿ */
-		uint_t	receiveWritePointer;		/* åä¿¡ãããã¡æ¸è¾¼ã¿ãã¤ã³ã¿ */
-		uint_t	receiveCount;				/* åä¿¡ãããã¡ä¸­ã®æå­æ° */
-		char  	receiveFlowControl;			/* éãã¹ãSTART/STOP */
-		bool_t	receiveStopped;				/* STOPãéã£ãç¶æ
-ãï¼ */
+		[size_is(receiveBufferSize)] char *receiveBuffer;	/* 受信バッファ */
+		uint_t	receiveReadPointer;			/* 受信バッファ読出しポインタ */
+		uint_t	receiveWritePointer;		/* 受信バッファ書込みポインタ */
+		uint_t	receiveCount;				/* 受信バッファ中の文字数 */
+		char  	receiveFlowControl;			/* 送るべきSTART/STOP */
+		bool_t	receiveStopped;				/* STOPを送った状態か？ */
 
-		[size_is(sendBufferSize)] char *sendBuffer;		/* éä¿¡ãããã¡ */
-		uint_t	sendReadPointer;			/* éä¿¡ãããã¡èª­åºããã¤ã³ã¿ */
-		uint_t	sendWritePointer;			/* éä¿¡ãããã¡æ¸è¾¼ã¿ãã¤ã³ã¿ */
-		uint_t	sendCount;					/* éä¿¡ãããã¡ä¸­ã®æå­æ° */
-		bool_t	sendStopped;				/* STOPãåãåã£ãç¶æ
-ãï¼ */
+		[size_is(sendBufferSize)] char *sendBuffer;		/* 送信バッファ */
+		uint_t	sendReadPointer;			/* 送信バッファ読出しポインタ */
+		uint_t	sendWritePointer;			/* 送信バッファ書込みポインタ */
+		uint_t	sendCount;					/* 送信バッファ中の文字数 */
+		bool_t	sendStopped;				/* STOPを受け取った状態か？ */
 	};
 };
 
 /*
- *  ã·ãªã¢ã«ãã¼ããã©ã¤ãï¼è¤åã»ã«ï¼ã®ã»ã«ã¿ã¤ã
+ *  シリアルポートドライバ（複合セル）のセルタイプ
  *
- *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡é¨ã¨ï¼ãããä½¿ç¨ãã2ã¤ã®ã»ããã©ï¼åä¿¡ç¨ã¨é
- *  ä¿¡ç¨ï¼ãè¤ååãã¦ï¼1ã¤ã®ã³ã³ãã¼ãã³ãã¨ãã¦ããï¼
+ *  シリアルポートの制御部と，それが使用する2つのセマフォ（受信用と送
+ *  信用）を複合化して，1つのコンポーネントとしている．
  */
 composite tSerialPort {
@@ -165,13 +147,13 @@
 	entry	snSerialPortManage	enSerialPortManage;
 
-	call	sSIOPort		cSIOPort;		/* ç°¡æSIOãã©ã¤ãã¨ã®æ¥ç¶ */
+	call	sSIOPort		cSIOPort;		/* 簡易SIOドライバとの接続 */
 	entry	siSIOCBR		eiSIOCBR;
 	
 	attr {
-		uint_t	receiveBufferSize = 256;	/* åä¿¡ãããã¡ãµã¤ãº */
-		uint_t	sendBufferSize = 256;		/* éä¿¡ãããã¡ãµã¤ãº */
+		uint_t	receiveBufferSize = 256;	/* 受信バッファサイズ */
+		uint_t	sendBufferSize = 256;		/* 送信バッファサイズ */
 	};
 
-	/* åä¿¡ç¨ã®ã»ããã© */
+	/* 受信用のセマフォ */
 	cell tSemaphore ReceiveSemaphore {
 		attribute = C_EXP("TA_NULL");
@@ -180,5 +162,5 @@
 	};
 
-	/* éä¿¡ç¨ã®ã»ããã© */
+	/* 送信用のセマフォ */
 	cell tSemaphore SendSemaphore {
 		attribute = C_EXP("TA_NULL");
@@ -187,7 +169,7 @@
 	};
 
-	/* ã·ãªã¢ã«ãã¼ãã®å¶å¾¡é¨ */
+	/* シリアルポートの制御部 */
 	cell tSerialPortMain SerialPortMain {
-		/* ã»ããã©ã¨ã®çµå */
+		/* セマフォとの結合 */
 		cReceiveSemaphore  = ReceiveSemaphore.eSemaphore;
 		ciReceiveSemaphore = ReceiveSemaphore.eiSemaphore;
@@ -195,13 +177,13 @@
 		ciSendSemaphore    = SendSemaphore.eiSemaphore;
 
-		/* å¼ã³å£ã®ã¨ã¯ã¹ãã¼ã */
+		/* 呼び口のエクスポート */
 		cSIOPort          => composite.cSIOPort;
 
-		/* å±æ§ã®ç¶æ¿ */
+		/* 属性の継承 */
 		receiveBufferSize = composite.receiveBufferSize;
 		sendBufferSize    = composite.sendBufferSize;
 	};
 
-	/* åãå£ã®ã¨ã¯ã¹ãã¼ã */
+	/* 受け口のエクスポート */
 	composite.eSerialPort        => SerialPortMain.eSerialPort;
 	composite.enSerialPortManage => SerialPortMain.enSerialPortManage;
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPortMain.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPortMain.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPortMain.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
+ *		シリアルインタフェースドライバ
  */
 
@@ -65,14 +50,14 @@
 
 /*
- *  ãã­ã¼å¶å¾¡ã«é¢é£ããå®æ°ã¨ãã¯ã­
- */
-#define	FC_STOP			'\023'		/* ã³ã³ãã­ã¼ã«-S */
-#define	FC_START		'\021'		/* ã³ã³ãã­ã¼ã«-Q */
-
-#define BUFCNT_STOP(bufsz)		((bufsz) * 3 / 4)	/* STOPãéãåºæºæå­æ° */
-#define BUFCNT_START(bufsz)		((bufsz) / 2)		/* STARTãéãåºæºæå­æ° */
-
-/*
- *  ãã¤ã³ã¿ã®ã¤ã³ã¯ãªã¡ã³ã
+ *  フロー制御に関連する定数とマクロ
+ */
+#define	FC_STOP			'\023'		/* コントロール-S */
+#define	FC_START		'\021'		/* コントロール-Q */
+
+#define BUFCNT_STOP(bufsz)		((bufsz) * 3 / 4)	/* STOPを送る基準文字数 */
+#define BUFCNT_START(bufsz)		((bufsz) / 2)		/* STARTを送る基準文字数 */
+
+/*
+ *  ポインタのインクリメント
  */
 #define INC_PTR(ptr, bufsz) do {	\
@@ -83,9 +68,8 @@
 
 /*
- *  ãµã¼ãã¹ã³ã¼ã«å¼åºããã¯ã­
+ *  サービスコール呼出しマクロ
  *
- *  ãµã¼ãã¹ã³ã¼ã«å¼åºããå«ãå¼expãè©ä¾¡ãï¼è¿å¤ãã¨ã©ã¼ï¼è² ã®å¤ï¼ã®å ´
- *  åã«ã¯ï¼ercã«ercd_expãè©ä¾¡ããå¤ãä»£å
-¥ãï¼error_exitã«gotoããï¼
+ *  サービスコール呼出しを含む式expを評価し，返値がエラー（負の値）の場
+ *  合には，ercにercd_expを評価した値を代入し，error_exitにgotoする．
  */
 #define SVC(exp, ercd_exp) do {		\
@@ -97,5 +81,5 @@
 
 /*
- *  E_SYSã¨ã©ã¼ã®çæ
+ *  E_SYSエラーの生成
  */
 static ER
@@ -107,7 +91,5 @@
 
 /*
- *  å¾
-ã¡ã«å
-¥ããµã¼ãã¹ã³ã¼ã«ããã®ã¨ã©ã¼ã®å¤æ
+ *  待ちに入るサービスコールからのエラーの変換
  */
 static ER
@@ -126,5 +108,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã®ãªã¼ãã³ï¼åãå£é¢æ°ï¼
+ *  シリアルポートのオープン（受け口関数）
  */
 ER
@@ -134,19 +116,19 @@
 	ER		ercd;
 
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!VALID_IDX(idx)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
 	}
 	p_cellcb = GET_CELLCB(idx);
 
 	SVC(dis_dsp(), gen_ercd_sys(p_cellcb));
-	if (VAR_openFlag) {				/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+	if (VAR_openFlag) {				/* オープン済みかのチェック */
 		ercd = E_OBJ;
 	}
 	else {
 		/*
-		 *  å¤æ°ã®åæå
+		 *  変数の初期化
 		 */
 		VAR_ioControl = (IOCTL_ECHO | IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV);
@@ -164,5 +146,5 @@
 
 		/*
-		 *  ããä»¥éï¼å²è¾¼ã¿ãç¦æ­¢ããï¼
+		 *  これ以降，割込みを禁止する．
 		 */
 		if (loc_cpu() < 0) {
@@ -172,10 +154,10 @@
 
 		/*
-		 *  ãã¼ãã¦ã§ã¢ä¾å­ã®ãªã¼ãã³å¦ç
+		 *  ハードウェア依存のオープン処理
 		 */
 		cSIOPort_open();
 
 		/*
-		 *  åä¿¡éç¥ã³ã¼ã«ããã¯ãè¨±å¯ããï¼
+		 *  受信通知コールバックを許可する．
 		 */
 		cSIOPort_enableCBR(SIOReceiveReady);
@@ -199,5 +181,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã®ã¯ã­ã¼ãºï¼åãå£é¢æ°ï¼
+ *  シリアルポートのクローズ（受け口関数）
  */
 ER
@@ -208,19 +190,19 @@
 	bool_t	eflag = false;
 
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!VALID_IDX(idx)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
 	}
 	p_cellcb = GET_CELLCB(idx);
 
 	SVC(dis_dsp(), gen_ercd_sys(p_cellcb));
-	if (!VAR_openFlag) {			/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+	if (!VAR_openFlag) {			/* オープン済みかのチェック */
 		ercd = E_OBJ;
 	}
 	else {
 		/*
-		 *  ãã¼ãã¦ã§ã¢ä¾å­ã®ã¯ã­ã¼ãºå¦ç
+		 *  ハードウェア依存のクローズ処理
 		 */
 		if (loc_cpu() < 0) {
@@ -234,5 +216,5 @@
 
 		/*
-		 *  ã»ããã©ã®åæå
+		 *  セマフォの初期化
 		 */
 		if (cSendSemaphore_initialize() < 0) {
@@ -244,5 +226,5 @@
 
 		/*
-		 *  ã¨ã©ã¼ã³ã¼ãã®è¨­å®
+		 *  エラーコードの設定
 		 */
 		if (eflag) {
@@ -260,11 +242,10 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã¸ã®æå­éä¿¡
+ *  シリアルポートへの文字送信
  *
- *  p_cellcbã§æå®ãããSIOãã¼ãã«å¯¾ãã¦ï¼æå­cãéä¿¡ããï¼æå­ãéä¿¡
- *  ã¬ã¸ã¹ã¿ã«ãããå ´åã«ã¯trueãè¿ãï¼ããã§ãªãå ´åã«ã¯ï¼éä¿¡ã¬ã¸ã¹
- *  ã¿ãç©ºãããã¨ãéç¥ããã³ã¼ã«ããã¯é¢æ°ãè¨±å¯ãï¼falseãè¿ãï¼ãã®
- *  é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
-ã§å¼ã³åºãããï¼
+ *  p_cellcbで指定されるSIOポートに対して，文字cを送信する．文字を送信
+ *  レジスタにいれた場合にはtrueを返す．そうでない場合には，送信レジス
+ *  タが空いたことを通知するコールバック関数を許可し，falseを返す．この
+ *  関数は，CPUロック状態で呼び出される．
  */
 Inline bool_t
@@ -281,5 +262,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã¸ã®1æå­éä¿¡
+ *  シリアルポートへの1文字送信
  */
 static ER_BOOL
@@ -290,12 +271,11 @@
 
 	/*
-	 *  LFã®åã«CRãéä¿¡ããï¼
+	 *  LFの前にCRを送信する．
 	 */
 	if (c == '\n' && (VAR_ioControl & IOCTL_CRLF) != 0U) {
 		/*
-		 *  ä»¥ä¸ã®ã³ã¼ãã¯åå¸°å¼åºãã«ãªã£ã¦ãããï¼å¼æ°cã'\n'ã®å ´åã«
-		 *  å¼æ°cã'\r'ã¨ãã¦å¼ã³åºããã¨ããï¼ãã®åå¸°å¼åºãã¯2åç®ã®
-		 *  å¼ã³åºãã§å¿
-ãæ­¢ã¾ãï¼
+		 *  以下のコードは再帰呼出しになっているが，引数cが'\n'の場合に
+		 *  引数cを'\r'として呼び出すことから，この再帰呼出しは2回目の
+		 *  呼び出しで必ず止まる．
 		 */
 		SVC(rercd = serialPort_writeChar(p_cellcb, '\r'), rercd);
@@ -310,6 +290,5 @@
 								&& serialPort_sendChar(p_cellcb, c)) {
 		/*
-		 *  SIOã®éä¿¡ã¬ã¸ã¹ã¿ã«æå­ãå
-¥ãããã¨ã«æåããå ´åï¼
+		 *  SIOの送信レジスタに文字を入れることに成功した場合．
 		 */
 		buffer_full = false;
@@ -317,6 +296,5 @@
 	else {
 		/*
-		 *  éä¿¡ãããã¡ã«æå­ãå
-¥ããï¼
+		 *  送信バッファに文字を入れる．
 		 */
 		VAR_sendBuffer[VAR_sendWritePointer] = c;
@@ -334,5 +312,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã¸ã®æå­åéä¿¡ï¼åãå£é¢æ°ï¼
+ *  シリアルポートへの文字列送信（受け口関数）
  */
 ER_UINT
@@ -344,21 +322,20 @@
 	ER		ercd, rercd;
 
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
-	if (!VALID_IDX(idx)) {			/* ãã¼ãçªå·ã®ãã§ãã¯ */
+	if (!VALID_IDX(idx)) {			/* ポート番号のチェック */
 		return(E_ID);
 	}
 
 	p_cellcb = GET_CELLCB(idx);
-	if (!VAR_openFlag) {			/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+	if (!VAR_openFlag) {			/* オープン済みかのチェック */
 		return(E_OBJ);
 	}
-	if (VAR_errorFlag) {			/* ã¨ã©ã¼ç¶æ
-ãã®ãã§ãã¯ */
+	if (VAR_errorFlag) {			/* エラー状態かのチェック */
 		return(E_SYS);
 	}
 
-	buffer_full = true;				/* ã«ã¼ãã®1åãã¯wai_semãã */
+	buffer_full = true;				/* ループの1回めはwai_semする */
 	while (wricnt < length) {
 		if (buffer_full) {
@@ -380,5 +357,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãããã®1æå­åä¿¡
+ *  シリアルポートからの1文字受信
  */
 static bool_t
@@ -391,5 +368,5 @@
 
 	/*
-	 *  åä¿¡ãããã¡ããæå­ãåãåºãï¼
+	 *  受信バッファから文字を取り出す．
 	 */
 	*p_c = VAR_receiveBuffer[VAR_receiveReadPointer];
@@ -399,5 +376,5 @@
 
 	/*
-	 *  STARTãéä¿¡ããï¼
+	 *  STARTを送信する．
 	 */
 	if (VAR_receiveStopped && VAR_receiveCount
@@ -417,5 +394,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãããã®æå­ååä¿¡ï¼åãå£é¢æ°ï¼
+ *  シリアルポートからの文字列受信（受け口関数）
  */
 ER_UINT
@@ -425,24 +402,23 @@
 	bool_t	buffer_empty;
 	uint_t	reacnt = 0U;
-	char	c = '\0';		/* ã³ã³ãã¤ã©ã®è­¦åãææ­¢ããããã«åæåãã */
+	char	c = '\0';		/* コンパイラの警告を抑止するために初期化する */
 	ER		ercd, rercd;
 
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
-	if (!VALID_IDX(idx)) {			/* ãã¼ãçªå·ã®ãã§ãã¯ */
+	if (!VALID_IDX(idx)) {			/* ポート番号のチェック */
 		return(E_ID);
 	}
 
 	p_cellcb = GET_CELLCB(idx);
-	if (!VAR_openFlag) {			/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+	if (!VAR_openFlag) {			/* オープン済みかのチェック */
 		return(E_OBJ);
 	}
-	if (VAR_errorFlag) {			/* ã¨ã©ã¼ç¶æ
-ãã®ãã§ãã¯ */
+	if (VAR_errorFlag) {			/* エラー状態かのチェック */
 		return(E_SYS);
 	}
 
-	buffer_empty = true;			/* ã«ã¼ãã®1åãã¯wai_semãã */
+	buffer_empty = true;			/* ループの1回めはwai_semする */
 	while (reacnt < length) {
 		if (buffer_empty) {
@@ -456,5 +432,5 @@
 
 		/*
-		 *  ã¨ã³ã¼ããã¯å¦çï¼
+		 *  エコーバック処理．
 		 */
 		if ((VAR_ioControl & IOCTL_ECHO) != 0U) {
@@ -477,5 +453,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡ï¼åãå£é¢æ°ï¼
+ *  シリアルポートの制御（受け口関数）
  */
 ER
@@ -484,17 +460,16 @@
 	CELLCB	*p_cellcb;
 
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!VALID_IDX(idx)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
-	}
-
-	p_cellcb = GET_CELLCB(idx);
-	if (!VAR_openFlag) {			/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
+	}
+
+	p_cellcb = GET_CELLCB(idx);
+	if (!VAR_openFlag) {			/* オープン済みかのチェック */
 		return(E_OBJ);
 	}
-	if (VAR_errorFlag) {			/* ã¨ã©ã¼ç¶æ
-ãã®ãã§ãã¯ */
+	if (VAR_errorFlag) {			/* エラー状態かのチェック */
 		return(E_SYS);
 	}
@@ -505,7 +480,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãç¶æ
-ã®åç
-§ï¼åãå£é¢æ°ï¼
+ *  シリアルポート状態の参照（受け口関数）
  */
 ER
@@ -514,17 +487,16 @@
 	CELLCB	*p_cellcb;
 
-	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+	if (sns_dpn()) {				/* コンテキストのチェック */
 		return(E_CTX);
 	}
 	if (!VALID_IDX(idx)) {
-		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
-	}
-
-	p_cellcb = GET_CELLCB(idx);
-	if (!VAR_openFlag) {			/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+		return(E_ID);				/* ポート番号のチェック */
+	}
+
+	p_cellcb = GET_CELLCB(idx);
+	if (!VAR_openFlag) {			/* オープン済みかのチェック */
 		return(E_OBJ);
 	}
-	if (VAR_errorFlag) {			/* ã¨ã©ã¼ç¶æ
-ãã®ãã§ãã¯ */
+	if (VAR_errorFlag) {			/* エラー状態かのチェック */
 		return(E_SYS);
 	}
@@ -536,5 +508,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãããã®éä¿¡å¯è½ã³ã¼ã«ããã¯ï¼åãå£é¢æ°ï¼
+ *  シリアルポートからの送信可能コールバック（受け口関数）
  */
 void
@@ -547,5 +519,5 @@
 	if (VAR_receiveFlowControl != '\0') {
 		/*
-		 *  START/STOP ãéä¿¡ããï¼
+		 *  START/STOP を送信する．
 		 */
 		(void) cSIOPort_putChar(VAR_receiveFlowControl);
@@ -554,5 +526,5 @@
 	else if (!VAR_sendStopped && VAR_sendCount > 0U) {
 		/*
-		 *  éä¿¡ãããã¡ä¸­ããæå­ãåãåºãã¦éä¿¡ããï¼
+		 *  送信バッファ中から文字を取り出して送信する．
 		 */
 		(void) cSIOPort_putChar(VAR_sendBuffer[VAR_sendReadPointer]);
@@ -567,5 +539,5 @@
 	else {
 		/*
-		 *  éä¿¡ãã¹ãæå­ããªãå ´åã¯ï¼éä¿¡å¯è½ã³ã¼ã«ããã¯ãç¦æ­¢ããï¼
+		 *  送信すべき文字がない場合は，送信可能コールバックを禁止する．
 		 */
 		cSIOPort_disableCBR(SIOSendReady);
@@ -574,5 +546,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãããã®åä¿¡éç¥ã³ã¼ã«ããã¯ï¼åãå£é¢æ°ï¼
+ *  シリアルポートからの受信通知コールバック（受け口関数）
  */
 void
@@ -587,5 +559,5 @@
 	if ((VAR_ioControl & IOCTL_FCSND) != 0U && c == FC_STOP) {
 		/*
-		 *  éä¿¡ãä¸æåæ­¢ããï¼éä¿¡ä¸­ã®æå­ã¯ãã®ã¾ã¾éä¿¡ããï¼
+		 *  送信を一時停止する．送信中の文字はそのまま送信する．
 		 */
 		VAR_sendStopped = true;
@@ -594,5 +566,5 @@
 				|| (VAR_ioControl & IOCTL_FCANY) != 0U)) {
 		/*
-		 *  éä¿¡ãåéããï¼
+		 *  送信を再開する．
 		 */
 		VAR_sendStopped = false;
@@ -612,16 +584,15 @@
 	else if ((VAR_ioControl & IOCTL_FCSND) != 0U && c == FC_START) {
 		/*
-		 *  éä¿¡ã«å¯¾ãã¦ãã­ã¼å¶å¾¡ãã¦ããå ´åï¼START ã¯æ¨ã¦ãï¼
+		 *  送信に対してフロー制御している場合，START は捨てる．
 		 */
 	}
 	else if (VAR_receiveCount == ATTR_receiveBufferSize) {
 		/*
-		 *  ãããã¡ãã«ã®å ´åï¼åä¿¡ããæå­ãæ¨ã¦ãï¼
+		 *  バッファフルの場合，受信した文字を捨てる．
 		 */
 	}
 	else {
 		/*
-		 *  åä¿¡ããæå­ãåä¿¡ãããã¡ã«å
-¥ããï¼
+		 *  受信した文字を受信バッファに入れる．
 		 */
 		VAR_receiveBuffer[VAR_receiveWritePointer] = c;
@@ -635,5 +606,5 @@
 
 		/*
-		 *  STOPãéä¿¡ããï¼
+		 *  STOPを送信する．
 		 */
 		if ((VAR_ioControl & IOCTL_FCRCV) != 0U && !VAR_receiveStopped
@@ -648,5 +619,5 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãããã®æªéä¿¡æå­ã®ååºã
+ *  シリアルインタフェースドライバからの未送信文字の取出し
  */
 bool_t
@@ -655,7 +626,7 @@
 	CELLCB	*p_cellcb;
 
-	if (VALID_IDX(idx)) {						/* ãã¼ãçªå·ã®ãã§ãã¯ */
+	if (VALID_IDX(idx)) {						/* ポート番号のチェック */
 		p_cellcb = GET_CELLCB(idx);
-		if (VAR_openFlag) {						/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+		if (VAR_openFlag) {						/* オープン済みかのチェック */
 			if (VAR_sendCount > 0U) {
 				*p_c = VAR_sendBuffer[VAR_sendReadPointer];
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã·ã¹ãã ã­ã°æ©è½
+ *		システムログ機能
  */
 
@@ -68,10 +53,8 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
- *
- *  ã·ã¹ãã ã­ã°ã«åºåãããã­ã°æ
-å ±ããã¬ã¼ã¹ã­ã°ã«ãè¨é²ã§ããããã«ï¼
- *  eSyslog_writeã®å
-¥å£ã«ãã¬ã¼ã¹ã­ã°ãã¯ã­ãç½®ãï¼
+ *  トレースログマクロのデフォルト定義
+ *
+ *  システムログに出力されたログ情報をトレースログにも記録できるように，
+ *  eSyslog_writeの入口にトレースログマクロを置く．
  */
 #ifndef LOG_TSYSLOG_ESYSLOG_WRITE_ENTER
@@ -80,9 +63,9 @@
 
 /*
- *  ã­ã°æå»ã®åãåºã
- *
- *  ããã©ã«ãã§ã¯ï¼ã­ã°æå»ã¨ãã¦ï¼é«åè§£è½ã¿ã¤ãã®ã«ã¦ã³ãå¤ãç¨ãã¦
- *  ããï¼ã¿ã¼ã²ããä¾å­ã§å¤æ´ããå ´åã«ã¯ï¼SYSLOG_GET_LOGTIMã«ï¼ã­ã°æ
- *  å»ãåãåºããã¯ã­ãå®ç¾©ããï¼
+ *  ログ時刻の取り出し
+ *
+ *  デフォルトでは，ログ時刻として，高分解能タイマのカウント値を用いて
+ *  いる．ターゲット依存で変更する場合には，SYSLOG_GET_LOGTIMに，ログ時
+ *  刻を取り出すマクロを定義する．
  */
 #ifndef SYSLOG_GET_LOGTIM
@@ -94,5 +77,5 @@
 
 /*
- *  ä½ã¬ãã«åºåã®å¼åºãé¢æ°
+ *  低レベル出力の呼出し関数
  */
 static void
@@ -103,10 +86,7 @@
 
 /*
- *  ã­ã°æ
-å ±ã®åºåï¼åãå£é¢æ°ï¼
- *
- *  CPUã­ãã¯ç¶æ
-ãå®è¡ã³ã³ãã­ã¹ãã«ãããåä½ã§ããããã«å®è£
-ãã¦ããï¼
+ *  ログ情報の出力（受け口関数）
+ *
+ *  CPUロック状態や実行コンテキストによらず動作できるように実装してある．
  */
 ER
@@ -119,10 +99,10 @@
 
 	/*
-	 *  ã­ã°æå»ã®è¨­å®
+	 *  ログ時刻の設定
 	 */
 	SYSLOG_GET_LOGTIM(&(((SYSLOG *) p_syslog)->logtim));
 
 	/*
-	 *  ã­ã°ãããã¡ã«è¨é²
+	 *  ログバッファに記録
 	 */
 	if ((VAR_logMask & LOG_MASK(priority)) != 0U) {
@@ -142,5 +122,5 @@
 
 	/*
-	 *  ä½ã¬ãã«åºå
+	 *  低レベル出力
 	 */
 	if ((VAR_lowMask & LOG_MASK(priority)) != 0U) {
@@ -154,9 +134,7 @@
 
 /*
- *  ã­ã°ãããã¡ããã®èª­åºãï¼åãå£é¢æ°ï¼
- *
- *  CPUã­ãã¯ç¶æ
-ãå®è¡ã³ã³ãã­ã¹ãã«ãããåä½ã§ããããã«å®è£
-ãã¦ããï¼
+ *  ログバッファからの読出し（受け口関数）
+ *
+ *  CPUロック状態や実行コンテキストによらず動作できるように実装してある．
  */
 ER_UINT
@@ -169,5 +147,5 @@
 
 	/*
-	 *  ã­ã°ãããã¡ããã®ååºã
+	 *  ログバッファからの取出し
 	 */
 	if (VAR_count > 0U) {
@@ -190,6 +168,5 @@
 
 /* 
- *  åºåãã¹ãã­ã°æ
-å ±ã®éè¦åº¦ã®è¨­å®ï¼åãå£é¢æ°ï¼
+ *  出力すべきログ情報の重要度の設定（受け口関数）
  */
 ER
@@ -206,7 +183,5 @@
 
 /*
- *  ã­ã°ãããã¡ã®ç¶æ
-åç
-§ï¼åãå£é¢æ°ï¼
+ *  ログバッファの状態参照（受け口関数）
  */
 ER_UINT
@@ -225,6 +200,5 @@
 
 /* 
- *  ä½ã¬ãã«åºåã«ãããã¹ã¦ã®ã­ã°æ
-å ±ã®åºåï¼åãå£é¢æ°ï¼
+ *  低レベル出力によるすべてのログ情報の出力（受け口関数）
  */
 ER
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.cdl	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,14 +42,14 @@
 
 /*
- *		ã·ã¹ãã ã­ã°æ©è½ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		システムログ機能のコンポーネント記述ファイル
  */
 
 /*
- *  ã·ã¹ãã ã­ã°åºåã«é¢ããå®ç¾©
+ *  システムログ出力に関する定義
  */
 import_C("t_syslog.h");
 
 /*
- *  ä½ã¬ãã«åºåã®ã·ã°ããã£
+ *  低レベル出力のシグニチャ
  */
 signature sPutLog {
@@ -73,34 +58,29 @@
 
 /*
- *  ã·ã¹ãã ã­ã°æ©è½ã®ã·ã°ããã£
+ *  システムログ機能のシグニチャ
  */
 signature sSysLog {
 	/*
-	 *  ã­ã°æ
-å ±ã®åºå
+	 *  ログ情報の出力
 	 */
 	ER		write([in] uint_t priority, [in] const SYSLOG *p_syslog);
 
 	/*
-	 *  ã­ã°ãããã¡ããã®ã­ã°æ
-å ±ã®èª­åºã
+	 *  ログバッファからのログ情報の読出し
 	 */
 	ER_UINT	read([out] SYSLOG *p_syslog);
 
 	/*
-	 *  åºåãã¹ãã­ã°æ
-å ±ã®éè¦åº¦ã®è¨­å®
+	 *  出力すべきログ情報の重要度の設定
 	 */
 	ER		mask([in] uint_t logMask, [in] uint_t lowMask);
 
 	/*
-	 *  ä½ã¬ãã«åºåã«ãããã¹ã¦ã®ã­ã°æ
-å ±ã®åºå
+	 *  低レベル出力によるすべてのログ情報の出力
 	 */
 	ER		refer([out] T_SYSLOG_RLOG *pk_rlog);
 
 	/*
-	 *  ä½ã¬ãã«åºåã«ãããã¹ã¦ã®ã­ã°æ
-å ±ã®åºå
+	 *  低レベル出力によるすべてのログ情報の出力
 	 */
 	ER		flush(void);
@@ -108,27 +88,26 @@
 
 /*
- *  ã·ã¹ãã ã­ã°æ©è½ã®ã»ã«ã¿ã¤ã
+ *  システムログ機能のセルタイプ
  */
 [singleton]
 celltype tSysLog {
 	entry	sSysLog		eSysLog;
-	call	sPutLog		cPutLog;		/* ä½ã¬ãã«åºåã¨ã®æ¥ç¶ */
+	call	sPutLog		cPutLog;		/* 低レベル出力との接続 */
 
 	attr {
-		uint_t	logBufferSize;			/* ã­ã°ãããã¡ãµã¤ãº */
+		uint_t	logBufferSize;			/* ログバッファサイズ */
 		uint_t	initLogMask = C_EXP("LOG_UPTO(LOG_DEBUG)");
-										/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
+										/* ログバッファに記録すべき重要度 */
 		uint_t	initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)");
-									   	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
+									   	/* 低レベル出力すべき重要度 */
 	};
 	var {
-		[size_is(logBufferSize)] SYSLOG	*logBuffer;	/* ã­ã°ãããã¡ */
-		uint_t	count = 0;				/* ã­ã°ãããã¡ä¸­ã®ã­ã°ã®æ° */
-		uint_t	head = 0;				/* å
-é ­ã®ã­ã°ã®æ ¼ç´ä½ç½® */
-		uint_t	tail = 0;				/* æ¬¡ã®ã­ã°ã®æ ¼ç´ä½ç½® */
-		uint_t	lost = 0;				/* å¤±ãããã­ã°ã®æ° */
-		uint_t	logMask = initLogMask;	/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
-		uint_t	lowMask = initLowMask;	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
+		[size_is(logBufferSize)] SYSLOG	*logBuffer;	/* ログバッファ */
+		uint_t	count = 0;				/* ログバッファ中のログの数 */
+		uint_t	head = 0;				/* 先頭のログの格納位置 */
+		uint_t	tail = 0;				/* 次のログの格納位置 */
+		uint_t	lost = 0;				/* 失われたログの数 */
+		uint_t	logMask = initLogMask;	/* ログバッファに記録すべき重要度 */
+		uint_t	lowMask = initLowMask;	/* 低レベル出力すべき重要度 */
 	};
 };
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLogAdapter.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLogAdapter.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLogAdapter.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,6 +40,6 @@
 
 /*
- *		Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ã¹ãã ã­ã°
- *		æ©è½ãå¼ã³åºãããã®ã¢ããã¿
+ *		C言語で記述されたアプリケーションから，TECSベースのシステムログ
+ *		機能を呼び出すためのアダプタ
  */
 
@@ -63,6 +48,5 @@
 
 /*
- *  ã­ã°æ
-å ±ã®åºå
+ *  ログ情報の出力
  */
 ER
@@ -73,6 +57,5 @@
 
 /*
- *  ã­ã°ãããã¡ããã®ã­ã°æ
-å ±ã®èª­åºã
+ *  ログバッファからのログ情報の読出し
  */
 ER_UINT
@@ -83,6 +66,5 @@
 
 /*
- *  åºåãã¹ãã­ã°æ
-å ±ã®éè¦åº¦ã®è¨­å®
+ *  出力すべきログ情報の重要度の設定
  */
 ER
@@ -93,7 +75,5 @@
 
 /*
- *  ã­ã°ãããã¡ã®ç¶æ
-åç
-§
+ *  ログバッファの状態参照
  */
 ER
@@ -104,6 +84,5 @@
 
 /*
- *  ä½ã¬ãã«åºåã«ãããã¹ã¦ã®ã­ã°æ
-å ±ã®åºå
+ *  低レベル出力によるすべてのログ情報の出力
  */
 ER
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLogAdapter.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLogAdapter.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLogAdapter.cdl	(revision 321)
@@ -1,5 +1,5 @@
 /*
- *		Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ã¹ãã ã­ã°
- *		æ©è½ãå¼ã³åºãããã®ã¢ããã¿ç¨ã»ã«ã¿ã¤ãã®å®ç¾©
+ *		C言語で記述されたアプリケーションから，TECSベースのシステムログ
+ *		機能を呼び出すためのアダプタ用セルタイプの定義
  *
  *  $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *		ãã¹ããã­ã°ã©ã ç¨ãµã¼ãã¹
+ *		テストプログラム用サービス
  */
 
@@ -65,5 +50,5 @@
 
 /*
- *  ãã¹ããã­ã°ã©ã ã®éå§ï¼åãå£é¢æ°ï¼
+ *  テストプログラムの開始（受け口関数）
  */
 void
@@ -75,5 +60,5 @@
 
 /*
- *	èªå·±è¨ºæ­é¢æ°ã®è¨­å®
+ *	自己診断関数の設定
  */
 void
@@ -84,5 +69,5 @@
 
 /*
- *	ãã¹ããã­ã°ã©ã ã®çµäº
+ *	テストプログラムの終了
  */
 static void
@@ -95,10 +80,10 @@
 	(void) ext_ker();
 
-	/* ããã¸æ¥ããã¨ã¯ãªãã¯ã */
+	/* ここへ来ることはないはず */
 	SIL_UNL_INT();
 }
 
 /*
- *	ãã§ãã¯ãã¤ã³ãï¼åãå£é¢æ°ï¼
+ *	チェックポイント（受け口関数）
  */
 void
@@ -110,11 +95,10 @@
 
 	/*
-	 *  å²è¾¼ã¿ã­ãã¯ç¶æ
-ã«
+	 *  割込みロック状態に
 	 */
 	SIL_LOC_INT();
 
 	/*
-	 *  ã·ã¼ã±ã³ã¹ãã§ãã¯
+	 *  シーケンスチェック
 	 */
 	if (++VAR_check_count == count) {
@@ -127,7 +111,5 @@
 
 	/*
-	 *  ã«ã¼ãã«ã®å
-é¨ç¶æ
-ã®æ¤æ»
+	 *  カーネルの内部状態の検査
 	 */
 	if (is_cBuiltInTest_joined()) {
@@ -141,5 +123,5 @@
 
 	/*
-	 *  ã¨ã©ã¼ãæ¤åºãããå ´åã¯ï¼ãã¹ããã­ã°ã©ã ãçµäºããï¼
+	 *  エラーが検出された場合は，テストプログラムを終了する．
 	 */
 	if (errorflag) {
@@ -148,6 +130,5 @@
 
 	/*
-	 *  å²è¾¼ã¿ã­ãã¯ç¶æ
-ãè§£é¤
+	 *  割込みロック状態を解除
 	 */
 	SIL_UNL_INT();
@@ -155,5 +136,5 @@
 
 /*
- *	å®äºãã§ãã¯ãã¤ã³ãï¼åãå£é¢æ°ï¼
+ *	完了チェックポイント（受け口関数）
  */
 void
@@ -168,5 +149,5 @@
 
 /*
- *	æ¡ä»¶ãã§ãã¯ã®ã¨ã©ã¼å¦çï¼åãå£é¢æ°ï¼
+ *	条件チェックのエラー処理（受け口関数）
  */
 void
@@ -179,5 +160,5 @@
 
 /*
- *	ã¨ã©ã¼ã³ã¼ããã§ãã¯ã®ã¨ã©ã¼å¦çï¼åãå£é¢æ°ï¼
+ *	エラーコードチェックのエラー処理（受け口関数）
  */
 void
@@ -190,5 +171,5 @@
 
 /*
- *	ã¨ã©ã¼ã³ã¼ããã§ãã¯ã®ã¨ã©ã¼å¦çï¼åãå£é¢æ°ï¼
+ *	エラーコードチェックのエラー処理（受け口関数）
  */
 ER
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.cdl	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,9 +40,9 @@
 
 /*
- *		ãã¹ããã­ã°ã©ã ç¨ãµã¼ãã¹ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		テストプログラム用サービスのコンポーネント記述ファイル
  */
 
 /*
- *  èªå·±è¨ºæ­ãµã¼ãã¹ã®ã·ã°ããã£
+ *  自己診断サービスのシグニチャ
  */
 signature sBuiltInTest {
@@ -66,15 +51,15 @@
 
 /*
- *  ãã¹ããã­ã°ã©ã ç¨ãµã¼ãã¹ã®ã·ã°ããã£
+ *  テストプログラム用サービスのシグニチャ
  *
- *  setBuiltInTestã¯ï¼TECSã®ä¸­ã§ã¯åççµåãä½¿ã£ã¦å®ç¾ãã¹ãã§ãããï¼
- *  Cè¨èªã®ã¢ããªã±ã¼ã·ã§ã³ããå¼ã³åºããããããããã«ï¼TECSã®ä½æ³é
- *  åã®ã³ã¼ãã¨ãªã£ã¦ããï¼
+ *  setBuiltInTestは，TECSの中では動的結合を使って実現すべきであるが，
+ *  C言語のアプリケーションから呼び出しやすくするために，TECSの作法違
+ *  反のコードとなっている．
  *
- *  getInterruptPriorityMaskã¯ï¼ãã®ã¾ã¾ã«ã¼ãã«ãå¼ã³åºãã ãã®é¢æ°ã§
- *  ããï¼ä¿è­·æ©è½å¯¾å¿ã§ãªãã«ã¼ãã«ã§ã¯ãã®ã¾ã¾ã«ã¼ãã«ãå¼ã¹ã°è¯ããï¼
- *  ä¿è­·æ©è½å¯¾å¿ã«ã¼ãã«ã§ã¯ã«ã¼ãã«ãç´æ¥å¼ã³åºããã¨ã¯éããªãã®ã§ï¼
- *  ãã¹ããã­ã°ã©ã ç¨ãµã¼ãã¹ï¼ã«ã¼ãã«ãã¡ã¤ã³ã§åä½ãããã¨ãæ³å®ï¼
- *  ã¨ãã¦ç¨æãã¦ããï¼
+ *  getInterruptPriorityMaskは，そのままカーネルを呼び出すだけの関数で
+ *  ある．保護機能対応でないカーネルではそのままカーネルを呼べば良いが，
+ *  保護機能対応カーネルではカーネルを直接呼び出せるとは限らないので，
+ *  テストプログラム用サービス（カーネルドメインで動作することを想定）
+ *  として用意している．
  */
 signature sTestService {
@@ -91,5 +76,5 @@
 
 /*
- *  ãã¹ããã­ã°ã©ã ç¨ãµã¼ãã¹ã®ã»ã«ã¿ã¤ã
+ *  テストプログラム用サービスのセルタイプ
  */
 [singleton, active]
@@ -100,10 +85,10 @@
 
 	var {
-		uint_t		check_count;	/* æå¾ã«ééãããã§ãã¯ãã¤ã³ã */
+		uint_t		check_count;	/* 最後に通過したチェックポイント */
 	};
 };
 
 /*
- *  èªå·±è¨ºæ­ãµã¼ãã¹ã®ãã£ã¹ã¯ãªãã¿ãåå¾ããã·ã°ããã£
+ *  自己診断サービスのディスクリプタを取得するシグニチャ
  */
 signature sGetBuiltInTestDescriptor {
@@ -113,5 +98,5 @@
 
 /*
- *  èªå·±è¨ºæ­ãµã¼ãã¹ã®ãã£ã¹ã¯ãªãã¿ãåå¾ããã»ã«ã¿ã¤ã
+ *  自己診断サービスのディスクリプタを取得するセルタイプ
  */
 [singleton, active]
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/test_svc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/test_svc.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/test_svc.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /* 
- *		ãã¹ããã­ã°ã©ã ç¨ãµã¼ãã¹
+ *		テストプログラム用サービス
  */
 
@@ -69,10 +54,10 @@
 
 /*
- *  TECSã§è¨è¿°ããããã¹ããã­ã°ã©ã ç¨ã®ãµã¼ãã¹ãç´æ¥å¼ã³åºãããã®å®ç¾©
+ *  TECSで記述されたテストプログラム用のサービスを直接呼び出すための定義
  *
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSã§è¨è¿°ããããã¹ããã­ã°
- *  ã©ã ç¨ã®ãµã¼ãã¹ãå¼ã³åºãããã«ã¯ï¼ã¢ããã¿ãç¨ããã®ãæ­£å½ãªæ¹æ³
- *  ã§ãããï¼ãã¹ããã­ã°ã©ã ç¨ã®ãµã¼ãã¹ãã·ã³ã°ã«ãã³ã§ãããã¨ãå©
- *  ç¨ãã¦ç´æ¥å¼ã³åºãï¼
+ *  C言語で記述されたアプリケーションから，TECSで記述されたテストプログ
+ *  ラム用のサービスを呼び出すためには，アダプタを用いるのが正当な方法
+ *  であるが，テストプログラム用のサービスがシングルトンであることを利
+ *  用して直接呼び出す．
  */
 extern void	tTestService_eTestService_start(const char* progname);
@@ -87,5 +72,5 @@
 
 /*
- *  ãã¹ããã­ã°ã©ã ã®éå§
+ *  テストプログラムの開始
  */
 Inline void
@@ -96,5 +81,5 @@
 
 /*
- *	èªå·±è¨ºæ­é¢æ°ã®è¨­å®
+ *	自己診断関数の設定
  */
 Inline void
@@ -105,5 +90,5 @@
 
 /*
- *	ãã§ãã¯ãã¤ã³ã
+ *	チェックポイント
  */
 Inline void
@@ -114,5 +99,5 @@
 
 /*
- *	å®äºãã§ãã¯ãã¤ã³ã
+ *	完了チェックポイント
  */
 Inline void
@@ -123,5 +108,5 @@
 
 /*
- *	æ¡ä»¶ãã§ãã¯
+ *	条件チェック
  */
 Inline void
@@ -135,5 +120,5 @@
 
 /*
- *	ã¨ã©ã¼ã³ã¼ããã§ãã¯
+ *	エラーコードチェック
  */
 Inline void
@@ -148,6 +133,5 @@
 
 /*
- *	ã·ã¹ãã ç¶æ
-ã®ãã§ãã¯
+ *	システム状態のチェック
  */
 #define check_state(ctx, loc, dsp, dpn, ter) do {	\
@@ -160,6 +144,5 @@
 
 /*
- *	å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã®ãã§ãã¯
+ *	割込み優先度マスクのチェック
  */
 #define check_ipm(ipm) do {												\
@@ -177,9 +160,9 @@
 
 /*
- *  TECSã§è¨è¿°ãããèªå·±è¨ºæ­ãµã¼ãã¹ãç´æ¥å¼ã³åºãããã®å®ç¾©
+ *  TECSで記述された自己診断サービスを直接呼び出すための定義
  *
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSã§è¨è¿°ãããèªå·±è¨ºæ­ãµã¼
- *  ãã¹ãå¼ã³åºãããã«ã¯ï¼ã¢ããã¿ãç¨ããã®ãæ­£å½ãªæ¹æ³ã§ãããï¼èª
- *  å·±è¨ºæ­ãµã¼ãã¹ãã·ã³ã°ã«ãã³ã§ãããã¨ãå©ç¨ãã¦ç´æ¥å¼ã³åºãï¼
+ *  C言語で記述されたアプリケーションから，TECSで記述された自己診断サー
+ *  ビスを呼び出すためには，アダプタを用いるのが正当な方法であるが，自
+ *  己診断サービスがシングルトンであることを利用して直接呼び出す．
  */
 extern ER	tBuiltInTestAdaptor_eGetBuiltInTestDescriptor_getDescriptor
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.target
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.target	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.target	(revision 321)
@@ -1,10 +1,10 @@
 #
-#		Makefile ã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+#		Makefile のターゲット依存部（GR-PEACH用）
 #
-#  $Id: Makefile.target 732 2016-04-03 03:08:05Z ertl-hiro $
+#  $Id$
 # 
 
 #
-#  ã·ã¹ãã åï¼ãããåï¼ã³ã¢åï¼éçºç°å¢åã®å®ç¾©
+#  システム名，チップ名，コア名，開発環境名の定義
 #
 SYS = gr_peach
@@ -14,9 +14,8 @@
 
 #
-#  å®è¡å½¢æ
-
+#  実行形態
 #
-#  ãã©ãã·ã¥ã¡ã¢ãªï¼ROMï¼ã«æ¸ãè¾¼ããï¼RAMã«ã­ã¼ããã¦å®è¡ããããé¸æ
-#  ããï¼
+#  フラッシュメモリ（ROM）に書き込むか，RAMにロードして実行するかを選択
+#  する．
 #
 ifndef EXECUTE_ON
@@ -25,5 +24,5 @@
 
 #
-#  ãã¼ãã­ã¼ãã®çµè¾¼ã¿
+#  ブートローダの組込み
 #
 ifeq ($(EXECUTE_ON),ROM)
@@ -32,10 +31,10 @@
 
 #
-#  MPCoreã®ç¨®é¡ã®å®ç¾©
+#  MPCoreの種類の定義
 #
 MPCORE_TYPE = CA9
 
 #
-#  ã³ã³ãã¤ã«ãªãã·ã§ã³
+#  コンパイルオプション
 #
 INCLUDES := $(INCLUDES) -I$(TARGETDIR)
@@ -44,5 +43,5 @@
 
 #
-#  ã«ã¼ãã«ã«é¢ããå®ç¾©
+#  カーネルに関する定義
 #
 KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR)
@@ -51,5 +50,5 @@
 
 #
-#  ã³ã³ãã¤ã«ãªãã·ã§ã³ã¨ãªã³ã«ã¹ã¯ãªããã®å®ç¾©
+#  コンパイルオプションとリンカスクリプトの定義
 #
 ifeq ($(EXECUTE_ON),ROM)
@@ -63,5 +62,5 @@
 
 #
-#  GNUéçºç°å¢ã®ã¿ã¼ã²ããã¢ã¼ã­ãã¯ãã£ã®å®ç¾©
+#  GNU開発環境のターゲットアーキテクチャの定義
 #
 GCC_TARGET = arm-none-eabi
@@ -69,5 +68,5 @@
 
 #
-#  ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã«é¢ããå®ç¾©
+#  トレースログ記録のサンプルコードに関する定義
 #
 ifeq ($(ENABLE_TRACE),true)
@@ -77,5 +76,5 @@
 
 #
-#  ãããä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#  チップ依存部のインクルード
 #
 include $(SRCDIR)/arch/arm_gcc/rza1/Makefile.chip
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.tinet
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.tinet	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.tinet	(revision 321)
@@ -5,45 +5,33 @@
 #                    Tomakomai National College of Technology, JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
-#   ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
-#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
-#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
-#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+#   によって公表されている GNU General Public License の Version 2 に記
+#   述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+#   を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+#   利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次の条件を満たすこと．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
-#   å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
-#   æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+#   含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+#   接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
 #  
-#   @(#) $Id: Makefile.tinet,v 1.6 2012/07/18 04:17:01 abe Exp abe $
+#   @(#) $Id$
 #
 
 #
-#  Makefile.tinet ã®ã·ã¹ãã ä¾å­é¨åï¼GR-PEACHç¨ï¼
+#  Makefile.tinet のシステム依存部分（GR-PEACH用）
 
 ifeq ($(NET_IF),ether)
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach.h	(revision 321)
@@ -7,52 +7,37 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  */
 
 /*
- *		GR-PEACHã®ãã¼ãã¦ã§ã¢è³æºã®å®ç¾©
+ *		GR-PEACHのハードウェア資源の定義
  */
 
@@ -63,15 +48,15 @@
 
 /*
- *  åã¯ã­ãã¯å¨æ³¢æ°ã®å®ç¾©
+ *  各クロック周波数の定義
  */
 #define RZA1_CLK_I			400000000UL		/* 400MHz */
 #define RZA1_CLK_I_MHZ		400				/* 400MHz */
-#define RZA1_CLK_G			266666667UL		/* 266.66â¦MHz */
-#define RZA1_CLK_B			133333333UL		/* 133.33â¦MHz */
-#define RZA1_CLK_P1			66666667UL		/* 66.66â¦MHz */
-#define RZA1_CLK_P0			33333333UL		/* 33.33â¦MHz */
+#define RZA1_CLK_G			266666667UL		/* 266.66…MHz */
+#define RZA1_CLK_B			133333333UL		/* 133.33…MHz */
+#define RZA1_CLK_P1			66666667UL		/* 66.66…MHz */
+#define RZA1_CLK_P0			33333333UL		/* 33.33…MHz */
 
 /*
- *  LEDã®ç¹ç¯ï¼æ¶ç¯
+ *  LEDの点灯／消灯
  */
 #define GR_PEACH_LED_RED	13
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_ram.ld
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_ram.ld	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_ram.ld	(revision 321)
@@ -1,4 +1,4 @@
 /*
- *  $Id: gr_peach_ram.ld 720 2016-04-01 22:16:17Z ertl-hiro $
+ *  $Id$
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_rom.ld
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_rom.ld	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_rom.ld	(revision 321)
@@ -1,4 +1,4 @@
 /*
- *  $Id: gr_peach_rom.ld 720 2016-04-01 22:16:17Z ertl-hiro $
+ *  $Id$
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tPutLogGRPeach.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tPutLogGRPeach.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tPutLogGRPeach.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *		ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºå
+ *		システムログの低レベル出力
  */
 
@@ -61,8 +46,8 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ããã®åæå
+ *  システムログの低レベル出力のための初期化
  *
- *  åæåã«ã¼ãã³ãå¼ã³åºãããåã«åæåããããã«ï¼ã«ã¼ãã«ã®ã¿ã¼ã²ã
- *  ãä¾å­é¨ããç´æ¥å¼ã³åºãããã®é¢æ°ï¼
+ *  初期化ルーチンを呼び出すより前に初期化するために，カーネルのターゲッ
+ *  ト依存部から直接呼び出すための関数．
  */
 void
@@ -73,7 +58,7 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ããã®æå­åºåï¼åãå£é¢æ°ï¼
+ *  システムログの低レベル出力のための文字出力（受け口関数）
  *
- *  SIOãã¼ãã«æå­ãéä¿¡ã§ããã¾ã§ãã¼ãªã³ã°ããï¼
+ *  SIOポートに文字が送信できるまでポーリングする．
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tPutLogGRPeach.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tPutLogGRPeach.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tPutLogGRPeach.cdl	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,9 +42,9 @@
 
 /*
- *		ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ã³ã³ãã¼ãã³ãè¨è¿°
+ *		システムログの低レベル出力のコンポーネント記述
  */
 
 /*
- *  ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ã»ã«ã¿ã¤ã
+ *  システムログの低レベル出力のセルタイプ
  */
 [singleton]
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeach.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeach.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeach.cdl	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,10 +42,10 @@
 
 /*
- *		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
- *		ã®ã³ã³ãã¼ãã³ãè¨è¿°
- */
-
-/*
- *  GR-PEACHã¨RZ/A1ã«é¢ããå®ç¾©
+ *		シリアルインタフェースドライバのターゲット依存部（GR-PEACH用）
+ *		のコンポーネント記述
+ */
+
+/*
+ *  GR-PEACHとRZ/A1に関する定義
  */
 import_C("gr_peach.h");
@@ -68,16 +53,15 @@
 
 /*
- *  FIFOå
-èµã·ãªã¢ã«ã³ãã¥ãã±ã¼ã·ã§ã³ã¤ã³ã¿ãã§ã¼ã¹ç¨ ç°¡æSIOãã©ã¤ã
+ *  FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
  */
 import("tSCIF.cdl");
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨ã®æ¬ä½ï¼ã·ãªã¢ã«ã¤
- *  ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨SIOãã©ã¤ããæ¥ç¶ããé¨åï¼ã®ã»ã«ã¿ã¤ã
+ *  シリアルインタフェースドライバのターゲット依存部の本体（シリアルイ
+ *  ンタフェースドライバとSIOドライバを接続する部分）のセルタイプ
  */
 celltype tSIOPortGRPeachMain {
 	/*
-	 *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå
+	 *  シリアルインタフェースドライバとの結合
 	 */
 	[inline] entry		sSIOPort	eSIOPort;
@@ -85,5 +69,5 @@
 
 	/*
-	 *  SIOãã©ã¤ãã¨ã®çµå
+	 *  SIOドライバとの結合
 	 */
 	call			sSIOPort	cSIOPort;
@@ -91,5 +75,5 @@
 
 	/*
-	 *  å²è¾¼ã¿è¦æ±ã©ã¤ã³æä½ã®ããã®çµå
+	 *  割込み要求ライン操作のための結合
 	 */
 	call	sInterruptRequest	cRxInterruptRequest;
@@ -98,11 +82,11 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨ï¼è¤åã³ã³ãã¼ãã³
- *  ãï¼ã®ã»ã«ã¿ã¤ã
+ *  シリアルインタフェースドライバのターゲット依存部（複合コンポーネン
+ *  ト）のセルタイプ
  */
 [active]
 composite tSIOPortGRPeach {
 	/*
-	 *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå
+	 *  シリアルインタフェースドライバとの結合
 	 */
 	entry				sSIOPort	eSIOPort;
@@ -110,19 +94,17 @@
 
 	/*
-	 *  å±æ§ã®å®ç¾©
+	 *  属性の定義
 	 */
 	attr {
-		uintptr_t	baseAddress;				/* ãã¼ã¹ã¢ãã¬ã¹ */
-		INTNO		rxInterruptNumber;			/* åä¿¡å²è¾¼ã¿çªå· */
-		INTNO		txInterruptNumber;			/* éä¿¡å²è¾¼ã¿çªå· */
-		PRI			isrPriority = 1;			/* ISRåªå
-åº¦ */
-		PRI			interruptPriority = -4;		/* å²è¾¼ã¿åªå
-åº¦ */
-		uint32_t	baudRate = 115200;			/* ãã¼ã¬ã¼ãã®è¨­å®å¤ */
-	};
-
-	/*
-	 *  SIOãã©ã¤ã
+		uintptr_t	baseAddress;				/* ベースアドレス */
+		INTNO		rxInterruptNumber;			/* 受信割込み番号 */
+		INTNO		txInterruptNumber;			/* 送信割込み番号 */
+		PRI			isrPriority = 1;			/* ISR優先度 */
+		PRI			interruptPriority = -4;		/* 割込み優先度 */
+		uint32_t	baudRate = 115200;			/* ボーレートの設定値 */
+	};
+
+	/*
+	 *  SIOドライバ
 	 */
 	cell tSCIF SCIF {
@@ -133,5 +115,5 @@
 
 	/*
-	 *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨ã®æ¬ä½
+	 *  シリアルインタフェースドライバのターゲット依存部の本体
 	 */
 	cell tSIOPortGRPeachMain SIOPortMain {
@@ -144,5 +126,5 @@
 
 	/*
-	 *  SIOã®åä¿¡å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨å²è¾¼ã¿è¦æ±ã©ã¤ã³
+	 *  SIOの受信割込みサービスルーチンと割込み要求ライン
 	 */
 	cell tISR RxISRInstance {
@@ -157,5 +139,5 @@
 
 	/*
-	 *  SIOã®åä¿¡å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨å²è¾¼ã¿è¦æ±ã©ã¤ã³
+	 *  SIOの受信割込みサービスルーチンと割込み要求ライン
 	 */
 	cell tISR TxISRInstance {
@@ -171,16 +153,14 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨ã®ãã­ãã¿ã¤ã
+ *  シリアルインタフェースドライバのターゲット依存部のプロトタイプ
  *
- *  ãµã³ãã«ãã­ã°ã©ã ãä½¿ããã¼ããï¼SIOPortTarget1ã«åºå®ããã¦ããã
- *  ãï¼ãã¼ã1ã¨ãã¼ã3ãå
-¥ãæãã¦ããï¼å
-·ä½çã«ã¯ï¼SIOPortTarget1ã¯
- *  SCIFã®ãã£ãã«2ï¼ãã£ãã«çªå·ã¯0ããå§ã¾ãã®ã§ï¼ãã¼ã3ã®ãã¨ï¼ã«ï¼
- *  SIOPortTarget3ã¯SCIFã®ãã£ãã«0ã«ã¤ãªãã£ã¦ããï¼
+ *  サンプルプログラムが使うポートが，SIOPortTarget1に固定されているた
+ *  め，ポート1とポート3を入れ換えている．具体的には，SIOPortTarget1は
+ *  SCIFのチャネル2（チャネル番号は0から始まるので，ポート3のこと）に，
+ *  SIOPortTarget3はSCIFのチャネル0につながっている．
  */
 [prototype]
 cell tSIOPortGRPeach SIOPortTarget1 {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	baseAddress       = C_EXP("SCIF2_BASE");
 	rxInterruptNumber = C_EXP("INTNO_SCIF2_RXI");
@@ -190,5 +170,5 @@
 [prototype]
 cell tSIOPortGRPeach SIOPortTarget2 {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	baseAddress       = C_EXP("SCIF1_BASE");
 	rxInterruptNumber = C_EXP("INTNO_SCIF1_RXI");
@@ -198,5 +178,5 @@
 [prototype]
 cell tSIOPortGRPeach SIOPortTarget3 {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	baseAddress       = C_EXP("SCIF0_BASE");
 	rxInterruptNumber = C_EXP("INTNO_SCIF0_RXI");
@@ -206,5 +186,5 @@
 [prototype]
 cell tSIOPortGRPeach SIOPortTarget4 {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	baseAddress       = C_EXP("SCIF3_BASE");
 	rxInterruptNumber = C_EXP("INTNO_SCIF3_RXI");
@@ -214,5 +194,5 @@
 [prototype]
 cell tSIOPortGRPeach SIOPortTarget5 {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	baseAddress       = C_EXP("SCIF4_BASE");
 	rxInterruptNumber = C_EXP("INTNO_SCIF4_RXI");
@@ -222,5 +202,5 @@
 [prototype]
 cell tSIOPortGRPeach SIOPortTarget6 {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	baseAddress       = C_EXP("SCIF5_BASE");
 	rxInterruptNumber = C_EXP("INTNO_SCIF5_RXI");
@@ -230,5 +210,5 @@
 [prototype]
 cell tSIOPortGRPeach SIOPortTarget7 {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	baseAddress       = C_EXP("SCIF6_BASE");
 	rxInterruptNumber = C_EXP("INTNO_SCIF6_RXI");
@@ -238,5 +218,5 @@
 [prototype]
 cell tSIOPortGRPeach SIOPortTarget8 {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	baseAddress       = C_EXP("SCIF7_BASE");
 	rxInterruptNumber = C_EXP("INTNO_SCIF7_RXI");
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeachMain_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeachMain_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeachMain_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,9 +42,9 @@
 
 /*
- *		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+ *		シリアルインタフェースドライバのターゲット依存部（GR-PEACH用）
  */
 
 /*
- *  SIOãã¼ãã®ãªã¼ãã³
+ *  SIOポートのオープン
  */
 Inline void
@@ -69,10 +54,10 @@
 
 	/*
-	 *  ããã¤ã¹ä¾å­ã®ãªã¼ãã³å¦ç
+	 *  デバイス依存のオープン処理
 	 */
 	cSIOPort_open();
 
 	/*
-	 *  SIOã®å²è¾¼ã¿ãã¹ã¯ãè§£é¤ããï¼
+	 *  SIOの割込みマスクを解除する．
 	 */
 	cRxInterruptRequest_enable();
@@ -81,5 +66,5 @@
 
 /*
- *  SIOãã¼ãã®ã¯ã­ã¼ãº
+ *  SIOポートのクローズ
  */
 Inline void
@@ -89,10 +74,10 @@
 
 	/*
-	 *  ããã¤ã¹ä¾å­ã®ã¯ã­ã¼ãºå¦ç
+	 *  デバイス依存のクローズ処理
 	 */
 	cSIOPort_close();
 
 	/*
-	 *  SIOã®å²è¾¼ã¿ããã¹ã¯ããï¼
+	 *  SIOの割込みをマスクする．
 	 */
 	cRxInterruptRequest_disable();
@@ -101,5 +86,5 @@
 
 /*
- *  SIOãã¼ãã¸ã®æå­éä¿¡
+ *  SIOポートへの文字送信
  */
 Inline bool_t
@@ -112,5 +97,5 @@
 
 /*
- *  SIOãã¼ãããã®æå­åä¿¡
+ *  SIOポートからの文字受信
  */
 Inline int_t
@@ -123,5 +108,5 @@
 
 /*
- *  SIOãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯
+ *  SIOポートからのコールバックの許可
  */
 Inline void
@@ -134,5 +119,5 @@
 
 /*
- *  SIOãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ­¢
+ *  SIOポートからのコールバックの禁止
  */
 Inline void
@@ -145,5 +130,5 @@
 
 /*
- *  SIOãã¼ãããã®éä¿¡å¯è½ã³ã¼ã«ããã¯
+ *  SIOポートからの送信可能コールバック
  */
 Inline void
@@ -158,5 +143,5 @@
 
 /*
- *  SIOãã¼ãããã®åä¿¡éç¥ã³ã¼ã«ããã¯
+ *  SIOポートからの受信通知コールバック
  */
 Inline void
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target.cdl	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,21 +42,21 @@
 
 /*
- *  ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®ããã©ã«ã
+ *  タスクのスタックサイズのデフォルト
  */
-const size_t DefaultTaskStackSize = 4096;		/* ã¹ã¿ãã¯ãµã¤ãºï¼4KBï¼*/
+const size_t DefaultTaskStackSize = 4096;		/* スタックサイズ（4KB）*/
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®å®ç¾©
+ *  システムログタスクのスタックサイズの定義
  */
 const size_t LogTaskStackSize = DefaultTaskStackSize;
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã«é¢ããå®ç¾©
+ *  カーネル起動メッセージに関する定義
  */
-const char *const BannerTargetName = "GR-PEACH";		/* ã¿ã¼ã²ããå */
-const char *const BannerCopyrightNotice = "";			/* èä½æ¨©è¡¨ç¤º */
+const char *const BannerTargetName = "GR-PEACH";		/* ターゲット名 */
+const char *const BannerCopyrightNotice = "";			/* 著作権表示 */
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®ã»ã«ã¿ã¤ãã®å®ç¾©
+ *  ターゲット依存のセルタイプの定義
  */
 import("tPutLogGRPeach.cdl");
@@ -79,5 +64,5 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨ã®çµã¿ä¸ãè¨è¿°
+ *  シリアルインタフェースドライバのターゲット依存部の組み上げ記述
  */
 cell tSIOPortGRPeach SIOPortTarget1 {
@@ -85,8 +70,8 @@
 
 /*
- *  ä½ã¬ãã«åºåã®çµã¿ä¸ãè¨è¿°
+ *  低レベル出力の組み上げ記述
  */
 cell tPutLogGRPeach PutLogTarget {
-	/* SIOãã©ã¤ãã¨ã®çµå */
+	/* SIOドライバとの結合 */
 	cSIOPort = SIOPortTarget1.eSIOPort;
 };
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_cfg1_out.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_cfg1_out.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_cfg1_out.h	(revision 321)
@@ -1,5 +1,4 @@
 /*
- *		cfg1_out.cããªã³ã¯ããããã«å¿
-è¦ãªã¹ã¿ãã®å®ç¾©
+ *		cfg1_out.cをリンクするために必要なスタブの定義
  *
  *  $Id$
@@ -7,5 +6,5 @@
 
 /*
- *  ã³ã¢ä¾å­ã®ã¹ã¿ãã®å®ç¾©ï¼ãããä¾å­é¨ã¯é£ã°ãï¼
+ *  コア依存のスタブの定義（チップ依存部は飛ばす）
  */
 #include "core_cfg1_out.h"
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_check.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_check.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_check.trb	(revision 321)
@@ -1,9 +1,9 @@
 # -*- coding: utf-8 -*-
 #
-#		ãã¹3ã®çæã¹ã¯ãªããã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+#		パス3の生成スクリプトのターゲット依存部（GR-PEACH用）
 #
 
 #
-#  çæã¹ã¯ãªããã®ã³ã¢ä¾å­é¨ï¼ãããä¾å­é¨ã¯é£ã°ãï¼
+#  生成スクリプトのコア依存部（チップ依存部は飛ばす）
 #
 IncludeTrb("core_check.trb")
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.cfg	(revision 321)
@@ -1,5 +1,4 @@
 /*
- *		ã«ã¼ãã«å®è£
-ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *		カーネル実装のコンフィギュレーションファイル
  *
  *  $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -55,9 +40,9 @@
 
 /*
- *		kernel.hã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+ *		kernel.hのターゲット依存部（GR-PEACH用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼kernel.hããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«
- *  ããç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ããã
- *  åã«ï¼t_stddef.hãã¤ã³ã¯ã«ã¼ããããã®ã§ï¼ããã«ä¾å­ãã¦ãããï¼
+ *  このヘッダファイルは，kernel.hからインクルードされる．他のファイル
+ *  から直接インクルードすることはない．このファイルをインクルードする
+ *  前に，t_stddef.hがインクルードされるので，それに依存してもよい．
  */
 
@@ -66,6 +51,5 @@
 
 /*
- *  ãããã§å
-±éãªå®ç¾©
+ *  チップで共通な定義
  */
 #include "chip_kernel.h"
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.trb	(revision 321)
@@ -1,9 +1,9 @@
 # -*- coding: utf-8 -*-
 #
-#		ãã¹2ã®çæã¹ã¯ãªããã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+#		パス2の生成スクリプトのターゲット依存部（GR-PEACH用）
 #
 
 #
-#  çæã¹ã¯ãªããã®ãããä¾å­é¨
+#  生成スクリプトのチップ依存部
 #
 IncludeTrb("chip_kernel.trb")
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.c	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *		ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+ *		カーネルのターゲット依存部（GR-PEACH用）
  */
 
@@ -67,15 +52,14 @@
 
 /*
- *  ã«ã¼ãã«åä½æã®ã¡ã¢ãªãããã¨é¢é£ããå®ç¾©
- *
- *  0x18000000 - 0x1fffffffï¼ã·ãªã¢ã«ãã©ãã·ã¥ã¡ã¢ãªï¼128MBï¼
- *  0x20000000 - 0x209fffffï¼å
-èµSRAMï¼10MBï¼
- *  0x3fe00000 - 0x3fffffffï¼I/Oé åï¼2MBï¼ï¼äºç´é åãå«ã
- *  0xe8000000 - 0xffffffffï¼I/Oé åï¼384MBï¼ï¼äºç´é åãå«ã
- */
-
-/*
- *  MMUã¸ã®è¨­å®å±æ§ï¼ç¬¬1ã¬ãã«ãã£ã¹ã¯ãªãã¿ï¼
+ *  カーネル動作時のメモリマップと関連する定義
+ *
+ *  0x18000000 - 0x1fffffff：シリアルフラッシュメモリ（128MB）
+ *  0x20000000 - 0x209fffff：内蔵SRAM（10MB）
+ *  0x3fe00000 - 0x3fffffff：I/O領域（2MB），予約領域を含む
+ *  0xe8000000 - 0xffffffff：I/O領域（384MB），予約領域を含む
+ */
+
+/*
+ *  MMUへの設定属性（第1レベルディスクリプタ）
  */
 #define MMU_ATTR_RAM	(ARM_MMU_DSCR1_SHARED|ARMV6_MMU_DSCR1_APX0 \
@@ -86,7 +70,5 @@
 							|ARM_MMU_DSCR1_CB01|ARMV6_MMU_DSCR1_NOEXEC)
 /*
- *  MMUã®è¨­å®æ
-å ±ï¼ã¡ã¢ãªã¨ãªã¢ã®æ
-å ±ï¼
+ *  MMUの設定情報（メモリエリアの情報）
  */
 ARM_MMU_CONFIG arm_memory_area[] = {
@@ -98,6 +80,5 @@
 
 /*
- *  MMUã®è¨­å®æ
-å ±ã®æ°ï¼ã¡ã¢ãªã¨ãªã¢ã®æ°ï¼
+ *  MMUの設定情報の数（メモリエリアの数）
  */
 const uint_t arm_tnum_memory_area
@@ -105,69 +86,65 @@
 
 /*
- *  ä½æ¶è²»é»åã¢ã¼ãã®åæå
+ *  低消費電力モードの初期化
  */
 static void
 lowpower_initialize(void)
 {
-	/* ã¹ã¿ã³ãã¤ã¢ã¼ãæã«ç«¯å­ç¶æ
-ãç¶­æããï¼CoreSightåä½ */
+	/* スタンバイモード時に端子状態を維持する．CoreSight動作 */
 	sil_wrb_mem(RZA1_STBCR2, 0x6a);
-	(void) sil_reb_mem(RZA1_STBCR2);		/* ããã¼ãªã¼ã */
-
-	/* IEBus, irDA, LIN0, LIN1, MTU2, RSCAN2, ASC, PWMåä½ */
+	(void) sil_reb_mem(RZA1_STBCR2);		/* ダミーリード */
+
+	/* IEBus, irDA, LIN0, LIN1, MTU2, RSCAN2, ASC, PWM動作 */
 	sil_wrb_mem(RZA1_STBCR3, 0x00);
-	(void) sil_reb_mem(RZA1_STBCR3);		/* ããã¼ãªã¼ã */
-
-	/* SCIF0, SCIF1, SCIF2, SCIF3, SCIF4, SCIF5, SCIF6, SCIF7åä½ */
+	(void) sil_reb_mem(RZA1_STBCR3);		/* ダミーリード */
+
+	/* SCIF0, SCIF1, SCIF2, SCIF3, SCIF4, SCIF5, SCIF6, SCIF7動作 */
 	sil_wrb_mem(RZA1_STBCR4, 0x00);
-	(void) sil_reb_mem(RZA1_STBCR4);		/* ããã¼ãªã¼ã */
-
-	/* SCIM0, SCIM1, SDG0, SDG1, SDG2, SDG3, OSTM0, OSTM1åä½ */
+	(void) sil_reb_mem(RZA1_STBCR4);		/* ダミーリード */
+
+	/* SCIM0, SCIM1, SDG0, SDG1, SDG2, SDG3, OSTM0, OSTM1動作 */
 	sil_wrb_mem(RZA1_STBCR5, 0x00);
-	(void) sil_reb_mem(RZA1_STBCR5);		/* ããã¼ãªã¼ã */
-
-	/* A/D, CEU, DISCOM0, DISCOM1, DRC0, DRC1, JCU, RTClockåä½ */
+	(void) sil_reb_mem(RZA1_STBCR5);		/* ダミーリード */
+
+	/* A/D, CEU, DISCOM0, DISCOM1, DRC0, DRC1, JCU, RTClock動作 */
 	sil_wrb_mem(RZA1_STBCR6, 0x00);
-	(void) sil_reb_mem(RZA1_STBCR6);		/* ããã¼ãªã¼ã */
-
-	/* DVDEC0, DVDEC1, ETHER, FLCTL, USB0, USB1åä½ */
+	(void) sil_reb_mem(RZA1_STBCR6);		/* ダミーリード */
+
+	/* DVDEC0, DVDEC1, ETHER, FLCTL, USB0, USB1動作 */
 	sil_wrb_mem(RZA1_STBCR7, 0x24);
-	(void) sil_reb_mem(RZA1_STBCR7);		/* ããã¼ãªã¼ã */
-
-	/* IMR-LS20, IMR-LS21, IMR-LSD, MMCIF, MOST50, SCUXåä½ */
+	(void) sil_reb_mem(RZA1_STBCR7);		/* ダミーリード */
+
+	/* IMR-LS20, IMR-LS21, IMR-LSD, MMCIF, MOST50, SCUX動作 */
 	sil_wrb_mem(RZA1_STBCR8, 0x05);
-	(void) sil_reb_mem(RZA1_STBCR8);		/* ããã¼ãªã¼ã */
-
-	/* I2C0, I2C1, I2C2, I2C3, SPIBSC0, SPIBSC1, VDC50, VDC51åä½ */
+	(void) sil_reb_mem(RZA1_STBCR8);		/* ダミーリード */
+
+	/* I2C0, I2C1, I2C2, I2C3, SPIBSC0, SPIBSC1, VDC50, VDC51動作 */
 	sil_wrb_mem(RZA1_STBCR9, 0x00);
-	(void) sil_reb_mem(RZA1_STBCR9);		/* ããã¼ãªã¼ã */
-
-	/* RSPI0, RSPI1, RSPI2, RSPI3, RSPI4, CD-ROMDEC, RSPDIF, RGPVGåä½ */
+	(void) sil_reb_mem(RZA1_STBCR9);		/* ダミーリード */
+
+	/* RSPI0, RSPI1, RSPI2, RSPI3, RSPI4, CD-ROMDEC, RSPDIF, RGPVG動作 */
 	sil_wrb_mem(RZA1_STBCR10, 0x00);
-	(void) sil_reb_mem(RZA1_STBCR10);		/* ããã¼ãªã¼ã */
-
-	/* SSIF0, SSIF1, SSIF2, SSIF3, SSIF4, SSIF5åä½ */
+	(void) sil_reb_mem(RZA1_STBCR10);		/* ダミーリード */
+
+	/* SSIF0, SSIF1, SSIF2, SSIF3, SSIF4, SSIF5動作 */
 	sil_wrb_mem(RZA1_STBCR11, 0xc0);
-	(void) sil_reb_mem(RZA1_STBCR11);		/* ããã¼ãªã¼ã */
-
-	/* SDHI00, SDHI01, SDHI10, SDHI11åä½ */
+	(void) sil_reb_mem(RZA1_STBCR11);		/* ダミーリード */
+
+	/* SDHI00, SDHI01, SDHI10, SDHI11動作 */
 	sil_wrb_mem(RZA1_STBCR12, 0xf0);
-	(void) sil_reb_mem(RZA1_STBCR12);		/* ããã¼ãªã¼ã */
-}
-
-/*
- *  æ±ç¨å
-¥åºåãã¼ãã®åæåï¼ãã¼ãï¼ããªãã§ã©ã«å
-¼ç¨ãã³ã®ã¢ãµã¤ã³ã®è¨­å®ï¼
+	(void) sil_reb_mem(RZA1_STBCR12);		/* ダミーリード */
+}
+
+/*
+ *  汎用入出力ポートの初期化（ポート／ペリフェラル兼用ピンのアサインの設定）
  */
 static void
 port_initialize(void)
 {
-	/* ãã¼ã6:ããã3ï¼TxD2ï¼ã®è¨­å® */
+	/* ポート6:ビット3（TxD2）の設定 */
 	rza1_config_port(RZA1_PORT_PIBC(6),  3, 0);
 	rza1_config_port(RZA1_PORT_PBDC(6),  3, 0);
 	rza1_config_port(RZA1_PORT_PIPC(6),  3, 1);
-	/* ç¬¬7å
-¼ç¨æ©è½ï¼TxD2ï¼ï¼åºå */
+	/* 第7兼用機能（TxD2），出力 */
 	rza1_config_port(RZA1_PORT_PMC(6),   3, 1);
 	rza1_config_port(RZA1_PORT_PFCAE(6), 3, 1);
@@ -176,11 +153,9 @@
 	rza1_config_port(RZA1_PORT_PM(6),    3, 0);
 
-	/* ãã¼ã6:ããã2ï¼RxD2ï¼ã®è¨­å® */
+	/* ポート6:ビット2（RxD2）の設定 */
 	rza1_config_port(RZA1_PORT_PIBC(6),  2, 0);
 	rza1_config_port(RZA1_PORT_PBDC(6),  2, 0);
 	rza1_config_port(RZA1_PORT_PIPC(6),  2, 1);
-	/* ç¬¬7å
-¼ç¨æ©è½ï¼RxD2ï¼ï¼å
-¥å */
+	/* 第7兼用機能（RxD2），入力 */
 	rza1_config_port(RZA1_PORT_PMC(6),   2, 1);
 	rza1_config_port(RZA1_PORT_PFCAE(6), 2, 1);
@@ -189,38 +164,36 @@
 	rza1_config_port(RZA1_PORT_PM(6),    2, 1);
 
-	/* ãã¼ã6:ããã13ï¼LED1ï¼èµ¤ï¼ã®è¨­å® */
+	/* ポート6:ビット13（LED1／赤）の設定 */
 	rza1_config_port(RZA1_PORT_PIBC(6),  13, 0);
 	rza1_config_port(RZA1_PORT_PBDC(6),  13, 0);
-	/* ãã¼ãã¢ã¼ãï¼åºå */
+	/* ポートモード，出力 */
 	rza1_config_port(RZA1_PORT_PMC(6),   13, 0);
 	rza1_config_port(RZA1_PORT_PM(6),    13, 0);
 
-	/* ãã¼ã6:ããã14ï¼LED2ï¼ç·ï¼ã®è¨­å® */
+	/* ポート6:ビット14（LED2／緑）の設定 */
 	rza1_config_port(RZA1_PORT_PIBC(6),  14, 0);
 	rza1_config_port(RZA1_PORT_PBDC(6),  14, 0);
-	/* ãã¼ãã¢ã¼ãï¼åºå */
+	/* ポートモード，出力 */
 	rza1_config_port(RZA1_PORT_PMC(6),   14, 0);
 	rza1_config_port(RZA1_PORT_PM(6),    14, 0);
 
-	/* ãã¼ã6:ããã15ï¼LED3ï¼éï¼ã®è¨­å® */
+	/* ポート6:ビット15（LED3／青）の設定 */
 	rza1_config_port(RZA1_PORT_PIBC(6),  15, 0);
 	rza1_config_port(RZA1_PORT_PBDC(6),  15, 0);
-	/* ãã¼ãã¢ã¼ãï¼åºå */
+	/* ポートモード，出力 */
 	rza1_config_port(RZA1_PORT_PMC(6),   15, 0);
 	rza1_config_port(RZA1_PORT_PM(6),    15, 0);
 
-	/* ãã¼ã6:ããã12ï¼LED4ï¼ã¦ã¼ã¶ï¼ã®è¨­å® */
+	/* ポート6:ビット12（LED4／ユーザ）の設定 */
 	rza1_config_port(RZA1_PORT_PIBC(6),  12, 0);
 	rza1_config_port(RZA1_PORT_PBDC(6),  12, 0);
-	/* ãã¼ãã¢ã¼ãï¼åºå */
+	/* ポートモード，出力 */
 	rza1_config_port(RZA1_PORT_PMC(6),   12, 0);
 	rza1_config_port(RZA1_PORT_PM(6),    12, 0);
 
-	/* ãã¼ã6:ããã0ï¼ã¦ã¼ã¶ãã¿ã³ï¼ã®è¨­å® */
+	/* ポート6:ビット0（ユーザボタン）の設定 */
 	rza1_config_port(RZA1_PORT_PIBC(6),  0, 1);
 	rza1_config_port(RZA1_PORT_PBDC(6),  0, 0);
-	/* ç¬¬6å
-¼ç¨æ©è½ï¼IRQ5ï¼ï¼å
-¥å */
+	/* 第6兼用機能（IRQ5），入力 */
 	rza1_config_port(RZA1_PORT_PMC(6),   0, 1);
 	rza1_config_port(RZA1_PORT_PFCAE(6), 0, 1);
@@ -231,59 +204,55 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ããã®åæå
- *
- *  ã»ã«ã¿ã¤ãtPutLogGRPeachå
-ã«å®è£
-ããã¦ããé¢æ°ãç´æ¥å¼ã³åºãï¼
+ *  システムログの低レベル出力のための初期化
+ *
+ *  セルタイプtPutLogGRPeach内に実装されている関数を直接呼び出す．
  */
 extern void	tPutLogGRPeach_initialize(void);
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®åæå
+ *  ターゲット依存の初期化
  */
 void
 target_initialize(void)
 {
-	extern void	*vector_table;		/* ãã¯ã¿ãã¼ãã« */
-
-	/*
-	 *  Low exception vectorsãä½¿ç¨
+	extern void	*vector_table;		/* ベクタテーブル */
+
+	/*
+	 *  Low exception vectorsを使用
 	 */
 	/*arm_set_low_vectors();*/
 
 	/*
-	 *  ãããä¾å­ã®åæå
+	 *  チップ依存の初期化
 	 */
 	/*chip_initialize();*/
 
 	/*
-	 *  ä½æ¶è²»é»åã¢ã¼ãã®åæå
+	 *  低消費電力モードの初期化
 	 */
 	lowpower_initialize();
 
 	/*
-	 *  æ±ç¨å
-¥åºåãã¼ãã®åæåï¼ãã¼ãï¼ããªãã§ã©ã«å
-¼ç¨ãã³ã®ã¢ãµã¤ã³ã®è¨­å®ï¼
+	 *  汎用入出力ポートの初期化（ポート／ペリフェラル兼用ピンのアサインの設定）
 	 */
 	port_initialize();
 
 	/*
-	 *  ãã¯ã¿ãã¼ãã«ã®è¨­å®
+	 *  ベクタテーブルの設定
 	 */
 	/*CP15_WRITE_VBAR((uint32_t) &vector_table);*/
 
 	/*
-	 *  L2ã­ã£ãã·ã¥ã³ã³ãã­ã¼ã©ï¼PL310ï¼ã®åæå
+	 *  L2キャッシュコントローラ（PL310）の初期化
 	 */
 	/*pl310_initialize(0x0U, ~0x0U);*/
 
 	/*
-	 *  LEDãéè²ã«ç¹ç¯ããã
+	 *  LEDを青色に点灯させる
 	 */
 	gr_peach_set_led(GR_PEACH_LED_BLUE, 1);
 
 	/*
-	 *  ä½ã¬ãã«åºåç¨ã«SIOãåæå
+	 *  低レベル出力用にSIOを初期化
 	 */
 #ifndef TOPPERS_OMIT_TECS
@@ -293,5 +262,5 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®çµäºå¦ç
+ *  ターゲット依存の終了処理
  */
 void
@@ -301,10 +270,10 @@
 
 	/*
-	 *  ãããä¾å­ã®çµäºå¦ç
+	 *  チップ依存の終了処理
 	 */
 	chip_terminate();
 
 	/*
-	 *  bkptå½ä»¤ã«ãããããã¬ã«å¶å¾¡ãç§»ãï¼ãã©ã¡ã¼ã¿ãä½ãè¯ããæªæ¤è¨ï¼
+	 *  bkpt命令によりデバッガに制御を移す（パラメータが何が良いか未検討）
 	 */
 	if (first){
@@ -317,5 +286,5 @@
 
 /*
- *  LEDã®ç¹ç¯ï¼æ¶ç¯
+ *  LEDの点灯／消灯
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -57,8 +42,8 @@
 
 /*
- *		ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã«é¢ããå®ç¾©ï¼GR-PEACHç¨ï¼
+ *		カーネルのターゲット依存部に関する定義（GR-PEACH用）
  *
- *  ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã®ããããã¡ã¤ã«ï¼kernel_impl.hã®ã¿ã¼ã²ã
- *  ãä¾å­é¨ã®ä½ç½®ä»ãã¨ãªãï¼
+ *  カーネルのターゲット依存部のヘッダファイル．kernel_impl.hのターゲッ
+ *  ト依存部の位置付けとなる．
  */
 
@@ -67,10 +52,10 @@
 
 /*
- *  ã¿ã¼ã²ããã®ãã¼ãã¦ã§ã¢è³æºã®å®ç¾©
+ *  ターゲットのハードウェア資源の定義
  */
 #include "gr_peach.h"
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ã«é¢ããè¨­å®
+ *  トレースログに関する設定
  */
 #ifdef TOPPERS_ENABLE_TRACE
@@ -79,11 +64,10 @@
 
 /*
- *  ããã©ã«ãã®éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®å®ç¾©
+ *  デフォルトの非タスクコンテキスト用のスタック領域の定義
  */
 #define DEFAULT_ISTKSZ  0x2000U		/* 8KB */
 
 /*
- *  å¾®å°æéå¾
-ã¡ã®ããã®å®ç¾©ï¼æ¬æ¥ã¯SILã®ã¿ã¼ã²ããä¾å­é¨ï¼
+ *  微少時間待ちのための定義（本来はSILのターゲット依存部）
  */
 #define SIL_DLY_TIM1    352
@@ -91,5 +75,5 @@
 
 /*
- *  ãããä¾å­é¨ï¼RZ/A1ç¨ï¼
+ *  チップ依存部（RZ/A1用）
  */
 #include "chip_kernel_impl.h"
@@ -98,12 +82,12 @@
 
 /*
- *  ã¿ã¼ã²ããã·ã¹ãã ä¾å­ã®åæå
+ *  ターゲットシステム依存の初期化
  */
 extern void target_initialize(void);
 
 /*
- *  ã¿ã¼ã²ããã·ã¹ãã ã®çµäº
+ *  ターゲットシステムの終了
  *
- *  ã·ã¹ãã ãçµäºããæã«ä½¿ãï¼
+ *  システムを終了する時に使う．
  */
 extern void target_exit(void) NoReturn;
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_sil.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_sil.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_sil.h	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -54,9 +39,9 @@
 
 /*
- *		sil.hã®ãããä¾å­é¨ï¼GR-PEACHç¨ï¼
+ *		sil.hのチップ依存部（GR-PEACH用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼sil.hããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
- *  ç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããåã«ï¼
- *  t_stddef.hãã¤ã³ã¯ã«ã¼ããããã®ã§ï¼ããã«ä¾å­ãã¦ãããï¼
+ *  このヘッダファイルは，sil.hからインクルードされる．他のファイルから
+ *  直接インクルードすることはない．このファイルをインクルードする前に，
+ *  t_stddef.hがインクルードされるので，それに依存してもよい．
  */
 
@@ -65,11 +50,10 @@
 
 /*
- *  ãã­ã»ããµã®ã¨ã³ãã£ã¢ã³
+ *  プロセッサのエンディアン
  */
 #define SIL_ENDIAN_LITTLE
 
 /*
- *  ã³ã¢ã§å
-±éãªå®ç¾©ï¼ãããä¾å­é¨ã¯é£ã°ãï¼
+ *  コアで共通な定義（チップ依存部は飛ばす）
  */
 #ifndef TECSGEN
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_stddef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_stddef.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_stddef.h	(revision 321)
@@ -6,47 +6,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -54,11 +39,9 @@
 
 /*
- *		t_stddef.hã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+ *		t_stddef.hのターゲット依存部（GR-PEACH用）
  *
- *  ãã®ããããã¡ã¤ã«ã¯ï¼t_stddef.hã®å
-é ­ã§ã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡
- *  ã¤ã«ããã¯ç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ä»ã®ããããã¡ã¤ã«ã«å
-ç«ã£
- *  ã¦å¦çãããããï¼ä»ã®ããããã¡ã¤ã«ã«ä¾å­ãã¦ã¯ãªããªãï¼
+ *  このヘッダファイルは，t_stddef.hの先頭でインクルードされる．他のファ
+ *  イルからは直接インクルードすることはない．他のヘッダファイルに先立っ
+ *  て処理されるため，他のヘッダファイルに依存してはならない．
  */
 
@@ -67,12 +50,11 @@
 
 /*
- *  ã¿ã¼ã²ãããè­å¥ããããã®ãã¯ã­ã®å®ç¾©
+ *  ターゲットを識別するためのマクロの定義
  */
-#define TOPPERS_GR_PEACH				/* ã·ã¹ãã ç¥ç§° */
+#define TOPPERS_GR_PEACH				/* システム略称 */
 #define TOPPERS_RZA1H					/* RZ/A1H */
 
 /*
- *  éçºç°å¢ã§å
-±éãªå®ç¾©
+ *  開発環境で共通な定義
  */
 #ifndef TOPPERS_MACRO_ONLY
@@ -84,11 +66,10 @@
 
 /*
- *  ãããä¾å­ã§å
-±éãªå®ç¾©
+ *  チッブ依存で共通な定義
  */
 #include "chip_stddef.h"
 
 /*
- *  ã¢ãµã¼ã·ã§ã³ã®å¤±ææã®å®è¡ä¸­æ­å¦ç
+ *  アサーションの失敗時の実行中断処理
  */
 #ifndef TOPPERS_MACRO_ONLY
@@ -98,5 +79,5 @@
 {
 	/*
-	 *  bkptå½ä»¤ã«ãããããã¬ã«å¶å¾¡ãç§»ãï¼ãã©ã¡ã¼ã¿ãä½ãè¯ããæªæ¤è¨ï¼
+	 *  bkpt命令によりデバッガに制御を移す（パラメータが何が良いか未検討）
 	 */
 	Asm("bkpt #0");
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_support.S
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_support.S	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_support.S	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,12 +42,12 @@
 
 /*
- *		ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã®ã¢ã»ã³ããªè¨èªé¨ï¼GR-PEACHç¨ï¼
+ *		カーネルのターゲット依存部のアセンブリ言語部（GR-PEACH用）
  */
 
 #define TOPPERS_MACRO_ONLY
 #define TOPPERS_ASM_MACRO
-#define UINT_C(val)			(val)		/* uint_tåã®å®æ°ãä½ããã¯ã­ */
-#define ULONG_C(val)		(val)		/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
-#define CAST(type, val)		(val)		/* åã­ã£ã¹ããè¡ããã¯ã­ */
+#define UINT_C(val)			(val)		/* uint_t型の定数を作るマクロ */
+#define ULONG_C(val)		(val)		/* ulong_t型の定数を作るマクロ */
+#define CAST(type, val)		(val)		/* 型キャストを行うマクロ */
 #include "kernel_impl.h"
 #include "core_pl310.h"
@@ -70,7 +55,7 @@
 
 /*
- *  ä½ã¬ãã«ã®ã¿ã¼ã²ããã·ã¹ãã ä¾å­ã®åæå
+ *  低レベルのターゲットシステム依存の初期化
  *
- *  ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ä¸­ã§ï¼ã¡ã¢ãªåæåã®åã«å¼ã³åºãããï¼
+ *  スタートアップモジュールの中で，メモリ初期化の前に呼び出される．
  */
 	ATEXT
@@ -79,39 +64,34 @@
 ALABEL(hardware_init_hook)
 	/*
-	 *  å
-èµRAMã¸ã®ã¢ã¯ã»ã¹ï¼æ¸è¾¼ã¿è¨±å¯
+	 *  内蔵RAMへのアクセス／書込み許可
 	 */
 	ldr		r2, =(RZA1_SYSCR3)
 	ldr		r0, =0x0f
-	strb	r0, [r2]		/* å
-èµä¿æç¨RAMã®ãã¼ã¸0ï½3ã¸ã®æ¸è¾¼ã¿è¨±å¯ */
-	ldrb	r0, [r2]		/* ããã¼ãªã¼ã */
+	strb	r0, [r2]		/* 内蔵保持用RAMのページ0～3への書込み許可 */
+	ldrb	r0, [r2]		/* ダミーリード */
 
 	/* 
-	 *  ã¯ã­ãã¯é¢ä¿ã®åæå
+	 *  クロック関係の初期化
 	 *
-	 *  ä»¥ä¸ã®è¨­å®ã¨ããï¼
-	 *		å
-¥åå¨æ³¢æ°ï¼13.33MHzï¼CKIOï¼66.67MHz
-	 *		CPUã¯ã­ãã¯ï¼IÏï¼ï¼400.00MHz
-	 *		ç»åå¦çã¯ã­ãã¯ï¼GÏï¼ï¼266.67MHz
-	 *		å
-é¨ãã¹ã¯ã­ãã¯ï¼BÏï¼ï¼133.33MHz
-	 *		å¨è¾ºã¯ã­ãã¯1ï¼P1Ïï¼ï¼66.67MHz
-	 *		å¨è¾ºã¯ã­ãã¯0ï¼P0Ïï¼ï¼33.33MHz
+	 *  以下の設定とする．
+	 *		入力周波数：13.33MHz，CKIO：66.67MHz
+	 *		CPUクロック（Iφ）：400.00MHz
+	 *		画像処理クロック（Gφ）：266.67MHz
+	 *		内部バスクロック（Bφ）：133.33MHz
+	 *		周辺クロック1（P1φ）：66.67MHz
+	 *		周辺クロック0（P0φ）：33.33MHz
 	 */
 	
 	/*
-	 *  L2ã­ã£ãã·ã¥ã®ã¹ã¿ã³ãã¤ã¢ã¼ããã¤ãã¼ãã«ï¼å¨æ³¢æ°å¤æ´æã«å¿
-è¦ï¼
+	 *  L2キャッシュのスタンバイモードをイネーブル（周波数変更時に必要）
 	 */
 	ldr		r2, =(PL310_POWER_CTRL)
 	ldr		r0, [r2]
-	orr		r0, r0, #0x01	/* ã¹ã¿ã³ãã¤ã¢ã¼ãã« */
+	orr		r0, r0, #0x01	/* スタンバイモードに */
 	str		r0, [r2]
 
 ALABEL(set_frqcr)
 	/*
-	 *  CPUã¯ã­ãã¯ããÃ1åãã«ï¼400MHzï¼
+	 *  CPUクロックを「×1倍」に（400MHz）
 	 */
 	ldr		r2, =(RZA1_FRQCR)
@@ -124,5 +104,5 @@
 #ifdef TOPPERS_RZA1H
 	/* 
-	 *  ç»åå¦çã¯ã­ãã¯ããÃ2/3ãã«ï¼266.67MHzï¼
+	 *  画像処理クロックを「×2/3」に（266.67MHz）
 	 */
 ALABEL(set_frqcr2)
@@ -136,6 +116,5 @@
 
 	/* 
-	 *  ã½ããã¦ã§ã¢ã¹ã¿ã³ãã¤å¾©å¸°ä¸­ã§ãªããªãã¾ã§å¾
-ã¤
+	 *  ソフトウェアスタンバイ復帰中でなくなるまで待つ
 	 */
 wait_isbusy:
@@ -146,9 +125,9 @@
 
 	/*
-	 *  L2ã­ã£ãã·ã¥ã®ã¹ã¿ã³ãã¤ã¢ã¼ãããã£ã¹ã¨ã¼ãã«
+	 *  L2キャッシュのスタンバイモードをディスエーブル
 	 */
 	ldr		r2, =(PL310_POWER_CTRL)
 	ldr		r0, [r2]
-	bfc		r0, #0, #1		/* ã¹ã¿ã³ãã¤ã¢ã¼ãããã£ã¹ã¨ã¼ãã« */
+	bfc		r0, #0, #1		/* スタンバイモードをディスエーブル */
 	str		r0, [r2]
 	bx		lr
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_syssvc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_syssvc.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_syssvc.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -57,9 +42,9 @@
 
 /*
- *		ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+ *		システムサービスのターゲット依存部（GR-PEACH用）
  *
- *  ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­é¨ã®ããããã¡ã¤ã«ï¼ã·ã¹ãã ãµã¼ã
- *  ã¹ã®ã¿ã¼ã²ããä¾å­ã®è¨­å®ã¯ï¼ã§ããéãã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«ã§
- *  è¨è¿°ãï¼ãã®ãã¡ã¤ã«ã«è¨è¿°ãããã®ã¯æå°éã¨ããï¼
+ *  システムサービスのターゲット依存部のヘッダファイル．システムサービ
+ *  スのターゲット依存の設定は，できる限りコンポーネント記述ファイルで
+ *  記述し，このファイルに記述するものは最小限とする．
  */
 
@@ -70,5 +55,5 @@
 
 /*
- *  ãã¬ã¼ã¹ã­ã°ã«é¢ããè¨­å®
+ *  トレースログに関する設定
  */
 #ifdef TOPPERS_ENABLE_TRACE
@@ -77,6 +62,5 @@
 
 /*
- *  ã³ã¢ã§å
-±éãªå®ç¾©ï¼ãããä¾å­é¨ã¯é£ã°ãï¼
+ *  コアで共通な定義（チップ依存部は飛ばす）
  */
 #include "core_syssvc.h"
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_test.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_test.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_test.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *		ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©ï¼GR-PEACHç¨ï¼
+ *		テストプログラムのターゲット依存定義（GR-PEACH用）
  */
 
@@ -64,5 +49,5 @@
 
 /*
- *  ãµã³ãã«ãã­ã°ã©ã ã§ä½¿ç¨ããå²è¾¼ã¿ã«é¢ããå®ç¾©
+ *  サンプルプログラムで使用する割込みに関する定義
  */
 #define INTNO1				INTNO_IRQ5
@@ -72,11 +57,10 @@
 
 /*
- *  ãã¹ããã­ã°ã©ã ã§ä½¿ç¨ããæéãã©ã¡ã¼ã¿ã«é¢ããå®ç¾©
+ *  テストプログラムで使用する時間パラメータに関する定義
  */
-#define TEST_TIME_CP	4000U		/* 115200bpsãæ³å® */
+#define TEST_TIME_CP	4000U		/* 115200bpsを想定 */
 
 /*
- *  ã³ã¢ã§å
-±éãªå®ç¾©ï¼ãããä¾å­é¨ã¯é£ã°ãï¼
+ *  コアで共通な定義（チップ依存部は飛ばす）
  */
 #include "core_test.h"
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.cfg	(revision 321)
@@ -1,4 +1,4 @@
 /*
- *		ã¿ã¤ããã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *		タイマドライバのコンフィギュレーションファイル
  *
  *  $Id$
@@ -9,5 +9,5 @@
 
 /*
- *  ãããä¾å­é¨ï¼RZ/A1ç¨ï¼
+ *  チップ依存部（RZ/A1用）
  */
 INCLUDE("chip_timer.cfg");
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.h	(revision 321)
@@ -7,47 +7,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$
@@ -55,5 +40,5 @@
 
 /*
- *		ã¿ã¤ããã©ã¤ãï¼GR-PEACHç¨ï¼
+ *		タイマドライバ（GR-PEACH用）
  */
 
@@ -62,6 +47,5 @@
 
 /*
- *  ãããã§å
-±éãªå®ç¾©ï¼RZ/A1ç¨ï¼
+ *  チップで共通な定義（RZ/A1用）
  */
 #include "chip_timer.h"
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_user.txt
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_user.txt	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_user.txt	(revision 321)
@@ -1,13 +1,11 @@
 
-		TOPPERS/ASP3ã«ã¼ãã«
-		GR-PEACHä¾å­é¨ ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«
-
-		å¯¾å¿ãã¼ã¸ã§ã³: Release 3.1
-		æçµæ´æ°: 2016å¹´4æ2æ¥
-
-ãã®ãã­ã¥ã¡ã³ãã¯ï¼TOPPERS/ASP3ã«ã¼ãã«ã®GR-PEACHã¿ã¼ã²ããä¾å­é¨ãä½¿
-ç¨ããããã«å¿
-è¦ãªäºé 
-ãèª¬æãããã®ã§ããï¼
+		TOPPERS/ASP3カーネル
+		GR-PEACH依存部 ユーザーズマニュアル
+
+		対応バージョン: Release 3.1
+		最終更新: 2016年4月2日
+
+このドキュメントは，TOPPERS/ASP3カーネルのGR-PEACHターゲット依存部を使
+用するために必要な事項を説明するものである．
 
 ----------------------------------------------------------------------
@@ -19,360 +17,309 @@
              Graduate School of Information Science, Nagoya Univ., JAPAN
  
- ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-     æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-     ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-     ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-     è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-     ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-     ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-     ã¨ï¼
-   (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-       ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-   (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-       å ±åãããã¨ï¼
- (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-     å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-     ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-     ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-     å
-è²¬ãããã¨ï¼
+ 上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ 変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+     権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+     スコード中に含まれていること．
+ (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+     用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+     者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+     の無保証規定を掲載すること．
+ (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+     用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+     と．
+   (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+       作権表示，この利用条件および下記の無保証規定を掲載すること．
+   (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+       報告すること．
+ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+     害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+     また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+     由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+     免責すること．
  
- æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- ã®è²¬ä»»ãè² ããªãï¼
+ 本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ の責任を負わない．
  
  $Id$
 ----------------------------------------------------------------------
 
-âã©ã¤ã»ã³ã¹ã«é¢ããæ³¨æäºé 
-
-
-GR-PEACHã¿ã¼ã²ããä¾å­é¨ã«ã¯ï¼ROMå®è¡ã®ããã®ãã¼ãã­ã¼ãï¼sf_boot.cï¼
-ãå«ãã§ãããï¼ãã®ã½ããã¦ã§ã¢ã¯ã«ããµã¹ã¨ã¬ã¯ãã­ãã¯ã¹ãéçºããã
-ã®ã§ããï¼ã©ã¤ã»ã³ã¹æ¡ä»¶ãã«ããµã¹ã¨ã¬ã¯ãã­ãã¯ã¹ç¬èªã®ãã®ã§ããï¼
-TOPPERSã©ã¤ã»ã³ã¹ã§ãªãããæ³¨æãããã¨ï¼
-
-âç®æ¬¡
-
-
-ï¼ï¼GR-PEACHã¿ã¼ã²ããä¾å­é¨ã®æ¦è¦
-
-GR-PEACHã¿ã¼ã²ããä¾å­é¨ï¼GNUéçºç°å¢åãï¼ã¯ï¼TOPPERS/ASP3ã«ã¼ãã«ãï¼
-ã«ããµã¹ RZ/A1Hãæ­è¼ããGR-PEACHãã¼ãä¸ã§åä½ãããç°å¢ãæ§ç¯ãããã
-ã®ãã®ã§ããï¼
-
-1.1 å¯¾å¿ããã¿ã¼ã²ããã·ã¹ãã ã¨ã¿ã¼ã²ããç¥ç§°
-
-GR-PEACHã¿ã¼ã²ããä¾å­é¨ï¼GNUéçºç°å¢åãï¼ã®åä½ç¢ºèªã¯ï¼å®æ©ãç¨ãã¦è¡ã£
-ã¦ããï¼GR-PEACHã«é¢ããæ
-å ±ã¯ï¼ä»¥ä¸ã®ã¦ã§ããµã¤ãã«ããï¼
+○ライセンスに関する注意事項
+
+GR-PEACHターゲット依存部には，ROM実行のためのブートローダ（sf_boot.c）
+を含んでいるが，このソフトウェアはルネサスエレクトロニクスが開発したも
+のであり，ライセンス条件もルネサスエレクトロニクス独自のものである．
+TOPPERSライセンスでないため注意すること．
+
+○目次
+
+
+１．GR-PEACHターゲット依存部の概要
+
+GR-PEACHターゲット依存部（GNU開発環境向け）は，TOPPERS/ASP3カーネルを，
+ルネサス RZ/A1Hを搭載したGR-PEACHボード上で動作させる環境を構築するため
+のものである．
+
+1.1 対応するターゲットシステムとターゲット略称
+
+GR-PEACHターゲット依存部（GNU開発環境向け）の動作確認は，実機を用いて行っ
+ている．GR-PEACHに関する情報は，以下のウェブサイトにある．
 
 	http://gadget.renesas.com/ja/product/peach.html
 
-ãã­ã°ã©ã ããã©ãã·ã¥ã¡ã¢ãªã«æ¸ãè¾¼ãã§å®è¡ããæ¹æ³ï¼ROMå®è¡ï¼ã¨ï¼ããã
-ã¬ã«ããRAMã«ãã¦ã³ã­ã¼ããã¦å®è¡ããæ¹æ³ï¼RAMå®è¡ï¼ããµãã¼ããã¦ããï¼
-
-ã¿ã¼ã²ããç¥ç§°ç­ã¯æ¬¡ã®éãï¼
-
-	ã¿ã¼ã²ããç¥ç§°ï¼gr_peach_gcc
-	ã·ã¹ãã ç¥ç§°ï¼gr_peach
-	éçºç°å¢ç¥ç§°ï¼gcc
-
-1.2 ã¿ã¼ã²ããä¾å­é¨ã®æ§æ
-
-GR-PEACHã¿ã¼ã²ããä¾å­é¨ï¼GNUéçºç°å¢åãï¼ã¯ï¼ãããä¾å­é¨ã¨ãã¦RZ/A1
-ãããä¾å­é¨ï¼GNUéçºç°å¢åãï¼ãï¼ã³ã¢ä¾å­é¨ã¨ãã¦ARMã³ã¢ä¾å­é¨ï¼GNUé
-çºç°å¢åãï¼ãä½¿ç¨ãã¦ããï¼
-
-ã¿ã¼ã²ããä¾å­é¨ï¼targetãã£ã¬ã¯ããªï¼ããã³ã¿ã¼ã²ããä¾å­é¨ã®å
-±éé¨
-ï¼archãã£ã¬ã¯ããªï¼ã®ãã£ã¬ã¯ããªã¯æ¬¡ã®éãï¼
+プログラムをフラッシュメモリに書き込んで実行する方法（ROM実行）と，デバッ
+ガによりRAMにダウンロードして実行する方法（RAM実行）をサポートしている．
+
+ターゲット略称等は次の通り．
+
+	ターゲット略称：gr_peach_gcc
+	システム略称：gr_peach
+	開発環境略称：gcc
+
+1.2 ターゲット依存部の構成
+
+GR-PEACHターゲット依存部（GNU開発環境向け）は，チップ依存部としてRZ/A1
+チップ依存部（GNU開発環境向け）を，コア依存部としてARMコア依存部（GNU開
+発環境向け）を使用している．
+
+ターゲット依存部（targetディレクトリ）およびターゲット依存部の共通部
+（archディレクトリ）のディレクトリは次の通り．
 
 	target/
-		gr_peach_gcc/		GR-PEACHã¿ã¼ã²ããä¾å­é¨
+		gr_peach_gcc/		GR-PEACHターゲット依存部
 
 	arch/
-		arm_gcc/common/		ARMã³ã¢ä¾å­é¨
-		arm_gcc/rza1/		RZ/A1ãããä¾å­é¨
-		arm_gcc/doc/		ARMä¾å­é¨ã«é¢ãããã­ã¥ã¡ã³ã
-		gcc/				GCCéçºç°å¢ä¾å­é¨
-		tracelog/			ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ã
-
-1.3 ä¾å­ãã¦ããåå¥ããã±ã¼ã¸ã®ãã¼ã¸ã§ã³çªå·
-
-GR-PEACHã¿ã¼ã²ããä¾å­é¨ï¼ãã¼ã¸ã§ã³ 3.1.0ï¼ã®åå¥ããã±ã¼ã¸ãä¾å­ãã¦
-ããåå¥ããã±ã¼ã¸ã¨ï¼åä½ç¢ºèªãè¡ã£ããã¼ã¸ã§ã³ã¯æ¬¡ã®éãï¼
-
-	åå¥ããã±ã¼ã¸ã®åç§°	ãã¼ã¸ã§ã³	åå¥ããã±ã¼ã¸ãã¡ã¤ã«å
+		arm_gcc/common/		ARMコア依存部
+		arm_gcc/rza1/		RZ/A1チップ依存部
+		arm_gcc/doc/		ARM依存部に関するドキュメント
+		gcc/				GCC開発環境依存部
+		tracelog/			トレースログ記録のサンプルコード
+
+1.3 依存している個別パッケージのバージョン番号
+
+GR-PEACHターゲット依存部（バージョン 3.1.0）の個別パッケージが依存して
+いる個別パッケージと，動作確認を行ったバージョンは次の通り．
+
+	個別パッケージの名称	バージョン	個別パッケージファイル名
 	------------------------------------------------------------------
-	ã¿ã¼ã²ããéä¾å­é¨		3.1.0		asp3-3.1.0.tar.gz
-
-1.4 éçºç°å¢ï¼ãããã°ç°å¢ã¨åä½ç¢ºèªæ¡ä»¶
-
-éçºç°å¢ã¨ãã¦ï¼ä»¥ä¸ã®URLããããªãã«ãçããã¦ã³ã­ã¼ããããã¨ãã§ãã
-GCC ARM Embeddedãç¨ãã¦ããï¼
+	ターゲット非依存部		3.1.0		asp3-3.1.0.tar.gz
+
+1.4 開発環境／デバッグ環境と動作確認条件
+
+開発環境として，以下のURLからプリビルド版をダウンロードすることができる
+GCC ARM Embeddedを用いている．
 
 	https://launchpad.net/gcc-arm-embedded/
 
-åä½ç¢ºèªãè¡ã£ããã¼ã¸ã§ã³ã¯æ¬¡ã®éãï¼
+動作確認を行ったバージョンは次の通り．
 
 	gcc: version 4.8.3 20140228
-	binutilsï¼objcopyï¼objdumpï¼ï¼2.23.2.20140228
-
-ãããã°ç°å¢ã¨ãã¦ï¼ãªã³ãã¼ãã®CMSIS-DAPããï¼OpenOCDãçµç±ãã¦ï¼GDBã
-ç¨ããç°å¢ã§åä½ç¢ºèªãè¡ã£ã¦ããï¼åä½ç¢ºèªãè¡ã£ããããã°ç°å¢ã®ãã¼ã¸ã§
-ã³ã¯æ¬¡ã®éãï¼
+	binutils（objcopy，objdump）：2.23.2.20140228
+
+デバッグ環境として，オンボードのCMSIS-DAPから，OpenOCDを経由して，GDBを
+用いる環境で動作確認を行っている．動作確認を行ったデバッグ環境のバージョ
+ンは次の通り．
 
 	gdb: 7.6.0.20140228-cvs
 	openocd: 0.10.0-dev-00287-g85cec24
 
-å¤ããã¼ã¸ã§ã³ã®OpenOCDã§ã¯æ­£ããåä½ããªããã¨ãå ±åããã¦ããããï¼æ³¨
-æãå¿
-è¦ã§ããï¼
-
-GUIãã¼ã¹ã®éçºç°å¢ï¼ãããã°ç°å¢ã¨ãã¦ï¼Atollic TrueStudioãç¨ãããã¨
-ãã§ããï¼
-
-1.5 ã¡ã¢ãªããã
-
-ROMå®è¡ã®å ´åã¯ï¼ä»¥ä¸ã®ã¡ã¢ãªããããæ³å®ãã¦ããï¼
-
-	0x18000000 - 0x1fffffffï¼ã·ãªã¢ã«ãã©ãã·ã¥ã¡ã¢ãªï¼128MBï¼
-	0x20000000 - 0x209fffffï¼å
-èµSRAMï¼10MBï¼
-	0x3fe00000 - 0x3fffffffï¼I/Oé åï¼2MBï¼ï¼äºç´é åãå«ã
-	0xe8000000 - 0xffffffffï¼I/Oé åï¼384MBï¼ï¼äºç´é åãå«ã
-
-å
-èµSRAMé åã®å
-é ­ã®16KBã¯ï¼ãã¼ãã­ã¼ããç½®ãããã«ä½¿ç¨ããï¼
-
-RAMå®è¡ã®å ´åã¯ï¼ä»¥ä¸ã®ã¡ã¢ãªããããæ³å®ãã¦ããï¼
-
-	0x20000000 - 0x200fffffï¼å
-èµSRAMï¼1MBï¼â¦ ROMé åã¨ãã¦ä½¿ç¨
-	0x20100000 - 0x209fffffï¼å
-èµSRAMï¼9MBï¼
-	0x3fe00000 - 0x3fffffffï¼I/Oé åï¼2MBï¼ï¼äºç´é åãå«ã
-	0xe8000000 - 0xffffffffï¼I/Oé åï¼384MBï¼ï¼äºç´é åãå«ã
-
-ãã­ã°ã©ã ããã³å®æ°ãã¼ã¿é åã¯ï¼å
-èµSRAMé åã®å
-é ­ã®1MBã«ç½®ãæ³å®ã¨ã
-ã¦ï¼ï¼å®æ°ã§ãªãï¼ãã¼ã¿é åã¯ï¼ãã®å¾ã«é
-ç½®ããï¼
-
-ã¡ã¢ãªããããå¤æ´ããå ´åã«ã¯ï¼target_kernel_impl.cã¨gr_peach_rom.ld
-ï¼ã¾ãã¯ï¼pr_peach_ram.kdï¼ãä¿®æ­£ããå¿
-è¦ãããï¼
-
-
-ï¼ï¼ã¿ã¼ã²ããå®ç¾©äºé 
-ã®è¦å®
-
-GR-PEACHã¿ã¼ã²ããä¾å­é¨ã¯ï¼ARMã³ã¢ä¾å­é¨ã¨RZ/A1ãããä¾å­é¨ãç¨ãã¦å®
-è£
-ããã¦ããï¼ARMã³ã¢ä¾å­é¨ããã³RZ/A1ãããä¾å­é¨ã«ãããã¿ã¼ã²ããå®
-ç¾©äºé 
-ã®è¦å®ã«ã¤ãã¦ã¯ï¼ãARMä¾å­é¨ ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ããåç
-§ããã
-ã¨ï¼ãããã®è¦å®ä»¥å¤ã«ï¼GR-PEACHã¿ã¼ã²ããå®ç¾©ã®äºé 
-ã¯ãªãï¼
-
-
-ï¼ï¼ãã©ã¤ãé¢é£ã®æ
-å ±
-
-3.1 ã¿ã¤ããã©ã¤ã
-
-é«åè§£è½ã¿ã¤ãã¯ï¼RZ/A1Hãæã¤2ãã£ã³ãã«ã®OSã¿ã¤ãã®å
-ã®1ã¤ãç¨ãã¦å®
-ç¾ãã¦ããï¼ã¾ãï¼ãã1ã¤ã®OSã¿ã¤ããç¨ãã¦ï¼ãªã¼ãã©ã³ã¿ã¤ããå®ç¾ãã¦
-ããï¼
-
-3.2 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
-
-ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼RZ/A1Hãæã¤8ãã¼ãã®FIFOå
-èµã·ãªã¢ã«
-ã³ãã¥ãã±ã¼ã·ã§ã³ã¤ã³ã¿ãã§ã¼ã¹ããµãã¼ããã¦ããï¼
-
-USBçµç±ã§ãã¹ãã¨æ¥ç¶ã§ãããã¼ãã¯ï¼SCIFã®ãã£ãã«2ï¼ãã£ãã«çªå·ã¯0ã
-ãå§ã¾ãã®ã§ï¼ãã¼ã3ã«ç¸å½ï¼ã§ããï¼ä¸æ¹ï¼sample1.cdlã§ã¯ï¼ã­ã°ã¿ã¹ã¯
-ããã³ãµã³ãã«ãã­ã°ã©ã ãä½¿ããã¼ãããã¼ã1ã¨ãªã£ã¦ããããï¼ãã¼ã1
-ã¨ãã¼ã3ãå
-¥ãæãã¦ããï¼ããªãã¡ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãã¼
-ã1ãSCIFã®ãã£ãã«2ï¼ãã¼ã2ããã£ãã«1ï¼ãã¼ã3ããã£ãã«0ï¼ãã¼ã4ã
-ãã£ãã«3ï¼â¦ã«å¯¾å¿ãã¦ããï¼
-
-	ãã¼ã¬ã¼ãï¼115200bps
-	ãã¼ã¿ï¼8ããã
-	ããªãã£ï¼ãªã
-	ã¹ããããããï¼1ããã
-	ãã­ã¼å¶å¾¡ï¼ãªã
-
-ãã®å¯¾å¿ãå¤æ´ããã«ã¯ï¼tSIOPortGRPeach.cdlãä¿®æ­£ããå¿
-è¦ãããï¼
-
-3.3 ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºå
-
-ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã¯ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãã¼ã1ã¨
-åããã£ãã«ï¼ããªãã¡ï¼SCIFã®ãã£ãã«2ï¼ã«å¯¾ãã¦ï¼ãã¼ãªã³ã°ã«ããæå­
-ãåºåããæ¹æ³ã§å®ç¾ãã¦ããï¼
-
-ç¨ãããã¼ããå¤æ´ããå ´åã«ã¯ï¼target.cdlãä¿®æ­£ããå¿
-è¦ãããï¼
-
-
-ï¼ï¼ã·ã¹ãã æ§ç¯æé ã¨å®è¡æé 
-
-GR-PEACHç¨ã®ASP3ã«ã¼ãã«ããã³ãµã³ãã«ãã­ã°ã©ã ãæ§ç¯ããæé ã¯ï¼åºæ¬
-çã«ã¯ï¼ãTOPPERS/ASP3ã«ã¼ãã« ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãã®ãï¼ï¼ã¯ã¤ãã¯ã¹
-ã¿ã¼ãã¬ã¤ããã®ç« ã«è¨è¿°ããã¦ããéãã§ãããï¼ROMå®è¡ãRAMå®è¡ãã«ãã£
-ã¦ï¼æ§ç¯æé ã¨å®è¡æé ã«éããããï¼
-
-4.1 ROMå®è¡ã®å ´åã®æ§ç¯æé ã¨å®è¡æé 
-
-ã«ã¼ãã«ã®æ§ç¯åã«ï¼GR-PEACHã¿ã¼ã²ããä¾å­é¨ã®Makefile.targetãç·¨éãï¼
-ä»¥ä¸ã®è¡ãæå¹ã«ããï¼ã³ã¡ã³ãã¢ã¦ãããï¼ï¼
+古いバージョンのOpenOCDでは正しく動作しないことが報告されているため，注
+意が必要である．
+
+GUIベースの開発環境／デバッグ環境として，Atollic TrueStudioを用いること
+ができる．
+
+1.5 メモリマップ
+
+ROM実行の場合は，以下のメモリマップを想定している．
+
+	0x18000000 - 0x1fffffff：シリアルフラッシュメモリ（128MB）
+	0x20000000 - 0x209fffff：内蔵SRAM（10MB）
+	0x3fe00000 - 0x3fffffff：I/O領域（2MB），予約領域を含む
+	0xe8000000 - 0xffffffff：I/O領域（384MB），予約領域を含む
+
+内蔵SRAM領域の先頭の16KBは，ブートローダを置くために使用する．
+
+RAM実行の場合は，以下のメモリマップを想定している．
+
+	0x20000000 - 0x200fffff：内蔵SRAM（1MB）… ROM領域として使用
+	0x20100000 - 0x209fffff：内蔵SRAM（9MB）
+	0x3fe00000 - 0x3fffffff：I/O領域（2MB），予約領域を含む
+	0xe8000000 - 0xffffffff：I/O領域（384MB），予約領域を含む
+
+プログラムおよび定数データ領域は，内蔵SRAM領域の先頭の1MBに置く想定とし
+て，（定数でない）データ領域は，その後に配置する．
+
+メモリマップを変更する場合には，target_kernel_impl.cとgr_peach_rom.ld
+（または，pr_peach_ram.kd）を修正する必要がある．
+
+
+２．ターゲット定義事項の規定
+
+GR-PEACHターゲット依存部は，ARMコア依存部とRZ/A1チップ依存部を用いて実
+装されている．ARMコア依存部およびRZ/A1チップ依存部におけるターゲット定
+義事項の規定については，「ARM依存部 ユーザーズマニュアル」を参照するこ
+と．それらの規定以外に，GR-PEACHターゲット定義の事項はない．
+
+
+３．ドライバ関連の情報
+
+3.1 タイマドライバ
+
+高分解能タイマは，RZ/A1Hが持つ2チャンネルのOSタイマの内の1つを用いて実
+現している．また，もう1つのOSタイマを用いて，オーバランタイマを実現して
+いる．
+
+3.2 シリアルインタフェースドライバ
+
+シリアルインタフェースドライバは，RZ/A1Hが持つ8ポートのFIFO内蔵シリアル
+コミュニケーションインタフェースをサポートしている．
+
+USB経由でホストと接続できるポートは，SCIFのチャネル2（チャネル番号は0か
+ら始まるので，ポート3に相当）である．一方，sample1.cdlでは，ログタスク
+およびサンプルプログラムが使うポートがポート1となっているため，ポート1
+とポート3を入れ換えている．すなわち，シリアルインタフェースドライバのポー
+ト1がSCIFのチャネル2，ポート2がチャネル1，ポート3がチャネル0，ポート4が
+チャネル3，…に対応している．
+
+	ボーレート：115200bps
+	データ：8ビット
+	パリティ：なし
+	ストップビット：1ビット
+	フロー制御：なし
+
+この対応を変更するには，tSIOPortGRPeach.cdlを修正する必要がある．
+
+3.3 システムログの低レベル出力
+
+システムログの低レベル出力は，シリアルインタフェースドライバのポート1と
+同じチャネル（すなわち，SCIFのチャネル2）に対して，ポーリングにより文字
+を出力する方法で実現している．
+
+用いるポートを変更する場合には，target.cdlを修正する必要がある．
+
+
+４．システム構築手順と実行手順
+
+GR-PEACH用のASP3カーネルおよびサンプルプログラムを構築する手順は，基本
+的には，「TOPPERS/ASP3カーネル ユーザーズマニュアル」の「３．クイックス
+タートガイド」の章に記述されている通りであるが，ROM実行かRAM実行かによっ
+て，構築手順と実行手順に違いがある．
+
+4.1 ROM実行の場合の構築手順と実行手順
+
+カーネルの構築前に，GR-PEACHターゲット依存部のMakefile.targetを編集し，
+以下の行を有効にする（コメントアウトする）．
 
 	EXECUTE_ON = ROM
 
-ROMå®è¡ããå ´åã«ã¯ï¼ãã¤ããªå½¢å¼ãå¿
-è¦ã§ããããï¼ãµã³ãã«ãã­ã°ã©ã ã®
-æ§ç¯å¾ã«ï¼ä»¥ä¸ã®ã³ãã³ããå®è¡ããï¼
+ROM実行する場合には，バイナリ形式が必要であるため，サンプルプログラムの
+構築後に，以下のコマンドを実行する．
 
 	% make asp.bin
 
-GR-PEACHã®USBãã¼ãã¨PCãæ¥ç¶ããã¨ï¼GR-PEACHããã©ã¤ãã¨ãã¦èªè­ããã
-ããï¼ãã®ãã©ã¤ãã«asp.binãæ¸ãè¾¼ããã¨ã§ï¼GR-PEACHã®ãã©ãã·ã¥ã¡ã¢ãª
-ã«ãã­ã°ã©ã ãæ¸ãè¾¼ã¾ããï¼
-
-æ¸ãè¾¼ã¿å¾ï¼ãªã»ãããã¿ã³ãæ¼ããã¨ã«ããï¼ãã­ã°ã©ã ã®å®è¡ãéå§ãã
-ãï¼
-
-4.2 RAMå®è¡ã®å ´åã®æ§ç¯æé ã¨å®è¡æé 
-
-ã«ã¼ãã«ã®æ§ç¯åã«ï¼GR-PEACHã¿ã¼ã²ããä¾å­é¨ã®Makefile.targetãç·¨éãï¼
-ä»¥ä¸ã®è¡ãæå¹ã«ããï¼ã³ã¡ã³ãã¢ã¦ãããï¼ï¼
+GR-PEACHのUSBポートとPCを接続すると，GR-PEACHがドライブとして認識される
+ため，そのドライブにasp.binを書き込むことで，GR-PEACHのフラッシュメモリ
+にプログラムが書き込まれる．
+
+書き込み後，リセットボタンを押すことにより，プログラムの実行が開始され
+る．
+
+4.2 RAM実行の場合の構築手順と実行手順
+
+カーネルの構築前に，GR-PEACHターゲット依存部のMakefile.targetを編集し，
+以下の行を有効にする（コメントアウトする）．
 
 	EXECUTE_ON = RAM
 
-ä»¥ä¸ï¼ASP3ã«ã¼ãã«ãç½®ãããã£ã¬ã¯ããªã<SRCDIR>ï¼OpenOCDãã¤ã³ã¹ãã¼ã«
-ãããã£ã¬ã¯ããªã<OPENOCD_DIR>ã¨æ¸ãï¼openocdã®å®è¡ãã­ã°ã©ã ã¯ï¼å®è¡
-ãã¹ã«æå®ããããã£ã¬ã¯ããªã«ã³ãã¼ã¾ãã¯ã·ã³ããªãã¯ãªã³ã¯ãã¦ããï¼
+以下，ASP3カーネルを置いたディレクトリを<SRCDIR>，OpenOCDをインストール
+したディレクトリを<OPENOCD_DIR>と書く．openocdの実行プログラムは，実行
+パスに指定されたディレクトリにコピーまたはシンボリックリンクしておく．
 
 	% cd /usr/local/bin
 	% ln -s <OPENOCD_DIR>/bin/openocd .
 
-ã¾ãï¼GR-PEACHã¿ã¼ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããªã«ããrenesas_rza1h_swd.cfg
-ãï¼<OPENOCD_DIR>/scripts/targetsã«ã³ãã¼ãã¦ããï¼
-
-æ¬¡ã«ï¼GR-PEACHã®USBãã¼ãã¨PCãæ¥ç¶ãï¼ä»¥ä¸ã®ã³ãã³ãã§openocdãèµ·åããï¼
+まず，GR-PEACHターゲット依存部のディレクトリにあるrenesas_rza1h_swd.cfg
+を，<OPENOCD_DIR>/scripts/targetsにコピーしておく．
+
+次に，GR-PEACHのUSBポートとPCを接続し，以下のコマンドでopenocdを起動する．
 
 	% setenv OPENOCD_SCRIPTS <OPENOCD_DIR>/scripts
 	% openocd -f interface/cmsis-dap.cfg -f target/renesas_rza1h_swd.cfg
 
-ä»¥ä¸ã®ã³ãã³ãã§gdbãèµ·åãï¼aspãã­ã¼ãããå¾ï¼continueã³ãã³ãã§ãã­
-ã°ã©ã ã®å®è¡ãéå§ãããï¼
+以下のコマンドでgdbを起動し，aspをロードした後，continueコマンドでプロ
+グラムの実行が開始される．
 
 	% arm-none-eabi-gdb asp -x <SRCDIR>/target/gr_peach_gcc/gdb_ram.ini
 	(gdb) continue
 
-<SRCDIR>/target/gr_peach_gcc/gdb_ram.iniãï¼ã«ã¬ã³ããã£ã¬ã¯ããªã®
-.gdbinitã«ã³ãã¼ãã¦ãããã¨ã§ï¼gdbã®èµ·åæ¯ã«ã¹ã¯ãªãããæå®ããå¿
-è¦ã
-ãªããªãï¼
-
-4.3 ãã©ã¤ãã®ã¤ã³ã¹ãã¼ã«
-
-GR-PEACHã®USBãã¼ãã¨PCãæ¥ç¶ãã¦ãï¼GR-PEACHãã·ãªã¢ã«ãã¼ãã¨ãã¦èªè­
-ãããªãå ´åã«ã¯ï¼USBã·ãªã¢ã«ãã©ã¤ããã¤ã³ã¹ãã¼ã«ããå¿
-è¦ãããï¼
-
-Windowsåãã®ãã©ã¤ãã¯ï¼ä»¥ä¸ã®URLã«ããï¼
+<SRCDIR>/target/gr_peach_gcc/gdb_ram.iniを，カレントディレクトリの
+.gdbinitにコピーしておくことで，gdbの起動毎にスクリプトを指定する必要が
+なくなる．
+
+4.3 ドライバのインストール
+
+GR-PEACHのUSBポートとPCを接続しても，GR-PEACHがシリアルポートとして認識
+されない場合には，USBシリアルドライバをインストールする必要がある．
+
+Windows向けのドライバは，以下のURLにある．
 
 	https://developer.mbed.org/handbook/Windows-serial-configuration
 
-MacOS Xç¨ã®USBã·ãªã¢ã«ãã©ã¤ãã¯ï¼ä¾ãã°ï¼ä»¥ä¸ã®URLã«ãããã®ãä½¿ç¨ãã
-ãã¨ãã§ããï¼
+MacOS X用のUSBシリアルドライバは，例えば，以下のURLにあるものを使用する
+ことができる．
 
 	http://www.ftdichip.com/Drivers/VCP.htm
 
 
-ï¼ï¼ãªãã¡ã¬ã³ã¹
-
-5.1 ãã£ã¬ã¯ããªæ§æã»ãã¡ã¤ã«æ§æ
+５．リファレンス
+
+5.1 ディレクトリ構成・ファイル構成
 
 	target/gr_peach_gcc/
-		E_PACKAGE				ç°¡æããã±ã¼ã¸ã®ãã¡ã¤ã«ãªã¹ã
-		MANIFEST				åå¥ããã±ã¼ã¸ã®ãã¡ã¤ã«ãªã¹ã
-		Makefile.target			Makefileã®ã¿ã¼ã²ããä¾å­é¨
-		gdb_ram.ini				GDBã®èµ·åã¹ã¯ãªããï¼RAMå®è¡ç¨ï¼
-		gdb_rom.ini				GDBã®èµ·åã¹ã¯ãªããï¼ROMå®è¡ç¨ï¼
-		gr_peach.h				ã¿ã¼ã²ããã®ãã¼ãã¦ã§ã¢è³æºã®å®ç¾©
-		gr_peach_ram.ld			æ¨æºã®ãªã³ã«ã¹ã¯ãªããï¼RAMå®è¡ç¨ï¼
-		gr_peach_rom.ld			æ¨æºã®ãªã³ã«ã¹ã¯ãªããï¼ROMå®è¡ç¨ï¼
-		renesas_rza1h_swd.cfg	OpenOCDã®èµ·åã¹ã¯ãªãã
-		sf_boot.c				ãã¼ãã­ã¼ãï¼ROMå®è¡ç¨ï¼
-		tPutLogGRPeach.c		ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºå
-		tPutLogGRPeach.cdl		ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ã³ã³ãã¼ãã³ãè¨è¿°
-		tSIOPortGRPeach.cdl		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ãã
-								ä¾å­é¨ï¼GR-PEACHç¨ï¼ã®ã³ã³ãã¼ãã³ãè¨è¿°
-		tSIOPortGRPeachMain_inline.h	ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®
-								ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
-		target.cdl				ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨
-		target_cfg1_out.h		cfg1_out.cã®ãªã³ã¯ã«å¿
-è¦ãªã¹ã¿ãã®å®ç¾©
-		target_kernel.cfg		ã«ã¼ãã«å®è£
-ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
-		target_kernel.h			kernel.hã®ã¿ã¼ã²ããä¾å­é¨
-		target_kernel.trb		kernel.trbã®ã¿ã¼ã²ããä¾å­é¨
-		target_check.trb		kernel_check.trbã®ã¿ã¼ã²ããä¾å­é¨
-		target_kernel_impl.c	ã«ã¼ãã«å®è£
-ã®ã¿ã¼ã²ããä¾å­é¨
-		target_kernel_impl.h	ã«ã¼ãã«å®è£
-ã®ã¿ã¼ã²ããä¾å­é¨ã«é¢ããå®ç¾©
-		target_rename.def		ã¿ã¼ã²ããä¾å­é¨ã®å
-é¨è­å¥åã®ãªãã¼ã å®ç¾©
-		target_rename.h			ã¿ã¼ã²ããä¾å­é¨ã®å
-é¨è­å¥åã®ãªãã¼ã 
-		target_sil.h			sil.hã®ã¿ã¼ã²ããä¾å­é¨
-		target_stddef.h			t_stddef.hã®ã¿ã¼ã²ããä¾å­é¨
-		target_support.S		ã«ã¼ãã«å®è£
-ã®ã¿ã¼ã²ããä¾å­é¨ï¼ã¢ã»ã³ã
-								ãªè¨èªã§è¨è¿°ããé¨åï¼
-		target_syssvc.h			ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­å®ç¾©
-		target_test.h			ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©
-		target_timer.cfg		ã¿ã¤ããã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
-		target_timer.h			ã¿ã¤ããã©ã¤ããä½¿ç¨ããããã®å®ç¾©
-		target_unrename.h		ã¿ã¼ã²ããä¾å­é¨ã®å
-é¨è­å¥åã®ãªãã¼ã è§£é¤
-		target_user.txt			ã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«
-
-5.2 ãã¼ã¸ã§ã³å±¥æ­´
-
-	2016å¹´5æ15æ¥	Release	3.1.0		æåã®ä¸è¬å
-¬é
-
-ä»¥ä¸
+		E_PACKAGE				簡易パッケージのファイルリスト
+		MANIFEST				個別パッケージのファイルリスト
+		Makefile.target			Makefileのターゲット依存部
+		gdb_ram.ini				GDBの起動スクリプト（RAM実行用）
+		gdb_rom.ini				GDBの起動スクリプト（ROM実行用）
+		gr_peach.h				ターゲットのハードウェア資源の定義
+		gr_peach_ram.ld			標準のリンカスクリプト（RAM実行用）
+		gr_peach_rom.ld			標準のリンカスクリプト（ROM実行用）
+		renesas_rza1h_swd.cfg	OpenOCDの起動スクリプト
+		sf_boot.c				ブートローダ（ROM実行用）
+		tPutLogGRPeach.c		システムログの低レベル出力
+		tPutLogGRPeach.cdl		システムログの低レベル出力のコンポーネント記述
+		tSIOPortGRPeach.cdl		シリアルインタフェースドライバのターゲット
+								依存部（GR-PEACH用）のコンポーネント記述
+		tSIOPortGRPeachMain_inline.h	シリアルインタフェースドライバの
+								ターゲット依存部（GR-PEACH用）
+		target.cdl				コンポーネント記述ファイルのターゲット依存部
+		target_cfg1_out.h		cfg1_out.cのリンクに必要なスタブの定義
+		target_kernel.cfg		カーネル実装のコンフィギュレーションファイル
+		target_kernel.h			kernel.hのターゲット依存部
+		target_kernel.trb		kernel.trbのターゲット依存部
+		target_check.trb		kernel_check.trbのターゲット依存部
+		target_kernel_impl.c	カーネル実装のターゲット依存部
+		target_kernel_impl.h	カーネル実装のターゲット依存部に関する定義
+		target_rename.def		ターゲット依存部の内部識別名のリネーム定義
+		target_rename.h			ターゲット依存部の内部識別名のリネーム
+		target_sil.h			sil.hのターゲット依存部
+		target_stddef.h			t_stddef.hのターゲット依存部
+		target_support.S		カーネル実装のターゲット依存部（アセンブ
+								リ言語で記述した部分）
+		target_syssvc.h			システムサービスのターゲット依存定義
+		target_test.h			テストプログラムのターゲット依存定義
+		target_timer.cfg		タイマドライバのコンフィギュレーションファイル
+		target_timer.h			タイマドライバを使用するための定義
+		target_unrename.h		ターゲット依存部の内部識別名のリネーム解除
+		target_user.txt			ターゲット依存部のユーザーズマニュアル
+
+5.2 バージョン履歴
+
+	2016年5月15日	Release	3.1.0		最初の一般公開
+
+以上
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.c	(revision 321)
@@ -5,44 +5,30 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -50,5 +36,5 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã¢ã¸ã¥ã¼ã«ï¼GR-PEACHç¨ï¼
+ *  ターゲット依存モジュール（GR-PEACH用）
  */
 
@@ -61,5 +47,5 @@
 
 /*
- *  mbed_bus_init -- ã¿ã¼ã²ããä¾å­é¨ã®ãã¹ã®åæå
+ *  mbed_bus_init -- ターゲット依存部のバスの初期化
  */
 
@@ -69,5 +55,5 @@
 #ifdef INMEM_ONLY
 
-	/* å¤é¨ãã¹ãæå¹ã«ããã*/
+	/* 外部バスを有効にする。*/
 	sil_orb_ddr(IO_PORT1,	0x1f);		/* Enable A0 - A4	*/
 	sil_orb_ddr(IO_PORT3,	0xff);		/* Enable D8 - D15	*/
@@ -79,5 +65,5 @@
 
 /*
- *  mbed_inter_init -- ã¿ã¼ã²ããä¾å­é¨ã®å²è¾¼ã¿ã®åæå
+ *  mbed_inter_init -- ターゲット依存部の割込みの初期化
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,14 +36,14 @@
 
 /*
- *  TCP/IP ã«é¢ããå®ç¾©
- */
-
-/* TCP ã«é¢ããå®ç¾© */
-
-/*
- *  MAX_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
- *
- *    ç¸æãã MSS ãªãã·ã§ã³ã§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã¦ãã
- *    ãã®å¤ã§ãã»ã°ã¡ã³ããµã¤ãºãå¶éã§ããã
+ *  TCP/IP に関する定義
+ */
+
+/* TCP に関する定義 */
+
+/*
+ *  MAX_TCP_SND_SEG: 送信セグメントサイズの最大値
+ *
+ *    相手から MSS オプションでセグメントサイズを指定されても、
+ *    この値で、セグメントサイズを制限できる。
  */
 
@@ -65,5 +53,5 @@
 
 /*
- *  DEF_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ *  DEF_TCP_RCV_SEG: 受信セグメントサイズの規定値
  */
 
@@ -73,40 +61,37 @@
 
 /* 
- *  ã»ã°ã¡ã³ãã®é çªãå
-¥ãæ¿ããã¨ãã«æ°ãã«ãããã¯ã¼ã¯ãããã¡ãå²å½ã¦ã¦ã
- *  ãã¼ã¿ãã³ãã¼ãããµã¤ãºã®ãããå¤
+ *  セグメントの順番を入れ替えるときに新たにネットワークバッファを割当てて、
+ *  データをコピーするサイズのしきい値
  */
 #define MAX_TCP_REALLOC_SIZE	1024	
 
-#define TCP_CFG_OPT_MSS		/* ã³ãã¯ã·ã§ã³éè¨­æã«ãã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ãã¤ãã¦éä¿¡ããã*/
-#define TCP_CFG_DELAY_ACK	/* ACK ãé
-ãããã¨ãã¯ã³ã¡ã³ããå¤ãã			*/
-#define TCP_CFG_ALWAYS_KEEP	/* å¸¸ã«ã­ã¼ãã¢ã©ã¤ãããæã¯ã³ã¡ã³ããå¤ãã		*/
-
-/* UDP ã«é¢ããå®ç¾© */
-
-#define UDP_CFG_IN_CHECKSUM	/* UDP ã®å
-¥åãã§ãã¯ãµã ãè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
-#define UDP_CFG_OUT_CHECKSUM	/* UDP ã®åºåãã§ãã¯ãµã ãè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
-
-/* ICMPv4/v6 ã«é¢ããå®ç¾© */
-
-#define ICMP_REPLY_ERROR		/* ICMP ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããå ´åã¯ã³ã¡ã³ããå¤ãã*/
-
-/* IPv4 ã«é¢ããå®ç¾© */
-
-#define IP4_CFG_FRAGMENT		/* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
-#define NUM_IP4_FRAG_QUEUE	2	/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãµã¤ãº			*/
-#define IP4_CFG_FRAG_REASSM_SIZE	4096	/* IPv4 åæ§æãããã¡ãµã¤ãº			*/
-
-/* IPv6 ã«é¢ããå®ç¾© */
-
-#define NUM_IP6_DAD_COUNT	1	/* éè¤ã¢ãã¬ã¹æ¤åºã§éä¿¡ããè¿é£è¦è«ã®åæ°ã		*/
-					/*  0 ãæå®ããã¨ãéè¤ã¢ãã¬ã¹æ¤åºãè¡ããªãã	*/
-#define NUM_ND6_CACHE_ENTRY	10	/* è¿é£ã­ã£ãã·ã¥ã®ã¨ã³ããªæ°			*/
-
-/*
- *  IPv6 ç¨ãã¹ãã­ã£ãã·ã¥ã®ã¨ã³ããªæ°ã
- *  0 ãæå®ããã¨IPv6 ç¨ãã¹ãã­ã£ãã·ã¥ãçµè¾¼ã¾ãªãã
+#define TCP_CFG_OPT_MSS		/* コネクション開設時に、セグメントサイズオプションをつけて送信する。*/
+#define TCP_CFG_DELAY_ACK	/* ACK を遅らせるときはコメントを外す。			*/
+#define TCP_CFG_ALWAYS_KEEP	/* 常にキープアライブする時はコメントを外す。		*/
+
+/* UDP に関する定義 */
+
+#define UDP_CFG_IN_CHECKSUM	/* UDP の入力チェックサムを行う場合はコメントを外す。	*/
+#define UDP_CFG_OUT_CHECKSUM	/* UDP の出力チェックサムを行う場合はコメントを外す。	*/
+
+/* ICMPv4/v6 に関する定義 */
+
+#define ICMP_REPLY_ERROR		/* ICMP エラーメッセージを送信する場合はコメントを外す。*/
+
+/* IPv4 に関する定義 */
+
+#define IP4_CFG_FRAGMENT		/* データグラムの分割・再構成行う場合はコメントを外す。	*/
+#define NUM_IP4_FRAG_QUEUE	2	/* データグラム再構成キューサイズ			*/
+#define IP4_CFG_FRAG_REASSM_SIZE	4096	/* IPv4 再構成バッファサイズ			*/
+
+/* IPv6 に関する定義 */
+
+#define NUM_IP6_DAD_COUNT	1	/* 重複アドレス検出で送信する近隣要請の回数、		*/
+					/*  0 を指定すると、重複アドレス検出を行わない。	*/
+#define NUM_ND6_CACHE_ENTRY	10	/* 近隣キャッシュのエントリ数			*/
+
+/*
+ *  IPv6 用ホストキャッシュのエントリ数。
+ *  0 を指定するとIPv6 用ホストキャッシュを組込まない。
  */
 #define NUM_IN6_HOSTCACHE_ENTRY	4
@@ -114,101 +99,98 @@
 #ifdef SUPPORT_ETHER
 
-#define IP6_CFG_AUTO_LINKLOCAL		/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®èªåè¨­å®ãè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã*/
-
-/*
- *  ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã«é¢ããå®ç¾©
- */
-
-/*
- *  ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®ã¨ã³ããªæ°ã
- *  æå¤§å¤ã¯ 16ã0 ãæå®ããã¨ã«ã¼ã¿éç¥ãåä¿¡ããªãã
+#define IP6_CFG_AUTO_LINKLOCAL		/* リンクローカルアドレスの自動設定を行う場合はコメントを外す。*/
+
+/*
+ *  ディフォルトルータリストに関する定義
+ */
+
+/*
+ *  ディフォルトルータリストのエントリ数。
+ *  最大値は 16、0 を指定するとルータ通知を受信しない。
  */
 #define NUM_ND6_DEF_RTR_ENTRY		4
 
 /*
- *  ãã¬ãã£ãã¯ã¹ãªã¹ãã«é¢ããå®ç¾©ã
- *  æå¤§å¤ã¯ 16ã
- */
-#define NUM_ND6_PREFIX_ENTRY		4	/*  ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã¨ã³ããªæ°			*/
-
-/*
- *  èµ·åæã®ã«ã¼ã¿è¦è«åºååæ°ã
- *  0 ãæå®ããã¨ã«ã¼ã¿è¦è«ãåºåããªãã
+ *  プレフィックスリストに関する定義。
+ *  最大値は 16。
+ */
+#define NUM_ND6_PREFIX_ENTRY		4	/*  プレフィックスリストのエントリ数			*/
+
+/*
+ *  起動時のルータ要請出力回数。
+ *  0 を指定するとルータ要請を出力しない。
  */
 #define NUM_ND6_RTR_SOL_RETRY	3	
 
-#define IP6_CFG_FRAGMENT		/* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
-#define NUM_IP6_FRAG_QUEUE	2	/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãµã¤ãº			*/
-#define IP6_CFG_FRAG_REASSM_SIZE	4096	/* IPv6 åæ§æãããã¡ãµã¤ãº			*/
+#define IP6_CFG_FRAGMENT		/* データグラムの分割・再構成行う場合はコメントを外す。	*/
+#define NUM_IP6_FRAG_QUEUE	2	/* データグラム再構成キューサイズ			*/
+#define IP6_CFG_FRAG_REASSM_SIZE	4096	/* IPv6 再構成バッファサイズ			*/
 
 #endif	/* of #ifdef SUPPORT_ETHER */
 
 /*
- *  ãã¼ã¿ãªã³ã¯å±¤ (ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹) ã«é¢ããå®ç¾©
- */
-
-/*
- *  PPPãã¢ãã ã«é¢ããå®ç¾©
- */
-
-#define MODEM_CFG_DIAL		"ATD"	/* ãã¤ã¢ã«ã³ãã³ãæå­å			*/
-#define MODEM_CFG_RETRY_CNT	3	/* ãã¤ã¢ã«ãªãã©ã¤åæ°			*/
-#define MODEM_CFG_RETRY_WAIT	10000	/* ãã¤ã¢ã«ãªãã©ã¤ã¾ã§ã®å¾
-ã¡æé [ms]	*/
-
-/*
- *  PPPãHDLC ã«é¢ããå®ç¾©
- */
-
-#define DEF_LOCAL_ACCM		ULONG_C(0x000a0000)	/* èªåã® ACCMãXON ã¨ XOFF ã®ã¿å¤æ	*/
-#define DEF_REMOTE_ACCM		ULONG_C(0xffffffff)	/* ç¸æã® ACCMãåæå¤ã¯å
-¨ã¦å¤æ		*/
-
-/*
- *  PPPãLCP ã«é¢ããå®ç¾©
+ *  データリンク層 (ネットワークインタフェース) に関する定義
+ */
+
+/*
+ *  PPP、モデムに関する定義
+ */
+
+#define MODEM_CFG_DIAL		"ATD"	/* ダイアルコマンド文字列			*/
+#define MODEM_CFG_RETRY_CNT	3	/* ダイアルリトライ回数			*/
+#define MODEM_CFG_RETRY_WAIT	10000	/* ダイアルリトライまでの待ち時間 [ms]	*/
+
+/*
+ *  PPP、HDLC に関する定義
+ */
+
+#define DEF_LOCAL_ACCM		ULONG_C(0x000a0000)	/* 自分の ACCM、XON と XOFF のみ変換	*/
+#define DEF_REMOTE_ACCM		ULONG_C(0xffffffff)	/* 相手の ACCM、初期値は全て変換		*/
+
+/*
+ *  PPP、LCP に関する定義
  */
 
 #define LCP_CFG_MRU		UINT_C(0x0001)	/* MRU					*/
 #define LCP_CFG_ACCM		UINT_C(0x0002)	/* ACCM					*/
-#define LCP_CFG_MAGIC		UINT_C(0x0004)	/* ãã¸ãã¯çªå·				*/
-#define LCP_CFG_PCOMP		UINT_C(0x0008)	/* ãã­ãã³ã«é¨å§ç¸®æ©è½			*/
-#define LCP_CFG_ACCOMP		UINT_C(0x0010)	/* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®			*/
+#define LCP_CFG_MAGIC		UINT_C(0x0004)	/* マジック番号				*/
+#define LCP_CFG_PCOMP		UINT_C(0x0008)	/* プロトコル部圧縮機能			*/
+#define LCP_CFG_ACCOMP		UINT_C(0x0010)	/* アドレス・制御部圧縮			*/
 #define LCP_CFG_PAP		UINT_C(0x0020)	/* PAP					*/
-/*#define LCP_CFG_CHAP		UINT_C(0x0040)	   CHAP ã¯å®è£
-äºå®			*/
+/*#define LCP_CFG_CHAP		UINT_C(0x0040)	   CHAP は実装予定			*/
 
 #ifdef LCP_CFG_MAGIC
 
-#define LCP_ECHO_INTERVAL	(20*NET_TIMER_HZ)	/* ã¤ã³ã¿ã¼ãã«æé		*/
-#define LCP_ECHO_FAILS		9			/* å¤±æé¾å¤			*/
+#define LCP_ECHO_INTERVAL	(20*NET_TIMER_HZ)	/* インターバル時間		*/
+#define LCP_ECHO_FAILS		9			/* 失敗閾値			*/
 
 #endif	/* of #ifdef LCP_CFG_MAGIC */
 
 /*
- *  PPPãPAP ã«é¢ããå®ç¾©
+ *  PPP、PAP に関する定義
  */
 
 #define DEF_PAP_TIMEOUT		(3*NET_TIMER_HZ)
-#define DEF_PAP_REQTIME		(30*NET_TIMER_HZ)	/* ã¿ã¤ã ã¢ã¦ãå¦çãè¡ãã¨ãã¯ã³ã¡ã³ããå¤ãã*/
-#define MAX_PAP_REXMT		10			/* èªè¨¼è¦æ±ã®æå¤§åéåæ°	*/
-
-/*
- *  MBED Ethernet Controler ã«é¢ããå®ç¾©
- */
-
-#define NUM_IF_MBED_TXBUF		NUM_OF_TX_DESCRIPTOR	/* éä¿¡ãããã¡æ°			*/
-#define NUM_IF_MBED_RXBUF		NUM_OF_RX_DESCRIPTOR	/* åä¿¡ãããã¡æ°			*/
-
-#define TMO_IF_MBED_GET_NET_BUF	1000	/* [ms]ãåä¿¡ç¨ net_buf ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
-					/* [s]ã éä¿¡ã¿ã¤ã ã¢ã¦ã			*/
+#define DEF_PAP_REQTIME		(30*NET_TIMER_HZ)	/* タイムアウト処理を行うときはコメントを外す。*/
+#define MAX_PAP_REXMT		10			/* 認証要求の最大再送回数	*/
+
+/*
+ *  MBED Ethernet Controler に関する定義
+ */
+
+#define NUM_IF_MBED_TXBUF		NUM_OF_TX_DESCRIPTOR	/* 送信バッファ数			*/
+#define NUM_IF_MBED_RXBUF		NUM_OF_RX_DESCRIPTOR	/* 受信バッファ数			*/
+
+#define TMO_IF_MBED_GET_NET_BUF	1000	/* [ms]、受信用 net_buf 獲得タイムアウト	*/
+					/* [s]、 送信タイムアウト			*/
 #define TMO_IF_MBED_XMIT		(2*IF_TIMER_HZ)
 
-/*#define IF_MBED_CFG_ACCEPT_ALL		 ãã«ãã­ã£ã¹ããã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããã¨ãã¯ã³ã¡ã³ããå¤ãã*/
-
-/*
- *  ã¤ã¼ãµãããåºåæã«ãNIC ã§ net_buf ãéæ¾ããå ´åã«æå®ããã
- *
- *  æ³¨æ: ä»¥ä¸ã®æå®ã¯ãæå®ä¾ã§ãããif_mbed ã§ã¯ã
- *        éæ¾ããªãã®ã§ãä»¥ä¸ã®ã³ã¡ã³ããå¤ãã¦ã¯ãªããªãã
+/*#define IF_MBED_CFG_ACCEPT_ALL		 マルチキャスト、エラーフレームも受信するときはコメントを外す。*/
+
+/*
+ *  イーサネット出力時に、NIC で net_buf を開放する場合に指定する。
+ *
+ *  注意: 以下の指定は、指定例であり、if_mbed では、
+ *        開放しないので、以下のコメントを外してはならない。
  */
 
@@ -216,88 +198,86 @@
 
 /*
- *  MBED Ethernet Controler ã«é¢ããå®ç¾©
+ *  MBED Ethernet Controler に関する定義
  */
 
 #define INHNO_IF_MBED		ETHERI_IRQn		/* IRQ5 */
 #define INTNO_IF_MBED		ETHERI_IRQn		/* IRQ5 */
-#define INTATR_IF_MBED		(TA_NULL)		/* å²è¾¼ã¿å±æ§	*/
-#define INTPRI_IF_MBED		(-1)			/* å²è¾¼ã¿åªå
-åº¦	*/
-
-/*
- *  ARP ã«é¢ããå®ç¾©
- */
-
-#define NUM_ARP_ENTRY		10			/* ARP ã­ã£ãã·ã¥ã¨ã³ããªæ°	*/
-
-/*
- *  DHCP ã«é¢ããå®ç¾©
- *
- *    ã»æ³¨æ: TINET ã¯ãDHCP ãå®è£
-ãã¦ããªããå¿ç¨ãã­ã°ã©ã ã§ã
- *            DHCP ã¡ãã»ã¼ã¸ãåä¿¡ããããã®å®ç¾©ã§ããã
- *            ã¾ããç¾å¨ã¯ IPv4 ã®ã¿æå¹ã§ããã
- */
-
-/*#define DHCP_CFG					 DHCP ãå¦çããå ´åã¯ã³ã¡ã³ããå¤ãã*/
-
-/*
- *  Ethernet ã«é¢ããå®ç¾©
- */
-
-/*#define ETHER_CFG_ACCEPT_ALL		 ãã«ãã­ã£ã¹ããã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããã¨ãã¯ã³ã¡ã³ããå¤ãã	*/
-/*#define ETHER_CFG_UNEXP_WARNING	 éãµãã¼ããã¬ã¼ã ã®è­¦åãè¡¨ç¤ºããã¨ãã¯ã³ã¡ã³ããå¤ãã		*/
-/*#define ETHER_CFG_802_WARNING		 IEEE 802.3 ãã¬ã¼ã ã®è­¦åãè¡¨ç¤ºããã¨ãã¯ã³ã¡ã³ããå¤ãã		*/
-/*#define ETHER_CFG_MCAST_WARNING	 ãã«ãã­ã£ã¹ãã®è­¦åãè¡¨ç¤ºããã¨ãã¯ã³ã¡ã³ããå¤ãã		*/
-#define ETHER_CFG_MULTICAST			/* ãã«ãã­ã£ã¹ããéåä¿¡ */
-
-/*
- *  ã¢ãã¬ã¹ãªã¹ãã«é¢ããå®ç¾©ã
- */
-#define NUM_IN6_IFADDR_ENTRY		5	/*  ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãªã¹ãã®ã¨ã³ããªæ°		*/
-
-/*
- *  æ±ç¨ãããã¯ã¼ã¯ã«é¢ããå®ç¾©
- */
-
-/*
- *  ãããã¯ã¼ã¯ãããã¡ã«é¢ããå®ç¾©
- */
-
-/* ãããã¯ã¼ã¯ãããã¡æ° */
+#define INTATR_IF_MBED		(TA_NULL)		/* 割込み属性	*/
+#define INTPRI_IF_MBED		(-1)			/* 割込み優先度	*/
+
+/*
+ *  ARP に関する定義
+ */
+
+#define NUM_ARP_ENTRY		10			/* ARP キャッシュエントリ数	*/
+
+/*
+ *  DHCP に関する定義
+ *
+ *    ・注意: TINET は、DHCP を実装していない。応用プログラムで、
+ *            DHCP メッセージを受信するための定義である。
+ *            また、現在は IPv4 のみ有効である。
+ */
+
+/*#define DHCP_CFG					 DHCP を処理する場合はコメントを外す。*/
+
+/*
+ *  Ethernet に関する定義
+ */
+
+/*#define ETHER_CFG_ACCEPT_ALL		 マルチキャスト、エラーフレームも受信するときはコメントを外す。	*/
+/*#define ETHER_CFG_UNEXP_WARNING	 非サポートフレームの警告を表示するときはコメントを外す。		*/
+/*#define ETHER_CFG_802_WARNING		 IEEE 802.3 フレームの警告を表示するときはコメントを外す。		*/
+/*#define ETHER_CFG_MCAST_WARNING	 マルチキャストの警告を表示するときはコメントを外す。		*/
+#define ETHER_CFG_MULTICAST			/* マルチキャストを送受信 */
+
+/*
+ *  アドレスリストに関する定義。
+ */
+#define NUM_IN6_IFADDR_ENTRY		5	/*  インタフェースのアドレスリストのエントリ数		*/
+
+/*
+ *  汎用ネットワークに関する定義
+ */
+
+/*
+ *  ネットワークバッファに関する定義
+ */
+
+/* ネットワークバッファ数 */
 
 #ifdef SUPPORT_PPP
 
 /*
- *  PPP ã§ã¯ãåä¿¡ç¨ã® ãããã¯ã¼ã¯ãããã¡ã¯ PDU (1502) ãµã¤ãºãå¸¸ã«
- *  å²ãå½ã¦ãªããã°ãªããªãã®ã§ PDU ãµã¤ãºãå¤ãã«ç¢ºä¿ããã
+ *  PPP では、受信用の ネットワークバッファは PDU (1502) サイズを常に
+ *  割り当てなければならないので PDU サイズを多めに確保する。
  */
 
 #ifndef NUM_MPF_NET_BUF_CSEG
-#define NUM_MPF_NET_BUF_CSEG	2	/* IF + IP + TCPã2 ä»¥ä¸*/
+#define NUM_MPF_NET_BUF_CSEG	2	/* IF + IP + TCP、2 以上*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_CSEG */
 
 #ifndef NUM_MPF_NET_BUF_64
-#define NUM_MPF_NET_BUF_64	0	/* 64 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_64	0	/* 64 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_64 */
 
 #ifndef NUM_MPF_NET_BUF_128
-#define NUM_MPF_NET_BUF_128	0	/* 128 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_128	0	/* 128 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_128 */
 
 #ifndef NUM_MPF_NET_BUF_256
-#define NUM_MPF_NET_BUF_256	0	/* 256 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_256	0	/* 256 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_256 */
 
 #ifndef NUM_MPF_NET_BUF_512
-#define NUM_MPF_NET_BUF_512	0	/* 512 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_512	0	/* 512 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_512 */
 
 #ifndef NUM_MPF_NET_BUF_1024
-#define NUM_MPF_NET_BUF_1024	0	/* 1024 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_1024	0	/* 1024 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_1024 */
 
 #ifndef NUM_MPF_NET_BUF_IF_PDU
-#define NUM_MPF_NET_BUF_IF_PDU	2	/* IF æå¤§ PDU ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF_IF_PDU	2	/* IF 最大 PDU サイズ	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
 
@@ -305,7 +285,7 @@
 
 #if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
-#define NUM_MPF_NET_BUF4_REASSM	2	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF4_REASSM	2	/* IPv4 再構成バッファサイズ	*/
 #else
-#define NUM_MPF_NET_BUF4_REASSM	0	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF4_REASSM	0	/* IPv4 再構成バッファサイズ	*/
 #endif
 
@@ -315,7 +295,7 @@
 
 #if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
-#define NUM_MPF_NET_BUF6_REASSM	2	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF6_REASSM	2	/* IPv6 再構成バッファサイズ	*/
 #else
-#define NUM_MPF_NET_BUF6_REASSM	0	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF6_REASSM	0	/* IPv6 再構成バッファサイズ	*/
 #endif
 
@@ -327,13 +307,13 @@
 
 /*
- *  ã¤ã¼ãµãããã®å ´åã®ãããã¯ã¼ã¯ãããã¡æ°ã®å²ãå½ã¦
- */
-
-/*
- *  æ³¨æ!!
- *
- *  MBED Ethernet Controler ã®ãã£ãã¤ã¹ãã©ã¤ãï¼if_mbedï¼ã®æä½å²å½ã¦é·ã¯
- *  60ï¼ã¢ã©ã¤ã³ãã¦ 62ï¼ãªã¯ãããã®ãã IF + IP +TCP ããã¯
- *  64 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã®æ¹ãæé©ã§ããã
+ *  イーサネットの場合のネットワークバッファ数の割り当て
+ */
+
+/*
+ *  注意!!
+ *
+ *  MBED Ethernet Controler のディバイスドライバ（if_mbed）の最低割当て長は
+ *  60（アラインして 62）オクテットのため IF + IP +TCP よりは
+ *  64 オクテットのネットワークバッファの方が最適である。
  */
 
@@ -343,17 +323,17 @@
 
 #ifndef NUM_MPF_NET_BUF_64
-#define NUM_MPF_NET_BUF_64	2	/* 64 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_64	2	/* 64 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_64 */
 
 #ifndef NUM_MPF_NET_BUF_128
-#define NUM_MPF_NET_BUF_128	0	/* 128 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_128	0	/* 128 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_128 */
 
 #ifndef NUM_MPF_NET_BUF_256
-#define NUM_MPF_NET_BUF_256	0	/* 256 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_256	0	/* 256 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_256 */
 
 #ifndef NUM_MPF_NET_BUF_512
-#define NUM_MPF_NET_BUF_512	0	/* 512 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_512	0	/* 512 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_512 */
 
@@ -361,5 +341,5 @@
 
 #ifndef NUM_MPF_NET_BUF_IP_MSS
-#define NUM_MPF_NET_BUF_IP_MSS	0	/* IF + 576 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_IP_MSS	0	/* IF + 576 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_IP_MSS */
 
@@ -367,5 +347,5 @@
 
 #ifndef NUM_MPF_NET_BUF_1024
-#define NUM_MPF_NET_BUF_1024	0	/* 1024 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_1024	0	/* 1024 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_1024 */
 
@@ -379,5 +359,5 @@
 
 #ifndef NUM_MPF_NET_BUF_IF_PDU
-#define NUM_MPF_NET_BUF_IF_PDU	4	/* IF æå¤§ PDU ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF_IF_PDU	4	/* IF 最大 PDU サイズ	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
 
@@ -385,7 +365,7 @@
 
 #if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
-#define NUM_MPF_NET_BUF4_REASSM	2	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF4_REASSM	2	/* IPv4 再構成バッファサイズ	*/
 #else
-#define NUM_MPF_NET_BUF4_REASSM	0	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF4_REASSM	0	/* IPv4 再構成バッファサイズ	*/
 #endif
 
@@ -395,7 +375,7 @@
 
 #if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
-#define NUM_MPF_NET_BUF6_REASSM	2	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF6_REASSM	2	/* IPv6 再構成バッファサイズ	*/
 #else
-#define NUM_MPF_NET_BUF6_REASSM	0	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF6_REASSM	0	/* IPv6 再構成バッファサイズ	*/
 #endif
 
@@ -411,25 +391,25 @@
 
 #ifndef NUM_MPF_NET_BUF_64
-#define NUM_MPF_NET_BUF_64	0	/* 64 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_64	0	/* 64 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_64 */
 
 #ifndef NUM_MPF_NET_BUF_128
-#define NUM_MPF_NET_BUF_128	0	/* 128 ãªã¯ãããã2 ä»¥ä¸	*/
+#define NUM_MPF_NET_BUF_128	0	/* 128 オクテット、2 以上	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_128 */
 
 #ifndef NUM_MPF_NET_BUF_256
-#define NUM_MPF_NET_BUF_256	0	/* 256 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_256	0	/* 256 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_256 */
 
 #ifndef NUM_MPF_NET_BUF_512
-#define NUM_MPF_NET_BUF_512	0	/* 512 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_512	0	/* 512 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_512 */
 
 #ifndef NUM_MPF_NET_BUF_1024
-#define NUM_MPF_NET_BUF_1024	0	/* 1024 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_1024	0	/* 1024 オクテット	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_1024 */
 
 #ifndef NUM_MPF_NET_BUF_IF_PDU
-#define NUM_MPF_NET_BUF_IF_PDU	4	/* IF æå¤§ PDU ãµã¤ãº	*/
+#define NUM_MPF_NET_BUF_IF_PDU	4	/* IF 最大 PDU サイズ	*/
 #endif	/* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
 
@@ -437,10 +417,8 @@
 
 /*
- *  ãããã¯ã¼ã¯çµ±è¨æ
-å ±ã®è¨æ¸¬
- *
- *  ãããã¯ã¼ã¯çµ±è¨æ
-å ±ã®è¨æ¸¬ãè¡ãå ´åã¯ãtinet/include/net/net.h
- *  ã§å®ç¾©ããã¦ãããã­ãã³ã«è­å¥ãã©ã°ãæå®ããã
+ *  ネットワーク統計情報の計測
+ *
+ *  ネットワーク統計情報の計測を行う場合は、tinet/include/net/net.h
+ *  で定義されているプロトコル識別フラグを指定する。
  */
 
@@ -499,5 +477,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_defs.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_defs.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_defs.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,12 +36,11 @@
 
 /*
- *  ãããã¯ã¼ã¯ã«é¢ããå®ç¾©
+ *  ネットワークに関する定義
  */
 
 /*
- *  CPU ã®ã¢ã©ã¤ã¡ã³ãã«é¢ããå®ç¾©
+ *  CPU のアライメントに関する定義
  *
- *  4 ãªã¯ãããåä½ã§ãã¢ã©ã¤ã³ããå¿
-è¦ãããå ´åã¯ 4 ãæå®ããã
+ *  4 オクテット単位で、アラインする必要がある場合は 4 を指定する。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/init_tecs.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/init_tecs.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/init_tecs.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- *		TECSã®åæåå¦ç
+ *		TECSの初期化処理
  *
  *  $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/kernel.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/kernel.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/kernel.cdl	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,14 +42,14 @@
 
 /*
- *		TOPPERS/ASPã«ã¼ãã«ãªãã¸ã§ã¯ã ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
- */
-
-/*
- *  ã«ã¼ãã«ãªãã¸ã§ã¯ãã®ã³ã³ãã¼ãã³ãåã®ããã®ããããã¡ã¤ã«
+ *		TOPPERS/ASPカーネルオブジェクト コンポーネント記述ファイル
+ */
+
+/*
+ *  カーネルオブジェクトのコンポーネント化のためのヘッダファイル
  */
 import_C("tecs_kernel.h");
 
 /*
- *  ã«ã¼ãã«æä½ã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  カーネル操作のシグニチャ（タスクコンテキスト用）
  */
 signature sKernel {
@@ -106,5 +91,5 @@
 
 /*
- *  ã«ã¼ãã«æä½ã®ã·ã°ããã£ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  カーネル操作のシグニチャ（非タスクコンテキスト用）
  */
 [context("non-task")]
@@ -123,5 +108,5 @@
 	ER		exitKernel(void);
 
-	/* CPUä¾å¤ãã³ãã©ä¸­ã§ä½¿ç¨ãã */
+	/* CPU例外ハンドラ中で使用する */
 	bool_t	exceptionSenseDispatchPendingState
 						([in] const void *p_exceptionInformation);
@@ -129,5 +114,5 @@
 
 /*
- *  ã«ã¼ãã«ã®ã»ã«ã¿ã¤ã
+ *  カーネルのセルタイプ
  */
 [singleton]
@@ -138,5 +123,5 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ãéç¥ãåãåãããã®ã·ã°ããã£
+ *  タイムイベント通知を受け取るためのシグネチャ
  */
 [context("non-task")]
@@ -145,5 +130,5 @@
 
 /*
- *  ã¿ã¹ã¯æ¬ä½ã®ã·ã°ããã£
+ *  タスク本体のシグニチャ
  */
 signature sTaskBody {
@@ -152,5 +137,5 @@
 
 /*
- *  ã¿ã¹ã¯æä½ã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  タスク操作のシグニチャ（タスクコンテキスト用）
  */
 signature sTask {
@@ -173,5 +158,5 @@
 
 /*
- *  ã¿ã¹ã¯æä½ã®ã·ã°ããã£ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  タスク操作のシグニチャ（非タスクコンテキスト用）
  */
 [context("non-task")]
@@ -183,5 +168,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®ã»ã«ã¿ã¤ã
+ *  タスクのセルタイプ
  */
 [active]
@@ -213,5 +198,5 @@
 
 /*
- *  ã»ããã©æä½ã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  セマフォ操作のシグニチャ（タスクコンテキスト用）
  */
 signature sSemaphore {
@@ -225,5 +210,5 @@
 
 /*
- *  ã»ããã©æä½ã®ã·ã°ããã£ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  セマフォ操作のシグニチャ（非タスクコンテキスト用）
  */
 [context("non-task")]
@@ -233,5 +218,5 @@
 
 /*
- *  ã»ããã©ã®ã»ã«ã¿ã¤ã
+ *  セマフォのセルタイプ
  */
 celltype tSemaphore {
@@ -258,5 +243,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°æä½ã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  イベントフラグ操作のシグニチャ（タスクコンテキスト用）
  */
 signature sEventflag {
@@ -274,5 +259,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°æä½ã®ã·ã°ããã£ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  イベントフラグ操作のシグニチャ（非タスクコンテキスト用）
  */
 [context("non-task")]
@@ -282,5 +267,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ã»ã«ã¿ã¤ã
+ *  イベントフラグのセルタイプ
  */
 celltype tEventflag {
@@ -306,5 +291,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼æä½ã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  データキュー操作のシグニチャ（タスクコンテキスト用）
  */
 signature sDataqueue {
@@ -321,5 +306,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼æä½ã®ã·ã°ããã£ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  データキュー操作のシグニチャ（非タスクコンテキスト用）
  */
 [context("non-task")]
@@ -330,5 +315,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã®ã»ã«ã¿ã¤ã
+ *  データキューのセルタイプ
  */
 celltype tDataqueue {
@@ -355,6 +340,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼æä½ã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  優先度データキュー操作のシグニチャ（タスクコンテキスト用）
  */
 signature sPriorityDataqueue {
@@ -372,6 +356,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼æä½ã®ã·ã°ããã£ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  優先度データキュー操作のシグニチャ（非タスクコンテキスト用）
  */
 [context("non-task")]
@@ -381,6 +364,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®ã»ã«ã¿ã¤ã
+ *  優先度データキューのセルタイプ
  */
 celltype tPriorityDataqueue {
@@ -407,5 +389,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹æä½ã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  ミューテックス操作のシグニチャ（タスクコンテキスト用）
  */
 signature sMutex {
@@ -419,5 +401,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã»ã«ã¿ã¤ã
+ *  ミューテックスのセルタイプ
  */
 celltype tMutex {
@@ -440,5 +422,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªã¡ã¢ãªãã¼ã«æä½ã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  固定長メモリメモリプール操作のシグニチャ（タスクコンテキスト用）
  */
 [deviate]
@@ -453,5 +435,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ã®ã»ã«ã¿ã¤ã
+ *  固定長メモリプールのセルタイプ
  */
 celltype tFixedSizeMemoryPool {
@@ -478,5 +460,5 @@
 
 /*
- *  ãã³ãã©æ¬ä½ã®ã·ã°ããã£
+ *  ハンドラ本体のシグニチャ
  */
 [context("non-task")]
@@ -486,5 +468,5 @@
 
 /*
- *  ã¿ã¤ã ã¤ãã³ããã³ãã©ãæå®ããããã®ã»ã«ã¿ã¤ã
+ *  タイムイベントハンドラを指定するためのセルタイプ
  */
 celltype tTimeEventHandler {
@@ -498,5 +480,5 @@
 
 /*
- *  å¨æéç¥ãæä½ããããã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  周期通知を操作するためのシグニチャ（タスクコンテキスト用）
  */
 signature sCyclic {
@@ -507,5 +489,5 @@
 
 /*
- *  å¨æéç¥ã®ã»ã«ã¿ã¤ã
+ *  周期通知のセルタイプ
  */
 [active, generate(NotifierPlugin,
@@ -525,24 +507,24 @@
 		[omit] RELTIM	cyclePhase = 0;
 
-		/* å¤æ°ã®è¨­å®ã«ããéç¥ï¼TNFY_SETVARï¼*/
+		/* 変数の設定による通知（TNFY_SETVAR）*/
 		[omit] intptr_t *setVariableAddress = 0;
 		[omit] intptr_t setVariableValue = 0;
 
-		/* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ãã«ããéç¥ï¼TNFY_INCVARï¼*/
+		/* 変数のインクリメントによる通知（TNFY_INCVAR）*/
 		[omit] intptr_t *incrementedVariableAddress = 0;
 
-		/* ã¤ãã³ããã©ã°ã®ã»ããã«ããéç¥ï¼TNFY_SETFLGï¼*/
+		/* イベントフラグのセットによる通知（TNFY_SETFLG）*/
 		[omit] FLGPTN flagPattern = 0;
 
-		/* ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ã«ããéç¥ï¼TNFY_SNDDTQï¼*/
+		/* データキューへの送信による通知（TNFY_SNDDTQ）*/
 		[omit] intptr_t dataqueueSentValue = 0;
 
-		/* å¤æ°ã®è¨­å®ã«ããã¨ã©ã¼éç¥ï¼TENFY_SETVARï¼*/
+		/* 変数の設定によるエラー通知（TENFY_SETVAR）*/
 		[omit] intptr_t *setVariableAddressForError = 0;
 
-		/* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ãã«ããã¨ã©ã¼éç¥ï¼TENFY_INCVARï¼*/
+		/* 変数のインクリメントによるエラー通知（TENFY_INCVAR）*/
 		[omit] intptr_t *incrementedVariableAddressForError = 0;
 
-		/* ã¤ãã³ããã©ã°ã®ã»ããã«ããã¨ã©ã¼éç¥ï¼TENFY_SETFLGï¼*/
+		/* イベントフラグのセットによるエラー通知（TENFY_SETFLG）*/
 		[omit] FLGPTN flagPatternForError = 0;
 	};
@@ -554,5 +536,5 @@
 
 /*
- *  å¨æéç¥ã«ã¦ã¼ã¶ã¼ãã³ãã©ãæå®ããããã®è¤åã»ã«ã¿ã¤ã
+ *  周期通知にユーザーハンドラを指定するための複合セルタイプ
  */
 [active]
@@ -584,5 +566,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ãæä½ããããã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  アラーム通知を操作するためのシグニチャ（タスクコンテキスト用）
  */
 signature sAlarm {
@@ -593,5 +575,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ãæä½ããããã®ã·ã°ããã£ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  アラーム通知を操作するためのシグニチャ（非タスクコンテキスト用）
  */
 [context("non-task")]
@@ -602,5 +584,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®ã»ã«ã¿ã¤ã
+ *  アラーム通知のセルタイプ
  */
 [active, generate(NotifierPlugin,
@@ -619,24 +601,24 @@
 		[omit] bool_t	ignoreErrors = false;
 
-		/* å¤æ°ã®è¨­å®ã«ããéç¥ï¼TNFY_SETVARï¼*/
+		/* 変数の設定による通知（TNFY_SETVAR）*/
 		[omit] intptr_t *setVariableAddress = 0;
 		[omit] intptr_t setVariableValue = 0;
 
-		/* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ãã«ããéç¥ï¼TNFY_INCVARï¼*/
+		/* 変数のインクリメントによる通知（TNFY_INCVAR）*/
 		[omit] intptr_t *incrementedVariableAddress = 0;
 
-		/* ã¤ãã³ããã©ã°ã®ã»ããã«ããéç¥ï¼TNFY_SETFLGï¼*/
+		/* イベントフラグのセットによる通知（TNFY_SETFLG）*/
 		[omit] FLGPTN flagPattern = 0;
 
-		/* ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ã«ããéç¥ï¼TNFY_SNDDTQï¼*/
+		/* データキューへの送信による通知（TNFY_SNDDTQ）*/
 		[omit] intptr_t dataqueueSentValue = 0;
 
-		/* å¤æ°ã®è¨­å®ã«ããã¨ã©ã¼éç¥ï¼TENFY_SETVARï¼*/
+		/* 変数の設定によるエラー通知（TENFY_SETVAR）*/
 		[omit] intptr_t *setVariableAddressForError = 0;
 
-		/* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ãã«ããã¨ã©ã¼éç¥ï¼TENFY_INCVARï¼*/
+		/* 変数のインクリメントによるエラー通知（TENFY_INCVAR）*/
 		[omit] intptr_t *incrementedVariableAddressForError = 0;
 
-		/* ã¤ãã³ããã©ã°ã®ã»ããã«ããã¨ã©ã¼éç¥ï¼TENFY_SETFLGï¼*/
+		/* イベントフラグのセットによるエラー通知（TENFY_SETFLG）*/
 		[omit] FLGPTN flagPatternForError = 0;
 	};
@@ -648,5 +630,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã«ã¦ã¼ã¶ã¼ãã³ãã©ãæå®ããããã®è¤åã»ã«ã¿ã¤ã
+ *  アラーム通知にユーザーハンドラを指定するための複合セルタイプ
  */
 [active]
@@ -676,5 +658,5 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³æä½ã®ã·ã°ããã£ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  割込み要求ライン操作のシグニチャ（タスクコンテキスト用）
  */
 signature sInterruptRequest {
@@ -684,5 +666,5 @@
 
 /*
- *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®ã»ã«ã¿ã¤ã
+ *  割込み要求ラインのセルタイプ
  */
 celltype tInterruptRequest {
@@ -702,5 +684,5 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®ã»ã«ã¿ã¤ã
+ *  割込みサービスルーチンのセルタイプ
  */
 [active]
@@ -726,5 +708,5 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã©ã®ã»ã«ã¿ã¤ã
+ *  割込みハンドラのセルタイプ
  */
 [active]
@@ -747,5 +729,5 @@
 
 /*
- *  CPUä¾å¤ãã³ãã©ã®ã»ã«ã¿ã¤ã
+ *  CPU例外ハンドラのセルタイプ
  */
 [active]
@@ -768,5 +750,5 @@
 
 /*
- *  åæåï¼çµäºå¦çã«ã¼ãã³æ¬ä½ã®ã·ã°ããã£
+ *  初期化／終了処理ルーチン本体のシグニチャ
  */
 signature sRoutineBody {
@@ -775,5 +757,5 @@
 
 /*
- *  åæåã«ã¼ãã³ã®ã»ã«ã¿ã¤ã
+ *  初期化ルーチンのセルタイプ
  */
 [active]
@@ -796,5 +778,5 @@
 
 /*
- *  çµäºå¦çã«ã¼ãã³ã®ã»ã«ã¿ã¤ã
+ *  終了処理ルーチンのセルタイプ
  */
 [active]
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tAlarmNotifier.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tAlarmNotifier.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tAlarmNotifier.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tAlarmNotifier_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tAlarmNotifier_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tAlarmNotifier_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,5 +45,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®åä½éå§
+ *  アラーム通知の動作開始
  */
 Inline ER
@@ -70,5 +55,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®åä½åæ­¢
+ *  アラーム通知の動作停止
  */
 Inline ER
@@ -80,7 +65,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®ç¶æ
-åç
-§
+ *  アラーム通知の状態参照
  */
 Inline ER
@@ -92,5 +75,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®åä½éå§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  アラーム通知の動作開始（非タスクコンテキスト用）
  */
 Inline ER
@@ -102,5 +85,5 @@
 
 /*
- *  ã¢ã©ã¼ã éç¥ã®åä½åæ­¢ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  アラーム通知の動作停止（非タスクコンテキスト用）
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tCpuExceptionHandler.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tCpuExceptionHandler.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tCpuExceptionHandler.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -59,5 +44,5 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã©æ¬ä½ã®å¼åºã
+ *  割込みハンドラ本体の呼出し
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tCyclicNotifier.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tCyclicNotifier.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tCyclicNotifier.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tCyclicNotifier_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tCyclicNotifier_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tCyclicNotifier_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,5 +45,5 @@
 
 /*
- *  å¨æéç¥ã®åä½éå§
+ *  周期通知の動作開始
  */
 Inline ER
@@ -70,5 +55,5 @@
 
 /*
- *  å¨æéç¥ã®åä½åæ­¢
+ *  周期通知の動作停止
  */
 Inline ER
@@ -80,7 +65,5 @@
 
 /*
- *  å¨æéç¥ã®ç¶æ
-åç
-§
+ *  周期通知の状態参照
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tDataqueue_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tDataqueue_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tDataqueue_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,5 +45,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡
+ *  データキューへの送信
  */
 Inline ER
@@ -70,5 +55,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼
+ *  データキューへの送信（ポーリング）
  */
 Inline ER
@@ -80,5 +65,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  データキューへの送信（タイムアウトあり）
  */
 Inline ER
@@ -90,5 +75,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®å¼·å¶éä¿¡
+ *  データキューへの強制送信
  */
 Inline ER
@@ -100,5 +85,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡
+ *  データキューからの受信
  */
 Inline ER
@@ -110,5 +95,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ãã¼ãªã³ã°ï¼
+ *  データキューからの受信（ポーリング）
  */
 Inline ER
@@ -120,5 +105,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  データキューからの受信（タイムアウトあり）
  */
 Inline ER
@@ -130,5 +115,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã®ååæå
+ *  データキューの再初期化
  */
 Inline ER
@@ -140,7 +125,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã®ç¶æ
-åç
-§
+ *  データキューの状態参照
  */
 Inline ER
@@ -152,5 +135,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  データキューへの送信（ポーリング，非タスクコンテキスト用）
  */
 Inline ER
@@ -162,5 +145,5 @@
 
 /*
- *  ãã¼ã¿ã­ã¥ã¼ã¸ã®å¼·å¶éä¿¡ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  データキューへの強制送信（非タスクコンテキスト用）
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tEventflag_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tEventflag_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tEventflag_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,5 +45,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ã»ãã
+ *  イベントフラグのセット
  */
 Inline ER
@@ -70,5 +55,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ã¯ãªã¢
+ *  イベントフラグのクリア
  */
 Inline ER
@@ -80,6 +65,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°å¾
-ã¡
+ *  イベントフラグ待ち
  */
 Inline ER
@@ -92,6 +76,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°å¾
-ã¡ï¼ãã¼ãªã³ã°ï¼
+ *  イベントフラグ待ち（ポーリング）
  */
 Inline ER
@@ -104,6 +87,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°å¾
-ã¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  イベントフラグ待ち（タイムアウトあり）
  */
 Inline ER
@@ -117,5 +99,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ååæå
+ *  イベントフラグの再初期化
  */
 Inline ER
@@ -127,7 +109,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ç¶æ
-åç
-§
+ *  イベントフラグの状態参照
  */
 Inline ER
@@ -139,5 +119,5 @@
 
 /*
- *  ã¤ãã³ããã©ã°ã®ã»ããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  イベントフラグのセット（非タスクコンテキスト用）
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tFixedSizeMemoryPool_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tFixedSizeMemoryPool_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tFixedSizeMemoryPool_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,5 +45,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾
+ *  固定長メモリブロックの獲得
  */
 Inline ER
@@ -70,5 +55,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾ï¼ãã¼ãªã³ã°ï¼
+ *  固定長メモリブロックの獲得（ポーリング）
  */
 Inline ER
@@ -80,5 +65,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  固定長メモリブロックの獲得（タイムアウトあり）
  */
 Inline ER
@@ -90,5 +75,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®è¿å´
+ *  固定長メモリブロックの返却
  */
 Inline ER
@@ -100,5 +85,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ã®ååæå
+ *  固定長メモリプールの再初期化
  */
 Inline ER
@@ -110,7 +95,5 @@
 
 /*
- *  åºå®é·ã¡ã¢ãªãã¼ã«ã®ç¶æ
-åç
-§
+ *  固定長メモリプールの状態参照
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tISR.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tISR.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tISR.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -59,5 +44,5 @@
 
 /*
- *  å²è¾¼ã¿ãµã¼ãã«ã«ã¼ãã³æ¬ä½ã®å¼åºã
+ *  割込みサービルルーチン本体の呼出し
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInitializeRoutine.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInitializeRoutine.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInitializeRoutine.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -59,5 +44,5 @@
 
 /*
- *  åæåã«ã¼ãã³æ¬ä½ã®å¼åºã
+ *  初期化ルーチン本体の呼出し
  */
 void  tInitializeRoutine_start(intptr_t exinf)
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInterruptHandler.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInterruptHandler.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInterruptHandler.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -59,5 +44,5 @@
 
 /*
- *  å²è¾¼ã¿ãã³ãã©æ¬ä½ã®å¼åºã
+ *  割込みハンドラ本体の呼出し
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInterruptRequest_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInterruptRequest_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInterruptRequest_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  $Id$  
@@ -60,5 +45,5 @@
 
 /*
- *  å²è¾¼ã¿ã®ç¦æ­¢
+ *  割込みの禁止
  */
 Inline ER
@@ -70,5 +55,5 @@
 
 /*
- *  å²è¾¼ã¿ã®è¨±å¯
+ *  割込みの許可
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tKernel_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tKernel_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tKernel_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,7 +45,5 @@
 
 /*
- *  èªã¿ã¹ã¯ã®æ¡å¼µæ
-å ±ã®åç
-§
+ *  自タスクの拡張情報の参照
  */
 Inline ER
@@ -71,6 +54,5 @@
 
 /*
- *  èµ·åºå¾
-ã¡
+ *  起床待ち
  */
 Inline ER
@@ -81,6 +63,5 @@
 
 /*
- *  èµ·åºå¾
-ã¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  起床待ち（タイムアウトあり）
  */
 Inline ER
@@ -91,6 +72,5 @@
 
 /*
- *  èªã¿ã¹ã¯ã®é
-å»¶
+ *  自タスクの遅延
  */
 Inline ER
@@ -101,5 +81,5 @@
 
 /*
- *  èªã¿ã¹ã¯ã®çµäº
+ *  自タスクの終了
  */
 Inline ER
@@ -110,5 +90,5 @@
 
 /*
- *  ã¿ã¹ã¯çµäºã®ç¦æ­¢
+ *  タスク終了の禁止
  */
 Inline ER
@@ -119,5 +99,5 @@
 
 /*
- *  ã¿ã¹ã¯çµäºã®è¨±å¯
+ *  タスク終了の許可
  */
 Inline ER
@@ -128,7 +108,5 @@
 
 /*
- *  ã¿ã¹ã¯çµäºç¦æ­¢ç¶æ
-ã®åç
-§
+ *  タスク終了禁止状態の参照
  */
 Inline bool_t
@@ -139,5 +117,5 @@
 
 /*
- *  ã·ã¹ãã æå»ã®è¨­å®
+ *  システム時刻の設定
  */
 Inline ER
@@ -148,6 +126,5 @@
 
 /*
- *  ã·ã¹ãã æå»ã®åç
-§
+ *  システム時刻の参照
  */
 Inline ER
@@ -158,5 +135,5 @@
 
 /*
- *  ã·ã¹ãã æå»ã®èª¿æ´
+ *  システム時刻の調整
  */
 Inline ER
@@ -167,6 +144,5 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ãã®åç
-§
+ *  高分解能タイマの参照
  */
 Inline HRTCNT
@@ -177,6 +153,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®åªå
-é ä½ã®åè»¢
+ *  タスクの優先順位の回転
  */
 Inline ER
@@ -187,7 +162,5 @@
 
 /*
- *  å®è¡ç¶æ
-ã®ã¿ã¹ã¯IDã®åç
-§
+ *  実行状態のタスクIDの参照
  */
 Inline ER
@@ -198,6 +171,5 @@
 
 /*
- *  å®è¡ã§ããã¿ã¹ã¯ã®æ°ã®åç
-§
+ *  実行できるタスクの数の参照
  */
 Inline ER
@@ -208,7 +180,5 @@
 
 /*
- *  æå®ããåªå
-é ä½ã®ã¿ã¹ã¯IDã®åç
-§
+ *  指定した優先順位のタスクIDの参照
  */
 Inline ER
@@ -218,6 +188,5 @@
 }
 /*
- *  CPUã­ãã¯ç¶æ
-ã¸ã®é·ç§»
+ *  CPUロック状態への遷移
  */
 Inline ER
@@ -228,6 +197,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®è§£é¤
+ *  CPUロック状態の解除
  */
 Inline ER
@@ -238,5 +206,5 @@
 
 /*
- *  ãã£ã¹ãããã®ç¦æ­¢
+ *  ディスパッチの禁止
  */
 Inline ER
@@ -247,5 +215,5 @@
 
 /*
- *  ãã£ã¹ãããã®è¨±å¯
+ *  ディスパッチの許可
  */
 Inline ER
@@ -256,6 +224,5 @@
 
 /*
- *  ã³ã³ãã­ã¹ãã®åç
-§
+ *  コンテキストの参照
  */
 Inline bool_t
@@ -266,7 +233,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®åç
-§
+ *  CPUロック状態の参照
  */
 Inline bool_t
@@ -277,7 +242,5 @@
 
 /*
- *  ãã£ã¹ãããç¦æ­¢ç¶æ
-ã®åç
-§
+ *  ディスパッチ禁止状態の参照
  */
 Inline bool_t
@@ -288,7 +251,5 @@
 
 /*
- *  ãã£ã¹ãããä¿çç¶æ
-ã®åç
-§
+ *  ディスパッチ保留状態の参照
  */
 Inline bool_t
@@ -299,7 +260,5 @@
 
 /*
- *  ã«ã¼ãã«éåä½ç¶æ
-ã®åç
-§
+ *  カーネル非動作状態の参照
  */
 Inline bool_t
@@ -310,5 +269,5 @@
 
 /*
- *  ã«ã¼ãã«ã®çµäº
+ *  カーネルの終了
  */
 Inline ER
@@ -319,6 +278,5 @@
 
 /*
- *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã®å¤æ´
+ *  割込み優先度マスクの変更
  */
 Inline ER
@@ -329,7 +287,5 @@
 
 /*
- *  å²è¾¼ã¿åªå
-åº¦ãã¹ã¯ã®åç
-§
+ *  割込み優先度マスクの参照
  */
 Inline ER
@@ -340,6 +296,5 @@
 
 /*
- *  é«åè§£è½ã¿ã¤ãã®åç
-§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  高分解能タイマの参照（非タスクコンテキスト用）
  */
 Inline HRTCNT
@@ -350,6 +305,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®åªå
-é ä½ã®åè»¢ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  タスクの優先順位の回転（非タスクコンテキスト用）
  */
 Inline ER
@@ -360,7 +314,5 @@
 
 /*
- *  å®è¡ç¶æ
-ã®ã¿ã¹ã¯IDã®åç
-§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  実行状態のタスクIDの参照（非タスクコンテキスト用）
  */
 Inline ER
@@ -371,6 +323,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã¸ã®é·ç§»ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  CPUロック状態への遷移（非タスクコンテキスト用）
  */
 Inline ER
@@ -381,6 +332,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®è§£é¤ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  CPUロック状態の解除（非タスクコンテキスト用）
  */
 Inline ER
@@ -391,6 +341,5 @@
 
 /*
- *  ã³ã³ãã­ã¹ãã®åç
-§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  コンテキストの参照（非タスクコンテキスト用）
  */
 Inline bool_t
@@ -401,7 +350,5 @@
 
 /*
- *  CPUã­ãã¯ç¶æ
-ã®åç
-§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  CPUロック状態の参照（非タスクコンテキスト用）
  */
 Inline bool_t
@@ -412,7 +359,5 @@
 
 /*
- *  ãã£ã¹ãããç¦æ­¢ç¶æ
-ã®åç
-§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  ディスパッチ禁止状態の参照（非タスクコンテキスト用）
  */
 Inline bool_t
@@ -423,7 +368,5 @@
 
 /*
- *  ãã£ã¹ãããä¿çç¶æ
-ã®åç
-§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  ディスパッチ保留状態の参照（非タスクコンテキスト用）
  */
 Inline bool_t
@@ -434,7 +377,5 @@
 
 /*
- *  ã«ã¼ãã«éåä½ç¶æ
-ã®åç
-§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  カーネル非動作状態の参照（非タスクコンテキスト用）
  */
 Inline bool_t
@@ -445,5 +386,5 @@
 
 /*
- *  ã«ã¼ãã«ã®çµäºï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  カーネルの終了（非タスクコンテキスト用）
  */
 Inline ER
@@ -454,7 +395,5 @@
 
 /*
- *  CPUä¾å¤çºçæã®ãã£ã¹ãããä¿çç¶æ
-ã®åç
-§
+ *  CPU例外発生時のディスパッチ保留状態の参照
  */
 Inline bool_t
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tMutex_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tMutex_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tMutex_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,5 +45,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯
+ *  ミューテックスのロック
  */
 Inline ER
@@ -70,5 +55,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯ï¼ãã¼ãªã³ã°ï¼
+ *  ミューテックスのロック（ポーリング）
  */
 Inline ER
@@ -80,5 +65,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  ミューテックスのロック（タイムアウトあり）
  */
 Inline ER
@@ -90,5 +75,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ã­ãã¯è§£é¤
+ *  ミューテックスのロック解除
  */
 Inline ER
@@ -100,5 +85,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ååæå
+ *  ミューテックスの再初期化
  */
 Inline ER
@@ -110,7 +95,5 @@
 
 /*
- *  ãã¥ã¼ããã¯ã¹ã®ç¶æ
-åç
-§
+ *  ミューテックスの状態参照
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tPriorityDataqueue_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tPriorityDataqueue_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tPriorityDataqueue_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,6 +45,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡
+ *  優先度データキューへの送信
  */
 Inline ER
@@ -71,6 +55,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼
+ *  優先度データキューへの送信（ポーリング）
  */
 Inline ER
@@ -82,6 +65,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  優先度データキューへの送信（タイムアウトあり）
  */
 Inline ER
@@ -94,6 +76,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡
+ *  優先度データキューからの受信
  */
 Inline ER
@@ -105,6 +86,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ãã¼ãªã³ã°ï¼
+ *  優先度データキューからの受信（ポーリング）
  */
 Inline ER
@@ -117,6 +97,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  優先度データキューからの受信（タイムアウトあり）
  */
 Inline ER
@@ -129,6 +108,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®ååæå
+ *  優先度データキューの再初期化
  */
 Inline ER
@@ -140,8 +118,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã®ç¶æ
-åç
-§
+ *  優先度データキューの状態参照
  */
 Inline ER
@@ -153,6 +128,5 @@
 
 /*
- *  åªå
-åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  優先度データキューへの送信（ポーリング，非タスクコンテキスト用）
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tSemaphore_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tSemaphore_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tSemaphore_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,5 +45,5 @@
 
 /*
- *  ã»ããã©è³æºã®è¿å´
+ *  セマフォ資源の返却
  */
 Inline ER
@@ -70,5 +55,5 @@
 
 /*
- *  ã»ããã©è³æºã®ç²å¾
+ *  セマフォ資源の獲得
  */
 Inline ER
@@ -80,5 +65,5 @@
 
 /*
- *  ã»ããã©è³æºã®ç²å¾ï¼ãã¼ãªã³ã°ï¼
+ *  セマフォ資源の獲得（ポーリング）
  */
 Inline ER
@@ -90,5 +75,5 @@
 
 /*
- *  ã»ããã©è³æºã®ç²å¾ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ *  セマフォ資源の獲得（タイムアウトあり）
  */
 Inline ER
@@ -100,5 +85,5 @@
 
 /*
- *  ã»ããã©ã®ååæå
+ *  セマフォの再初期化
  */
 Inline ER
@@ -110,7 +95,5 @@
 
 /*
- *  ã»ããã©ã®ç¶æ
-åç
-§
+ *  セマフォの状態参照
  */
 Inline ER
@@ -122,5 +105,5 @@
 
 /*
- *  ã»ããã©è³æºã®è¿å´ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  セマフォ資源の返却（非タスクコンテキスト用）
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTask.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTask.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTask.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -59,5 +44,5 @@
 
 /*
- *  ã¿ã¹ã¯æ¬ä½ã®å¼åºã
+ *  タスク本体の呼出し
  */
 void
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTask_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTask_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTask_inline.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -60,5 +45,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®èµ·å
+ *  タスクの起動
  */
 Inline ER
@@ -70,5 +55,5 @@
 
 /*
- *  ã¿ã¹ã¯èµ·åè¦æ±ã®ã­ã£ã³ã»ã«
+ *  タスク起動要求のキャンセル
  */
 Inline ER_UINT
@@ -80,7 +65,5 @@
 
 /*
- *  ã¿ã¹ã¯ç¶æ
-ã®åç
-§
+ *  タスク状態の参照
  */
 Inline ER
@@ -92,6 +75,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®ãã¼ã¹åªå
-åº¦ã®å¤æ´
+ *  タスクのベース優先度の変更
  */
 Inline ER
@@ -103,7 +85,5 @@
 
 /*
- *  ã¿ã¹ã¯åªå
-åº¦ã®åç
-§
+ *  タスク優先度の参照
  */
 Inline ER
@@ -115,7 +95,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®ç¶æ
-åç
-§
+ *  タスクの状態参照
  */
 Inline ER
@@ -127,5 +105,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®èµ·åº
+ *  タスクの起床
  */
 Inline ER
@@ -137,5 +115,5 @@
 
 /*
- *  ã¿ã¹ã¯èµ·åºè¦æ±ã®ã­ã£ã³ã»ã«
+ *  タスク起床要求のキャンセル
  */
 Inline ER_UINT
@@ -147,7 +125,5 @@
 
 /*
- *  å¾
-ã¡ç¶æ
-ã®å¼·å¶è§£é¤
+ *  待ち状態の強制解除
  */
 Inline ER
@@ -159,7 +135,5 @@
 
 /*
- *  å¼·å¶å¾
-ã¡ç¶æ
-ã¸ã®ç§»è¡
+ *  強制待ち状態への移行
  */
 Inline ER
@@ -171,7 +145,5 @@
 
 /*
- *  å¼·å¶å¾
-ã¡ç¶æ
-ããã®åé
+ *  強制待ち状態からの再開
  */
 Inline ER
@@ -183,5 +155,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®çµäºè¦æ±ï¼»NGKI3469ï¼½
+ *  タスクの終了要求［NGKI3469］
  */
 Inline ER
@@ -193,5 +165,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®å¼·å¶çµäº
+ *  タスクの強制終了
  */
 Inline ER
@@ -203,5 +175,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®èµ·åï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  タスクの起動（非タスクコンテキスト用）
  */
 Inline ER
@@ -213,5 +185,5 @@
 
 /*
- *  ã¿ã¹ã¯ã®èµ·åºï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  タスクの起床（非タスクコンテキスト用）
  */
 Inline ER
@@ -223,7 +195,5 @@
 
 /*
- *  å¾
-ã¡ç¶æ
-ã®å¼·å¶è§£é¤ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *  待ち状態の強制解除（非タスクコンテキスト用）
  */
 Inline ER
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTerminateRoutine.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTerminateRoutine.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTerminateRoutine.c	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -59,5 +44,5 @@
 
 /*
- *  çµäºå¦çã«ã¼ãã³æ¬ä½ã®å¼åºã
+ *  終了処理ルーチン本体の呼出し
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tecs_kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tecs_kernel.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tecs_kernel.h	(revision 321)
@@ -9,47 +9,32 @@
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  $Id$
@@ -57,5 +42,5 @@
 
 /*
- *		ã«ã¼ãã«ãªãã¸ã§ã¯ãã®ã³ã³ãã¼ãã³ãåã®ããã®ããããã¡ã¤ã«
+ *		カーネルオブジェクトのコンポーネント化のためのヘッダファイル
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/Makefile
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/Makefile	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/Makefile	(revision 321)
@@ -5,49 +5,34 @@
 #   Copyright (C) 2008-2013 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: Makefile 84 2008-05-04 14:19:09Z okuma-top $
+#   $Id$
 #++
 
@@ -118,5 +103,5 @@
 
 $(GEN_TAB_DEB) : $(BNF) $(GEN_SRC) $(PLUGIN_SRC)
-	racc -v -g -o $(GEN_TAB_DEB) $(BNF)	# yydebug ãæå¹ã«ãã
+	racc -v -g -o $(GEN_TAB_DEB) $(BNF)	# yydebug を有効にする
 
 # exerb : $(EXERB_EXE)
@@ -127,6 +112,6 @@
 # $(EXERB_EXE) : $(EXERB_EXY) $(GEN_SRC) $(PLUGIN_SRC)
 #	exerb  $(EXERB_EXY)
-# tecsgen.exy.ini ãã tecsgen.exy ãçæããã®ã¯ util/release.sh ã«ããè¡ããã
-# MANIFEST ã«è¨è¼ã®ãã¼ã¸ã§ã³çªå·ããtecsgen.exy.ini ã®æå­åç½®æã«ãããåãè¾¼ã¾ãã
+# tecsgen.exy.ini から tecsgen.exy を生成するのは util/release.sh により行われる
+# MANIFEST に記載のバージョン番号が、tecsgen.exy.ini の文字列置換により、埋め込まれる
 
 exerb_check : $(EXERB_EXE)
@@ -135,10 +120,10 @@
 	@echo "### Need make_tecsgen_exerb on ActiveScriptRuby to update tecsgen.exerb ###"
 
-print_error :	# ã¨ã©ã¼ã¡ãã»ã¼ã¸ãæ¾ãåºã
+print_error :	# エラーメッセージを拾い出す
 	grep -e "Generator\.error" -e cdl_error $(LIB_PATH)/*.rb \
 		| grep -v bnf.tab.rb \
 		| sed -e "s/\s*Generator\.error(/  /" -e "s/\s*cdl_error(//" -e "s/).*$$//"
 
-print_error2 :	# ã¨ã©ã¼ã¡ãã»ã¼ã¸ãæ¾ãåºã
+print_error2 :	# エラーメッセージを拾い出す
 	grep '[^A-Z][A-VXYZ][0-9][0-9][0-9][0-9]' $(LIB_PATH)/*.rb \
 		| grep -v bnf.tab.rb \
@@ -147,5 +132,5 @@
 		| sed -e 's/\(.*\)".*/\1/'
 
-print_warning : # ã¦ã©ã¼ãã³ã°ã¡ãã»ã¼ã¸ãæ¾ãåºã
+print_warning : # ウォーニングメッセージを拾い出す
 	grep -e 'Generator\.warning' -e cdl_warning $(LIB_PATH)/*.rb \
 		| grep -v bnf.tab.rb \
@@ -153,9 +138,9 @@
 
 print_expr_token :
-	# Expression ã«å«ã¾ãããã¼ã¯ã³ãæ¾ãåºã
-	# OP_... ããå¾ãã¯å¼ã¨ã¯é¢ä¿ãªããã¼ã¯ã³
+	# Expression に含まれるトークンを拾い出す
+	# OP_... より後ろは式とは関係ないトークン
 	grep ':[A-Z]' bnf.y.rb | sed -e 's/.*\(:[A-Z]\w*\).*/\1/'
 
-print_mikan : # è¨­è¨æªå®é¨åãæ¾ãåºã
+print_mikan : # 設計未完部分を拾い出す
 	grep mikan $(LIB_PATH)/*.rb 
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/in_exerb.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/in_exerb.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/in_exerb.rb	(revision 321)
@@ -6,62 +6,47 @@
 #   Copyright (C) 2008-2015 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: in_exerb.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-# exerb çã§æåã«èª­ã¿ãã¾ãããã¡ã¤ã«
-# ãã®ãã¡ã¤ã«ãã generate.rb ãèª­ã¿ãã¾ãã
+# exerb 版で最初に読みこまれるファイル
+# このファイルから generate.rb が読みこまれる
 
 $IN_EXERB=true
 
-# ãã®å¤æ°ã¯ exerb çã®ã¿
+# この変数は exerb 版のみ
 $path = ENV[ 'PATH' ]
 
-#=== cygwin ã®ãã¹ã Windows ãã¹ã«å¤æ
-# cygpath ã³ãã³ããæ¢ãã¦ãè¦ã¤ããã°å¤æãã
-# å¤æã§ããªãã£ããã¾ãã¯å¤æå¾ã®ãã¹ãè¦ã¤ãããªãå ´åãdefault ãè¿ã
+#=== cygwin のパスを Windows パスに変換
+# cygpath コマンドを探して、見つかれば変換する
+# 変換できなかった、または変換後のパスが見つからない場合、default を返す
 def cygpath( path, default = nil )
   if ! $IN_EXERB then
@@ -96,12 +81,10 @@
 end
 
-# gcc ã®ãã¹ãè¨­å®ãã
-#  cygwin ã®ãããã¼ã¸ã§ã³ã§ã¯ gcc ã¯ gcc-3.exe ã¾ãã¯ gcc-4.exe ã¸ã®ã·ã³ããªãã¯ãªã³ã¯ã¨ãªã£ã¦ãã
-#  exerb çã§ã¯ã·ã³ããªãã¯ãªã³ã¯ãè¾¿ããªããã gcc ã® exe ãæ¢ã
-#  cygwin ã®ãªã³ã¯ã¯ãã·ã¹ãã å±æ§ãä»ããããã³ãã³ããã­ã³ããä¸ã§ã¯ dir /A:S ãæå®ããªãã¨è¡¨ç¤ºãããªã
-#  (cygwin ã®ãã¼ã¸ã§ã³ã§å®è£
-ãç°ãªããããããªã)
-#  ãã¡ã¤ã«ã®å
-é ­2ãã¤ããèª­åºã PE ãã©ã¼ãããã®ãã¸ãã¯ã«ä¸è´ãããèª¿ã¹ã
+# gcc のパスを設定する
+#  cygwin のあるバージョンでは gcc は gcc-3.exe または gcc-4.exe へのシンボリックリンクとなっている
+#  exerb 版ではシンボリックリンクを辿れないため gcc の exe を探す
+#  cygwin のリンクは、システム属性が付けられ、コマンドプロンプト上では dir /A:S を指定しないと表示されない
+#  (cygwin のバージョンで実装が異なるかもしれない)
+#  ファイルの先頭2バイトを読出し PE フォーマットのマジックに一致するか調べる
 $gcc = "gcc"
 $path.split( ";" ).each{ |path|
@@ -112,5 +95,5 @@
       begin
         magic = File.read( gcc_path, 2 )
-        if magic == "MZ"                  # ãã¸ãã¯ããã§ãã¯
+        if magic == "MZ"                  # マジックをチェック
           $gcc = gcc
           found = true
@@ -118,5 +101,5 @@
         end
       rescue
-        # magic ã®èª­åºãã«å¤±æãç¡è¦
+        # magic の読出しに失敗。無視
       end
     end
@@ -125,7 +108,7 @@
 }
 
-# cpp ã³ãã³ããè¨­å®ãã
+# cpp コマンドを設定する
 $cpp = "#{$gcc} -E -D TECSGEN"
 
-# exerb ç TECS ã¸ã§ãã¬ã¼ã¿ã®å®è¡ãéå§
+# exerb 版 TECS ジェネレータの実行を開始
 require "tecsgen.rb"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSPointer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSPointer.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSPointer.h	(revision 321)
@@ -4,47 +4,32 @@
  *   Copyright (C) 2008-2012 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$ 
@@ -99,5 +84,5 @@
 POINTER_BODY( SChar,  char_t )		/* struct SCharPointerBody */
 
-// â  TECS_NO_VAL_CHECK ã define ããã¨ãå¤ãã§ãã¯ãçç¥ãã
+// ■ TECS_NO_VAL_CHECK を define すると、値チェックを省略する
 #ifndef TECS_NO_VAL_CHECK
 #define	VALCHECK_INT(Type, TYPE, type )									\
@@ -174,14 +159,14 @@
 VALCHECK_UINT( UInt64, UINT64, uint64_t )
 #ifndef mrb_int_IS_int64
-	 // â  int 32 bit ãä»®å®ãã¦ãã. 64 bit ã§ããã° mrb_int_IS_64 ã define ãã
+	 // ■ int 32 bit を仮定している. 64 bit であれば mrb_int_IS_64 を define する
 VALCHECK_MRB_INT( Int64, INT64, int64_t )
 VALCHECK_MRB_UINT( UInt64, UINT64, uint64_t )
 #else
-#define VALCHECK_MRB_Int64      // ç¯å²ãã§ãã¯ãç¡æå³ã§ãããããè­¦åãåºãã®ãåé¿ãã
-#define VALCHECK_MRB_UInt64      // ç¯å²ãã§ãã¯ãç¡æå³ã§ãããããè­¦åãåºãã®ãåé¿ãã
+#define VALCHECK_MRB_Int64      // 範囲チェックが無意味であるため、警告が出るのを回避する
+#define VALCHECK_MRB_UInt64      // 範囲チェックが無意味であるため、警告が出るのを回避する
 #endif
 
 #ifndef TECS_NO_VAL_CHECK
-	 // â  char_t ã¯ unsigned ã¨ã¿ãªã
+	 // ■ char_t は unsigned とみなす
 static inline void
 VALCHECK_Char( mrb_state *mrb, mrb_int  val )
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSStruct.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSStruct.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSStruct.h	(revision 321)
@@ -4,47 +4,32 @@
  *   Copyright (C) 2008-2012 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$ 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyVMs.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyVMs.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyVMs.cdl	(revision 321)
@@ -2,5 +2,5 @@
 
 /*
- * tools/mruby/mruby.c ãã cInit_initializeBridge( mrb ) ãå¼ã³åºãããã«å¤æ´ãããã®
+ * tools/mruby/mruby.c から cInit_initializeBridge( mrb ) を呼び出すように変更したもの
  */
 namespace nMruby{
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tBoolPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tBoolPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tBoolPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tBoolPointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Bool, bool_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_BoolPointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tCharPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tCharPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tCharPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tCharPointer_tecsgen.h"
 
@@ -22,5 +22,5 @@
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -39,5 +39,5 @@
 	struct  RClass *c;
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	c = tecs_init_CharPointer( mrb, TECS );
 	mrb_define_method(mrb, c, "to_s", CharPointer_to_s, MRB_ARGS_NONE());
@@ -47,4 +47,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tDouble64Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tDouble64Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tDouble64Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tDouble64Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Double64, double64_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_Double64Pointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tFloat32Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tFloat32Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tFloat32Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tFloat32Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Float32, float32_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_Float32Pointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt16Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt16Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt16Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tInt16Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Int16, int16_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_Int16Pointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt32Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt32Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt32Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tInt32Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Int32, int32_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_Int32Pointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt64Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt64Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt64Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tInt64Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Int64, int64_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_Int64Pointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt8Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt8Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt8Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tInt8Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Int8, int8_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_Int8Pointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tIntPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tIntPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tIntPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tIntPointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Int, int )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_IntPointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tLongPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tLongPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tLongPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tLongPointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Long, long )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_LongPointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMruby.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMruby.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMruby.c	(revision 321)
@@ -1,6 +1,6 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
- * å¼ã³å£é¢æ° #_TCPF_#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ * 呼び口関数 #_TCPF_#
  * call port : cSerialPort  signature: sSerialPort context: task
  *   ER             cSerialPort_open( );
@@ -13,5 +13,5 @@
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tMruby_tecsgen.h"
 #include <string.h>
@@ -34,5 +34,5 @@
 
 void mrb_init_mrb(CELLCB *p_cellcb, mrb_state *mrb);
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eMrubyBody
  * entry port: eMrubyBody
@@ -93,5 +93,5 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
 
@@ -116,7 +116,7 @@
 _sbrk(size_t incr)
 {
-  // TODO: æ­£ãããã¼ããµã¤ãºãæå®ãããã¨ (EV3ã¯RAM 64MB)
+  // TODO: 正しいヒープサイズを指定すること (EV3はRAM 64MB)
   extern char __heap_start;
-  static uint32_t cs3_heap_end = &__heap_start + MEM_SIZE; // ãã¼ãã®æå¾ã¢ãã¬ã¹
+  static uint32_t cs3_heap_end = &__heap_start + MEM_SIZE; // ヒープの最後アドレス
   static char *heap_end = &__heap_start;
   char *prev_heap_end;
@@ -158,5 +158,5 @@
   char *cp;
   cp = (char*)buf;
-  /* ã·ãªã¢ã«ãã¼ããçµåããã¦ããå ´åã®ã¿å¼ã³åºã
+  /* シリアルポートが結合されている場合のみ呼び出す
   if(is_cSerialPort_joined()){
     //cSerialPort_write(buf, size);
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyProc.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyProc.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyProc.c	(revision 321)
@@ -5,10 +5,8 @@
  * A little modification is done to to call initializer registering TECS components.
  *
- * ãã®ãã¡ã¤ã«ã¯ãmruby ã®ãã®ã§ãã
- * mruby ã®ã©ã¤ã»ã³ã¹ã®ãã¨ã§ãé
-å¸ããã¾ãã(TOPPERS ã©ã¤ã»ã³ã¹ã§ã¯ããã¾ãã)
- *  åç
-§ï¼  https://github.com/mruby/mruby
- * TECS ã³ã³ãã¼ãã³ããç»é²ããåæåå­ãå¼ã¶ãããå°ãã®ä¿®æ­£ããªããã¦ãã¾ãã
+ * このファイルは、mruby のものです。
+ * mruby のライセンスのもとで、配布されます。(TOPPERS ライセンスではありません)
+ *  参照：  https://github.com/mruby/mruby
+ * TECS コンポーネントを登録する初期化子を呼ぶため、少しの修正がなされています。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyProc_1_0.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyProc_1_0.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyProc_1_0.c	(revision 321)
@@ -5,10 +5,8 @@
  * A little modification is done to to call initializer registering TECS components.
  *
- * ãã®ãã¡ã¤ã«ã¯ãmruby ã®ãã®ã§ãã
- * mruby ã®ã©ã¤ã»ã³ã¹ã®ãã¨ã§ãé
-å¸ããã¾ãã(TOPPERS ã©ã¤ã»ã³ã¹ã§ã¯ããã¾ãã)
- *  åç
-§ï¼  https://github.com/mruby/mruby
- * TECS ã³ã³ãã¼ãã³ããç»é²ããåæåå­ãå¼ã¶ãããå°ãã®ä¿®æ­£ããªããã¦ãã¾ãã
+ * このファイルは、mruby のものです。
+ * mruby のライセンスのもとで、配布されます。(TOPPERS ライセンスではありません)
+ *  参照：  https://github.com/mruby/mruby
+ * TECS コンポーネントを登録する初期化子を呼ぶため、少しの修正がなされています。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tSCharPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tSCharPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tSCharPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tSCharPointer_tecsgen.h"
 
@@ -25,5 +25,5 @@
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -42,5 +42,5 @@
 	struct RClass *c;
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	c=tecs_init_SCharPointer( mrb, TECS );
 	mrb_define_method(mrb, c, "to_s", CharPointer_to_s, MRB_ARGS_NONE());
@@ -49,4 +49,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tShortPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tShortPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tShortPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tShortPointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( Short, short )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_ShortPointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tTECSInitializer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tTECSInitializer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tTECSInitializer.c	(revision 321)
@@ -1,10 +1,10 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ #_CAAM_#
+ * 属性アクセスマクロ #_CAAM_#
  * TECS             struct RClass *  VAR_TECS        
  *
- * å¼ã³å£é¢æ° #_TCPF_#
+ * 呼び口関数 #_TCPF_#
  * call port : cInitialize  signature: nMruby_sInitializeTECSBridge context: task
  *   void           cInitialize_initializeBridge( subscript, const mrb_state* mrb, const struct RClass * TECS );
@@ -13,5 +13,5 @@
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tTECSInitializer_tecsgen.h"
 
@@ -21,5 +21,5 @@
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -44,8 +44,8 @@
 	}
 	else {
-		/* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿°ãã¾ã */
+		/* エラー処理コードをここに記述します */
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	TECS = mrb_define_module( (mrb_state *)mrb, "TECS" );
 	// mrb: const mrb_state * => mrb_state *
@@ -57,4 +57,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUCharPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUCharPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUCharPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tUCharPointer_tecsgen.h"
 
@@ -22,5 +22,5 @@
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -39,5 +39,5 @@
 	struct RClass *c;
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	c=tecs_init_UCharPointer( mrb, TECS );
 	mrb_define_method(mrb, c, "to_s", CharPointer_to_s, MRB_ARGS_NONE());
@@ -46,4 +46,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt16Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt16Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt16Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tUInt16Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( UInt16, uint16_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_UInt16Pointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt32Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt32Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt32Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tUInt32Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( UInt32, uint32_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_UInt32Pointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt64Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt64Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt64Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tUInt64Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( UInt64, uint64_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,5 +32,5 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_UInt64Pointer( mrb, TECS );
 
@@ -38,4 +38,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt8Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt8Pointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt8Pointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tUInt8Pointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( UInt8, uint8_t )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,5 +32,5 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_UInt8Pointer( mrb, TECS );
 
@@ -38,4 +38,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUIntPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUIntPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUIntPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tUIntPointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( UInt, unsigned int )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,5 +32,5 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_UIntPointer( mrb, TECS );
 
@@ -38,4 +38,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tULongPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tULongPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tULongPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tULongPointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( ULong, unsigned long )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_ULongPointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUShortPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUShortPointer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUShortPointer.c	(revision 321)
@@ -1,9 +1,9 @@
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 #include "nMruby_tUShortPointer_tecsgen.h"
 
@@ -17,5 +17,5 @@
 CHECK_AND_GET_POINTER( UShort, unsigned short )
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eInitialize
  * entry port: eInitialize
@@ -32,9 +32,9 @@
 eInitialize_initializeBridge(mrb_state* mrb, struct RClass * TECS)
 {
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	(void)tecs_init_UShortPointer( mrb, TECS );
 }
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/tMruby.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/tMruby.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/tMruby.cdl	(revision 321)
@@ -3,47 +3,32 @@
  *  Copyright (C) 2012 by Ubiquitous Computing and Networking Laboratory
  *                Ritsumeikan Univ., JAPAN
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -62,6 +47,5 @@
     };
     
-    /* writeé¢æ°ã®æ¥ç¶å
- */
+    /* write関数の接続先 */
 //    [optional] 	call sSerialPort cSerialPort;
     [optional]  call sInitializeBridge cInit;
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/PPAllocator.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/PPAllocator.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/PPAllocator.cdl	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -55,35 +40,34 @@
  * PPAlloc: Push Pop Allocator
  *
- * allocate ããéé ã§ deallocate ããªãã¦ã¯ãªããªã
- * deallocate ã¯ãã¾ã¨ãã¦è¡ããã¨ãã§ãã
- * ä¾ãã°æåã« allocate ãããé åã deallocate ããã¨ããã¹ã¦ã® allocate ãããé åã deallocate ãããã¨ã«ãªã
- * æä»å¶å¾¡ãã¦ããªãããåä¸ã®ã¿ã¹ã¯ã«å²ä»ãã¦ä½¿ç¨ãã
+ * allocate した逆順で deallocate しなくてはならない
+ * deallocate は、まとめて行うことができる
+ * 例えば最初に allocate された領域を deallocate すると、すべての allocate された領域を deallocate したことになる
+ * 排他制御していないため単一のタスクに割付けて使用する
  */
 
-[deviate]   // alloc ãé¸è±ã«ãªã
+[deviate]   // alloc が逸脱になる
 signature sPPAllocator {
 	/*
-	 * size ã§æå®ãããå¤§ããã®ã¡ã¢ãªé åãã¢ã­ã±ã¼ããã
-	 * ã¡ã¢ãªé åãç¢ºä¿ãããå ´å *ptr ã«ã¡ã¢ãªé åã®ã¢ãã¬ã¹ãæ ¼ç´ãã¦ E_OK ãè¿ã
-	 * ååãªç©ºãé åããªãå ´å E_NOMEM ãè¿ã
+	 * size で指定された大きさのメモリ領域をアロケートする
+	 * メモリ領域が確保された場合 *ptr にメモリ領域のアドレスを格納して E_OK を返す
+	 * 十分な空き領域がない場合 E_NOMEM を返す
 	 */
 	ER  alloc( [in]uint32_t size, [out]void **ptr );
 	/*
-	 * ã¡ã¢ãªããã¢ã­ã±ã¼ããã
-	 * alloc ã§ç²å¾ãããã¤ã³ã¿ãå¼ãæ° ptr ã«æå®ãã
-	 * alloc ã§ç²å¾ããã¡ã¢ãªé åã alloc ããã®ã¨ã¯éé ã« dealloc ããªãã¦ã¯ãªããªã
-	 * ãã¹ã¦ã dealloc ããã«ã¯ãæåã« alloc ãããã¡ã¢ãªé åã dealloc ãããã¨ã§è¡ããã¨ãã§ãã
-	 * alloc ãç²å¾ããã¡ã¢ãªé åããã¹ã¦ dealloc ããåã«ãåã³ alloc ãããã¨ã¯ã§ãã
-	 * ãã®å ´åã§ããdealloc ãã¦ããªãã¡ã¢ãªé åã alloc ããã®ã¨ã¯éé ã« dealloc ããªãã¦ã¯ãªããªã
+	 * メモリをデアロケートする
+	 * alloc で獲得したポインタを引き数 ptr に指定する
+	 * alloc で獲得したメモリ領域を alloc したのとは逆順に dealloc しなくてはならない
+	 * すべてを dealloc するには、最初に alloc されたメモリ領域を dealloc することで行うことができる
+	 * alloc し獲得したメモリ領域をすべて dealloc する前に、再び alloc することはできる
+	 * その場合でも、dealloc していないメモリ領域を alloc したのとは逆順に dealloc しなくてはならない
 	 *
-	 * ptr ã®å¤ã buf <= ptr < buf+allocated_size ãæºãããã©ããæ¤æ»ããã
-	 * ptr ã®å¤ãä¸æ­£ã®å ´å E_PAR ãè¿ã
+	 * ptr の値が buf <= ptr < buf+allocated_size を満たすかどうか検査される
+	 * ptr の値が不正の場合 E_PAR を返す
 	 */
 	ER  dealloc( [in]const void *ptr );
 
     /*
-	 * PPAllocator ã»ã«ã®å²ä»ãæ¸ã¿ã¡ã¢ãªããã¹ã¦è§£æ¾ãã
-	 * ãã®é¢æ°ã¯å¿
-ãæåãã
+	 * PPAllocator セルの割付け済みメモリをすべて解放する
+	 * この関数は必ず成功する
 	 */
     ER  dealloc_all(void);
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/RPCTask.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/RPCTask.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/RPCTask.cdl	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,5 +38,5 @@
 
 /*
- * unmarshaler ã® main ã®ã·ã°ããã£
+ * unmarshaler の main のシグニチャ
  */
 signature sUnmarshalerMain {
@@ -59,14 +44,14 @@
 };
 
-///////////////// å°æãã£ã³ãã«ç¨ã®å®ç¾© ////////////////
+///////////////// 専有チャンネル用の定義 ////////////////
 /*
- * CELLTYPE: å°æãã£ã³ãã«ç¨ã®ã¿ã¹ã¯ã¡ã¤ã³
+ * CELLTYPE: 専有チャンネル用のタスクメイン
  */
-celltype tRPCDedicatedTaskMain {			// Transparent RPC ã§ç¨ãã
+celltype tRPCDedicatedTaskMain {			// Transparent RPC で用いる
 	entry	sTaskBody			eMain;
 	call	sUnmarshalerMain	cMain;
 };
 
-celltype tRPCDedicatedTaskMainWithOpener {	// Opaque RPC ã§ç¨ãã
+celltype tRPCDedicatedTaskMainWithOpener {	// Opaque RPC で用いる
 	entry	sTaskBody				eMain;
 	call	sUnmarshalerMain		cMain;
@@ -79,9 +64,7 @@
 };
 
-///////////////// å
-±æãã£ã³ãã«ç¨ã®å®ç¾© ////////////////
+///////////////// 共有チャンネル用の定義 ////////////////
 /*
- * CONST: å
-±æãã£ã³ãã«ãããã®ãã¸ãã¯
+ * CONST: 共有チャンネルヘッダのマジック
  */
 const uint16_t RPC_CHANNEL_MAN_SOP_MAGIC   = (0x3141);  // Beginning of using shared channel
@@ -89,10 +72,8 @@
 
 /*
- * CELLTYPE: å
-±æãã£ã³ãã«ããã¼ã¸ã£
- * REM:      å¼ã³å
-å´ã«ç½®ããã£ã³ãã«ããã¼ã¸ã£
- *           eSemaphore ãå¼ã³åºãããã¨ããã£ã³ãã«ãã­ãã¯ããã¨ã¨ãã«ã
- *           ãã£ã³ãã«çªå·ãéåºãã
+ * CELLTYPE: 共有チャンネルマネージャ
+ * REM:      呼び元側に置くチャンネルマネージャ
+ *           eSemaphore が呼び出されたときチャンネルをロックするとともに、
+ *           チャンネル番号を送出する
  */
 celltype tRPCSharedChannelMan {
@@ -104,9 +85,7 @@
 
 /*
- * CELLTYPE: å
-±æãã£ã³ãã«ç¨ã®ã¿ã¹ã¯ã¡ã¤ã³
- * REM:      å¼ã³å
-å´ã«ç½®ãã¿ã¹ã¯
- *           ãã£ã³ãã«çªå·ãåãåºãããã£ã³ãã«çªå·ã® cTaskBody ãå¼ã³åºã
+ * CELLTYPE: 共有チャンネル用のタスクメイン
+ * REM:      呼び先側に置くタスク
+ *           チャンネル番号を取り出し、チャンネル番号の cTaskBody を呼び出す
  */
 celltype tRPCSharedTaskMain {
@@ -119,10 +98,9 @@
 
 	var {
-		int16_t	channelNo;	/* é
-åæ·»æ° + 1 */
+		int16_t	channelNo;	/* 配列添数 + 1 */
 	};
 };
 
-celltype tRPCSharedTaskMainWithOpener {	// Opaque RPC ã§ç¨ãã
+celltype tRPCSharedTaskMainWithOpener {	// Opaque RPC で用いる
 	entry	sTaskBody			eMain;
 	call	sUnmarshalerMain	cUnmarshalAndCallFunction[];
@@ -137,6 +115,5 @@
 	};
 	var {
-		int16_t	channelNo;	/* é
-åæ·»æ° + 1 */
+		int16_t	channelNo;	/* 配列添数 + 1 */
 	};
 };
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/TDR.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/TDR.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/TDR.cdl	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -57,49 +42,45 @@
 const uint32_t TDR_SOP_MAGIC1   = (0x672A);  // Client to Server
 const uint32_t TDR_SOP_MAGIC2   = (0x561E);  // Server to Client
-const uint32_t TDR_EOP_MAGIC1   = (0x5A3C);  // è¿ä¿¡ãå¾
-ã¤ (åæå¼åºã)
-const uint32_t TDR_EOP_MAGIC2   = (0x6D5E);  // è¿ä¿¡ãå¾
-ããªã(éåæå¼åºãã¾ãã¯ãªã¿ã¼ã³)
+const uint32_t TDR_EOP_MAGIC1   = (0x5A3C);  // 返信を待つ (同期呼出し)
+const uint32_t TDR_EOP_MAGIC2   = (0x6D5E);  // 返信を待たない(非同期呼出しまたはリターン)
 
 // Straight Order TDR for SharedChannel
 const uint32_t TDR_SHSOP_MAGIC1   = (0x98D5);  // Client to Server
 const uint32_t TDR_SHSOP_MAGIC2   = (0xA9E1);  // Server to Client
-const uint32_t TDR_SHEOP_MAGIC1   = (0xB5C3);  // è¿ä¿¡ãå¾
-ã¤ (åæå¼åºã)
-const uint32_t TDR_SHEOP_MAGIC2   = (0x92A1);  // è¿ä¿¡ãå¾
-ããªã(éåæå¼åºãã¾ãã¯ãªã¿ã¼ã³)
+const uint32_t TDR_SHEOP_MAGIC1   = (0xB5C3);  // 返信を待つ (同期呼出し)
+const uint32_t TDR_SHEOP_MAGIC2   = (0x92A1);  // 返信を待たない(非同期呼出しまたはリターン)
 
 /*
  * TDR: TECS Data Representation layer
  */
-[deviate]         /* get_intptr ãé¸è±ã«ãªã */
+[deviate]         /* get_intptr が逸脱になる */
 signature sTDR {  /* TECS Data Representation */
 
-	/* å¶å¾¡é¢æ° */
+	/* 制御関数 */
 
-	/* ãã£ã³ãã«ã®ãªã»ãã */
-	ER	reset( void );	/* éä¿¡ãã£ã³ãã«ã®ãªã»ãã */
-						/* éä¸­ã§ã¨ã©ã¼ãçºçããéä¿¡ã¾ãã¯åä¿¡ãç¶è¡ã§ããªãã£ãã¨ãã¯ãªã»ãããã */
-						/* ä¸æ¹ããªã»ããããããã¨ãä»æ¹ã¯ RESET ã¨ã©ã¼ãè¿ã */
-						/* ç¢ºèªã§ããªãã¨ãã¯ããã®ãã£ãã«ã¯æ¾æ£ãããããªã */
+	/* チャンネルのリセット */
+	ER	reset( void );	/* 通信チャンネルのリセット */
+						/* 途中でエラーが発生し、送信または受信を続行できなかったときはリセットする */
+						/* 一方がリセットをかけると、他方は RESET エラーを返す */
+						/* 確認できないときは、このチャネルは放棄するしかない */
 
-	/* ãã¸ãã¯ã³ã¼ãã®éåä¿¡ */
-	ER	sendSOP( [in]bool_t b_client );     /* StartOfPacket magic ãéä¿¡ */
-	ER	receiveSOP( [in]bool_t b_client );  /* StartOfPacket magic ãåä¿¡ */
-						 /* b_client: ã¯ã©ã¤ã¢ã³ãå´ãªã true, ãµã¼ãã¼å´ãªã false */
+	/* マジックコードの送受信 */
+	ER	sendSOP( [in]bool_t b_client );     /* StartOfPacket magic を送信 */
+	ER	receiveSOP( [in]bool_t b_client );  /* StartOfPacket magic を受信 */
+						 /* b_client: クライアント側なら true, サーバー側なら false */
 
-	/* ãã¸ãã¯ã³ã¼ãã®éåä¿¡ */
-	//	ER	sendSHSOP( [in]bool_t b_client );     /* StartOfPacket magic ãéä¿¡ */
-	//	ER	receiveSHSOP( [in]bool_t b_client );  /* StartOfPacket magic ãåä¿¡ */
-						 /* b_client: ã¯ã©ã¤ã¢ã³ãå´ãªã true, ãµã¼ãã¼å´ãªã false */
+	/* マジックコードの送受信 */
+	//	ER	sendSHSOP( [in]bool_t b_client );     /* StartOfPacket magic を送信 */
+	//	ER	receiveSHSOP( [in]bool_t b_client );  /* StartOfPacket magic を受信 */
+						 /* b_client: クライアント側なら true, サーバー側なら false */
 
-	ER	sendEOP( [in]bool_t b_continue );   /* EndOfPacket magic ãéä¿¡ï¼ãã±ããã®æãã ããè¡ãï¼ */
-	ER	receiveEOP( [in]bool_t b_continue );/* EndOfPacket magic ãåä¿¡ */
-                        /* b_continue: åæå¼ã³åºãã®ã¯ã©ã¤ã¢ã³ãå´ãªã true,
-                           éåæå¼ã³åºãã®ã¯ã©ã¤ã¢ã³ãå´ã¾ãã¯ãµã¼ãã¼å´ãªã false */
+	ER	sendEOP( [in]bool_t b_continue );   /* EndOfPacket magic を送信（パケットの掃きだしも行う） */
+	ER	receiveEOP( [in]bool_t b_continue );/* EndOfPacket magic を受信 */
+                        /* b_continue: 同期呼び出しのクライアント側なら true,
+                           非同期呼び出しのクライアント側またはサーバー側なら false */
 
-	/* ãã¼ã¿éåä¿¡é¢æ° */
+	/* データ送受信関数 */
 
-	/* æ´æ°å (æ¨å¥¨) */
+	/* 整数型 (推奨) */
 	ER	putInt8( [in]int8_t in ); 
 	ER	putInt16( [in]int16_t in ); 
@@ -114,5 +95,5 @@
 	ER	getInt128( [out]int128_t *out );
 
-	/* ç¡ç¬¦å·æ´æ°å (æ¨å¥¨) */
+	/* 無符号整数型 (推奨) */
 	ER	putUInt8( [in]uint8_t in ); 
 	ER	putUInt16( [in]uint16_t in ); 
@@ -127,13 +108,13 @@
 	ER	getUInt128( [out]uint128_t *out );
 
-	/* æå­åï¼æ¨å¥¨ã8bitï¼ */
+	/* 文字型（推奨、8bit） */
 	ER	putChar( [in]char_t in ); 
 	ER	getChar( [out]char_t *out ); 
 
-	/* Bool å */
+	/* Bool 型 */
 	ER	putBool( [in]bool_t in ); 
 	ER	getBool( [out]bool_t *out ); 
 
-	/* æµ®åå°æ°å */
+	/* 浮動小数型 */
 	ER	putFloat32( [in]float32_t in );
 	ER	putDouble64( [in]double64_t in );
@@ -142,5 +123,5 @@
 
 
-	/* éæ¨å¥¨ã®å(æç¬¦å·) */
+	/* 非推奨の型(有符号) */
 	ER	putSChar( [in]schar_t in );
 	ER	putShort( [in]short_t in ); 
@@ -154,5 +135,5 @@
 
 
-	/* éæ¨å¥¨ã®å(ç¡ç¬¦å·) */
+	/* 非推奨の型(無符号) */
 	ER	putUChar( [in]uchar_t in ); 
 	ER	putUShort( [in]ushort_t in ); 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/rpc.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/rpc.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/rpc.cdl	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,21 +38,20 @@
 
 /*
- * TECS RPC ã«é¢ããå®ç¾©
+ * TECS RPC に関する定義
  */
 
-/* ãã£ã³ãã« ã·ã°ããã£ */
+/* チャンネル シグニチャ */
 import( <sChannel.cdl> );
 
-/* TDR ã·ã°ããã£ & ã»ã«ã¿ã¤ã */
+/* TDR シグニチャ & セルタイプ */
 import( <TDR.cdl> );
 
-/* ãã£ã³ãã«ã»ã«ã¿ã¤ã */
-/* ãã£ã³ãã«ã»ã«ã¿ã¤ãã¯ãå¿
-è¦ãªãã®ãåã¢ããªã±ã¼ã·ã§ã³ã§ import ãã */
+/* チャンネルセルタイプ */
+/* チャンネルセルタイプは、必要なものを各アプリケーションで import する */
 // import( <tDataqueueOWChannel.cdl> );
 // import( <tSocketChannel.cdl> );
 // import( <tTINETChannel.cdl> );
 
-/* ã¿ã¹ã¯ ã»ã«ã¿ã¤ã */
+/* タスク セルタイプ */
 import( <RPCTask.cdl> );
 import( <PPAllocator.cdl> );
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/rpc_string.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/rpc_string.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/rpc_string.h	(revision 321)
@@ -6,47 +6,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -57,6 +42,6 @@
 #include <string.h>
 
-/* GenParamCopy.rb ã§çæãã STRLEN, STRNLEN é¢æ°ã®å®ç¾© */
-/* ç¾ç¶ã§ã¯ short, int, long, int128_t ããµãã¼ãããªã */
+/* GenParamCopy.rb で生成する STRLEN, STRNLEN 関数の定義 */
+/* 現状では short, int, long, int128_t をサポートしない */
 
 #define   STRLEN8( str )    strlen( (char *)str )
@@ -64,13 +49,10 @@
 /*
  * STRNLEN
- *  marshaler, unmarshaler ã¯ strnlen ãä½¿ãï¼
- *  ãããã¡ãªã¼ãã¼ã©ã³ã¸ã®èæ§ãæç¢ºã«ããããï¼
- *  ããããstrnlen ã¯ ANSI-C æ¨æºã®ã©ã¤ãã©ãªé¢æ°ã§ã¯ãªããããå®è£
-ããã¦ããªãã±ã¼ã¹ããã
- *  GNU (Linux), VC++ ã§ã¯ä½¿ç¨ã§ããããMacOS ã§ã¯ä½¿ç¨ã§ããªã
- *  ï¼ä»ã®çµè¾¼ã¿ç¨ OS ã§ã®å®è£
-ç¶æ³ãä¸æï¼
- *  å°ããªé¢æ°ã§ããã®ã§ inline é¢æ°ã¨ãã¦å®è£
-ãã¦ãã
+ *  marshaler, unmarshaler は strnlen を使う．
+ *  バッファオーバーランへの耐性を明確にするため．
+ *  しかし、strnlen は ANSI-C 標準のライブラリ関数ではないため、実装されていないケースがある
+ *  GNU (Linux), VC++ では使用できるが、MacOS では使用できない
+ *  （他の組込み用 OS での実装状況も不明）
+ *  小さな関数ですむので inline 関数として実装しておく
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/sChannel.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/sChannel.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/sChannel.cdl	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -58,17 +43,17 @@
 
 signature	sChannel {
-	/* éã */
+	/* 送る */
 	ER		send( [in,size_is(size)] const int8_t  *buf, [in]int16_t  size, [in]TMO tmo );
-	/* éä¿¡çµããã®æãåºãï¼ãã±ããã®çµããã§ä¸åã ãå¼åºã */
-	ER		flush( [in]TMO tmo );       /* ãããã¡ãªã³ã°ãã¦ããå ´åã®æãã ã */
+	/* 送信終わりの掃き出し（パケットの終わりで一回だけ呼出す */
+	ER		flush( [in]TMO tmo );       /* バッファリングしている場合の掃きだし */
 
-	/* åãåã */
+	/* 受け取る */
 	ER_UINT	receive( [out,size_is(size)] int8_t  *buf, [in]int16_t  size, [in]TMO tmo );
 
-	/* ãã±ããã®çµããã¾ã§åä¿¡ãã (flush ã®é)ãçµããã«éãã¦ããªãå ´å E_ILUSE */
+	/* パケットの終わりまで受信した (flush の逆)。終わりに達していない場合 E_ILUSE */
 	ER		end_receive( void );
 
-	/* ãªã»ãã */
-	ER		reset( void );       /* ãã£ã³ãã«ããªã»ãã */
+	/* リセット */
+	ER		reset( void );       /* チャンネルをリセット */
 };
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/sRPCErrorHandler.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/sRPCErrorHandler.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/sRPCErrorHandler.cdl	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -81,12 +66,9 @@
 
 /*
- * å¼ã³å
-å´ã§ã¯ state ã RPCSTATE_CLIENT_EXEC ã¨ç­ãããå¤§ããå ´åã
- * å¼ã³å
-å´ã§ã¯ state ã RPCSTATE_SERVER_EXEC ã¨ç­ãããå¤§ããå ´åã
- * å¼ã³å
-é¢æ°ã®å¼ã³åºãã«ã¯æåãã¦ããã
+ * 呼び元側では state が RPCSTATE_CLIENT_EXEC と等しいか大きい場合、
+ * 呼び先側では state が RPCSTATE_SERVER_EXEC と等しいか大きい場合、
+ * 呼び先関数の呼び出しには成功している。
  *
- * RPCErrorHandler ãå¼ã³åºãããæç¹ã§ãsend/receive å¼æ°ã®è§£æ¾ã¯çµãã£ã¦ããã
- * ãã®ãããRPCErrorHandler ã®ä¸­ã§å¦çãæã¡åã£ã¦ã(ã¿ã¹ã¯ã®åèµ·åãªã©ãè¡ã£ã¦ã)ããããã«ããã¡ã¢ãªãªã¼ã¯ãèµ·ããªãã
+ * RPCErrorHandler が呼び出された時点で、send/receive 引数の解放は終わっている。
+ * このため、RPCErrorHandler の中で処理を打ち切っても(タスクの再起動などを行っても)、それらによるメモリリークが起きない。
  */
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tDataqueueAdaptor_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tDataqueueAdaptor_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tDataqueueAdaptor_inline.h	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,10 +38,10 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
  * #[</PREAMBLE>]# */
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eChannel
  * entry port: eChannel
@@ -82,5 +67,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 
 	return(ercd);
@@ -104,5 +89,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 
 	return(ercd);
@@ -126,5 +111,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	cEventflag_clear( 0 );
 
@@ -150,5 +135,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	ercd = 0;
 	for( i = 0; i < size; i++ )
@@ -175,5 +160,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 
 	return(ercd);
@@ -199,5 +184,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	/* printf( "DQA: receive(%d) ", size ); */
 	for( i = 0; i < size; i++ ){
@@ -230,7 +215,7 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
-
-	return(ercd);
-}
-
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tDataqueueOWChannel.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tDataqueueOWChannel.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tDataqueueOWChannel.cdl	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -71,5 +56,5 @@
 	entry sEventflag eEventflag;
 	attr {
-		// Queue ã®ããã©ã«ãã®ãµã¤ãº
+		// Queue のデフォルトのサイズ
 		uint_t	queueSize = 64;
 	};
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tNBOTDR_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tNBOTDR_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tNBOTDR_inline.h	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,11 +38,11 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ #_CAAM_#
+ * 属性アクセスマクロ #_CAAM_#
  * tmo              TMO              VAR_tmo         
  *
- * å¼ã³å£é¢æ° #_TCPF_#
+ * 呼び口関数 #_TCPF_#
  * call port: cChannel signature: sChannel context:task 
  *   ER             cChannel_send( const int8_t* buf, int16_t size, TMO tmo );
@@ -75,7 +60,6 @@
 
 /*
- * marhaler, unmarshaler ãä½¿ç¨ãã STRLEN é¢æ°ãå®ç¾©ãã
- *  marshaler, unmarshaler ã¯å¿
-ã TDR ã¯ ã«çµåããããã
+ * marhaler, unmarshaler が使用する STRLEN 関数を定義する
+ *  marshaler, unmarshaler は必ず TDR は に結合されるため
  */
 #include	"rpc_string.h"
@@ -105,9 +89,8 @@
 
 /*
- * ç¡èª¿æ´åã ããããããæ«å®çãªå®è£
-ã«ãªã£ã¦ãã
- * ã»ntohX(), htonX() ã¯ int64_t åã«å®ç¾©ããã¦ãã (32bitãªããªã¼ããããå¤§)
- * ã»int128_t, uint128_t ã¯ tecs.h ã§ typedef ãããåã§ãã
- * ã»BIGENDIAN å¤å®ã¯åçã«ãªã£ã¦ãã (æããæé©åã§å®æ°å¤å®ã«ããããã¨ã¯ãªã)
+ * 無調整型だが、いくらか暫定的な実装になっている
+ * ・ntohX(), htonX() は int64_t 型に定義されている (32bitならオーバヘッド大)
+ * ・int128_t, uint128_t は tecs.h で typedef された型である
+ * ・BIGENDIAN 判定は動的になっている (恐らく最適化で定数判定にされることはない)
  */
 
@@ -120,5 +103,5 @@
 #define	IS_BIGENDIAN()	(0)
 #else
-/* BIGENDIAN ãã©ããèªåå¤å® */
+/* BIGENDIAN かどうか自動判定 */
 static const uint16_t	endian_check = 0xff00;
 #define	IS_BIGENDIAN()	(*(uint8_t *)&endian_check)
@@ -302,6 +285,5 @@
 		return d;
 	else{
-		/* ãã®å®è£
-ã¯ tecs.h ã§ typedef ãã int128_t ã«é©å */
+		/* この実装は tecs.h で typedef した int128_t に適合 */
 		int128_t d1;
 		d1.hi = hton64( d.lo );
@@ -370,5 +352,5 @@
 }
 
-/*** unsigned ç¨ã®é¢æ° (128 bit çã®ã¿ç¨æ) ***/
+/*** unsigned 用の関数 (128 bit 版のみ用意) ***/
 Inline int128_t
 ntoh128( int128_t d )
@@ -377,6 +359,5 @@
 		return d;
 	else{
-		/* ãã®å®è£
-ã¯ tecs.h ã§ typedef ãã int128_t ã«é©å */
+		/* この実装は tecs.h で typedef した int128_t に適合 */
 		int128_t d1;
 		d1.hi = ntoh64( d.lo );
@@ -392,6 +373,5 @@
 		return d;
 	else{
-		/* ãã®å®è£
-ã¯ tecs.h ã§ typedef ãã int128_t ã«é©å */
+		/* この実装は tecs.h で typedef した int128_t に適合 */
 		uint128_t d1;
 		d1.hi = hton64( d.lo );
@@ -407,6 +387,5 @@
 		return d;
 	else{
-		/* ãã®å®è£
-ã¯ tecs.h ã§ typedef ãã int128_t ã«é©å */
+		/* この実装は tecs.h で typedef した int128_t に適合 */
 		uint128_t d1;
 		d1.hi = ntoh64( d.lo );
@@ -417,5 +396,5 @@
 
 /************************************************
- *  htonX, ntohX ã¯ 16, 32, 64 ã«ã®ã¿å¯¾å¿ã§ãã *
+ *  htonX, ntohX は 16, 32, 64 にのみ対応できる *
  ************************************************/
 Inline int64_t
@@ -441,5 +420,5 @@
 }
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eTDR
  * entry port: eTDR
@@ -465,5 +444,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 
 	syslog( LOG_INFO, "TDR: resetting channel" );
@@ -491,5 +470,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 #ifdef RPC_DEBUG
 	syslog(LOG_INFO, "eTDR_sendSOP(b_client=%d)", b_client);
@@ -501,15 +480,15 @@
 
 	/*
-	 * SOP ãã±ããã®éä¿¡
-	 * ãã±ããã·ã¼ã±ã³ã¹ãå¤å°å´©ãã¦ãåå¾©ã§ããããã«ããã¤ãåä½ã§éã
-	 * ä¸ä½ãã¤ããä¸ä½ãã¤ãã®é ã«éã
+	 * SOP パケットの送信
+	 * パケットシーケンスが多少崩れても回復できるように、バイト単位で送る
+	 * 上位バイト、下位バイトの順に送る
 	 */
 
 	val = (uint8_t)(sopMagic>>8);
-	ercd = eTDR_putUInt8( idx, val );		/* ä¸ä½8ããã */
+	ercd = eTDR_putUInt8( idx, val );		/* 上位8ビット */
 	if( ercd != E_OK )
 		return	ercd;
 
-	val = (uint8_t)(sopMagic&0xff);			/* ä¸ä½8ããã */
+	val = (uint8_t)(sopMagic&0xff);			/* 下位8ビット */
 	ercd = eTDR_putUInt8( idx, val );
 
@@ -537,5 +516,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 #ifdef RPC_DEBUG
 	syslog(LOG_INFO, "eTDR_receiveSOP(b_client=%d)", b_client);
@@ -582,5 +561,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 #ifdef RPC_DEBUG
 	syslog(LOG_INFO, "eTDR_sendEOP(b_continue=%d)", b_continue);
@@ -592,5 +571,5 @@
 		magic = TDR_EOP_MAGIC2;
 
-	/* EOP magic ã®éä¿¡ */
+	/* EOP magic の送信 */
 	if( (ercd = eTDR_putUInt16( idx, magic )) != E_OK )
 		return ercd;
@@ -618,5 +597,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 #ifdef RPC_DEBUG
 	syslog(LOG_INFO, "eTDR_receiveEOP(b_continue=%d)",b_continue);
@@ -651,5 +630,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -671,5 +650,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	in = hton16( in );
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
@@ -692,5 +671,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	in = hton32( in );
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
@@ -713,5 +692,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	in = hton64( in );
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
@@ -734,5 +713,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	in = hton128( in );
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
@@ -756,5 +735,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -778,5 +757,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	*out = ntoh16( *out );
@@ -801,5 +780,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	*out = ntoh32( *out );
@@ -824,5 +803,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	*out = ntoh64( *out );
@@ -847,5 +826,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	*out = ntoh128( *out );
@@ -869,5 +848,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -889,5 +868,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	in = hton16( in );
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
@@ -910,5 +889,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	in = hton32( in );
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
@@ -931,5 +910,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	in = hton64( in );
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
@@ -952,5 +931,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	in = hton128u( in );
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
@@ -974,5 +953,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -996,5 +975,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	*out = ntoh16( *out );
@@ -1019,5 +998,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	*out = ntoh32( *out );
@@ -1042,5 +1021,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	*out = ntoh64( *out );
@@ -1065,5 +1044,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	*out = ntoh128u( *out );
@@ -1087,5 +1066,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -1108,5 +1087,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1130,5 +1109,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	eTDR_putUInt8(idx, (uint8_t)(in != 0) );
 
@@ -1154,5 +1133,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	ercd = eTDR_getUInt8(idx, &val );
 	if( ercd != E_OK )
@@ -1180,5 +1159,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	val = hton32( *(int32_t*)&in );
 	return cChannel_send( (int8_t *)&val, (int16_t)sizeof( val ), VAR_tmo );
@@ -1202,5 +1181,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
     val = *(int64_t *)&in;
 	val = hton64( val );
@@ -1226,5 +1205,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)&val, (int16_t)sizeof( val ), VAR_tmo );
 	val = ntoh32( val );
@@ -1251,5 +1230,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)&val, (int16_t)sizeof( val ), VAR_tmo );
 	val = ntoh64( val );
@@ -1274,5 +1253,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -1295,5 +1274,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	IN = HTONS( IN, sizeof IN );
 	return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo );
@@ -1317,5 +1296,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	IN = HTONI( IN, sizeof IN );
 	return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo );
@@ -1339,5 +1318,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	IN = HTONL( IN, sizeof IN );
 	return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo );
@@ -1361,5 +1340,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1384,5 +1363,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo );
 	*out = NTOHS( OUT, sizeof OUT );
@@ -1408,5 +1387,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo );
 	*out = NTOHI( OUT, sizeof OUT );
@@ -1432,5 +1411,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo );
 	*out = NTOHL( OUT, sizeof OUT );
@@ -1454,5 +1433,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -1475,5 +1454,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	IN = HTONS( IN, sizeof IN );
 	return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo );
@@ -1497,5 +1476,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	IN = HTONI( IN, sizeof IN );
 	return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo );
@@ -1519,5 +1498,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	IN = HTONL( IN, sizeof IN );
 	return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo );
@@ -1541,5 +1520,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1564,5 +1543,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo );
 	*out = NTOHS( OUT, sizeof OUT );
@@ -1588,5 +1567,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo );
 	*out = NTOHI( OUT, sizeof OUT );
@@ -1612,5 +1591,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo );
 	*out = NTOHL( OUT, sizeof OUT );
@@ -1635,5 +1614,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	IN = HTONIP( IN, sizeof IN );
 	return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo );
@@ -1658,5 +1637,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo );
 	*ptr = NTOHIP( OUT, sizeof OUT );
@@ -1665,4 +1644,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tPPAllocator.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tPPAllocator.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tPPAllocator.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,8 +38,8 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ #_CAAM_#
+ * 属性アクセスマクロ #_CAAM_#
  * heap_size        uint32_t         ATTR_heap_size  
  * buf              int8_t*          VAR_buf         
@@ -70,5 +55,5 @@
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# ePPAllocator
  * entry port: ePPAllocator
@@ -94,5 +79,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	if( size + VAR_allocatedSize > ATTR_heapSize ){
 		ercd = E_NOMEM;
@@ -123,5 +108,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	if( (uintptr_t)ptr < (uintptr_t)VAR_buf || (uintptr_t)ptr >= (uintptr_t)(VAR_buf+VAR_allocatedSize) ){
 		ercd = E_PAR;
@@ -151,5 +136,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	VAR_allocatedSize = 0;
 
@@ -158,4 +143,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCDedicatedTaskMain.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCDedicatedTaskMain.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCDedicatedTaskMain.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,8 +38,8 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å¼ã³å£é¢æ° #_TCPF_#
+ * 呼び口関数 #_TCPF_#
  * call port : cMain  signature: sTaskBody context: task
  *   void           cMain_main( );
@@ -69,5 +54,5 @@
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eMain
  * entry port: eMain
@@ -89,8 +74,8 @@
 	}
 	else {
-		/* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿°ãã¾ã */
+		/* エラー処理コードをここに記述します */
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	while( cMain_main() == E_OK ){
 	}
@@ -98,4 +83,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCDedicatedTaskMainWithOpener.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCDedicatedTaskMainWithOpener.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCDedicatedTaskMainWithOpener.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,8 +38,8 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å¼ã³å£é¢æ° #_TCPF_#
+ * 呼び口関数 #_TCPF_#
  * call port : cMain  signature: sTaskBody context: task
  *   void           cMain_main( );
@@ -69,5 +54,5 @@
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eMain
  * entry port: eMain
@@ -91,8 +76,8 @@
 	}
 	else {
-		/* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿°ãã¾ã */
+		/* エラー処理コードをここに記述します */
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	while(1){
 #ifdef RPC_DEBUG
@@ -111,4 +96,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCSharedChannelMan.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCSharedChannelMan.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCSharedChannelMan.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,8 +38,8 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å¼ã³å£é¢æ° #_TCPF_#
+ * 呼び口関数 #_TCPF_#
  * call port : cSemaphore  signature: sSemaphore context: task
  *   ER             cSemaphore_signal( );
@@ -104,5 +89,5 @@
 
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eSemaphore
  * entry port: eSemaphore
@@ -128,5 +113,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	cClientSideTDR_putInt16( RPC_CHANNEL_MAN_EOP_MAGIC );
 	ercd = cSemaphore_signal();
@@ -153,5 +138,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	ercd = cSemaphore_wait();
 	if( ercd == E_OK ){
@@ -182,5 +167,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	ercd = cSemaphore_waitPolling();
 	if( ercd == E_OK ){
@@ -209,5 +194,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	ercd = cSemaphore_waitTimeout(timeout);
 	if( ercd == E_OK ){
@@ -238,5 +223,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 
 	return(ercd);
@@ -260,5 +245,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 
 	return(ercd);
@@ -266,4 +251,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCSharedTaskMain.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCSharedTaskMain.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCSharedTaskMain.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,11 +38,11 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ #_CAAM_#
+ * 属性アクセスマクロ #_CAAM_#
  * channelNo        int16_t          VAR_channelNo   
  *
- * å¼ã³å£é¢æ° #_TCPF_#
+ * 呼び口関数 #_TCPF_#
  * call port : cUnmarshalAndCallFunction  signature: sTaskBody context: task
  *   void           cUnmarshalAndCallFunction_main( subscript );
@@ -108,5 +93,5 @@
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eMain
  * entry port: eMain
@@ -128,8 +113,8 @@
 	}
 	else {
-		/* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿°ãã¾ã */
+		/* エラー処理コードをここに記述します */
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	syslog( LOG_INFO, "Shared RPC server task started." );
 	while(1){
@@ -172,4 +157,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCSharedTaskMainWithOpener.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCSharedTaskMainWithOpener.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tRPCSharedTaskMainWithOpener.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,20 +38,20 @@
 
 /*
- * ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ãããã³ãã¬ã¼ãã¨ãã¦èªåçæããã¾ãã
- * ãã®ãã¡ã¤ã«ãç·¨éãã¦ä½¿ç¨ãããã¨ãæå³ããã¦ãã¾ãã
- * tecsgen ã®åå®è¡ã«ããä¸æ¸ãããã¦ãã¾ããããéå¸¸
+ * このファイルは tecsgen によりテンプレートとして自動生成されました
+ * このファイルを編集して使用することが意図されていますが
+ * tecsgen の再実行により上書きされてしまうため、通常
  *   gen/tRPCSharedTaskMainWithOpener_template.c => src/tRPCSharedTaskMainWithOpener.c
- * ã®ããã«åå, ãã©ã«ããå¤æ´ãã¦ããä¿®æ­£ãã¾ã
+ * のように名前, フォルダを変更してから修正します
  */
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ #_CAAM_#
+ * 属性アクセスマクロ #_CAAM_#
  * initialDelay     RELTIM           ATTR_initialDelay
  * reopenDelay      RELTIM           ATTR_reopenDelay
  * channelNo        int16_t          VAR_channelNo   
  *
- * å¼ã³å£é¢æ° #_TCPF_#
+ * 呼び口関数 #_TCPF_#
  * call port : cUnmarshalAndCallFunction  signature: sTaskBody context: task
  *   void           cUnmarshalAndCallFunction_main( subscript );
@@ -118,5 +103,5 @@
  * #[</PREAMBLE>]# */
 
-/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã */
+/* プロトタイプ宣言や変数の定義をここに書きます */
 #include "tRPCSharedTaskMainWithOpener_tecsgen.h"
 
@@ -126,5 +111,5 @@
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eMain
  * entry port: eMain
@@ -147,10 +132,10 @@
 	}
 	else {
-		/* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿°ãã¾ã */
+		/* エラー処理コードをここに記述します */
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	delay( ATTR_initialDelay );
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	while(1){
 #ifdef RPC_DEBUG
@@ -202,4 +187,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tSocketChannel.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tSocketChannel.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tSocketChannel.cdl	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -56,5 +41,5 @@
 signature sSocketClientOpener {
 	ER		open( [in,string]const char_t *serverAddr, [in]uint16_t portNo, [in]TMO tmo );
-	ER		simpleOpen( [in]TMO tmo );      // attr ã®è¨­å®ã«å¾ã£ã¦éã
+	ER		simpleOpen( [in]TMO tmo );      // attr の設定に従って開く
 	ER		close( [in]TMO tmo );
 };
@@ -64,5 +49,5 @@
 	entry	sSocketClientOpener	eOpener;
 	attr {
-		// simpleOpen ã§ç¨ããããã¢ãã¬ã¹ããã³ãã¼ãçªå·
+		// simpleOpen で用いられるアドレスおよびポート番号
 		int16_t	portNo = SOCKET_DEFAULT_PORT_NO;
 		char_t  *serverAddr = "127.0.0.1";       // Loop back address
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tSocketClient.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tSocketClient.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tSocketClient.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -74,9 +59,9 @@
 
 #ifndef E_OK
-#define	E_OK	0		/* æ­£å¸¸çµäº */
-#define	E_ID	(-18)	/* ä¸æ­£IDçªå· */
+#define	E_OK	0		/* 正常終了 */
+#define	E_ID	(-18)	/* 不正ID番号 */
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eC0
  * entry port: eC0
@@ -104,6 +89,6 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
-	// mikan BUG  buf ã®ä½ç½®ãæ´æ°ãã¦ããªã
+	/* ここに処理本体を記述します */
+	// mikan BUG  buf の位置を更新していない
 	while(size>0){
 		if((sz=write( VAR_sd, buf, (ssize_t)size )) < 0 ){
@@ -140,6 +125,6 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
-	/* write ã¯ãããã¡ãªã³ã°ãªããªã®ã§ flush ããªã */
+	/* ここに処理本体を記述します */
+	/* write はバッファリングなしなので flush しない */
 
 	return(ercd);
@@ -164,5 +149,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 	sz = read( VAR_sd, buf, (ssize_t)size );
 	ercd = errno2ER( errno );
@@ -178,6 +163,5 @@
 	}
 #endif
-	/* mikan ä¸çºã§å
-¨ã¦èª­ããã¨ä»®å® */
+	/* mikan 一発で全て読めると仮定 */
 	if( sz >= 0 )
 		ercd = sz;
@@ -203,5 +187,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 
 	return(ercd);
@@ -225,5 +209,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 
 	return(ercd);
@@ -256,5 +240,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	soc=socket(AF_INET, SOCK_STREAM, 0);
 	if(soc<0){
@@ -265,5 +249,5 @@
 
 #if 0
-/* ãã³ãã­ãã¯ã«å¤æ´ */
+/* ノンブロックに変更 */
 	int flag=fcntl(soc, F_GETFL, 0);
 	if(flag<0) perror("fcntl(GET) error");
@@ -286,12 +270,12 @@
 	if(errno!=EINPROGRESS)
 		perror("connect error");
-	//EINPROGRESS:ã³ãã¯ã·ã§ã³è¦æ±ã¯å§ã¾ã£ãããã¾ã å®äºãã¦ããªã
+	//EINPROGRESS:コネクション要求は始まったが、まだ完了していない
 
 	fd_set rmask,wmask;FD_ZERO(&rmask);FD_SET(soc,&rmask);wmask=rmask;
-	struct timeval tv={ ã¿ã¤ã ã¢ã¦ãæé[ç§],[Î¼ç§] };
+	struct timeval tv={ タイムアウト時間[秒],[μ秒] };
 	int rc=select(soc+1, &rmask, &wmask, NULL, &tv);
 	if(rc<0) perror("connect-select error");
-	if(rc==0){ ã¿ã¤ã ã¢ã¦ãå¦ç }
-	if(rc==2){ //èª­ã¿æ¸ããåæã«åºæ¥ãå ´å
+	if(rc==0){ タイムアウト処理 }
+	if(rc==2){ //読み書きが同時に出来る場合
 #if Solaris
 		int val;
@@ -303,12 +287,11 @@
 			if(getpeername(soc,(struct sockaddr*)&name,&len)>=0) {
 #endif
-				// æ¢ã«ãã¼ã¿ãæ¥ã¦ãã
+				// 既にデータが来ている
 			}else{
-				// ã³ãã¯ãå¤±æ
+				// コネクト失敗
 			}
 		}
 	}
-//ãã©ã°ãå
-ã«æ»ã
+//フラグを元に戻す
 	if(fcntl(soc, F_SETFL, flag)<0) perror("fcntl(END) error");
 #endif /* 0 */
@@ -357,6 +340,6 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
-	close( VAR_sd );       /* mikan ã¨ã©ã¼å¦ç */
+	/* ここに処理本体を記述します #_TEFB_# */
+	close( VAR_sd );       /* mikan エラー処理 */
 
 	return(ercd);
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tSocketServer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tSocketServer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tSocketServer.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,8 +38,8 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ #_CAAM_#
+ * 属性アクセスマクロ #_CAAM_#
  * portNo           int16_t          ATTR_portNo    
  * sd               int_t            VAR_sd          
@@ -73,10 +58,10 @@
 
 #ifndef E_OK
-#define	E_OK	0		/* æ­£å¸¸çµäº */
-#define	E_ID	(-18)	/* ä¸æ­£IDçªå· */
+#define	E_OK	0		/* 正常終了 */
+#define	E_ID	(-18)	/* 不正ID番号 */
 #endif
 
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eC1
  * entry port: eC1
@@ -104,5 +89,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 #ifdef DEBUG
 	syslog( LOG_INFO, "tSocketServer: send" );
@@ -147,5 +132,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 
 	return(ercd);
@@ -171,5 +156,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 	if( (sz=read( VAR_sd, buf, (size_t)size )) < 0 )
 		ercd = errno2ER( errno );
@@ -197,5 +182,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 
 	return(ercd);
@@ -219,5 +204,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 	syslog( LOG_INFO, "tSocketServer: reset" );
 
@@ -251,5 +236,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	syslog( LOG_INFO, "tSocketServer: open" );
 
@@ -306,5 +291,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	syslog( LOG_INFO, "tSocketServer: close" );
 	if( close( VAR_sd ) < 0 )
@@ -315,4 +300,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTDR_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTDR_inline.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTDR_inline.h	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,8 +38,8 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ #_CAAM_#
+ * 属性アクセスマクロ #_CAAM_#
  * tmo              TMO              VAR_tmo         
  *
@@ -62,11 +47,10 @@
 
 /*
- * marhaler, unmarshaler ãä½¿ç¨ãã STRLEN é¢æ°ãå®ç¾©ãã
- *  marshaler, unmarshaler ã¯å¿
-ã TDR ã¯ ã«çµåããããã
+ * marhaler, unmarshaler が使用する STRLEN 関数を定義する
+ *  marshaler, unmarshaler は必ず TDR は に結合されるため
  */
 #include	"rpc_string.h"
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eTDR
  * entry port: eTDR
@@ -119,5 +103,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 #ifdef RPC_DEBUG
 	syslog(LOG_INFO, "eTDR_sendSOP(b_client=%d)", b_client);
@@ -129,7 +113,7 @@
 
 	/*
-	 * SOP ãã±ããã®éä¿¡
-	 * ãã±ããã·ã¼ã±ã³ã¹ãå¤å°å´©ãã¦ãåå¾©ã§ããããã«ããã¤ãåä½ã§éã
-	 * ä¸ä½ã¢ãã¬ã¹ãä¸ä½ã¢ãã¬ã¹ã®é ã«éã
+	 * SOP パケットの送信
+	 * パケットシーケンスが多少崩れても回復できるように、バイト単位で送る
+	 * 下位アドレス、上位アドレスの順に送る
 	 */
 
@@ -168,5 +152,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 #ifdef RPC_DEBUG
 	syslog(LOG_INFO, "eTDR_receiveSOP(b_client=%d)", b_client);
@@ -215,5 +199,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 #ifdef RPC_DEBUG
 	syslog(LOG_INFO, "eTDR_sendEOP(b_continue=%d)", b_continue);
@@ -225,5 +209,5 @@
 		magic = TDR_EOP_MAGIC2;
 
-	/* EOP magic ã®éä¿¡ */
+	/* EOP magic の送信 */
 	if( (ercd = eTDR_putInt16( idx, (int16_t)magic )) != E_OK )
 		return ercd;
@@ -251,5 +235,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 #ifdef RPC_DEBUG
 	syslog(LOG_INFO, "eTDR_receiveEOP(b_continue=%d)",b_continue);
@@ -284,5 +268,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -304,5 +288,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -324,5 +308,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -344,5 +328,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -364,5 +348,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -385,5 +369,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -407,5 +391,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -429,5 +413,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -451,5 +435,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -473,5 +457,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -494,5 +478,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -514,5 +498,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -534,5 +518,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -554,5 +538,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -574,5 +558,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -595,5 +579,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -617,5 +601,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -639,5 +623,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -661,5 +645,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -683,5 +667,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -705,5 +689,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	eTDR_putUInt8(idx, (uint8_t)(in != 0) );
 
@@ -729,5 +713,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	ercd = eTDR_getUInt8(idx, &val );
 	if( ercd != E_OK )
@@ -754,5 +738,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -774,5 +758,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -795,5 +779,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -817,5 +801,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -838,5 +822,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -859,5 +843,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -880,5 +864,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -900,5 +884,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -920,5 +904,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -940,5 +924,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -961,5 +945,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -983,5 +967,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1005,5 +989,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1027,5 +1011,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1048,5 +1032,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -1068,5 +1052,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -1088,5 +1072,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -1108,5 +1092,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo );
 }
@@ -1129,5 +1113,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1151,5 +1135,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1173,5 +1157,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1195,5 +1179,5 @@
 	} /* end if VALID_IDX(idx) */
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR );
@@ -1216,5 +1200,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	return cChannel_send( (int8_t *)&ptr, (int16_t)sizeof( ptr ), VAR_tmo );
 }
@@ -1237,5 +1221,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	er_sz = cChannel_receive( (int8_t *)ptr, (int16_t)sizeof( *ptr ), VAR_tmo );
 	return  er_sz < 0 ? er_sz : ( er_sz == sizeof( *ptr ) ? E_OK : E_BOVR );
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETChannel.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETChannel.cdl	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETChannel.cdl	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETClient.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETClient.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETClient.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,8 +38,8 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ #_CAAM_#
+ * 属性アクセスマクロ #_CAAM_#
  * cep_id           ID               ATTR_cep_id     
  *
@@ -71,9 +56,9 @@
 
 #ifndef E_OK
-#define	E_OK	0		/* æ­£å¸¸çµäº */
-#define	E_ID	(-18)	/* ä¸æ­£IDçªå· */
+#define	E_OK	0		/* 正常終了 */
+#define	E_ID	(-18)	/* 不正ID番号 */
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eC0
  * entry port: eC0
@@ -101,5 +86,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 #ifdef DEBUG
 	syslog( LOG_INFO, "tTINETServer: send" );
@@ -144,6 +129,6 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
-	/* write ã¯ãããã¡ãªã³ã°ãªããªã®ã§ flush ããªã */
+	/* ここに処理本体を記述します */
+	/* write はバッファリングなしなので flush しない */
 
 	return(ercd);
@@ -168,5 +153,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 	ercd = tcp_rcv_dat( ATTR_cep_id, buf, (size_t)size, tmo );
 
@@ -191,5 +176,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 
 	return(ercd);
@@ -213,5 +198,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 
 	return(ercd);
@@ -241,5 +226,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	puts("opening");
 	ercd=tcp_con_cep(ATTR_cep_id, NADR, clientAddr, tmo);
@@ -269,6 +254,6 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
-	ercd = tcp_cls_cep( ATTR_cep_id, 0 );       /* mikan ã¨ã©ã¼å¦ç */
+	/* ここに処理本体を記述します #_TEFB_# */
+	ercd = tcp_cls_cep( ATTR_cep_id, 0 );       /* mikan エラー処理 */
 
 	return(ercd);
@@ -276,4 +261,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETServer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETServer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETServer.c	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -53,12 +38,12 @@
 
 /* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
  *
- * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ #_CAAM_#
+ * 属性アクセスマクロ #_CAAM_#
  * cep_id           ID               ATTR_cep_id     
  * rep_id           ID               ATTR_rep_id     
  *
- * å¼ã³å£é¢æ° #_TCPF_#
+ * 呼び口関数 #_TCPF_#
  * call port : cCheck  signature: sIPV4AcceptCheck context: task
  *   bool_t         cCheck_check( const T_IPV4EP* clientAddr );
@@ -77,9 +62,9 @@
 
 #ifndef E_OK
-#define	E_OK	0		/* æ­£å¸¸çµäº */
-#define	E_ID	(-18)	/* ä¸æ­£IDçªå· */
+#define	E_OK	0		/* 正常終了 */
+#define	E_ID	(-18)	/* 不正ID番号 */
 #endif
 
-/* åãå£é¢æ° #_TEPF_# */
+/* 受け口関数 #_TEPF_# */
 /* #[<ENTRY_PORT>]# eC1
  * entry port: eC1
@@ -107,5 +92,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 #ifdef DEBUG
 	syslog( LOG_INFO, "tTINETServer: send" );
@@ -150,5 +135,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 
 	return(ercd);
@@ -174,5 +159,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 	ercd = tcp_rcv_dat( ATTR_cep_id, buf, (size_t)size, tmo );
 
@@ -197,5 +182,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 
 	return(ercd);
@@ -219,5 +204,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã */
+	/* ここに処理本体を記述します */
 	syslog( LOG_INFO, "tTINETServer: reset" );
 
@@ -250,5 +235,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	syslog( LOG_INFO, "tTINETServer: open" );
 	if( (ercd=tcp_acp_cep(ATTR_cep_id, ATTR_rep_id, &dst, TMO_FEVR)) != E_OK ){
@@ -279,5 +264,5 @@
 	}
 
-	/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã #_TEFB_# */
+	/* ここに処理本体を記述します #_TEFB_# */
 	syslog( LOG_INFO, "tTINETServer: close" );
 	ercd = tcp_cls_cep( ATTR_cep_id, TMO_FEVR );
@@ -287,4 +272,4 @@
 
 /* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tecs_rpc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tecs_rpc.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tecs_rpc.h	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -69,8 +54,6 @@
 
 /*
- * marshaler, unmarshaler å
-ã®ç¶æ
-å¤ãè¨­å®ãããã¯ã­
- * val ã¯ sRPCErrorHandler.cdl ã§å®ç¾©ãã
+ * marshaler, unmarshaler 内の状態値を設定するマクロ
+ * val は sRPCErrorHandler.cdl で定義する
  */
 #if ! defined( NO_NEED_RPC_STATE ) && ! defined( NO_NEED_RPC_ERROR_HANDLER )
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/tecs.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/tecs.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/tecs.h	(revision 321)
@@ -5,47 +5,32 @@
  *   Copyright (C) 2008-2013 by TOPPERS Project
  *--
- *   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *       ã¨ï¼
- *     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *         å ±åãããã¨ï¼
- *   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *       å
-è²¬ãããã¨ï¼
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
  *  
- *   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *   ã®è²¬ä»»ãè² ããªãï¼
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
  *  
  *   $Id$
@@ -69,7 +54,7 @@
 #endif /* end SHORT_T_DEFINED */
 
-#ifndef CHAR_T_DEFINED				/* t_stddef.h ASP 1.7.0 ä»¥åã§ã¯éè¤ãã */
+#ifndef CHAR_T_DEFINED				/* t_stddef.h ASP 1.7.0 以前では重複する */
 #define CHAR_T_DEFINED
-typedef char  char_t;				/* signed, unsigned æªå® */
+typedef char  char_t;				/* signed, unsigned 未定 */
 #endif /* end CHAR_T_DEFINED */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen	(revision 321)
@@ -50,5 +50,5 @@
 #   ã®è²¬ä»»ãè² ããªãï¼
 #  
-#   $Id: tecsgen 2027 2014-01-20 08:36:17Z okuma-top $
+#   $Id$
 
 #ruby -w $TECSPATH/../tecsgen/tecsgen.rb "$@"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen.rb	(revision 321)
@@ -7,68 +7,49 @@
 #   Copyright (C) 2008-2016 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: tecsgen.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#= tecsgen  : TECS ã®ã¸ã§ãã¬ã¼ã¿
+#= tecsgen  : TECS のジェネレータ
 #
-#Authors::    ç³å·ãæä¹(HRP2Plugin)
-#Authors::    åããæ(åççµåä»æ§)
-#Authors::    æ²³ç°ãæºæ(NotifierPlugin)
-#Authors::    é«ç°ãåºç« (ASP3 ã¸ã® TECS çµè¾¼ã¿)
-#Authors::    é«æ¨ãä¿¡å°(ã©ã³ã¿ã¤ã ããã)
-#Authors::    æç¬ãæç¾(TECS flow å®è£
-)
-#Authors::    éµé£¼ãæ¬å¹¸(ATK1Plugin)
-#Authors::    å¤§å±±ãåå¸(ã¸ã§ãã¬ã¼ã¿å®è£
-, RPCPlugin, TracePlugin, MrubyBridgePlugin)
-#Authors::    å±±æ¬ãå°ä¹(ã¸ã§ãã¬ã¼ã¿åæãã­ãã¿ã¤ãå®è£
-)
-#Authors::    å°åãéé(ãã¹ãã³ã¼ãã®ä¸é¨)
-#Authors::    å®ç©ãåä¹(ASP+TECS, EV3RT+TECS, mruby on TECSç­å®è£
-)
+#Authors::    石川　拓也(HRP2Plugin)
+#Authors::    原　　拓(動的結合仕様)
+#Authors::    河田　智明(NotifierPlugin)
+#Authors::    高田　広章(ASP3 への TECS 組込み)
+#Authors::    高木　信尚(ランタイムヘッダ)
+#Authors::    成瀬　有美(TECS flow 実装)
+#Authors::    鵜飼　敬幸(ATK1Plugin)
+#Authors::    大山　博司(ジェネレータ実装, RPCPlugin, TracePlugin, MrubyBridgePlugin)
+#Authors::    山本　将也(ジェネレータ初期プロトタイプ実装)
+#Authors::    小南　靖雄(テストコードの一部)
+#Authors::    安積　卓也(ASP+TECS, EV3RT+TECS, mruby on TECS等実装)
 #  Authors list is in i-ro-ha order.
 #Version::   see version.rb
@@ -81,8 +62,8 @@
 
 ###
-#= Array  initializer ã® '{', '}' ã§å²ã¾ããå ´å
-# mikan AggregateInitializer ãªã©ãã¯ã©ã¹ãå¤æ´ãã¹ãã§ãã
+#= Array  initializer の '{', '}' で囲まれた場合
+# mikan AggregateInitializer など、クラスを変更すべきである
 class Array
-  #=== CDL ã®æå­åãçæãã
+  #=== CDL の文字列を生成する
   def to_CDL_str
     str = '{ '
@@ -105,13 +86,12 @@
 end
 
-#=== RUBY ã©ã¤ãã©ãªãã­ã¼ããã
+#=== RUBY ライブラリをロードする
 #
-# -L, $RUBYLIB, ã·ã¹ãã (/usr/lib/rub..ãªã©) ã®é ã«ãµã¼ããè¡ããã
-# exerb å¯¾å¿ã®ãããä¸è¨ãã¹ã«ãã¡ã¤ã«ãè¦ã¤ãããªãå ´å require ãå®è¡ãã¦ã¿ã
+# -L, $RUBYLIB, システム(/usr/lib/rub..など) の順にサーチが行われる
+# exerb 対応のため、上記パスにファイルが見つからない場合 require を実行してみる
 #
-# ãã©ã°ã¤ã³ã®å ´åã¯ b_fatal = false ãæå®ããã¡ã¤ã«ããªãã¦ãã¨ã©ã¼åºåå¾ãå¦çç¶è¡
-# b_fatal = false ã®å ´å tecslib/core ããµã¼ããã¹ã«è¿½å ããã
-#RETURN::Bool   : true=æåã false=å¤±æ   å¤±æããå ´åãGenerator.error ã¯å¼ã³å
-ã§åºåãã
+# プラグインの場合は b_fatal = false を指定。ファイルがなくてもエラー出力後、処理続行
+# b_fatal = false の場合 tecslib/core がサーチパスに追加される
+#RETURN::Bool   : true=成功、 false=失敗   失敗した場合、Generator.error は呼び元で出力する
 def require_tecsgen_lib( fname, b_fatal = true )
   dbgPrint( "require_lib: #{fname}\n")
@@ -121,12 +101,11 @@
     b_exception = false
 
-    # -L ã $RUBYLIB ã§æå®ããããã¹ããã³ã·ã¹ãã ã®ãã¹ãããµã¼ã
-    #   exerb ã§ã¯ $LOAD_PATH ã¯ ["."] ã®ã¿å
-¥ã£ã¦ããããã 
+    # -L 、 $RUBYLIB で指定されたパスおよびシステムのパスからサーチ
+    #   exerb では $LOAD_PATH は ["."] のみ入っているようだ
     ($library_path+$LOAD_PATH).each{ |path|
       [ "", "tecslib/plugin/" ].each { |lp|
         lib = File.expand_path( path ) + '/' + lp + fname
         
-        if File.exist? lib then  # ãã¡ã¤ã«å­å¦ã¨ä»ã®ã¨ã©ã¼ãåºå¥ããããå­å¨ç¢ºèªããã
+        if File.exist? lib then  # ファイル存否と他のエラーを区別するため存在確認をする
           begin
             require( lib )
@@ -145,7 +124,7 @@
 
     if b_require == false && b_exception == false then
-      # exerb å¯¾å¿ "." ããµã¼ããã¹ã®æåã«å ãã
-      #   "tecslib/" ã¯ RPCPlugin.rb, TracePlugin.rb ã®ããã«ç¨æãã¦ãã
-      #   RPCPlugin.rb, TracePlugin.rb ã tecslib ä¸ã§ãªããã°ä¸è¦ã«ãªããããã®ããã«ãã¦ãã
+      # exerb 対応 "." をサーチパスの最初に加える
+      #   "tecslib/" は RPCPlugin.rb, TracePlugin.rb のために用意してある
+      #   RPCPlugin.rb, TracePlugin.rb が tecslib 下でなければ不要になるが、このようにしておく
       ["","tecslib/plugin/"].each{ |lp|
         path = lp + fname
@@ -155,9 +134,9 @@
         rescue LoadError => e
           # p "LoadError to load #{fname}"
-          # 2015.12.18 exerb çã§ãã©ã°ã¤ã³ã®ã­ã¼ãã§ã¨ã©ã¼ãåºãã®ã§ãç¡è¦ãã. ããããæããã¨ã©ã¼ã¯åºã¦ãã
+          # 2015.12.18 exerb 版でプラグインのロードでエラーが出るので、無視する. おそらく昔からエラーは出ていた
           # print_exception( e )
         rescue Exception => e
           b_exception = true
-          # ææ³ã¨ã©ã¼ãªã©ãçºç
+          # 文法エラーなどが発生
           print_exception( e )
           break
@@ -167,9 +146,9 @@
 
     if b_require == false then
-      # è¦ã¤ãããªãã£ã
+      # 見つからなかった
       if b_exception == false then
         STDERR << "tecsgen: Fail to load #{fname}. Check $RUBYLIB environment variable or -L option\n"
       end
-      # tecsgen ãæ§æãããã¡ã¤ã«ã®å ´åã¯ä¸­æ­¢ãã
+      # tecsgen を構成するファイルの場合は中止する
       if b_fatal then
         STDERR << "tecsgen: Exit because of unrecoverble error\n"
@@ -180,13 +159,13 @@
     return true
   ensure
-    # $KCODE ã CDL ã®æå­ã³ã¼ãã«æ»ãã¦ãã
+    # $KCODE を CDL の文字コードに戻しておく
     set_kcode $KCODE_CDL
   end
 end
 
-#=== ä¾å¤ã®è¡¨ç¤º
+#=== 例外の表示
 #evar:: Exception
 def print_exception( evar )
-# ããã¹ã¿ãã¯ãã¬ã¼ã¹ãåºãã¾ã§ãæéãããããããªãã°ãæ¬¡ãã³ã¡ã³ãã¢ã¦ããã¦ã¿ãã¹ã
+# もしスタックトレースが出るまでい時間がかかるようならば、次をコメントアウトしてみるべし
   print "*** Begin Ruby exception message ***\n"
   puts( evar.to_s )
@@ -211,5 +190,5 @@
 end
 
-#=== ã¨ã©ã¼ããã³è­¦åã®ã¬ãã¼ã
+#=== エラーおよび警告のレポート
 def print_report
   msg = nil
@@ -229,5 +208,5 @@
 end
 
-#=== $KCODE ãè¨­å®
+#=== $KCODE を設定
 def set_kcode kcode
   if ! $b_no_kcode then
@@ -299,7 +278,7 @@
     # include RUNIT::Assert
 
-    ### ã°ã­ã¼ãã«å¤æ°å®ç¾© ###
-
-    # ã³ãã³ãã©ã¤ã³å¼æ°ã (Makefile.templ ã¸åºå)
+    ### グローバル変数定義 ###
+
+    # コマンドライン引数　 (Makefile.templ へ出力)
     $arguments = ""
     ARGV.each { |a| $arguments += " " + a }
@@ -325,7 +304,6 @@
     $ram_initializer = false # bool: generate ram initializer
     $region_list = {}      #string array : region path which is generated
-    $generating_region = nil # Region:  Region to optimisze & generate code   # ã³ãã³ãã©ã¤ã³ãªãã·ã§ã³ã§ã¯ãªã
-		 #           Cell#is_generate? ã«ã¦åç
-§ããã
+    $generating_region = nil # Region:  Region to optimisze & generate code   # コマンドラインオプションではない
+		 #           Cell#is_generate? にて参照される
     $unit_test = false     # bool:   unit test verification
     $kcode     = nil       # nil | String: Kanji code type "euc"|"sjis"|"none"|"utf8"
@@ -333,5 +311,5 @@
     $no_banner = false     # bool:   not print banner
     $print_version = false # bool:   print version
-    $target    = "tecs"    # String: target name, ARGV[0] ããåè¨­å®ããï¼"tecs" ã¯ä»®ã®ã¿ã¼ã²ãã)
+    $target    = "tecs"    # String: target name, ARGV[0] から再設定する（"tecs" は仮のターゲット)
     $no_default_import_path = false  # bool: no default import path
     $c_suffix  = "c"       # suffix for C progorams (for C++ source)
@@ -362,17 +340,17 @@
     end
 
-    # # æå­ã³ã¼ãã®è¨­å®
+    # # 文字コードの設定
     if $IN_EXERB then
-      # KCODE_CDL, $KCONV_CDL ãä»®ã«è¨­å®ãã (tecs_lang.rb ã§ããã«åè¨­å®ããã)
+      # KCODE_CDL, $KCONV_CDL を仮に設定する (tecs_lang.rb ですぐに再設定される)
       $KCODE_CDL = "SJIS"          # string: "EUC" | "SJIS" | "NONE" | "UTF8"
-      $KCONV_CDL = Kconv::SJIS     # const: NONE ã«ã¯ ASCII ãå¯¾å¿ããã
+      $KCONV_CDL = Kconv::SJIS     # const: NONE には ASCII を対応させる
     else
       $KCODE_CDL = "EUC"           # string: "EUC" | "SJIS" | "NONE" | "UTF8"
-      $KCONV_CDL = Kconv::EUC      # const: NONE ã«ã¯ ASCII ãå¯¾å¿ããã
-    end
-    # $KCODE_TECSGEN, $KCONV_TECSGEN ãä»®ã«è¨­å®ãã (tecs_lang.rb ã§ããã«åè¨­å®ããã)
-    $KCODE_TECSGEN = "UTF8"      # string: "EUC"  ãã®ãã¡ã¤ã«ã®æå­ã³ã¼ãï¼ãªãã·ã§ã³ã§ã¯ãªãå®æ°ï¼
+      $KCONV_CDL = Kconv::EUC      # const: NONE には ASCII を対応させる
+    end
+    # $KCODE_TECSGEN, $KCONV_TECSGEN を仮に設定する (tecs_lang.rb ですぐに再設定される)
+    $KCODE_TECSGEN = "UTF8"      # string: "EUC"  このファイルの文字コード（オプションではなく定数）
     $KCONV_TECSGEN = Kconv::UTF8 # const: 
-    set_kcode( $KCODE_TECSGEN )  # ãã®ãã¡ã¤ã«ã®æå­ã³ã¼ããè¨­å®
+    set_kcode( $KCODE_TECSGEN )  # このファイルの文字コードを設定
 
   end # initialize_global_var
@@ -380,5 +358,5 @@
   def self.analyze_option( additional_option_parser )
 
-    ###  tecsgen ã³ãã³ããªãã·ã§ã³è§£æ  ###
+    ###  tecsgen コマンドオプション解析  ###
     ARGV.options {|parser|
       parser.banner = "Usage: tecsgen [options] files"
@@ -428,5 +406,5 @@
         $kcode = code
       }
-      #  old_mode ã¯ V1.0.C.22 ã§å»æ­¢
+      #  old_mode は V1.0.C.22 で廃止
       #  parser.on('-o', '--old-mode',    'old mode' ){
       #    $old_mode = true
@@ -497,10 +475,10 @@
 
   def self.load_modules
-    ### tecsgen ã¢ã¸ã¥ã¼ã«ã®ã­ã¼ã ####
-    # -L ã§ãã¹æå®å¯è½ã¨ãããããããããã­ã¼ããéå§ãã
-
-    #  tecsgen ãã¼ã¸ã§ã³ãã¡ã¤ã«ã®ã­ã¼ã
-    # ãããå®è¡ããã¾ã§ tecsgen ã®ãã¼ã¸ã§ã³ãè¡¨ç¤ºã§ããªã
-    # ãã®ãã¡ã¤ã«ãèª¤ã£ã¦èª­ã¿è¾¼ãã¨ãç°ãªããã¼ã¸ã§ã³åãè¡¨ç¤ºãã¦ãã¾ã
+    ### tecsgen モジュールのロード ####
+    # -L でパス指定可能としたため、ここからロードを開始する
+
+    #  tecsgen バージョンファイルのロード
+    # これを実行するまで tecsgen のバージョンを表示できない
+    # このファイルを誤って読み込むと、異なるバージョン名を表示してしまう
     require_tecsgen_lib 'tecslib/version.rb'
     if ! $no_banner || $print_version
@@ -514,5 +492,5 @@
     end
 
-    # æå­ã³ã¼ãæ±ºå®ã®ããæåã«èª­ã¿ãã
+    # 文字コード決定のため最初に読みこむ
     require_tecsgen_lib 'tecslib/core/tecs_lang.rb'
 
@@ -523,5 +501,5 @@
     end
 
-    # syntaxobj.rb ã«ã¯ Node ãå®ç¾©ããã¦ããã®ã§ãæ©ãæ®µéã§ require 
+    # syntaxobj.rb には Node が定義されているので、早い段階で require 
     require_tecsgen_lib 'tecslib/core/syntaxobj.rb'
     require_tecsgen_lib 'tecslib/core/pluginModule.rb'
@@ -543,5 +521,5 @@
     require_tecsgen_lib 'tecslib/plugin/DomainPlugin.rb'
 
-    # C è¨èªãã¼ãµ
+    # C 言語パーサ
     require_tecsgen_lib 'tecslib/core/C_parser.tab.rb'
     require_tecsgen_lib 'tecslib/core/ctypes.rb'
@@ -554,10 +532,10 @@
 
   def self.setup
-    # $import_path, $tecspath ãèª¿æ´
+    # $import_path, $tecspath を調整
     TECSGEN.adjust_exerb_path
 
-    # $import_path ã«ç°å¢å¤æ° $TECSGEN ããã³ãã®ç´ä¸ãè¿½å 
+    # $import_path に環境変数 $TECSGEN およびその直下を追加
     if $no_default_import_path == false then
-      # $TECSGEN ããã³ããã®ç´ä¸ã®ãã£ã¬ã¯ããªããã¹ã«è¿½å 
+      # $TECSGEN および、その直下のディレクトリをパスに追加
       if $tecspath != "." then
         TECSGEN.add_import_path $tecspath
@@ -570,24 +548,24 @@
           }
         rescue
-          # ç¡è¦
+          # 無視
         end
       end
     end
 
-    # ããã©ã«ãè¨­å®
+    # デフォルト設定
     TECSGEN.set_default_config
 
-    # $target ã®è¨­å®
+    # $target の設定
     $target = ARGV[0]
     pos = $target.rindex( /[:\\\/]/ )
     if pos then
-      $target = $target[pos+1..-1]  # ãã£ã¬ã¯ããªåºåããé¤ããæå­å
+      $target = $target[pos+1..-1]  # ディレクトリ区切りを除いた文字列
     end
     pos = $target.rindex( /\./ )
     if pos then
-      $target = $target[0..pos-1]   # æ¡å¼µå­ãåãé¤ããæå­å
-    end
-
-    # gen ãã£ã¬ã¯ããªã®ä½æ
+      $target = $target[0..pos-1]   # 拡張子を取り除いた文字列
+    end
+
+    # gen ディレクトリの作成
     begin
       if ! File.directory?( $gen_base ) then
@@ -615,7 +593,6 @@
 end # TECSGEN
 
-# è¤æ°ã®ã¸ã§ãã¬ã¼ã¿ã¤ã³ã¹ã¿ã³ã¹ãçæãããã¨ã¯ãå¯è½ã ããä»¥ä¸ã®åé¡ããã
-#  ã¯ã©ã¹å¤æ°ã®ãªã»ãããç¢ºå®ã«è¡ãå¿
-è¦ããã
+# 複数のジェネレータインスタンスを生成することは、可能だが、以下の問題がある
+#  クラス変数のリセットを確実に行う必要がある
 
 if $TECSCDE != true then
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen_rcov.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen_rcov.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen_rcov.rb	(revision 321)
@@ -7,54 +7,38 @@
 #   Copyright (C) 2008-2016 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: tecsgen_rcov.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-# ã«ãã¬ãã¸ãåãããã® tecsgen ã³ãã³ã
-# SimpleCov ãä½¿ç¨ãããããruby V1.9 ä»¥éãå¿
-è¦
+# カバレッジを取るための tecsgen コマンド
+# SimpleCov を使用するため、ruby V1.9 以降が必要
 #
 # Usage: tecsgen_rcov.rb [options] CDL-file.cdl
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb	(revision 321)
@@ -102,9 +102,8 @@
     comment = false
 
-    # euc ã®ã³ã¡ã³ãã utf8 ã¨ãã¦æ±ãã¨ãã³ã¡ã³ãã®çµãããèª¤ãåé¡ã®å¯¾ç­
+    # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
     TECS_LANG::set_kcode_binary
 
-    # 800U, 0xffLL ãªã© (æ´æ°ãªãã©ã«ã«å
-±éã®ä¿®é£¾å­)
+    # 800U, 0xffLL など (整数リテラルに共通の修飾子)
     integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
 
@@ -121,5 +120,5 @@
           if comment
             case line
-            # ã³ã¡ã³ãçµäº
+            # コメント終了
             when /\A\*\//
               comment = false
@@ -129,36 +128,36 @@
           else
             case line
-            # ç©ºç½ãããªãã­ã»ã¹ãã£ã¬ã¯ãã£ã
+            # 空白、プリプロセスディレクティブ
             when /\A\s+/
               ;
-            # è­å¥å­
+            # 識別子
             when /\A[a-zA-Z_]\w*/
               word = $&
               @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
-            # 16 é²æ°å®æ°
+            # 16 進数定数
             when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
               @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
-            # 8 é²æ°å®æ°
+            # 8 進数定数
             when /\A0[0-7]+#{integer_qualifier}/
               @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
-            # æµ®åå°æ°å®æ°
+            # 浮動小数定数
             when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
               @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
-            # æ´æ°å®æ°
+            # 整数定数
             when /\A\d+#{integer_qualifier}/
             # when /\A\d+/
               @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
-            # æå­
+            # 文字
             when /\A'(?:[^'\\]|\\.)'/
               @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
-            # æå­å
-#              "#include  #include #include \"../systask/logtask.cfg\"       æå¾ã® " å¿ã)ã§ç¡éã«ã¼ã
+            # 文字列
+#              "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
 #            when /\A"(?:[^"\\]+|\\.)*"/
-            when /\A"(?:[^"\\]|\\.)*"/   # ããã¯ãã¾ãè¡ãããã 
+            when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
               @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
-            # è¡ã³ã¡ã³ã
+            # 行コメント
             when /\A\/\/.*$/
-              # èª­ã¿é£ã°ãã ã
-            # ã³ã¡ã³ãéå§
+              # 読み飛ばすだけ
+            # コメント開始
             when /\A\/\*/
               comment = true
@@ -189,5 +188,5 @@
     }
 
-    # çµäºã®å°
+    # 終了の印
     @q << nil
 
@@ -216,5 +215,5 @@
       end
 
-      # TYPE_NAME ãã¼ã¯ã³ã¸ç½®ãæã
+      # TYPE_NAME トークンへ置き換え
       if @b_no_type_name == false
         if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
@@ -223,5 +222,5 @@
       end
 
-      if $debug then     # 070107 token ç¡å¹æãããéããªããããã (through å¯¾å¿ -d ã®æã«ä¾å¤çºç) 
+      if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) 
         locale = @@current_locale[@@generator_nest]
         if token then
@@ -252,5 +251,5 @@
   @@n_warning = 0
 
-  # ãã®ã¡ã½ããã¯æ§æè§£æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¨ã©ã¼çºçã¯ä¸é©åï¼
+  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
   def self.error( msg )
     @@n_error += 1
@@ -264,5 +263,5 @@
   end
 
-  # ãã®ã¡ã½ããã¯æ§æè§£æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¦ã©ã¼ãã³ã°çºçã¯ä¸é©åï¼
+  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でウォーニング発生は不適切）
   def self.warning( msg )
     @@n_warning += 1
@@ -1676,5 +1675,5 @@
 module_eval(<<'.,.,', 'C_parser.y.rb', 237)
   def _reduce_70(val, _values, result)
-    			result = CIntType.new( -3 )    # storage class ã¯ç¡è¦
+    			result = CIntType.new( -3 )    # storage class は無視
 		
     result
@@ -1695,5 +1694,5 @@
 module_eval(<<'.,.,', 'C_parser.y.rb', 247)
   def _reduce_73(val, _values, result)
-    			result = val[1]                # storage class ã¯ç¡è¦
+    			result = val[1]                # storage class は無視
 		
     result
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.y.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.y.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.y.rb	(revision 321)
@@ -6,68 +6,51 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: C_parser.y.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
 class C_parser
 rule
-# ãããã¬ãã«ã®æ§æè¦ç´ ã¯ C_parser
+# トップレベルの構文要素は C_parser
 all: C_parser
 
 # Expr
-##########################  å¼  ##########################
-# K&Rã®ææ³(ãã­ã°ã©ãã³ã°è¨èªC ç¬¬2ç ä»é²)ã¨ä¸é¨ç°ãªã
-# argument_expression_list(é¢æ°å¼æ°), assignment_expression(ä»£å
-¥)ããªã
-# å¼ã® result ã¯ããã¹ã¦é
-åã§ç¬¬ä¸è¦ç´ ãè­å¥ã·ã³ãã«ãç¬¬äºè¦ç´ ä»¥ä¸ãå¼æ°
+##########################  式  ##########################
+# K&Rの文法(プログラミング言語C 第2版 付録)と一部異なる
+# argument_expression_list(関数引数), assignment_expression(代入)がない
+# 式の result は、すべて配列で第一要素が識別シンボル、第二要素以下が引数
 
 primary_expression
         : namespace_identifier
 		{ result = [ :IDENTIFIER, val[0] ] }     #1ok
-#        : IDENTIFIER	# mikan namespace ã¸ã®å¯¾å¿
+#        : IDENTIFIER	# mikan namespace への対応
 #		{ result = [ :IDENTIFIER, val[0] ] }
 #        | TRUE
@@ -96,5 +79,5 @@
 		{ result << val[1] }
 
-# é¢æ°å¼ã³åºãã¨å¾ç½®ã¤ã³ã¯ãªã¡ã³ãããã¯ãªã¡ã³ãæ¼ç®å­ããªã
+# 関数呼び出しと後置インクリメント、デクリメント演算子がない
 postfix_expression
         : primary_expression
@@ -107,5 +90,5 @@
         | postfix_expression '->' IDENTIFIER
 		{ result = [ :OP_REF, val[0], val[2] ] }
-        | postfix_expression '++'	{ result = val[0] }   # ++, -- ã¯ç¡è¦ãã
+        | postfix_expression '++'	{ result = val[0] }   # ++, -- は無視する
         | postfix_expression '--'	{ result = val[0] }
 
@@ -116,5 +99,5 @@
 
 
-# åç½®ã¤ã³ã¯ãªã¡ã³ãããã¯ãªã¡ã³ãæ¼ç®å­ããªã
+# 前置インクリメント、デクリメント演算子がない
 unary_expression
         : postfix_expression
@@ -125,5 +108,5 @@
         | SIZEOF '(' type_name ')'
 		{ result = [ :OP_SIZEOF_TYPE, val[1] ] }
-		| '++' unary_expression			{ result = val[1] }   # ++, -- ã¯ç¡è¦ãã
+		| '++' unary_expression			{ result = val[1] }   # ++, -- は無視する
 		| '--' unary_expression			{ result = val[1] }
 
@@ -213,5 +196,5 @@
 
 
-# ã³ã³ãæ¼ç®å­ãä½¿ããªã
+# コンマ演算子が使えない
 expression
         : conditional_expression
@@ -238,20 +221,20 @@
 
 # Types
-##########################  å®£è¨  ##########################
-# å®£è¨ãK&Rã¨ä¸é¨ç°ãªã
-
-# declarationã¯ã»ã«ã®å±æ§ã§ä½¿ããã
-# K&Rã¨ã®éã: storage classãæå®ã§ããªããåãçç¥ã§ããªã
+##########################  宣言  ##########################
+# 宣言もK&Rと一部異なる
+
+# declarationはセルの属性で使われる
+# K&Rとの違い: storage classが指定できない、型が省略できない
 declaration
         : declaration_specifiers init_declarator_list ';'
 #        : type_specifier_qualifier_list init_declarator_list ';'
 
-# declaration_specifiersã¯é¢æ°ã®ãã©ã¡ã¼ã¿ã§ä½¿ããããã
-# type_specifier_qualifier_listã§ååãããããªã
+# declaration_specifiersは関数のパラメータで使われるが、
+# type_specifier_qualifier_listで十分かもしれない
 
 declaration_specifiers
         : storage_class
 		{
-			result = CIntType.new( -3 )    # storage class ã¯ç¡è¦
+			result = CIntType.new( -3 )    # storage class は無視
 		}
         | type_specifier
@@ -263,5 +246,5 @@
         | storage_class declaration_specifiers
 		{
-			result = val[1]                # storage class ã¯ç¡è¦
+			result = val[1]                # storage class は無視
 		}
         | type_specifier declaration_specifiers
@@ -292,7 +275,7 @@
         | DOUBLE	{ set_no_type_name true; result = CFloatType.new(-64) }
         | BOOL	{ set_no_type_name true; result = CBoolType.new }
-        | struct_specifier	{ set_no_type_name true; result = val[0] } # set_no_type_name true ã¯ struct_tag ã§ãå¼ã°ãã
-        | union_specifier	{ set_no_type_name true; result = CVoidType.new }  # void ãå®£è¨ãããã¨ãã
-        | enum_specifier	{ set_no_type_name true; result = CVoidType.new }  # void ãå®£è¨ãããã¨ãã
+        | struct_specifier	{ set_no_type_name true; result = val[0] } # set_no_type_name true は struct_tag でも呼ばれる
+        | union_specifier	{ set_no_type_name true; result = CVoidType.new }  # void が宣言されたとする
+        | enum_specifier	{ set_no_type_name true; result = CVoidType.new }  # void が宣言されたとする
         | TYPE_NAME	{ set_no_type_name true; result = CDefinedType.new( val[0].val ) }
 
@@ -314,5 +297,5 @@
 		}
 
-# mikan K&Rã®struct_or_union_specifierã«ç¸å½ããããunionã¯ä½¿ããªã, bit field ã«ãå¯¾å¿ããªã
+# mikan K&Rのstruct_or_union_specifierに相当するが、unionは使えない, bit field にも対応しない
 struct_specifier		# mikan
         : STRUCT struct_tag '{'
@@ -333,6 +316,5 @@
 			result = val[1]
 		}
-        | STRUCT struct_tag   # mikan struct_tag ã¯ namespace å¯¾å¿ãå¿
-è¦
+        | STRUCT struct_tag   # mikan struct_tag は namespace 対応が必要
 		{
 			StructType.set_define( false )
@@ -352,5 +334,5 @@
 		}
 
-# ãã¤ã³ã¿ä¿®é£¾å­ãè¿½å 
+# ポインタ修飾子を追加
 struct_declaration
         : declaration_specifiers struct_declarator_list ';'
@@ -365,11 +347,11 @@
 			result = val[1]
 		}
-        | union_specifier ';'                       # ç¡å
-        | struct_specifier ';'                       # ç¡å
-
-
-
-# K&Rã®specifier_qualifier_listã¨åã
-# ååãã¾ãããããã£ãã®ã§type_ãä»ãã
+        | union_specifier ';'                       # 無名
+        | struct_specifier ';'                       # 無名
+
+
+
+# K&Rのspecifier_qualifier_listと同じ
+# 名前がまぎらわしかったのでtype_を付けた
 type_specifier_qualifier_list
         : type_specifier
@@ -395,5 +377,5 @@
 		{ result << val[2] }
 
-# ããããã£ã¼ã«ãã¯ä½¿ããªã
+# ビットフィールドは使えない
 struct_declarator
         : declarator
@@ -404,6 +386,5 @@
         : UNION union_tag '{' union_declaration_list '}'
         | UNION '{' union_declaration_list '}'
-        | UNION union_tag   # mikan struct_tag ã¯ namespace å¯¾å¿ãå¿
-è¦
+        | UNION union_tag   # mikan struct_tag は namespace 対応が必要
 
 union_declaration_list
@@ -416,6 +397,6 @@
 union_declaration
         : declaration_specifiers union_declarator_list ';'
-		| union_specifier ';'                       # ç¡å
-		| struct_specifier ';'                      # ç¡å
+		| union_specifier ';'                       # 無名
+		| struct_specifier ';'                      # 無名
 
 union_declarator_list
@@ -423,5 +404,5 @@
         | union_declarator_list ',' union_declarator
 
-# ããããã£ã¼ã«ãã¯ä½¿ããªã
+# ビットフィールドは使えない
 union_declarator
         : declarator
@@ -429,5 +410,5 @@
 
 
-# enumã®ç¨®é¡ãè¿½å 
+# enumの種類を追加
 enum_specifier		# mikan
         : enum_type            '{' enumerator_list '}'
@@ -462,5 +443,5 @@
 		}
         | direct_declarator
-        | pointer TYPE_NAME     # é¢æ°ãã¤ã³ã¿ã® typedef ãäºéå®ç¾©ã®å ´å
+        | pointer TYPE_NAME     # 関数ポインタの typedef が二重定義の場合
 		{
 			result = Decl.new( val[1].val )
@@ -490,6 +471,5 @@
 		}
 
-#        | direct_declarator '(' identifier_list ')'  # ããã¯ä½ã®ããã«å¿
-è¦ï¼ 060211
+#        | direct_declarator '(' identifier_list ')'  # これは何のために必要？ 060211
         | direct_declarator '(' ')'
 		{
@@ -524,5 +504,5 @@
         : parameter_list
         | parameter_list ',' '.' '.' '.'
-		# mikan å¯å¤é·ãã©ã¡ã¼ã¿,  ... ã®éã®ã¹ãã¼ã¹ãè¨±ãããï¼ææãï¼
+		# mikan 可変長パラメータ,  ... の間のスペースが許される（手抜き）
 
 parameter_list
@@ -532,9 +512,9 @@
 #		{
 #			val[0].add_param( val[2] )
-#			# result = val[0] ä¸è¦
+#			# result = val[0] 不要
 #		}
 
 
-# ãã©ã¡ã¼ã¿ä¿®é£¾å­ãè¿½å 
+# パラメータ修飾子を追加
 parameter_declaration
         : declaration_specifiers declarator
@@ -545,6 +525,6 @@
 #		}
 
-	# ä»¥ä¸ã¯ã¨ã©ã¼ã¨ãã
-#        | declaration_specifiers	# ä»®å¼æ°ãªãã¯ãã¨ããããæ±ããªã 060210
+	# 以下はエラーとする
+#        | declaration_specifiers	# 仮引数なしは、とりあえず扱わない 060210
 #		{
 #			unless val[0].kind_of?( VoidType ) then
@@ -553,9 +533,9 @@
 #			result = nil
 #		}
-        | declaration_specifiers abstract_declarator	# ä»®å¼æ°ãªã
-        | declaration_specifiers						# ä»®å¼æ°ãªã
-
-
-#identifier_list       # 060211  ä¸ç¨ã«ãªã£ã
+        | declaration_specifiers abstract_declarator	# 仮引数なし
+        | declaration_specifiers						# 仮引数なし
+
+
+#identifier_list       # 060211  不用になった
 #        : IDENTIFIER
 #        | identifier_list ',' IDENTIFIER
@@ -587,5 +567,5 @@
         | direct_abstract_declarator '(' parameter_type_list ')'
 
-# assignment_expressionãconstant_expressionã«å¤æ´
+# assignment_expressionをconstant_expressionに変更
 initializer			# mikan
         : constant_expression
@@ -610,7 +590,7 @@
 
 
-##########################  ããããã¯CDLç¬èª  ##########################
-
-#ãããã¬ãã«ã®æ§æè¦å
+##########################  ここからはCDL独自  ##########################
+
+#トップレベルの構文規則
 C_parser
         :
@@ -628,5 +608,5 @@
         | declaration
         | ';'
-        | error   # ã¨ã©ã¼åå¾©ãã¤ã³ã
+        | error   # エラー回復ポイント
 
 typedef
@@ -826,9 +806,8 @@
     comment = false
 
-    # euc ã®ã³ã¡ã³ãã utf8 ã¨ãã¦æ±ãã¨ãã³ã¡ã³ãã®çµãããèª¤ãåé¡ã®å¯¾ç­
+    # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
     TECS_LANG::set_kcode_binary
 
-    # 800U, 0xffLL ãªã© (æ´æ°ãªãã©ã«ã«å
-±éã®ä¿®é£¾å­)
+    # 800U, 0xffLL など (整数リテラルに共通の修飾子)
     integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
 
@@ -845,5 +824,5 @@
           if comment
             case line
-            # ã³ã¡ã³ãçµäº
+            # コメント終了
             when /\A\*\//
               comment = false
@@ -853,36 +832,36 @@
           else
             case line
-            # ç©ºç½ãããªãã­ã»ã¹ãã£ã¬ã¯ãã£ã
+            # 空白、プリプロセスディレクティブ
             when /\A\s+/
               ;
-            # è­å¥å­
+            # 識別子
             when /\A[a-zA-Z_]\w*/
               word = $&
               @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
-            # 16 é²æ°å®æ°
+            # 16 進数定数
             when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
               @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
-            # 8 é²æ°å®æ°
+            # 8 進数定数
             when /\A0[0-7]+#{integer_qualifier}/
               @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
-            # æµ®åå°æ°å®æ°
+            # 浮動小数定数
             when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
               @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
-            # æ´æ°å®æ°
+            # 整数定数
             when /\A\d+#{integer_qualifier}/
             # when /\A\d+/
               @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
-            # æå­
+            # 文字
             when /\A'(?:[^'\\]|\\.)'/
               @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
-            # æå­å
-#              "#include  #include #include \"../systask/logtask.cfg\"       æå¾ã® " å¿ã)ã§ç¡éã«ã¼ã
+            # 文字列
+#              "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
 #            when /\A"(?:[^"\\]+|\\.)*"/
-            when /\A"(?:[^"\\]|\\.)*"/   # ããã¯ãã¾ãè¡ãããã 
+            when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
               @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
-            # è¡ã³ã¡ã³ã
+            # 行コメント
             when /\A\/\/.*$/
-              # èª­ã¿é£ã°ãã ã
-            # ã³ã¡ã³ãéå§
+              # 読み飛ばすだけ
+            # コメント開始
             when /\A\/\*/
               comment = true
@@ -913,5 +892,5 @@
     }
 
-    # çµäºã®å°
+    # 終了の印
     @q << nil
 
@@ -940,5 +919,5 @@
       end
 
-      # TYPE_NAME ãã¼ã¯ã³ã¸ç½®ãæã
+      # TYPE_NAME トークンへ置き換え
       if @b_no_type_name == false
         if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
@@ -947,5 +926,5 @@
       end
 
-      if $debug then     # 070107 token ç¡å¹æãããéããªããããã (through å¯¾å¿ -d ã®æã«ä¾å¤çºç) 
+      if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) 
         locale = @@current_locale[@@generator_nest]
         if token then
@@ -976,5 +955,5 @@
   @@n_warning = 0
 
-  # ãã®ã¡ã½ããã¯æ§æè§£æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¨ã©ã¼çºçã¯ä¸é©åï¼
+  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
   def self.error( msg )
     @@n_error += 1
@@ -988,5 +967,5 @@
   end
 
-  # ãã®ã¡ã½ããã¯æ§æè§£æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¦ã©ã¼ãã³ã°çºçã¯ä¸é©åï¼
+  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でウォーニング発生は不適切）
   def self.warning( msg )
     @@n_warning += 1
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.tab.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.tab.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.tab.rb	(revision 321)
@@ -94,6 +94,5 @@
   }
 
-  # æå®å­ '[]' å
-ã§ã®ã¿ä½¿ç¨ã§ããã­ã¼ã¯ã¼ã
+  # 指定子 '[]' 内でのみ使用できるキーワード
   RESERVED2 = {
     # specifier
@@ -112,5 +111,5 @@
     # port (entry)
     'inline' => :INLINE,
-    'ref_desc' => :REF_DESC,   # call ãå¯
+    'ref_desc' => :REF_DESC,   # call も可
 
     # port (call)
@@ -156,29 +155,29 @@
   }
 
-  # åå¸°çãªãã¼ãµã®ããã®ã¹ã¿ãã¯
+  # 再帰的なパーサのためのスタック
   @@generator_nest = -1
   @@generator_stack = []
   @@current_locale = []
 
-  # import_C ä¸­ã§ãã
+  # import_C 中である
   @@import_C = false
 
-  # ãã¹ã¦ã®æ§æè§£æãå®äºãã
+  # すべての構文解析が完了した
   @@b_end_all_parse = false
 
   def self.parse( file_name, plugin = nil, b_reuse = false )
-    # ãã¼ãµã¤ã³ã¹ã¿ã³ã¹ãçæ(å¥ãã¼ãµã§èª­ã¿è¾¼ã)
+    # パーサインスタンスを生成(別パーサで読み込む)
     parser = Generator.new
 
-    # plugin ãã import ããã¦ããå ´åã® plugin è¨­å®
+    # plugin から import されている場合の plugin 設定
     parser.set_plugin plugin
 
-    # reuse ãã©ã°ãè¨­å®
+    # reuse フラグを設定
     parser.set_reuse b_reuse
 
-    # cdl ããã¼ã¹
+    # cdl をパース
     parser.parse( [file_name] )
 
-    # çµæåããã¼ãµã¹ã¿ãã¯ãæ»ã
+    # 終期化　パーサスタックを戻す
     parser.finalize
   end
@@ -200,5 +199,5 @@
   def self.get_plugin
     if @@generator_stack[@@generator_nest] then
-      # tecsgen å¼æ°ã® cdl ã import ãããå ´åã¯ nil
+      # tecsgen 引数の cdl が import される場合は nil
       return @@generator_stack[@@generator_nest].get_plugin
     else
@@ -217,5 +216,5 @@
   def self.is_reuse?
     if @@generator_stack[@@generator_nest] then
-      # tecsgen å¼æ°ã® cdl ã import ãããå ´åã¯ nil
+      # tecsgen 引数の cdl が import される場合は nil
       return @@generator_stack[@@generator_nest].is_reuse?
     else
@@ -247,5 +246,5 @@
       b_in_string = false
 
-      # euc ã®ã³ã¡ã³ãã utf8 ã¨ãã¦æ±ãã¨ãã³ã¡ã³ãã®çµãããèª¤ãåé¡ã®å¯¾ç­
+      # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
       TECS_LANG::set_kcode_binary
 
@@ -257,5 +256,5 @@
           TECSIO.foreach(file) {|line|
             col = 1
-#            line.rstrip!         æ¹è¡å«ãæå­åãæ±ãããã«ãªã£ãã®ã§ãããã§ç©ºç½ãåãé¤ããªããªã£ã
+#            line.rstrip!         改行含む文字列を扱うようになったので、ここで空白を取り除けなくなった
 
             until line.empty?
@@ -263,11 +262,10 @@
               if b_in_comment
                 case line
-                  # ã³ã¡ã³ãçµäº
+                  # コメント終了
                 when /\A\*\//
                   b_in_comment = false
                 when /\A./
                   ;
-                when /\s+/     # line.rstrip! ãæ­¢ãããã \n ãªã©ã®ç©ºç½æå­ã¨ã¾ã£ã¡ããã«ã¼ã«ãå¿
-è¦ã«ãªã£ã
+                when /\s+/     # line.rstrip! を止めたため \n などの空白文字とまっちするルールが必要になった
                   ;
                 end
@@ -277,9 +275,9 @@
                   @q <<  [:STRING_LITERAL, Token.new(string, file, lineno, col)]
                   b_in_string = false
-                elsif line =~ /\A.*\\\n/     # æ¹è¡ \n ã¯ '.' ã«ãããããªã
+                elsif line =~ /\A.*\\\n/     # 改行 \n は '.' にマッチしない
                   string += $&
-                elsif line =~ /\A.*\n/     # æ¹è¡ \n ã¯ '.' ã«ãããããªã
+                elsif line =~ /\A.*\n/     # 改行 \n は '.' にマッチしない
                   string += line
-                  # ãã®ä½ç½®ã§ã¯ error ã¡ã½ããã¯ä½¿ããªã (token èª­åºãå)
+                  # この位置では error メソッドは使えない (token 読出し前)
                   puts "error: #{file} line #{lineno}: string literal has newline without escape"
                   @@n_error += 1
@@ -287,57 +285,57 @@
               else
                 case line
-                # ç©ºç½ãããªãã­ã»ã¹ãã£ã¬ã¯ãã£ã
+                # 空白、プリプロセスディレクティブ
                 when /\A\s+/
                   ;
-                # è­å¥å­
+                # 識別子
                 when /\A[a-zA-Z_]\w*/
                   word = $&
                   @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
-                # 16 é²æ°å®æ°
+                # 16 進数定数
                 when /\A0x[0-9A-Fa-f]+/
                   @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
-                # 8 é²æ°å®æ°
+                # 8 進数定数
                 when /\A0[0-7]+/
                   @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
-                # æµ®åå°æ°å®æ°
+                # 浮動小数定数
                 when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
                   @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
-                # æ´æ°å®æ°
+                # 整数定数
                 when /\A\d+/
                   @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
-                # æå­å®æ°
+                # 文字定数
                 when /\A'(?:[^'\\]|\\.)'/
                   @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
-                # æå­å
-#                "#include  #include #include \"../systask/logtask.cfg\"       æå¾ã® " å¿ã)ã§ç¡éã«ã¼ã
+                # 文字列
+#                "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
 #                when /\A"(?:[^"\\]+|\\.)*"/
-                when /\A"(?:[^"\\]|\\.)*"/   # ããã¯ãã¾ãè¡ãããã 
+                when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
                   @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
-                # æå­å (æ¹è¡ãã)
+                # 文字列 (改行あり)
                 when /\A"(?:[^"\\]|\\.)*\\\n$/
                   string = $&
                   b_in_string = true
-                # æå­å (æ¹è¡ãã, escape ãªã)
+                # 文字列 (改行あり, escape なし)
                 when /\A("(?:[^"\\]|\e\.)*)\n$/
                   string = $1 + "\\\n"
                   b_in_string = true
-                  # ãã®ä½ç½®ã§ã¯ error ã¡ã½ããã¯ä½¿ããªã (token èª­åºãå) # mikan cdl_error ã§ã¯ãªã
+                  # この位置では error メソッドは使えない (token 読出し前) # mikan cdl_error ではない
                   puts "error: #{file} line #{lineno}: string literal has newline without escape"
                   @@n_error += 1
-                # å±±æ¬å¼§ã§å²ã¾ããæå­å
+                # 山括弧で囲まれた文字列
                 when /\A<[0-9A-Za-z_\. \/]+>/   # AB: angle bracke
                   @q << [:AB_STRING_LITERAL, Token.new($&, file, lineno, col)]
-                # è¡ã³ã¡ã³ã
+                # 行コメント
                 when /\A\/\/.*$/
-                  # èª­ã¿é£ã°ãã ã
-                # ã³ã¡ã³ãéå§
+                  # 読み飛ばすだけ
+                # コメント開始
                 when /\A\/\*/
                   b_in_comment = true
-                # '>>', '<<' ãªã©
+                # '>>', '<<' など
                 when /\A>>/, /\A<</, /\A==/, /\A!=/, /\A\&\&/, /\A\|\|/
                   @q << [$&, Token.new($&, file, lineno, col)]
                 when /\A::/, /\A=>/, /\A<=/, /\A>=/
                   @q << [$&, Token.new($&, file, lineno, col)]
-                # '(', ')' ãªã©ä¸æå­ã®è¨å·ãã¾ãã¯æªç¥ã®è¨å·
+                # '(', ')' など一文字の記号、または未知の記号
                 when /\A./
                   @q << [$&, Token.new($&, file, lineno, col)]
@@ -363,5 +361,5 @@
       }
 
-      # çµäºã®å°
+      # 終了の印
       @q << nil
 
@@ -383,15 +381,14 @@
 
       if token[0] == :IDENTIFIER then
-        # TYPE_NAME ãã¼ã¯ã³ã¸ç½®æã
+        # TYPE_NAME トークンへ置換え
         if Namespace.is_typename?( token[1].val ) then
           token[0] = :TYPE_NAME
         elsif @in_specifier && RESERVED2[ token[1].val.to_s ] then
-          # æå®å­ã­ã¼ã¯ã¼ãï¼ '[', ']' å
-ã§ã®ã¿æå¹)
+          # 指定子キーワード（ '[', ']' 内でのみ有効)
           token[0] = RESERVED2[ token[1].val.to_s ]
         end
       end
 
-      if $debug then     # 070107 token ç¡å¹æãããéããªããããã (through å¯¾å¿ -d ã®æã«ä¾å¤çºç) 
+      if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) 
         locale = @@current_locale[@@generator_nest]
         if token then
@@ -424,5 +421,5 @@
   @@n_warning = 0
 
-  # ãã®ã¡ã½ããã¯æ§æè§£æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¨ã©ã¼çºçã¯ä¸é©åï¼
+  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
   def self.error( msg, *arg )
     locale = nil
@@ -434,5 +431,5 @@
 
     msg = TECSMsg.get_error_message( msg )
-    # $1, $2, ... ã arg ã§ç½®æ
+    # $1, $2, ... を arg で置換
     count = 1
     arg.each{ |a|
@@ -442,13 +439,13 @@
     }
 
-    # import_C ã®ä¸­ã§ã®ã¨ã©ã¼ï¼
+    # import_C の中でのエラー？
     if @@import_C then
       C_parser.error( msg )
     else
 
-      # Node ã®è¨æ¶ãã ä½ç½® (locale) ãä½¿ç¨ããå ´åãå¤æ´ä»¥åã«æ¯ã¹ã
-      # åé¡çºçç®æã¨ç°ãªãä½ç½®ã«ã¨ã©ã¼ãåºããããæ§æè§£æä¸­ã®ã¨ã©ã¼
-      # ã¯ãè§£æä¸­ã®ä½ç½®ãåºåããï¼(new_XXX ã§ owner ãå­è¦ç´ ã®ãã§ã
-      # ã¯ãããã¨ owner ã®è¡çªå·ãåºã¦ãã¾ãç¹ã§ããããçãã¦ãã)
+      # Node の記憶する 位置 (locale) を使用した場合、変更以前に比べ、
+      # 問題発生箇所と異なる位置にエラーが出るため、構文解析中のエラー
+      # は、解析中の位置を出力する．(new_XXX で owner が子要素のチェッ
+      # クをすると owner の行番号が出てしまう点で、ずれが生じている)
 
       if @@b_end_all_parse == false || locale == nil then
@@ -463,5 +460,5 @@
   end
 
-  # ãã®ã¡ã½ããã¯æ§æè§£æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¦ã©ã¼ãã³ã°çºçã¯ä¸é©åï¼
+  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でウォーニング発生は不適切）
   def self.warning( msg, *arg )
     locale = nil
@@ -473,5 +470,5 @@
 
     msg = TECSMsg.get_warning_message( msg )
-    # $1, $2, ... ã arg ã§ç½®æ
+    # $1, $2, ... を arg で置換
     count = 1
     arg.each{ |a|
@@ -481,5 +478,5 @@
     }
 
-    # import_C ã®ä¸­ã§ã®ã¦ã©ã¼ãã³ã°ï¼
+    # import_C の中でのウォーニング？
     if @@import_C then
       C_parser.warning( msg )
@@ -508,5 +505,5 @@
   end
 
-  #===  '[' specifier å§ã
+  #===  '[' specifier 始め
   def set_in_specifier
     # p "set_in_specifier"
@@ -514,5 +511,5 @@
   end
 
-  #=== ']' specifier çµãã
+  #=== ']' specifier 終わり
   def unset_in_specifier
     # p "unset_in_specifier"
@@ -520,6 +517,5 @@
   end
 
-  # statement_specifier ã¯æ§æè§£ééä¸­ã§åç
-§ããããã
+  # statement_specifier は構文解釈途中で参照したいため
   @@statement_specifier_stack = []
   def self.add_statement_specifier( ss )
@@ -538,5 +534,5 @@
   end
 
-  #=== ãã¹ã¦ã®æ§æè§£æãå®äºãããã¨ãå ±å
+  #=== すべての構文解析が完了したことを報告
   def self.end_all_parse
     @@b_end_all_parse = true
@@ -2264,5 +2260,5 @@
 module_eval(<<'.,.,', 'bnf.y.rb', 76)
   def _reduce_13(val, _values, result)
-    			# é£æ¥ããæå­åã1ã¤ã®æå­åã«ã¾ã¨ãã
+    			# 連接した文字列を1つの文字列にまとめる
 			str = "\"" + val[0].val.gsub( /\"(.*)\"/, "\\1" ) + val[1].val.gsub( /\"(.*)\"/, "\\1" ) + "\""
 			result = Token.new( str, val[0].file, val[0].lineno, val[0].col )
@@ -3159,5 +3155,5 @@
   def _reduce_153(val, _values, result)
     			val[0].add_param( val[2] )
-			# result = val[0] ä¸è¦
+			# result = val[0] 不要
 		
     result
@@ -3314,5 +3310,5 @@
 				result = val[1]
 			else
-				# ã¨ã©ã¼ï¼ä»®ã§ val[0] ãè¿ã
+				# エラー：仮で val[0] を返す
 				result = val[0]
 			end
@@ -3458,7 +3454,7 @@
     			obj = val[3]
 			if obj.kind_of?( Cell ) || obj.kind_of?( Signature ) || obj.kind_of?( Celltype ) || obj.kind_of?( CompositeCelltype )then
-                                # cell, signature ä»¥å¤ã¯ãæå®å­ãç½®ããªã
+                                # cell, signature 以外は、指定子を置けない
 			else
-              Generator.get_statement_specifier   # ã¯ãªã¢
+              Generator.get_statement_specifier   # クリア
               Generator.error( "G1009 unexpected specifier"  )
 			end
@@ -3831,6 +3827,5 @@
 				val[1].check
 			else
-				# mikan é¢æ°ã®é
-åãä»¥ä¸ã®ã¡ãã»ã¼ã¸ã«ãªã
+				# mikan 関数の配列も以下のメッセージになる
 				Generator.error( "G1010 Not function"  )
 				result = nil
@@ -3887,8 +3882,8 @@
   def _reduce_264(val, _values, result)
     			if val[3].kind_of? Port then
-				val[3].set_specifier val[1]  # è¨­å®é åºãã
+				val[3].set_specifier val[1]  # 設定順序あり
 				Celltype.new_port( val[3] )
 			else
-				# Port ä»¥å¤ã§ã¯æå®å­ã¯ã¨ã©ã¼
+				# Port 以外では指定子はエラー
 				Generator.error( "G1012 $1 : cannot put specifier here" , val[1] )
 			end
@@ -4095,5 +4090,5 @@
   def _reduce_297(val, _values, result)
     			val[3].each{ |i|       # i:Decl
-				i.set_kind( :ATTRIBUTE )   # è¨­å®é åºãã
+				i.set_kind( :ATTRIBUTE )   # 設定順序あり
 				i.set_specifier_list( [val[1]] )
 				i.check
@@ -4177,5 +4172,5 @@
   def _reduce_308(val, _values, result)
     			val[3].each{ |i|       # i:Decl
-				i.set_kind( :VAR )   # è¨­å®é åºãã
+				i.set_kind( :VAR )   # 設定順序あり
 				i.set_specifier_list( [val[1]] )
 				i.check
@@ -4458,6 +4453,5 @@
   def _reduce_353(val, _values, result)
     			if val[0].kind_of?( Port ) then
-				CompositeCelltype.new_port( val[0] )   # é
-å»¶ãã¦ç»é²
+				CompositeCelltype.new_port( val[0] )   # 遅延して登録
 			end
 		
@@ -4469,15 +4463,13 @@
   def _reduce_354(val, _values, result)
     			if val[3].kind_of?( Port ) then
-				# port ä»¥å¤ val[3] ã«æå¹ãªå¤ãå
-¥ã£ã¦ããªãã®ã§ãä»¥ä¸ã®ã¡ã½ãããé©ç¨ã§ããªã
-				# ç¾ç¶ port, cell ä»¥å¤ã¯æå®å­ãåãä»ããªã
-				# ï¼ãããå°æ¥ä»ã®æãæå®å­ãåãä»ããå¯è½æ§ãããã®ã§ããã®ä½ç½®ã«è¨è¿°ããï¼
+				# port 以外 val[3] に有効な値が入っていないので、以下のメソッドを適用できない
+				# 現状 port, cell 以外は指定子を受け付けない
+				# （しかし将来他の文も指定子を受け付ける可能性があるので、この位置に記述する）
 				val[3].set_specifier( Generator.get_statement_specifier )
-				CompositeCelltype.new_port( val[3] )   # é
-å»¶ãã¦ç»é² (set_specifier å¾)
+				CompositeCelltype.new_port( val[3] )   # 遅延して登録 (set_specifier 後)
 			elsif val[3].kind_of?( Cell ) then
-				# Cell.end_of_parse ã«ã¦è¨­å®
+				# Cell.end_of_parse にて設定
 			else
-              Generator.get_statement_specifier   # ã¯ãªã¢
+              Generator.get_statement_specifier   # クリア
               Generator.error( "G1013 unexpected specifier"  )
 			end
@@ -4756,5 +4748,5 @@
 			if obj.kind_of?( Cell ) then
 			else
-              Generator.get_statement_specifier   # ã¯ãªã¢
+              Generator.get_statement_specifier   # クリア
               Generator.error( "G9999 unexpected specifier"  )
 			end
@@ -4854,6 +4846,5 @@
 
 
-# ãã¡ã¤ã« => INCLUDE("header")ã®é
-å
+# ファイル => INCLUDE("header")の配列
 Include = Hash.new {|hash, key| hash[key] = []}
 
@@ -4909,21 +4900,18 @@
 
 #= TECSIO
-#  Ruby2.0(1.9) å¯¾å¿ã«ä¼´ãå°å
-¥ããã¯ã©ã¹
-#  SJIS ä»¥å¤ã§ã¯ãASCII-8BIT ã¨ãã¦å
-¥åãã
+#  Ruby2.0(1.9) 対応に伴い導入したクラス
+#  SJIS 以外では、ASCII-8BIT として入力する
 class TECSIO
-  def self.foreach(file) # ãã­ãã¯å¼æ° { |line| }
-    pr = Proc.new   # ãã®ã¡ã½ããã®ãã­ãã¯å¼æ°ã pr ã«ä»£å
-¥
+  def self.foreach(file) # ブロック引数 { |line| }
+    pr = Proc.new   # このメソッドのブロック引数を pr に代入
     if $b_no_kcode then
 	  msg = "E".encode $Ruby19_File_Encode
       if( $Ruby19_File_Encode == "Shift_JIS" )
 
-        # Shift JIS ã¯ããã£ãã Windows-31J ã¨ãã¦èª­ã¿è¾¼ã¾ããShift_JIS ã«å¤æãããï¼
-        # ã³ã¡ã³ãç­ã«å«ã¾ãã SJIS ã«ä¸é©åãªæå­ã³ã¼ãã¯ '?' ã¾ãã¯ REPLACEMENT CHARACTER ã«å¤æãããï¼
-        # EUC ã UTF-8 ã§è¨è¿°ããã CDL ãæ··å¨ãã¦ãã¦ããRuby ä¾å¤ãçºçãããã¨ãªãå¦çãé²ãããã¨ãã§ããï¼
-        # æå­ã³ã¼ãæå®ã SJIS ã§ãã£ã¦ãæå­åãªãã©ã«ã®ä¸­ã«ãæå­ã³ã¼ããSJIS ä»¥å¤ã®é ASCII ãå«ã¾ãã¦ããå ´åã
-        # Ruby 1.8 ã® tecsgen ã§ã¯æå­ã³ã¼ãæå®ã«å½±é¿ãªãå¦çããããã®ããRuby 1.9 ä»¥éã§ã¯ '?' ã«ç½®ãæããå¯è½æ§ãããï¼
+        # Shift JIS は、いったん Windows-31J として読み込ませ、Shift_JIS に変換させる．
+        # コメント等に含まれる SJIS に不適切な文字コードは '?' または REPLACEMENT CHARACTER に変換される．
+        # EUC や UTF-8 で記述された CDL が混在していても、Ruby 例外が発生することなく処理を進めることができる．
+        # 文字コード指定が SJIS であって、文字列リテラルの中に、文字コードがSJIS 以外の非 ASCII が含まれている場合、
+        # Ruby 1.8 の tecsgen では文字コード指定に影響なく処理されたものが、Ruby 1.9 以降では '?' に置き換わる可能性がある．
 
         mode = "r:Windows-31J"
@@ -4949,17 +4937,17 @@
   end
 
-  #=== æå­ã³ã¼ããç¸éããå ´åä¸è´ããã
-  # msg ã¨ str ã®æå­ã³ã¼ããç¸éããå ´åãstr ã msg ã®æå­ã³ã¼ãã«å¤æãã
-  # å¤æä¸å¯ã®æå­ã³ã¼ãã¯ '?' (utf-8 ã®å ´å U+FFFD (REPLACEMENT CHARACTER )) ã«å¤æ
+  #=== 文字コードが相違する場合一致させる
+  # msg と str の文字コードが相違する場合、str を msg の文字コードに変換する
+  # 変換不可の文字コードは '?' (utf-8 の場合 U+FFFD (REPLACEMENT CHARACTER )) に変換
   #
-  # ãã®ã¡ã½ããã¯ãã¨ã©ã¼ã¡ãã»ã¼ã¸åºåã§ãä½¿ç¨ããã¦ãããã¨ã«æ³¨æï¼
+  # このメソッドは、エラーメッセージ出力でも使用されていることに注意．
   #
   #msg_enc::Encode | String
   def self.str_code_convert( msg, str )
     if $b_no_kcode == false then
-      return str                          # Ruby V1.8 ã¾ã§
+      return str                          # Ruby V1.8 まで
     end
     if msg.encoding != str.encoding then
-      option = { :invalid => :replace, :undef => :replace }   # ä¾å¤ãçºçãããã'?' ã«å¤æãã(utf-8 ã¯ 0xfffd)
+      option = { :invalid => :replace, :undef => :replace }   # 例外を発生させず、'?' に変換する(utf-8 は 0xfffd)
       # return str.encode( msg.encoding, option )
       str = str.encode( "utf-8", option )
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.y.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.y.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.y.rb	(revision 321)
@@ -6,63 +6,46 @@
 #   Copyright (C) 2008-2016 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: bnf.y.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
 class Generator
 rule
-# ãããã¬ãã«ã®æ§æè¦ç´ ã¯component_description
+# トップレベルの構文要素はcomponent_description
 all: component_description
 
 # Expr
-##########################  å¼  ##########################
-# K&Rã®ææ³(ãã­ã°ã©ãã³ã°è¨èªC ç¬¬2ç ä»é²)ã¨ä¸é¨ç°ãªã
-# argument_expression_list(é¢æ°å¼æ°), assignment_expression(ä»£å
-¥)ããªã
-# å¼ã® result ã¯ããã¹ã¦é
-åã§ç¬¬ä¸è¦ç´ ãè­å¥ã·ã³ãã«ãç¬¬äºè¦ç´ ä»¥ä¸ãå¼æ°
+##########################  式  ##########################
+# K&Rの文法(プログラミング言語C 第2版 付録)と一部異なる
+# argument_expression_list(関数引数), assignment_expression(代入)がない
+# 式の result は、すべて配列で第一要素が識別シンボル、第二要素以下が引数
 
 primary_expression
@@ -92,10 +75,10 @@
         | string_literal_list STRING_LITERAL
 		{
-			# é£æ¥ããæå­åã1ã¤ã®æå­åã«ã¾ã¨ãã
+			# 連接した文字列を1つの文字列にまとめる
 			str = "\"" + val[0].val.gsub( /\"(.*)\"/, "\\1" ) + val[1].val.gsub( /\"(.*)\"/, "\\1" ) + "\""
 			result = Token.new( str, val[0].file, val[0].lineno, val[0].col )
 		}
 
-# é¢æ°å¼ã³åºãã¨å¾ç½®ã¤ã³ã¯ãªã¡ã³ãããã¯ãªã¡ã³ãæ¼ç®å­ããªã
+# 関数呼び出しと後置インクリメント、デクリメント演算子がない
 postfix_expression
         : primary_expression
@@ -107,5 +90,5 @@
 		{ result = [ :OP_REF, val[0], val[2] ] }
 
-# åç½®ã¤ã³ã¯ãªã¡ã³ãããã¯ãªã¡ã³ãæ¼ç®å­ããªã
+# 前置インクリメント、デクリメント演算子がない
 unary_expression
         : postfix_expression
@@ -202,5 +185,5 @@
 
 
-# ã³ã³ãæ¼ç®å­ãä½¿ããªã
+# コンマ演算子が使えない
 expression
         : conditional_expression
@@ -227,9 +210,9 @@
 
 # Types
-##########################  å®£è¨  ##########################
-# å®£è¨ãK&Rã¨ä¸é¨ç°ãªã
-
-# declarationã¯ã»ã«ã®å±æ§ã§ä½¿ããã
-# K&Rã¨ã®éã: storage classãæå®ã§ããªããåãçç¥ã§ããªã
+##########################  宣言  ##########################
+# 宣言もK&Rと一部異なる
+
+# declarationはセルの属性で使われる
+# K&Rとの違い: storage classが指定できない、型が省略できない
 declaration
         : type_specifier_qualifier_list init_declarator_list ';'
@@ -241,12 +224,10 @@
 		}
 
-# declaration_specifiersã¯é¢æ°ã®ãã©ã¡ã¼ã¿ã§ä½¿ããããã
-# type_specifier_qualifier_listã§ååãããããªã
+# declaration_specifiersは関数のパラメータで使われるが、
+# type_specifier_qualifier_listで十分かもしれない
 # Oyama
-# const, volatile ã¯åç¬ã§åã«ãªããªãã®ã§å¤å½¢
-# const ã¨ volatile ãåå±
-ãããã¨ã¯ãªãã®ã§ãç¹°è¿ãæå®ã§ããªãããã«ãã
-# type_specifier ãç¹°è¿ãæå®ã§ããå¿
-è¦ã¯ãªã (singed ãªã©åç¬ã§åã«ã¯ãªããªã)
+# const, volatile は単独で型にならないので変形
+# const と volatile が同居することはないので、繰返し指定できないようにした
+# type_specifier も繰返し指定できる必要はない (singed など単独で型にはならない)
 declaration_specifiers
         : type_specifier
@@ -268,7 +249,7 @@
 		{ val[0].set_initializer( val[2] ) }
 
-# INT8ããä¸ã¯K&Rã«ãªã
+# INT8から下はK&Rにない
 # Oyama
-# signed, unsigned ã¯åç¬ã§åã«ãªããªãã®ã§ãæ§æè¦ç´ ã¨ãã¦åé¢
+# signed, unsigned は単独で型にならないので、構文要素として分離
 type_specifier
         : VOID	{ result = VoidType.new }
@@ -278,5 +259,5 @@
         | enum_specifier
         | TYPE_NAME	{ result = DefinedType.new( val[0].val ) }
-#        | IDENTIFIER	{ result = DefinedType.new( val[0].val ) }   # reduce/reduce conflict ãèµ·ãã£ã¦ãã¾ã
+#        | IDENTIFIER	{ result = DefinedType.new( val[0].val ) }   # reduce/reduce conflict が起こってしまう
         | sign_int_type
         | char_type
@@ -373,9 +354,9 @@
 		}
 
-sign    # TECS ã§ã¯ signed, unsigned åç¬ã§ã¯åã«ã§ããªã
+sign    # TECS では signed, unsigned 単独では型にできない
         : SIGNED	{ result = :SIGNED }
         | UNSIGNED	{ result = :UNSIGNED }
 
-# result[0] :CHAR ãªã©ã®ãã¼ã¯ã³ãresult[1] :CONST, :VOLATILE ãªã©
+# result[0] :CHAR などのトークン、result[1] :CONST, :VOLATILE など
 sign_int_type
         : sign int_type
@@ -386,5 +367,5 @@
         | int_type
 
-# K&Rã®struct_or_union_specifierã«ç¸å½ããããunionã¯ä½¿ããªã
+# K&Rのstruct_or_union_specifierに相当するが、unionは使えない
 struct_specifier		# mikan
         : STRUCT struct_tag '{'
@@ -405,6 +386,5 @@
 			result = val[1]
 		}
-        | STRUCT struct_tag   # mikan struct_tag ã¯ namespace å¯¾å¿ãå¿
-è¦
+        | STRUCT struct_tag   # mikan struct_tag は namespace 対応が必要
 		{
 			StructType.set_define( false )
@@ -421,5 +401,5 @@
 		{ result = StructType.new( val[0].val ) }
 
-# ãã¤ã³ã¿ä¿®é£¾å­ãè¿½å 
+# ポインタ修飾子を追加
 struct_declaration
         :                                type_specifier_qualifier_list struct_declarator_list ';'
@@ -456,8 +436,8 @@
 
 
-# K&Rã®specifier_qualifier_listã¨åã
-# ååãã¾ãããããã£ãã®ã§type_ãä»ãã
+# K&Rのspecifier_qualifier_listと同じ
+# 名前がまぎらわしかったのでtype_を付けた
 type_specifier_qualifier_list
-# Oyama type_specifier ãç¹°ãè¿ãã¦æå®ãããã¨ã¯ãªããªã£ã (sign_int_type ã¨ããããï¼
+# Oyama type_specifier を繰り返して指定することはなくなった (sign_int_type としたため）
 #        : type_specifier type_specifier_qualifier_list
         : type_specifier
@@ -467,5 +447,5 @@
 			result = val[1]
 		}
-# mikan Oyama type_qualifier ã ãã§ã¯åæå®ã«ãªããªã : æ§æã¨ã©ã¼ã¨ãããããæå³ã¨ã©ã¼ã¨ããæ¹ãè¦ªå
+# mikan Oyama type_qualifier だけでは型指定にならない : 構文エラーとするより、意味エラーとした方が親切
 #        | type_qualifier
 
@@ -477,9 +457,9 @@
 		{ result << val[2] }
 
-# ããããã£ã¼ã«ãã¯ä½¿ããªã
+# ビットフィールドは使えない
 struct_declarator
         : declarator
 
-# enumã®ç¨®é¡ãè¿½å 
+# enumの種類を追加
 enum_specifier		# mikan
         : enum_type            '{' enumerator_list '}'
@@ -535,6 +515,5 @@
 			result = val[0]
 		}
-#        | direct_declarator '(' identifier_list ')'  # ããã¯ä½ã®ããã«å¿
-è¦ï¼ 060211
+#        | direct_declarator '(' identifier_list ')'  # これは何のために必要？ 060211
         | direct_declarator '(' ')'
 		{
@@ -569,5 +548,5 @@
         : parameter_list
         | parameter_list ',' '...'
-		# mikan å¯å¤é·ãã©ã¡ã¼ã¿
+		# mikan 可変長パラメータ
 
 parameter_list
@@ -577,9 +556,9 @@
 		{
 			val[0].add_param( val[2] )
-			# result = val[0] ä¸è¦
-		}
-
-
-# ãã©ã¡ã¼ã¿ä¿®é£¾å­ãè¿½å 
+			# result = val[0] 不要
+		}
+
+
+# パラメータ修飾子を追加
 parameter_declaration
 #        : spec_L parameter_specifier_list spec_R declaration_specifiers declarator
@@ -592,11 +571,11 @@
 		}
 
-	# ä»¥ä¸ã¯ã¨ã©ã¼ã¨ãã
-        | declaration_specifiers declarator # parameter_specifier ãªãã¯æ±ããªã
+	# 以下はエラーとする
+        | declaration_specifiers declarator # parameter_specifier なしは扱わない
 		{
 			Generator.error( "G1001 need specifier for \'$1\'" , val[1].get_name )
 			result = nil
 		}
-        | declaration_specifiers	# ä»®å¼æ°ãªãã¯ãã¨ããããæ±ããªã 060210
+        | declaration_specifiers	# 仮引数なしは、とりあえず扱わない 060210
 		{
 			unless val[0].instance_of?( VoidType ) then
@@ -605,6 +584,6 @@
 			result = nil
 		}
-#        | '[' parameter_specifier_list ']' declaration_specifiers # å 060210
-        | parameter_specifier_list_bracket declaration_specifiers # å 060210
+#        | '[' parameter_specifier_list ']' declaration_specifiers # 同 060210
+        | parameter_specifier_list_bracket declaration_specifiers # 同 060210
 		{
 			unless val[1].instance_of?( VoidType ) then
@@ -647,9 +626,9 @@
 				result = val[1]
 			else
-				# ã¨ã©ã¼ï¼ä»®ã§ val[0] ãè¿ã
+				# エラー：仮で val[0] を返す
 				result = val[0]
 			end
 		}
-		# mikan abstract_declarator ã pointer ä»¥å¤ã§ã¯ãã¾ãåããªããã¨ãããã '*' CAST ã®ã¿æã£ã
+		# mikan abstract_declarator が pointer 以外ではうまく動かない、とりあえず '*' CAST のみ救った
 
 abstract_declarator		# mikan
@@ -660,5 +639,5 @@
 direct_abstract_declarator
         : '(' abstract_declarator ')'
-		{ result = val[1] }  # é¢æ°ãã¤ã³ã¿åãæã
+		{ result = val[1] }  # 関数ポインタ型を救う
         | '[' ']'
 		{
@@ -699,5 +678,5 @@
 		}
 
-# assignment_expressionãconstant_expressionã«å¤æ´
+# assignment_expressionをconstant_expressionに変更
 initializer			# mikan
         : constant_expression
@@ -723,8 +702,8 @@
 
 
-##########################  ããããã¯CDLç¬èª  ##########################
-
-#ãããã¬ãã«ã®æ§æè¦å
-#ã³ã³ãã¼ãã³ãè¨è¿°
+##########################  ここからはCDL独自  ##########################
+
+#トップレベルの構文規則
+#コンポーネント記述
 component_description
         : component_description specified_statement
@@ -738,11 +717,11 @@
 			obj = val[3]
 			if obj.kind_of?( Cell ) || obj.kind_of?( Signature ) || obj.kind_of?( Celltype ) || obj.kind_of?( CompositeCelltype )then
-                                # cell, signature ä»¥å¤ã¯ãæå®å­ãç½®ããªã
+                                # cell, signature 以外は、指定子を置けない
 			else
-              Generator.get_statement_specifier   # ã¯ãªã¢
+              Generator.get_statement_specifier   # クリア
               Generator.error( "G1009 unexpected specifier"  )
 			end
 		}
-		# ããã¨åãè¨è¿°ã composite_celltype ã«ããã
+		# これと同じ記述が composite_celltype にもある
 
 statement
@@ -760,5 +739,5 @@
         | import_C
         | signature_plugin
-        | error   # ã¨ã©ã¼åå¾©ãã¤ã³ã
+        | error   # エラー回復ポイント
 
 	
@@ -799,5 +778,5 @@
         | IDENTIFIER '[' constant_expression ']' '.' IDENTIFIER '.' IDENTIFIER '=' initializer
 		{  result = [ :NORMAL_ALLOC, val[0], val[2], val[5], val[7], val[9] ] }
-# mikan å°æ¥çãªæ¡å¼µ ('*' ã§ã¾ã¨ãã¦æå®å¯è½ã¨ãã)
+# mikan 将来的な拡張 ('*' でまとめて指定可能とする)
 #        | IDENTIFIER '.' IDENTIFIER '.' '*'        '=' initializer
 #		{  result = [ val[0], val[ ], val[ ], val[ ] ] }
@@ -824,5 +803,5 @@
 
 const_statement
-        : declaration   # å®æ°å®ç¾©
+        : declaration   # 定数定義
 		{
 			val[0].each { |decl|
@@ -879,5 +858,5 @@
 			}
 		}
-		# mikan   typedef_specifier æªå¦ç½®
+		# mikan   typedef_specifier 未処置
 
 
@@ -899,5 +878,5 @@
         : IDENTIFIER
 		{result = Namespace.new(val[0].val)}
-		# namespace ã¤ã³ã¹ã¿ã³ã¹ã« statement ãè¨æ¶ãããããããã§çæ
+		# namespace インスタンスに statement を記憶させるためここで生成
 
 statement_list
@@ -911,5 +890,5 @@
 		{ result = val[0].append!( val[2].val ) }
 
-#ã·ã°ããã£
+#シグニチャ
 signature
         : SIGNATURE signature_name '{' function_head_list '}' ';'
@@ -920,6 +899,5 @@
 		{result = Signature.new( val[0].val ) }
 
-function_head_list     # result:  function_head ã®é
-å
+function_head_list     # result:  function_head の配列
 #        : function_head
 #		{ result = NamedList.new( val[0], "function" ) }
@@ -938,6 +916,5 @@
 				val[1].check
 			else
-				# mikan é¢æ°ã®é
-åãä»¥ä¸ã®ã¡ãã»ã¼ã¸ã«ãªã
+				# mikan 関数の配列も以下のメッセージになる
 				Generator.error( "G1010 Not function"  )
 				result = nil
@@ -955,5 +932,5 @@
 
 
-#ã»ã«ã¿ã¤ã
+#セルタイプ
 celltype
         : CELLTYPE celltype_name '{' celltype_statement_list '}' ';'
@@ -981,8 +958,8 @@
 		{
 			if val[3].kind_of? Port then
-				val[3].set_specifier val[1]  # è¨­å®é åºãã
+				val[3].set_specifier val[1]  # 設定順序あり
 				Celltype.new_port( val[3] )
 			else
-				# Port ä»¥å¤ã§ã¯æå®å­ã¯ã¨ã©ã¼
+				# Port 以外では指定子はエラー
 				Generator.error( "G1012 $1 : cannot put specifier here" , val[1] )
 			end
@@ -995,5 +972,5 @@
         | require
         | factory
-#        | error       # ã¨ã©ã¼åå¾©ãã¤ã³ã  (#513 ç¡éã«ã¼ãã«é¥ãã±ã¼ã¹ãããã®ã§ãããã§ã®ã¨ã©ã¼åå¾©ã¯åããã)
+#        | error       # エラー回復ポイント  (#513 無限ループに陥るケースがあるので、ここでのエラー回復は取りやめ)
 
 celltype_statement_specifier_list
@@ -1012,19 +989,17 @@
 
 alloc_list2
-        : alloc2			{ result = [ val[0] ] }    # åãå£ã®ã¢ã­ã±ã¼ã¿æå®
-        | alloc				{ result = [ val[0] ] }    # å
-é¨ã»ã«ã®ã¢ã­ã±ã¼ã¿æå®
+        : alloc2			{ result = [ val[0] ] }    # 受け口のアロケータ指定
+        | alloc				{ result = [ val[0] ] }    # 内部セルのアロケータ指定
         | alloc_list2 ',' alloc2	{ result << val[2] }
         | alloc_list2 ',' alloc		{ result << val[2] }
 
 alloc2
-        : IDENTIFIER '.' IDENTIFIER '=' initializer    # å
-é¨ã¢ã­ã±ã¼ã¿ (ãããã©åãã¢ã­ã±ã¼ã¿)æå®
+        : IDENTIFIER '.' IDENTIFIER '=' initializer    # 内部アロケータ (デバドラ向きアロケータ)指定
 		{  result = [ :INTERNAL_ALLOC, val[0].val, val[2].val, val[4] ] }
-        | IDENTIFIER '.' IDENTIFIER '<=' initializer   # å¤æ®µãªã¬ã¼ã¢ãã«åãã¢ã­ã±ã¼ã¿æå®
+        | IDENTIFIER '.' IDENTIFIER '<=' initializer   # 多段リレーモデル向きアロケータ指定
 		{  result = [ :RELAY_ALLOC, val[0].val, val[2].val, val[4] ] }
 
 
-#å¼ã³å£ãåãå£
+#呼び口、受け口
 port
         : port_type namespace_signature_name port_name ';'
@@ -1052,5 +1027,5 @@
 
 
-#å±æ§
+#属性
 attribute
         : ATTRIBUTE '{' attribute_declaration_list '}' ';'
@@ -1076,5 +1051,5 @@
 		{
 			val[3].each{ |i|       # i:Decl
-				i.set_kind( :ATTRIBUTE )   # è¨­å®é åºãã
+				i.set_kind( :ATTRIBUTE )   # 設定順序あり
 				i.set_specifier_list( [val[1]] )
 				i.check
@@ -1095,6 +1070,5 @@
         : STRING_LITERAL
 
-#å
-é¨å¤æ°
+#内部変数
 var
         : VAR '{' var_declaration_list '}' ';'
@@ -1118,5 +1092,5 @@
 		{
 			val[3].each{ |i|       # i:Decl
-				i.set_kind( :VAR )   # è¨­å®é åºãã
+				i.set_kind( :VAR )   # 設定順序あり
 				i.set_specifier_list( [val[1]] )
 				i.check
@@ -1128,5 +1102,5 @@
         : SIZE_IS  '(' expression ')'	{ result = [:SIZE_IS,val[2]] }
 
-# ãªã¯ã¯ã¤ã¢
+# リクワイア
 require
         : REQUIRE namespace_identifier '.' IDENTIFIER';'                            # mikan namespace #1
@@ -1139,5 +1113,5 @@
 		}
 
-#ãã¡ã¯ããª
+#ファクトリ
 factory
         : factory_head '{' factory_function_list '}' ';'
@@ -1148,5 +1122,5 @@
 
 factory_function_list
-        :                                         # ç©º
+        :                                         # 空
         | factory_function_list factory_function
 
@@ -1160,5 +1134,5 @@
         : IDENTIFIER
 
-arg_list     # factory ã® write é¢æ°ã®ç¬¬ä¸å¼æ°ä»¥é
+arg_list     # factory の write 関数の第三引数以降
         : IDENTIFIER
 		{ result = [ [ :IDENTIFIER, val[0].val ] ] }
@@ -1170,5 +1144,5 @@
 		{ result << [ :STRING_LITERAL, val[2].val ] }
 
-#ã»ã«çæ
+#セル生成
 cell
         : CELL namespace_celltype_name cell_name '{'
@@ -1176,5 +1150,5 @@
           join_list '}' ';'
 		{ result = Cell.end_of_parse true }
-        | CELL namespace_celltype_name cell_name ';'   # oyama ãã­ãã¿ã¤ãå®£è¨
+        | CELL namespace_celltype_name cell_name ';'   # oyama プロトタイプ宣言
 			{ result = Cell.end_of_parse false }
 
@@ -1188,5 +1162,5 @@
 
 join_list
-        :   # ç©ºè¡  061007
+        :   # 空行  061007
         | join_list specified_join
         | join_list reverse_join
@@ -1231,5 +1205,5 @@
 			Cell.new_join( result, true )
 		}
-        | cae_name '=' initializer ';'     # åæåå­ï¼ '{', '}' ãå¯
+        | cae_name '=' initializer ';'     # 初期化子： '{', '}' も可
 		{
 			result = Join.new( val[0].val, nil, val[2] )
@@ -1275,5 +1249,5 @@
         : constant_expression
 
-#è¤åç¨®
+#複合種
 composite_celltype
         : COMPOSITE composite_celltype_name '{' composite_celltype_statement_list '}' ';'
@@ -1295,6 +1269,5 @@
 		{
 			if val[0].kind_of?( Port ) then
-				CompositeCelltype.new_port( val[0] )   # é
-å»¶ãã¦ç»é²
+				CompositeCelltype.new_port( val[0] )   # 遅延して登録
 			end
 		}
@@ -1302,15 +1275,13 @@
 		{
 			if val[3].kind_of?( Port ) then
-				# port ä»¥å¤ val[3] ã«æå¹ãªå¤ãå
-¥ã£ã¦ããªãã®ã§ãä»¥ä¸ã®ã¡ã½ãããé©ç¨ã§ããªã
-				# ç¾ç¶ port, cell ä»¥å¤ã¯æå®å­ãåãä»ããªã
-				# ï¼ãããå°æ¥ä»ã®æãæå®å­ãåãä»ããå¯è½æ§ãããã®ã§ããã®ä½ç½®ã«è¨è¿°ããï¼
+				# port 以外 val[3] に有効な値が入っていないので、以下のメソッドを適用できない
+				# 現状 port, cell 以外は指定子を受け付けない
+				# （しかし将来他の文も指定子を受け付ける可能性があるので、この位置に記述する）
 				val[3].set_specifier( Generator.get_statement_specifier )
-				CompositeCelltype.new_port( val[3] )   # é
-å»¶ãã¦ç»é² (set_specifier å¾)
+				CompositeCelltype.new_port( val[3] )   # 遅延して登録 (set_specifier 後)
 			elsif val[3].kind_of?( Cell ) then
-				# Cell.end_of_parse ã«ã¦è¨­å®
+				# Cell.end_of_parse にて設定
 			else
-              Generator.get_statement_specifier   # ã¯ãªã¢
+              Generator.get_statement_specifier   # クリア
               Generator.error( "G1013 unexpected specifier"  )
 			end
@@ -1322,5 +1293,5 @@
         | internal_cell
         | export_join
-#        | error       # ã¨ã©ã¼åå¾©ãã¤ã³ã  (#513 ç¡éã«ã¼ãã«é¥ãã±ã¼ã¹ãããã®ã§ãããã§ã®ã¨ã©ã¼åå¾©ã¯åããã)
+#        | error       # エラー回復ポイント  (#513 無限ループに陥るケースがあるので、ここでのエラー回復は取りやめ)
 
 composite_celltype_statement_specifier_list
@@ -1345,5 +1316,5 @@
 		}
 
-#å±æ§
+#属性
 composite_attribute
         : ATTRIBUTE '{' composite_attribute_declaration_list '}' ';'
@@ -1376,19 +1347,17 @@
 
 internal_join_list
-        :   # ç©ºè¡  061007
+        :   # 空行  061007
         | internal_join_list specified_join
         | internal_join_list external_join
 
-external_join  # cell å
-ã«è¨è¿°ããå¼ã³å£ã®å¤é¨çµå
+external_join  # cell 内に記述する呼び口の外部結合
         : internal_cell_elem_name '=>' COMPOSITE '.' export_name ';'
 		{	Cell.external_join( val[0].val, val[4].val, true )	}
         | internal_cell_elem_name '=>' export_name ';'
 		{	Cell.external_join( val[0].val, val[2].val, false )	}
-        # ä»¥åã®ææ³ã§ã¯ãå¼ã³å£å´ã cell ã®å¤ã«è¨è¿°ãã¦ãã
-        # ãã®æã®å®è£
-ã
-
-export_join    # cell å¤ã«è¨è¿°ããåãå£ã®å¤é¨çµå
+        # 以前の文法では、呼び口側も cell の外に記述していた
+        # その時の実装を
+
+export_join    # cell 外に記述する受け口の外部結合
         : export_name '=>' internal_ref_cell_name '.' internal_cell_elem_name ';'
 		{
@@ -1411,5 +1380,5 @@
         : IDENTIFIER
 
-# ãªã¼ã¸ã§ã³
+# リージョン
 region
         : spec_L region_specifier_list spec_R REGION region_name '{'  region_statement '}' ';'
@@ -1426,13 +1395,13 @@
         : IN_THROUGH '(' plugin_name ',' plugin_arg ')'
 		{ Region.new_in_through( val[2].val, val[4].val ) }
-        | IN_THROUGH '(' ')'   # in è¨±å¯
+        | IN_THROUGH '(' ')'   # in 許可
 		{ Region.new_in_through }
         | OUT_THROUGH '(' plugin_name ',' plugin_arg ')'
 		{ Region.new_out_through( val[2].val, val[4].val ) }
-        | OUT_THROUGH '(' ')'  # out è¨±å¯
+        | OUT_THROUGH '(' ')'  # out 許可
 		{ Region.new_out_through() }
         | TO_THROUGH '(' namespace_region_name ',' plugin_name ',' plugin_arg ')'
 		{ Region.new_to_through( val[2], val[4].val, val[6].val ) }
-        | TO_THROUGH '('namespace_region_name ')'  # to è¨±å¯
+        | TO_THROUGH '('namespace_region_name ')'  # to 許可
 		{ Region.new_to_through( val[2], nil, nil ) }
         | NODE
@@ -1461,5 +1430,5 @@
 			if obj.kind_of?( Cell ) then
 			else
-              Generator.get_statement_specifier   # ã¯ãªã¢
+              Generator.get_statement_specifier   # クリア
               Generator.error( "G9999 unexpected specifier"  )
 			end
@@ -1480,10 +1449,8 @@
 namespace_region_name
          : :IDENTIFIER
-		{ result = [ val[0].val ] }  # mikan é
-åã§ããå¿
-è¦ã¯ãªã
+		{ result = [ val[0].val ] }  # mikan 配列である必要はない
 #        : namespace_identifier
 
-# æå®å­ã®æ¬å¼§ (in, out ãªã©ã®ã­ã¼ã¯ã¼ãåãæ¿ãã®ããåé¢)
+# 指定子の括弧 (in, out などのキーワード切り替えのため分離)
 spec_L
         : '['  { set_in_specifier }
@@ -1620,6 +1587,5 @@
   }
 
-  # æå®å­ '[]' å
-ã§ã®ã¿ä½¿ç¨ã§ããã­ã¼ã¯ã¼ã
+  # 指定子 '[]' 内でのみ使用できるキーワード
   RESERVED2 = {
     # specifier
@@ -1638,5 +1604,5 @@
     # port (entry)
     'inline' => :INLINE,
-    'ref_desc' => :REF_DESC,   # call ãå¯
+    'ref_desc' => :REF_DESC,   # call も可
 
     # port (call)
@@ -1682,29 +1648,29 @@
   }
 
-  # åå¸°çãªãã¼ãµã®ããã®ã¹ã¿ãã¯
+  # 再帰的なパーサのためのスタック
   @@generator_nest = -1
   @@generator_stack = []
   @@current_locale = []
 
-  # import_C ä¸­ã§ãã
+  # import_C 中である
   @@import_C = false
 
-  # ãã¹ã¦ã®æ§æè§£æãå®äºãã
+  # すべての構文解析が完了した
   @@b_end_all_parse = false
 
   def self.parse( file_name, plugin = nil, b_reuse = false )
-    # ãã¼ãµã¤ã³ã¹ã¿ã³ã¹ãçæ(å¥ãã¼ãµã§èª­ã¿è¾¼ã)
+    # パーサインスタンスを生成(別パーサで読み込む)
     parser = Generator.new
 
-    # plugin ãã import ããã¦ããå ´åã® plugin è¨­å®
+    # plugin から import されている場合の plugin 設定
     parser.set_plugin plugin
 
-    # reuse ãã©ã°ãè¨­å®
+    # reuse フラグを設定
     parser.set_reuse b_reuse
 
-    # cdl ããã¼ã¹
+    # cdl をパース
     parser.parse( [file_name] )
 
-    # çµæåããã¼ãµã¹ã¿ãã¯ãæ»ã
+    # 終期化　パーサスタックを戻す
     parser.finalize
   end
@@ -1726,5 +1692,5 @@
   def self.get_plugin
     if @@generator_stack[@@generator_nest] then
-      # tecsgen å¼æ°ã® cdl ã import ãããå ´åã¯ nil
+      # tecsgen 引数の cdl が import される場合は nil
       return @@generator_stack[@@generator_nest].get_plugin
     else
@@ -1743,5 +1709,5 @@
   def self.is_reuse?
     if @@generator_stack[@@generator_nest] then
-      # tecsgen å¼æ°ã® cdl ã import ãããå ´åã¯ nil
+      # tecsgen 引数の cdl が import される場合は nil
       return @@generator_stack[@@generator_nest].is_reuse?
     else
@@ -1773,5 +1739,5 @@
       b_in_string = false
 
-      # euc ã®ã³ã¡ã³ãã utf8 ã¨ãã¦æ±ãã¨ãã³ã¡ã³ãã®çµãããèª¤ãåé¡ã®å¯¾ç­
+      # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
       TECS_LANG::set_kcode_binary
 
@@ -1783,5 +1749,5 @@
           TECSIO.foreach(file) {|line|
             col = 1
-#            line.rstrip!         æ¹è¡å«ãæå­åãæ±ãããã«ãªã£ãã®ã§ãããã§ç©ºç½ãåãé¤ããªããªã£ã
+#            line.rstrip!         改行含む文字列を扱うようになったので、ここで空白を取り除けなくなった
 
             until line.empty?
@@ -1789,11 +1755,10 @@
               if b_in_comment
                 case line
-                  # ã³ã¡ã³ãçµäº
+                  # コメント終了
                 when /\A\*\//
                   b_in_comment = false
                 when /\A./
                   ;
-                when /\s+/     # line.rstrip! ãæ­¢ãããã \n ãªã©ã®ç©ºç½æå­ã¨ã¾ã£ã¡ããã«ã¼ã«ãå¿
-è¦ã«ãªã£ã
+                when /\s+/     # line.rstrip! を止めたため \n などの空白文字とまっちするルールが必要になった
                   ;
                 end
@@ -1803,9 +1768,9 @@
                   @q <<  [:STRING_LITERAL, Token.new(string, file, lineno, col)]
                   b_in_string = false
-                elsif line =~ /\A.*\\\n/     # æ¹è¡ \n ã¯ '.' ã«ãããããªã
+                elsif line =~ /\A.*\\\n/     # 改行 \n は '.' にマッチしない
                   string += $&
-                elsif line =~ /\A.*\n/     # æ¹è¡ \n ã¯ '.' ã«ãããããªã
+                elsif line =~ /\A.*\n/     # 改行 \n は '.' にマッチしない
                   string += line
-                  # ãã®ä½ç½®ã§ã¯ error ã¡ã½ããã¯ä½¿ããªã (token èª­åºãå)
+                  # この位置では error メソッドは使えない (token 読出し前)
                   puts "error: #{file} line #{lineno}: string literal has newline without escape"
                   @@n_error += 1
@@ -1813,57 +1778,57 @@
               else
                 case line
-                # ç©ºç½ãããªãã­ã»ã¹ãã£ã¬ã¯ãã£ã
+                # 空白、プリプロセスディレクティブ
                 when /\A\s+/
                   ;
-                # è­å¥å­
+                # 識別子
                 when /\A[a-zA-Z_]\w*/
                   word = $&
                   @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
-                # 16 é²æ°å®æ°
+                # 16 進数定数
                 when /\A0x[0-9A-Fa-f]+/
                   @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
-                # 8 é²æ°å®æ°
+                # 8 進数定数
                 when /\A0[0-7]+/
                   @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
-                # æµ®åå°æ°å®æ°
+                # 浮動小数定数
                 when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
                   @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
-                # æ´æ°å®æ°
+                # 整数定数
                 when /\A\d+/
                   @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
-                # æå­å®æ°
+                # 文字定数
                 when /\A'(?:[^'\\]|\\.)'/
                   @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
-                # æå­å
-#                "#include  #include #include \"../systask/logtask.cfg\"       æå¾ã® " å¿ã)ã§ç¡éã«ã¼ã
+                # 文字列
+#                "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
 #                when /\A"(?:[^"\\]+|\\.)*"/
-                when /\A"(?:[^"\\]|\\.)*"/   # ããã¯ãã¾ãè¡ãããã 
+                when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
                   @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
-                # æå­å (æ¹è¡ãã)
+                # 文字列 (改行あり)
                 when /\A"(?:[^"\\]|\\.)*\\\n$/
                   string = $&
                   b_in_string = true
-                # æå­å (æ¹è¡ãã, escape ãªã)
+                # 文字列 (改行あり, escape なし)
                 when /\A("(?:[^"\\]|\e\.)*)\n$/
                   string = $1 + "\\\n"
                   b_in_string = true
-                  # ãã®ä½ç½®ã§ã¯ error ã¡ã½ããã¯ä½¿ããªã (token èª­åºãå) # mikan cdl_error ã§ã¯ãªã
+                  # この位置では error メソッドは使えない (token 読出し前) # mikan cdl_error ではない
                   puts "error: #{file} line #{lineno}: string literal has newline without escape"
                   @@n_error += 1
-                # å±±æ¬å¼§ã§å²ã¾ããæå­å
+                # 山括弧で囲まれた文字列
                 when /\A<[0-9A-Za-z_\. \/]+>/   # AB: angle bracke
                   @q << [:AB_STRING_LITERAL, Token.new($&, file, lineno, col)]
-                # è¡ã³ã¡ã³ã
+                # 行コメント
                 when /\A\/\/.*$/
-                  # èª­ã¿é£ã°ãã ã
-                # ã³ã¡ã³ãéå§
+                  # 読み飛ばすだけ
+                # コメント開始
                 when /\A\/\*/
                   b_in_comment = true
-                # '>>', '<<' ãªã©
+                # '>>', '<<' など
                 when /\A>>/, /\A<</, /\A==/, /\A!=/, /\A\&\&/, /\A\|\|/
                   @q << [$&, Token.new($&, file, lineno, col)]
                 when /\A::/, /\A=>/, /\A<=/, /\A>=/
                   @q << [$&, Token.new($&, file, lineno, col)]
-                # '(', ')' ãªã©ä¸æå­ã®è¨å·ãã¾ãã¯æªç¥ã®è¨å·
+                # '(', ')' など一文字の記号、または未知の記号
                 when /\A./
                   @q << [$&, Token.new($&, file, lineno, col)]
@@ -1889,5 +1854,5 @@
       }
 
-      # çµäºã®å°
+      # 終了の印
       @q << nil
 
@@ -1909,15 +1874,14 @@
 
       if token[0] == :IDENTIFIER then
-        # TYPE_NAME ãã¼ã¯ã³ã¸ç½®æã
+        # TYPE_NAME トークンへ置換え
         if Namespace.is_typename?( token[1].val ) then
           token[0] = :TYPE_NAME
         elsif @in_specifier && RESERVED2[ token[1].val.to_s ] then
-          # æå®å­ã­ã¼ã¯ã¼ãï¼ '[', ']' å
-ã§ã®ã¿æå¹)
+          # 指定子キーワード（ '[', ']' 内でのみ有効)
           token[0] = RESERVED2[ token[1].val.to_s ]
         end
       end
 
-      if $debug then     # 070107 token ç¡å¹æãããéããªããããã (through å¯¾å¿ -d ã®æã«ä¾å¤çºç) 
+      if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) 
         locale = @@current_locale[@@generator_nest]
         if token then
@@ -1950,5 +1914,5 @@
   @@n_warning = 0
 
-  # ãã®ã¡ã½ããã¯æ§æè§£æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¨ã©ã¼çºçã¯ä¸é©åï¼
+  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
   def self.error( msg, *arg )
     locale = nil
@@ -1960,5 +1924,5 @@
 
     msg = TECSMsg.get_error_message( msg )
-    # $1, $2, ... ã arg ã§ç½®æ
+    # $1, $2, ... を arg で置換
     count = 1
     arg.each{ |a|
@@ -1968,13 +1932,13 @@
     }
 
-    # import_C ã®ä¸­ã§ã®ã¨ã©ã¼ï¼
+    # import_C の中でのエラー？
     if @@import_C then
       C_parser.error( msg )
     else
 
-      # Node ã®è¨æ¶ãã ä½ç½® (locale) ãä½¿ç¨ããå ´åãå¤æ´ä»¥åã«æ¯ã¹ã
-      # åé¡çºçç®æã¨ç°ãªãä½ç½®ã«ã¨ã©ã¼ãåºããããæ§æè§£æä¸­ã®ã¨ã©ã¼
-      # ã¯ãè§£æä¸­ã®ä½ç½®ãåºåããï¼(new_XXX ã§ owner ãå­è¦ç´ ã®ãã§ã
-      # ã¯ãããã¨ owner ã®è¡çªå·ãåºã¦ãã¾ãç¹ã§ããããçãã¦ãã)
+      # Node の記憶する 位置 (locale) を使用した場合、変更以前に比べ、
+      # 問題発生箇所と異なる位置にエラーが出るため、構文解析中のエラー
+      # は、解析中の位置を出力する．(new_XXX で owner が子要素のチェッ
+      # クをすると owner の行番号が出てしまう点で、ずれが生じている)
 
       if @@b_end_all_parse == false || locale == nil then
@@ -1989,5 +1953,5 @@
   end
 
-  # ãã®ã¡ã½ããã¯æ§æè§£æãæå³è§£æããã®ã¿å¼åºãå¯ï¼ã³ã¼ãçæã§ã¦ã©ã¼ãã³ã°çºçã¯ä¸é©åï¼
+  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でウォーニング発生は不適切）
   def self.warning( msg, *arg )
     locale = nil
@@ -1999,5 +1963,5 @@
 
     msg = TECSMsg.get_warning_message( msg )
-    # $1, $2, ... ã arg ã§ç½®æ
+    # $1, $2, ... を arg で置換
     count = 1
     arg.each{ |a|
@@ -2007,5 +1971,5 @@
     }
 
-    # import_C ã®ä¸­ã§ã®ã¦ã©ã¼ãã³ã°ï¼
+    # import_C の中でのウォーニング？
     if @@import_C then
       C_parser.warning( msg )
@@ -2034,5 +1998,5 @@
   end
 
-  #===  '[' specifier å§ã
+  #===  '[' specifier 始め
   def set_in_specifier
     # p "set_in_specifier"
@@ -2040,5 +2004,5 @@
   end
 
-  #=== ']' specifier çµãã
+  #=== ']' specifier 終わり
   def unset_in_specifier
     # p "unset_in_specifier"
@@ -2046,6 +2010,5 @@
   end
 
-  # statement_specifier ã¯æ§æè§£ééä¸­ã§åç
-§ããããã
+  # statement_specifier は構文解釈途中で参照したいため
   @@statement_specifier_stack = []
   def self.add_statement_specifier( ss )
@@ -2064,5 +2027,5 @@
   end
 
-  #=== ãã¹ã¦ã®æ§æè§£æãå®äºãããã¨ãå ±å
+  #=== すべての構文解析が完了したことを報告
   def self.end_all_parse
     @@b_end_all_parse = true
@@ -2072,6 +2035,5 @@
 
 
-# ãã¡ã¤ã« => INCLUDE("header")ã®é
-å
+# ファイル => INCLUDE("header")の配列
 Include = Hash.new {|hash, key| hash[key] = []}
 
@@ -2127,21 +2089,18 @@
 
 #= TECSIO
-#  Ruby2.0(1.9) å¯¾å¿ã«ä¼´ãå°å
-¥ããã¯ã©ã¹
-#  SJIS ä»¥å¤ã§ã¯ãASCII-8BIT ã¨ãã¦å
-¥åãã
+#  Ruby2.0(1.9) 対応に伴い導入したクラス
+#  SJIS 以外では、ASCII-8BIT として入力する
 class TECSIO
-  def self.foreach(file) # ãã­ãã¯å¼æ° { |line| }
-    pr = Proc.new   # ãã®ã¡ã½ããã®ãã­ãã¯å¼æ°ã pr ã«ä»£å
-¥
+  def self.foreach(file) # ブロック引数 { |line| }
+    pr = Proc.new   # このメソッドのブロック引数を pr に代入
     if $b_no_kcode then
 	  msg = "E".encode $Ruby19_File_Encode
       if( $Ruby19_File_Encode == "Shift_JIS" )
 
-        # Shift JIS ã¯ããã£ãã Windows-31J ã¨ãã¦èª­ã¿è¾¼ã¾ããShift_JIS ã«å¤æãããï¼
-        # ã³ã¡ã³ãç­ã«å«ã¾ãã SJIS ã«ä¸é©åãªæå­ã³ã¼ãã¯ '?' ã¾ãã¯ REPLACEMENT CHARACTER ã«å¤æãããï¼
-        # EUC ã UTF-8 ã§è¨è¿°ããã CDL ãæ··å¨ãã¦ãã¦ããRuby ä¾å¤ãçºçãããã¨ãªãå¦çãé²ãããã¨ãã§ããï¼
-        # æå­ã³ã¼ãæå®ã SJIS ã§ãã£ã¦ãæå­åãªãã©ã«ã®ä¸­ã«ãæå­ã³ã¼ããSJIS ä»¥å¤ã®é ASCII ãå«ã¾ãã¦ããå ´åã
-        # Ruby 1.8 ã® tecsgen ã§ã¯æå­ã³ã¼ãæå®ã«å½±é¿ãªãå¦çããããã®ããRuby 1.9 ä»¥éã§ã¯ '?' ã«ç½®ãæããå¯è½æ§ãããï¼
+        # Shift JIS は、いったん Windows-31J として読み込ませ、Shift_JIS に変換させる．
+        # コメント等に含まれる SJIS に不適切な文字コードは '?' または REPLACEMENT CHARACTER に変換される．
+        # EUC や UTF-8 で記述された CDL が混在していても、Ruby 例外が発生することなく処理を進めることができる．
+        # 文字コード指定が SJIS であって、文字列リテラルの中に、文字コードがSJIS 以外の非 ASCII が含まれている場合、
+        # Ruby 1.8 の tecsgen では文字コード指定に影響なく処理されたものが、Ruby 1.9 以降では '?' に置き換わる可能性がある．
 
         mode = "r:Windows-31J"
@@ -2167,17 +2126,17 @@
   end
 
-  #=== æå­ã³ã¼ããç¸éããå ´åä¸è´ããã
-  # msg ã¨ str ã®æå­ã³ã¼ããç¸éããå ´åãstr ã msg ã®æå­ã³ã¼ãã«å¤æãã
-  # å¤æä¸å¯ã®æå­ã³ã¼ãã¯ '?' (utf-8 ã®å ´å U+FFFD (REPLACEMENT CHARACTER )) ã«å¤æ
+  #=== 文字コードが相違する場合一致させる
+  # msg と str の文字コードが相違する場合、str を msg の文字コードに変換する
+  # 変換不可の文字コードは '?' (utf-8 の場合 U+FFFD (REPLACEMENT CHARACTER )) に変換
   #
-  # ãã®ã¡ã½ããã¯ãã¨ã©ã¼ã¡ãã»ã¼ã¸åºåã§ãä½¿ç¨ããã¦ãããã¨ã«æ³¨æï¼
+  # このメソッドは、エラーメッセージ出力でも使用されていることに注意．
   #
   #msg_enc::Encode | String
   def self.str_code_convert( msg, str )
     if $b_no_kcode == false then
-      return str                          # Ruby V1.8 ã¾ã§
+      return str                          # Ruby V1.8 まで
     end
     if msg.encoding != str.encoding then
-      option = { :invalid => :replace, :undef => :replace }   # ä¾å¤ãçºçãããã'?' ã«å¤æãã(utf-8 ã¯ 0xfffd)
+      option = { :invalid => :replace, :undef => :replace }   # 例外を発生させず、'?' に変換する(utf-8 は 0xfffd)
       # return str.encode( msg.encoding, option )
       str = str.encode( "utf-8", option )
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/componentobj.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/componentobj.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/componentobj.rb	(revision 321)
@@ -6,64 +6,46 @@
 #   Copyright (C) 2008-2016 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: componentobj.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
 # STAGE:
-# ãã®ã¡ã³ããã³ã¹ç¶æ³ã¯ãããããªã
-#  B    bnf.y.rb ããå¼åºããã
-#  P    parse æ®µéã§å¼åºãããï¼bnf.y.rb ããç´æ¥å¼åºãããããã§ã¯ãªãããæ§ææ¨çæãè¡ãï¼
-#  S    P ã®ä¸­ããå¼åºãããããæ§ææ¨çæããããã§ã¯ãªãæå³ãã§ãã¯ãã
-#  G    ã³ã¼ãçæï¼ãã®æ®µéã§ãæ§ææ¨ã¯å®å
-¨ã§ããï¼ä¸å®å
-¨ãªãã¨ã©ã¼ã§æã¡ãããã¦ããï¼
-#                                                   factory ã®ç¬¬ä¸å¼æ° "format" ã®å¾ãã®å¼æ°
-
-# mikan ä»¥ä¸ã¯ ruby ã® mix in ã§å®ç¾ã§ãããããããªã
-# Nestable ãç¶æ¿ããå ´åãã¯ã©ã¹å¤æ°ã¯ Nestable ã®ãã®ãå
-±æãããï¼å¥ã«ãããã£ãï¼
+# このメンテナンス状況はよろしくない
+#  B    bnf.y.rb から呼出される
+#  P    parse 段階で呼出される（bnf.y.rb から直接呼出されるわけではないが、構文木生成を行う）
+#  S    P の中から呼出されるが、構文木生成するわけではなく意味チェックする
+#  G    コード生成（この段階で、構文木は完全である．不完全ならエラーで打ちきられている）
+#                                                   factory の第一引数 "format" の後ろの引数
+
+# mikan 以下は ruby の mix in で実現できるかもしれない
+# Nestable を継承した場合、クラス変数は Nestable のものが共有される（別にしたかった）
 # class Nestable
 #   @@nest_stack_index = -1
@@ -90,13 +72,11 @@
 #  @name:: Symbol
 #  @global_name:: Symbol
-#  @function_head_list:: NamedList : FuncHead ã®ã¤ã³ã¹ã¿ã³ã¹ãè¦ç´ 
-#  @func_name_to_id::  {String}  :  é¢æ°åãæ·»å­ã¨ããé
-åã§ id ãè¨æ¶ããï¼id ã¯ signature ã®åºç¾é çª (1ããå§ã¾ã)
-#  @context:: string : ã³ã³ãã­ã¹ãå
-#  @b_callback:: bool: callback : ã³ã¼ã«ããã¯ç¨ã®ã·ã°ããã£
-#  @b_deviate:: bool: deviate : é¸è±ï¼pointer level mismatch ãåºããªãï¼
-#  @b_checked_as_allocator_signature:: bool:  ã¢ã­ã±ã¼ã¿ã·ã°ããã£ã¨ãã¦ãã§ãã¯æ¸ã¿
-#  @b_empty:: Bool: ç©º(é¢æ°ãä¸ã¤ããªãç¶æ
-)
+#  @function_head_list:: NamedList : FuncHead のインスタンスが要素
+#  @func_name_to_id::  {String}  :  関数名を添字とする配列で id を記憶する．id は signature の出現順番 (1から始まる)
+#  @context:: string : コンテキスト名
+#  @b_callback:: bool: callback : コールバック用のシグニチャ
+#  @b_deviate:: bool: deviate : 逸脱（pointer level mismatch を出さない）
+#  @b_checked_as_allocator_signature:: bool:  アロケータシグニチャとしてチェック済み
+#  @b_empty:: Bool: 空(関数が一つもない状態)
 
   @@nest_stack_index = -1
@@ -119,5 +99,5 @@
 
   # STAGE: P
-  # ãã®ã¡ã½ããã¯ parse ä¸­ã®ã¿å¼ã³åºããã
+  # このメソッドは parse 中のみ呼び出される
   def self.get_current
     @@current_object
@@ -130,5 +110,5 @@
     @name = name
     Namespace.new_signature( self )
-    set_namespace_path # @NamespacePath ã®è¨­å®
+    set_namespace_path # @NamespacePath の設定
     if "#{Namespace.get_global_name}" == "" then
       @global_name = @name
@@ -152,5 +132,5 @@
     @function_head_list = function_head_list
 
-    # id ãå²ä»ãã
+    # id を割付ける
     id = 1
     function_head_list.get_items.each{ |f|
@@ -166,10 +146,10 @@
   end
 
-  #=== Signature# signature ã®æå®å­ãè¨­å®
+  #=== Signature# signature の指定子を設定
   # STAGE: B
   #spec_list::      [ [ :CONTEXT,  String ], ... ]
   #                     s[0]        s[1]
   def set_specifier_list( spec_list )
-    return if spec_list == nil  # ç©ºãªãã°ä½ãããªã
+    return if spec_list == nil  # 空ならば何もしない
 
     spec_list.each { |s|
@@ -216,13 +196,12 @@
   end
 
-  #=== Signature# é¢æ°åãã signature å
-ã® id ãå¾ã
+  #=== Signature# 関数名から signature 内の id を得る
   def get_id_from_func_name func_name
     @func_name_to_id[ func_name ]
   end
 
-  #=== Signature# context ãå¾ã
-  # context æå­åãè¿ã "task", "non-task", "any"
-  # æªæå®æã®ããã©ã«ãã¨ãã¦ task ãè¿ã
+  #=== Signature# context を得る
+  # context 文字列を返す "task", "non-task", "any"
+  # 未指定時のデフォルトとして task を返す
   def get_context
     if @context then
@@ -233,20 +212,17 @@
   end
 
-  #=== Signature# signaure ã®ãã¹ã¦ã®é¢æ°ã®ãã¹ã¦ã®ãã©ã¡ã¼ã¿ããã©ã
-  #block:: ãã­ãã¯ãå¼æ°ã«åã
-  # ãã­ãã¯ã¯2ã¤ã®å¼æ°ãåãåã  Decl, ParamDecl     ( Decl: é¢æ°ããã )
-  # Port ã¯ã©ã¹ã«ã each_param ãããï¼åãåãï¼
-  def each_param # ãã­ãã¯å¼æ° { |func_decl, param_decl| }
-    fha = get_function_head_array                       # å¼ã³å£ã¾ãã¯åãå£ã®ã·ã°ããã£ã®é¢æ°é
-å
-    return if fha == nil                                # nil ãªãææ³ã¨ã©ã¼ã§æå¹å¤ãè¨­å®ãããªãã£ã
-
-    pr = Proc.new   # ãã®ã¡ã½ããã®ãã­ãã¯å¼æ°ã pr ã«ä»£å
-¥
-    fha.each{ |fh|  # fh: FuncHead                      # é¢æ°é
-åä¸­ã®åé¢æ°é ­é¨
-      fd = fh.get_declarator                            # fd: Decl  (é¢æ°é ­é¨ããDeclarotorãå¾ã)
-      if fd.is_function? then                           # fd ãé¢æ°ã§ãªããã°ããã§ã«ã¨ã©ã¼
-        fd.get_type.get_paramlist.get_items.each{ |par| # ãã¹ã¦ã®ãã©ã¡ã¼ã¿ã«ã¤ãã¦
+  #=== Signature# signaure のすべての関数のすべてのパラメータをたどる
+  #block:: ブロックを引数に取る
+  # ブロックは2つの引数を受け取る  Decl, ParamDecl     ( Decl: 関数ヘッダ )
+  # Port クラスにも each_param がある（同じ働き）
+  def each_param # ブロック引数 { |func_decl, param_decl| }
+    fha = get_function_head_array                       # 呼び口または受け口のシグニチャの関数配列
+    return if fha == nil                                # nil なら文法エラーで有効値が設定されなかった
+
+    pr = Proc.new   # このメソッドのブロック引数を pr に代入
+    fha.each{ |fh|  # fh: FuncHead                      # 関数配列中の各関数頭部
+      fd = fh.get_declarator                            # fd: Decl  (関数頭部からDeclarotorを得る)
+      if fd.is_function? then                           # fd が関数でなければ、すでにエラー
+        fd.get_type.get_paramlist.get_items.each{ |par| # すべてのパラメータについて
           pr.call( fd, par )
         }
@@ -255,9 +231,9 @@
   end
 
-  #=== Signature# æ­£å½ãªã¢ã­ã±ã¼ã¿ ã·ã°ããã£ããã¹ããã
-  # alloc, dealloc é¢æ°ãæã¤ãã©ãããç¬¬ä¸å¼ãæ°ããããããæ´æ°ããã¤ã³ã¿ãç¬¬äºå¼ãæ°ãããã¤ã³ã¿ã¸ã®ãã¤ã³ã¿ããªã
+  #=== Signature# 正当なアロケータ シグニチャかテストする
+  # alloc, dealloc 関数を持つかどうか、第一引き数がそれぞれ、整数、ポインタ、第二引き数が、ポインタへのポインタ、なし
   def is_allocator?
 
-    # ä¸åã ããã§ãã¯ãã
+    # 一回だけチェックする
     if @b_checked_as_allocator_signature == true then
       return true
@@ -265,15 +241,13 @@
     @b_checked_as_allocator_signature = true
 
-    fha = get_function_head_array                       # å¼ã³å£ã¾ãã¯åãå£ã®ã·ã°ããã£ã®é¢æ°é
-å
-    if fha == nil then                                  # nil ãªãææ³ã¨ã©ã¼ã§æå¹å¤ãè¨­å®ãããªãã£ã
+    fha = get_function_head_array                       # 呼び口または受け口のシグニチャの関数配列
+    if fha == nil then                                  # nil なら文法エラーで有効値が設定されなかった
       return false
     end
 
     found_alloc = false; found_dealloc = false
-    fha.each{ |fh|  # fh: FuncHead                      # é¢æ°é
-åä¸­ã®åé¢æ°é ­é¨
-      fd = fh.get_declarator                            # fd: Decl  (é¢æ°é ­é¨ããDeclarotorãå¾ã)
-      if fd.is_function? then                           # fd ãé¢æ°ã§ãªããã°ããã§ã«ã¨ã©ã¼
+    fha.each{ |fh|  # fh: FuncHead                      # 関数配列中の各関数頭部
+      fd = fh.get_declarator                            # fd: Decl  (関数頭部からDeclarotorを得る)
+      if fd.is_function? then                           # fd が関数でなければ、すでにエラー
         func_name = fd.get_name.to_sym 
         if func_name == :alloc then
@@ -284,5 +258,5 @@
                 ! params[0].get_type.get_original_type.kind_of?( IntType ) ||
                 params[0].get_direction != :IN then
-              # ç¬¬ä¸å¼æ°ã int åã§ãªã
+              # 第一引数が int 型でない
               if ! params[0].instance_of?( ParamDecl ) ||
                   ! params[0].get_type.kind_of?( PtrType ) ||
@@ -290,5 +264,5 @@
                   params[0].get_type.get_type.get_type.kind_of?( PtrType ) ||
                   params[0].get_direction != :OUT then
-                # ç¬¬ä¸å¼æ°ããã¤ã³ã¿åã§ããªã
+                # 第一引数がポインタ型でもない
                 cdl_error3( @locale, "S1003 $1: \'alloc\' 1st parameter neither [in] integer type nor [out] double pointer type", @name )
               end
@@ -298,5 +272,5 @@
                 params[1].get_type.get_type.get_type.kind_of?( PtrType ) ||
                 params[0].get_direction != :IN then
-              # (ç¬¬ä¸å¼æ°ãæ´æ°ã§) ç¬¬äºå¼æ°ããã¤ã³ã¿ã§ãªã
+              # (第一引数が整数で) 第二引数がポインタでない
               cdl_error3( @locale, "S1004 $1: \'alloc\' 2nd parameter not [in] double pointer" , @name )
             end
@@ -313,5 +287,5 @@
                 params[0].get_direction != :IN then
               cdl_error3( @locale, "S1006 $1: \'dealloc\' 1st parameter not [in] pointer type" , @name )
-#            elsif params[1] != nil then    # ç¬¬äºå¼ãæ°ã¯ãã§ãã¯ããªã
+#            elsif params[1] != nil then    # 第二引き数はチェックしない
 #              cdl_error3( @locale, "S1007 Error message is changed to empty" )
 #                 cdl_error3( @locale, "S1007 $1: \'dealloc\' cannot has 2nd parameter" , @name )
@@ -335,20 +309,16 @@
   end
 
-  #== Signature# å¼æ°ã§åç
-§ããã¦ãã Descriptor åã®ãªã¹ããä½æãã
-  #RETURN:: Hash { Signature => ParamDecl }:  è¤æ°ã® ParamDecl ããåç
-§ããã¦ããå ´åãæå¾ã®ãã®ããè¿ããªã
+  #== Signature# 引数で参照されている Descriptor 型のリストを作成する
+  #RETURN:: Hash { Signature => ParamDecl }:  複数の ParamDecl から参照されている場合、最後のものしか返さない
   def get_descriptor_list
     desc_list = { }
     # p "has_desc #{@name}"
-    fha = get_function_head_array                       # å¼ã³å£ã¾ãã¯åãå£ã®ã·ã°ããã£ã®é¢æ°é
-å
-    if fha == nil then                                  # nil ã®å ´åãèªå·±åç
-§ã«ããã±ã¼ã¹ã¨ä»®å®
+    fha = get_function_head_array                       # 呼び口または受け口のシグニチャの関数配列
+    if fha == nil then                                  # nil の場合、自己参照によるケースと仮定
       return desc_list
     end
     fha.each{ |fh|
-      fd = fh.get_declarator                            # fd: Decl  (é¢æ°é ­é¨ããDeclarotorãå¾ã)
-      if fd.is_function? then                           # fd ãé¢æ°ã§ãªããã°ããã§ã«ã¨ã©ã¼
+      fd = fh.get_declarator                            # fd: Decl  (関数頭部からDeclarotorを得る)
+      if fd.is_function? then                           # fd が関数でなければ、すでにエラー
         params = fd.get_type.get_paramlist.get_items
         if params then
@@ -369,16 +339,14 @@
   end
 
-  #=== Signature# å¼æ°ã« Descriptor ããããï¼
+  #=== Signature# 引数に Descriptor があるか？
   def has_descriptor?
     # p "has_desc #{@name}"
-    fha = get_function_head_array                       # å¼ã³å£ã¾ãã¯åãå£ã®ã·ã°ããã£ã®é¢æ°é
-å
-    if fha == nil then                                  # nil ã®å ´åãèªå·±åç
-§ã«ããã±ã¼ã¹ã¨ä»®å®
+    fha = get_function_head_array                       # 呼び口または受け口のシグニチャの関数配列
+    if fha == nil then                                  # nil の場合、自己参照によるケースと仮定
       return true
     end
     fha.each{ |fh|
-      fd = fh.get_declarator                            # fd: Decl  (é¢æ°é ­é¨ããDeclarotorãå¾ã)
-      if fd.is_function? then                           # fd ãé¢æ°ã§ãªããã°ããã§ã«ã¨ã©ã¼
+      fd = fh.get_declarator                            # fd: Decl  (関数頭部からDeclarotorを得る)
+      if fd.is_function? then                           # fd が関数でなければ、すでにエラー
         params = fd.get_type.get_paramlist.get_items
         if params then
@@ -399,28 +367,25 @@
   end
 
-  #=== Signature# ã³ã¼ã«ããã¯ãï¼
-  # æå®å­ callback ãæå®ããã¦ããã° true 
+  #=== Signature# コールバックか？
+  # 指定子 callback が指定されていれば true 
   def is_callback?
     @b_callback
   end
 
-  #=== Signature# é¸è±ãï¼
-  # æå®å­ deviate ãæå®ããã¦ããã° true 
+  #=== Signature# 逸脱か？
+  # 指定子 deviate が指定されていれば true 
   def is_deviate?
     @b_deviate
   end
 
-  #=== Signature# ç©ºãï¼
+  #=== Signature# 空か？
   def is_empty?
     @b_empty
   end
 
-  #=== Signature# Push Pop Allocator ãå¿
-è¦ãï¼
-  # Transparent RPC ã®å ´å oneway ãã¤ in ã®é
-å(size_is, count_is, string ã®ããããã§ä¿®é£¾ï¼ããã
+  #=== Signature# Push Pop Allocator が必要か？
+  # Transparent RPC の場合 oneway かつ in の配列(size_is, count_is, string のいずれかで修飾）がある
   def need_PPAllocator?( b_opaque = false )
-    fha = get_function_head_array                       # å¼ã³å£ã¾ãã¯åãå£ã®ã·ã°ããã£ã®é¢æ°é
-å
+    fha = get_function_head_array                       # 呼び口または受け口のシグニチャの関数配列
     fha.each{ |fh|
       fd = fh.get_declarator
@@ -457,11 +422,11 @@
 # @factory_list::   Factory[]
 # @ct_factory_list::    Factory[] :    celltype factory
-# @cell_list:: Cell[] : å®ç¾©ã®ã¿ (V1.0.0.2 ä»¥é)
+# @cell_list:: Cell[] : 定義のみ (V1.0.0.2 以降)
 # @singleton:: bool
 # @idx_is_id:: bool
 # @idx_is_id_act:: bool: actual value
 # @active:: bool
-# @b_reuse:: bool :  reuse æå®ããã¦ import ããã(template ä¸è¦)
-# @generate:: [ Symbol, String, Plugin ]  = [ PluginName, option, Plugin ] Plugin ã¯çæå¾ã«è¿½å ããã
+# @b_reuse:: bool :  reuse 指定されて import された(template 不要)
+# @generate:: [ Symbol, String, Plugin ]  = [ PluginName, option, Plugin ] Plugin は生成後に追加される
 #
 # @n_attribute_ro:: int >= 0    none specified
@@ -470,24 +435,22 @@
 # @n_var:: int >= 0
 # @n_var_size_is:: int >= 0     # of [size_is] specified vars # mikan count_is
-# @n_var_omit:: int >= 0        # of [omit] specified vars # mikan var ã® omit ã¯æï¼
+# @n_var_omit:: int >= 0        # of [omit] specified vars # mikan var の omit は有？
 # @n_var_init:: int >= 0        # of vars with initializer
 # @n_call_port:: int >= 0
 # @n_call_port_array:: int >= 0
-# @n_call_port_omitted_in_CB:: int >= 0   æé©åã§çç¥ãããå¼ã³å£
+# @n_call_port_omitted_in_CB:: int >= 0   最適化で省略される呼び口
 # @n_entry_port:: int >= 0
 # @n_entry_port_array:: int >= 0
 # @n_entry_port_inline:: int >= 0
-# @n_cell_gen:: int >= 0  çæããã»ã«ã®æ°ï¼ã³ã¼ãçæã®é ­ã§ç®åºããï¼æå³è§£ææ®µéã§ã¯åç
-§ä¸å¯
-# @id_base:: Integer : cell ã® ID ã®æå°å¤(æå¤§å¤ã¯ @id_base + @n_cell)
+# @n_cell_gen:: int >= 0  生成するセルの数．コード生成の頭で算出する．意味解析段階では参照不可
+# @id_base:: Integer : cell の ID の最小値(最大値は @id_base + @n_cell)
 #
-# @b_cp_optimized:: bool : å¼ã³å£æé©åå®æ½
-# @plugin:: PluginObject      ãã®ã»ã«ã¿ã¤ãããã©ã°ã¤ã³ã«ããçæããã CDL ããçæãããå ´åã«æå¹ã
-#                              generate ã®æå®ã¯ @generate ã«ãã©ã°ã¤ã³ãä¿æããã
+# @b_cp_optimized:: bool : 呼び口最適化実施
+# @plugin:: PluginObject      このセルタイプがプラグインにより生成された CDL から生成された場合に有効。
+#                              generate の指定は @generate にプラグインが保持される
 #
-# @included_header:: Hash :  include ãããããããã¡ã¤ã«
-# @domain_roots::Hash { DomainTypeName(Symbol) => [ Region ] }  ãã¡ã¤ã³ã¿ã¤ãåã¨ Region ã®é
-å (optimize.rb ã§è¨­å®)
-#                                               ã«ã¼ããªã¼ã¸ã§ã³ã¯ãã¡ã¤ã³åããnil
+# @included_header:: Hash :  include されたヘッダファイル
+# @domain_roots::Hash { DomainTypeName(Symbol) => [ Region ] }  ドメインタイプ名と Region の配列 (optimize.rb で設定)
+#                                               ルートリージョンはドメイン名が　nil
 
   include PluginModule
@@ -553,11 +516,9 @@
 
     @plugin = Generator.get_plugin
-      # plugin ã®å ´å PluginObject ãè¿ããã
-    # å
-ã® Generator ããå¼åºããã Generator ã®ä¸­ã§ãã¼ã¹ããã³æå³ãã§ãã¯ããã¦ãã
+      # plugin の場合 PluginObject が返される
+    # 元の Generator から呼出された Generator の中でパースおよび意味チェックされている
 
     # if @plugin then
-    #  # plugin çæãããã»ã«ã¿ã¤ãã¯åå©ç¨ã§ã¯ãªã   #833 ä¸å
-·åä¿®æ­£
+    #  # plugin 生成されるセルタイプは再利用ではない   #833 不具合修正
     #  @b_reuse = false
     # else
@@ -573,5 +534,5 @@
 
     Namespace.new_celltype( self )
-    set_namespace_path # @NamespacePath ã®è¨­å®
+    set_namespace_path # @NamespacePath の設定
     set_specifier_list( Generator.get_statement_specifier )
 
@@ -589,7 +550,6 @@
   end
 
-  #== Celltype#ãã¡ã¤ã³ã«ã¼ããè¿ã
-  # @domain_roots ã®èª¬æãåç
-§
+  #== Celltype#ドメインルートを返す
+  # @domain_roots の説明を参照
   def get_domain_roots
     @domain_roots
@@ -598,13 +558,11 @@
   # Celltype# end_of_parse
   def end_of_parse
-    # å±æ§ã»å¤æ°ã®ãã§ãã¯
+    # 属性・変数のチェック
     check_attribute
 
-    # ã¢ã­ã±ã¼ã¿å¼ã³å£ãå
-é¨çæ
+    # アロケータ呼び口を内部生成
     generate_allocator_port
 
-    # ãªã¬ã¼ã¢ã­ã±ã¼ã¿ãå
-é¨ã¢ã­ã±ã¼ã¿ã®è¨­å®
+    # リレーアロケータ、内部アロケータの設定
     @port.each { |p|
       p.set_allocator_instance
@@ -666,7 +624,5 @@
       end
       if a.get_initializer then
-        # ç»é²å¾ã«ãã§ãã¯ãã¦ãåé¡ãªãï¼attr ãåç
-§ã§ããªãã®ã§ãèªå·±åç
-§ããªãï¼
+        # 登録後にチェックしても問題ない（attr を参照できないので、自己参照しない）
         a.get_type.check_init( @locale, a.get_identifier, a.get_initializer, :ATTRIBUTE )
       end
@@ -674,31 +630,28 @@
   end
 
-  #=== Celltype# celltype ã® attribute/var ã®ãã§ãã¯
+  #=== Celltype# celltype の attribute/var のチェック
   # STAGE:  S
   #
-  # ãã®ã¡ã½ããã¯ celltype ã®ãã¼ã¹ãå®äºããæç¹ã§å¼åºãããï¼
+  # このメソッドは celltype のパースが完了した時点で呼出される．
   def check_attribute
-    # attribute ã® size_is æå®ãå¦¥å½ããã§ãã¯
+    # attribute の size_is 指定が妥当かチェック
     (@attribute+@var).each{ |a|
       if a.get_size_is then
         if ! a.get_type.kind_of?( PtrType ) then
-          # size_is ããã¤ã³ã¿åä»¥å¤ã«æå®ããã
+          # size_is がポインタ型以外に指定された
           cdl_error( "S1011 $1: size_is specified for non-pointer type" , a.get_identifier )
         else
 
-          # åç
-§ããå¤æ°ãå­å¨ããè¨ç®å¯è½ãªåããã§ãã¯ãã
-          size = a.get_size_is.eval_const( @name_list )  # C_EXP ã®å¯è½æ§ãã
+          # 参照する変数が存在し、計算可能な型かチェックする
+          size = a.get_size_is.eval_const( @name_list )  # C_EXP の可能性あり
           init = a.get_initializer
           if init then
             if ! init.instance_of?( Array ) then
-              # åæåå­ãé
-åã§ã¯ãªã
+              # 初期化子が配列ではない
               cdl_error( "S1012 $1: unsuitable initializer, need array initializer" , a.get_identifier )
             elsif size.kind_of?( Integer ) && size < init.length then
-              # size_is æå®ãããåæ°ãããåæåå­ã®é
-åè¦ç´ ãå¤ã
+              # size_is 指定された個数よりも初期化子の配列要素が多い
               cdl_error( "S1013 $1: too many initializer, $2 for $3" , a.get_identifier, init.length, size )
-            # elsif a.get_size_is.eval_const( nil ) == nil  # C_EXP ã®å¯è½æ§ãã
+            # elsif a.get_size_is.eval_const( nil ) == nil  # C_EXP の可能性あり
             end
 
@@ -710,5 +663,5 @@
               ( a.get_initializer.instance_of?( Expression ) &&
                 a.get_initializer.eval_const2(@name_list).instance_of?( Array ) ) then
-            # size_is æå®ããã¦ããªããã¤ã³ã¿ã Array ã§åæåããã¦ããããã¨ã©ã¼
+            # size_is 指定されていないポインタが Array で初期化されていたら、エラー
             cdl_error( "S1159 $1: non-size_is pointer cannot be initialized with array initializer" , a.get_identifier )
           end
@@ -722,20 +675,19 @@
   end
 
-  #=== Celltype# ã¢ã­ã±ã¼ã¿å¼ã³å£ãçæ
-  #    send, receive å¼æ°ã®ã¢ã­ã±ã¼ã¿ãå¼åºãããã®å¼ã³å£ãçæ
+  #=== Celltype# アロケータ呼び口を生成
+  #    send, receive 引数のアロケータを呼出すための呼び口を生成
   def generate_allocator_port
     @port.each { |port|
-      # ãã¼ãã®ãã¹ã¦ã®ãã©ã¡ã¼ã¿ãè¾¿ã
+      # ポートのすべてのパラメータを辿る
       port.each_param { |port, fd, par|
-        case par.get_direction                        # å¼æ°ã®æ¹åæå®å­ (in, out, inout, send, receive )
+        case par.get_direction                        # 引数の方向指定子 (in, out, inout, send, receive )
         when :SEND, :RECEIVE
           if par.get_allocator then
-            cp_name = :"#{port.get_name}_#{fd.get_name}_#{par.get_name}"     # ã¢ã­ã±ã¼ã¿å¼ã³å£ã®åå
-            #           ãã¼ãå          é¢æ°å         ãã©ã¡ã¼ã¿å
-            # alloc_sig_path = [ par.get_allocator.get_name ]  # mikan Namespace ã¢ã­ã±ã¼ã¿å¼ã³å£ã®ã·ã°ããã£ #1
+            cp_name = :"#{port.get_name}_#{fd.get_name}_#{par.get_name}"     # アロケータ呼び口の名前
+            #           ポート名          関数名         パラメータ名
+            # alloc_sig_path = [ par.get_allocator.get_name ]  # mikan Namespace アロケータ呼び口のシグニチャ #1
             alloc_sig_path = par.get_allocator.get_namespace_path
-            array_size = port.get_array_size            # å¼ã³å£ã¾ãã¯åãå£é
-åã®ãµã¤ãº
-            created_port = Port.new( cp_name, alloc_sig_path, :CALL, array_size ) # å¼ã³å£ãçæ
+            array_size = port.get_array_size            # 呼び口または受け口配列のサイズ
+            created_port = Port.new( cp_name, alloc_sig_path, :CALL, array_size ) # 呼び口を生成
             created_port.set_allocator_port( port, fd, par )
             if port.is_optional? then
@@ -745,5 +697,5 @@
               created_port.set_omit
             end
-            new_port( created_port )                    # ã»ã«ã¿ã¤ãã«æ°ããå¼ã³å£ãè¿½å 
+            new_port( created_port )                    # セルタイプに新しい呼び口を追加
           # else
           #  already error "not found or not signature" in class ParamDecl
@@ -762,6 +714,5 @@
   end
 
-  #=== Celltype# æ°ããå
-é¨å¤æ°
+  #=== Celltype# 新しい内部変数
   #var:: [Decl]
   def new_var( var )
@@ -776,6 +727,5 @@
       @name_list.add_item( i )
 
-      # size_is æå®ãããé
-å? mikan  count_is
+      # size_is 指定された配列? mikan  count_is
       if i.get_size_is then
         @n_var_size_is += 1
@@ -793,5 +743,5 @@
   end
 
-  #=== Celltype# celltype ã®æå®å­ãè¨­å®
+  #=== Celltype# celltype の指定子を設定
   def set_specifier_list( spec_list )
     return if spec_list == nil
@@ -822,11 +772,11 @@
 
   def new_require( ct_or_cell_nsp, ep_name, cp_name )
-    # Require: set_owner ãããã®ããªã
+    # Require: set_owner するものがない
     obj = Namespace.find( ct_or_cell_nsp )    #1
     if obj.instance_of? Celltype then
-      # Celltype åã§æå®
+      # Celltype 名で指定
       ct = obj
     elsif obj.instance_of? Cell then
-      # Cell åã§æå®
+      # Cell 名で指定
       ct = obj.get_celltype
     elsif obj == nil then
@@ -839,9 +789,9 @@
 
     if( ! ct.is_singleton? ) then
-      # ã·ã³ã°ã«ãã³ã§ã¯ãªã
+      # シングルトンではない
       cdl_error( "S1018 $1 : not singleton cell" , obj.get_name )
     end
 
-    # åãå£ãæ¢ã
+    # 受け口を探す
     obj2 = ct.find( ep_name )
     if( ( ! obj2.instance_of? Port ) || obj2.get_port_type != :ENTRY ) then
@@ -854,5 +804,5 @@
 
     if obj2.get_signature == nil then
-      # signature ãæªå®ç¾©ï¼æ¢ã«ã¨ã©ã¼
+      # signature が未定義：既にエラー
       return
     end
@@ -860,17 +810,17 @@
     require_call_port_prefix = :_require_call_port
     if cp_name == nil then
-      # é¢æ°åéè¤ãã§ãã¯
+      # 関数名重複チェック
       @require.each{ |req|
         unless req[0].to_s =~ /^#{require_call_port_prefix}/ then
-          next     # ååããã® require ã¯é¢æ°åéè¤ãã§ãã¯ããªã
+          next     # 名前ありの require は関数名重複チェックしない
         end
         port = req[2]
         if port.get_signature == obj2.get_signature then
-          # åã signature ï¼ãã¹ã¦åãé¢æ°åãæã¤ï¼åå¥ã«åºãã®ã§ã¯ãªããã¾ã¨ãã¦ã¨ã©ã¼ã¨ãã
+          # 同じ signature （すべて同じ関数名を持つ）個別に出すのではなく、まとめてエラーとする
           cdl_error( "S1021 $1 : require cannot have same signature with \'$2\'" , obj2.get_name, port.get_name )
           next
         end
         port.get_signature.get_function_head_array.each{ |f|
-          # mikan ããã¯ãnamedList ããã®æ¤ç´¢ã«ãªããªãã®ï¼ï¼å¹çãæªãï¼
+          # mikan ここは、namedList からの検索にならないの？（効率が悪い）
           obj2.get_signature.get_function_head_array.each{ |f2|
             if( f.get_name == f2.get_name ) then
@@ -888,8 +838,8 @@
       b_has_name = true
     end
-    # require ãè¿½å 
+    # require を追加
     @require << [ cp_name, obj, obj2 ]  # [ lhs:cp_name, rhs:Celltype, rhs:Port ]
 
-    # require port ãè¿½å  (å¼ã³å£ã¨ãã¦è¿½å ããããã ã require ãã»ãããã¦ãã)
+    # require port を追加 (呼び口として追加する。ただし require をセットしておく)
     port = Port.new( cp_name, obj2.get_signature.get_namespace_path, :CALL )
     port.set_require( b_has_name )
@@ -913,5 +863,5 @@
   end
 
-  #=== Celltype# ã»ã«ã¿ã¤ããã©ã°ã¤ã³ (generate æå®å­)
+  #=== Celltype# セルタイププラグイン (generate 指定子)
   def celltype_plugin
 
@@ -927,5 +877,5 @@
 
     begin
-      eval( eval_str )     # plugin ãçæ
+      eval( eval_str )     # plugin を生成
       plugin_object.set_locale @locale
       @generate[ 2 ] = plugin_object
@@ -939,12 +889,12 @@
   end
 
-  #=== Celltype# celltype ã«æ°ãã cell ãè¿½å 
+  #=== Celltype# celltype に新しい cell を追加
   #cell:: Cell
-  # æ°ããã»ã«ãã»ã«ã¿ã¤ãã«è¿½å ï¼
-  # ã»ã«ã®æ§æè§£éã®æå¾ã§ãã®ã¡ã½ããå¼åºãããï¼
-  # ã·ã³ã°ã«ãã³ã»ã«ãåã linkunit ã«è¤æ°ãªãããã§ãã¯
+  # 新しいセルをセルタイプに追加．
+  # セルの構文解釈の最後でこのメソドを呼出される．
+  # シングルトンセルが同じ linkunit に複数ないかチェック
   def new_cell( cell )
-    # Celltype ã§ã¯ Cell ã® set_owner ããªã
-    # ã·ã³ã°ã«ãã³ã§ããã­ãã¿ã¤ãå®£è¨ã§ãªãå ´åãã³ã¼ãçæå¯¾è±¡ãªã¼ã¸ã§ã³ã®å ´å
+    # Celltype では Cell の set_owner しない
+    # シングルトンで、プロトタイプ宣言でない場合、コード生成対象リージョンの場合
     if @singleton  then
       @cell_list.each{ |c|
@@ -960,12 +910,12 @@
   end
 
-  #=== Celltype# ã»ã«ã¿ã¤ãã¯ INIB ãæã¤ãï¼
-  # ã»ã«ã¿ã¤ãã INIB ãæã¤ãã©ãããå¤å®ãã
-  # $rom == false ã®ã¨ã:  INIB ãæããªãï¼ ï¼ãã¹ã¦ã¯ CB ã«ç½®ãããï¼
-  # $rom == true ã®ã¨ããINIB ã«ç½®ããããã®ãä¸ã¤ã§ãå­å¨ããã° INIB ãæã¤
-  #   INIB ã«ç½®ããããã®ã¯
-  #     attribute (omit ã®ãã®ã¯é¤ãï¼ç¾ä»æ§ã§ã¯ rw ã®ãã®ã¯ãªã)
-  #     size_is ãä¼´ã var
-  #     å¼ã³å£ï¼ãã ããæé©åã§ä¸è¦ã¨ãªããã®ã¯é¤ãï¼
+  #=== Celltype# セルタイプは INIB を持つか？
+  # セルタイプが INIB を持つかどうかを判定する
+  # $rom == false のとき:  INIB を持たない． （すべては CB に置かれる）
+  # $rom == true のとき、INIB に置かれるものが一つでも存在すれば INIB を持つ
+  #   INIB に置かれるものは
+  #     attribute (omit のものは除く．現仕様では rw のものはない)
+  #     size_is を伴う var
+  #     呼び口（ただし、最適化で不要となるものは除く）
   def has_INIB?
 #    print "name=#{@name} @n_attribute_ro=#{@n_attribute_ro}  @n_var_size_is=#{@n_var_size_is} @n_call_port=#{@n_call_port} @n_call_port_omitted_in_CB=#{@n_call_port_omitted_in_CB} @n_entry_port_array_ns=#{@n_entry_port_array_ns}\n"
@@ -974,12 +924,12 @@
   end
 
-  #=== Celltype# ã»ã«ã¿ã¤ãã¯ CB ãæã¤ãï¼
-  # $rom == true ã®ã¨ããããã®ãã®ãç½®ãããï¼ãããã®ä¸ã¤ã§ãå­å¨ããã° CB ãæã¤
-  #   size_is ãæå®ããã¦ããªã var
-  #   rw æå®ããã attribute (ç¾ä»æ§ã§ã¯å­å¨ããªã)
-  # $rom == false ã®ã¨ããããã®ãã®ãç½®ãããï¼ãããã®ä¸ã¤ã§ãå­å¨ããã° CB ãæã¤
+  #=== Celltype# セルタイプは CB を持つか？
+  # $rom == true のとき、いかのものが置かれる．それらの一つでも存在すれば CB を持つ
+  #   size_is が指定されていない var
+  #   rw 指定された attribute (現仕様では存在しない)
+  # $rom == false のとき、いかのものが置かれる．それらの一つでも存在すれば CB を持つ
   #   attribute
   #   var
-  #   å¼ã³å£ï¼ãã ããæé©åã§ä¸è¦ã¨ãªããã®ã¯é¤ãï¼
+  #   呼び口（ただし、最適化で不要となるものは除く）
   def has_CB?
     if $rom then
@@ -991,11 +941,10 @@
   end
 
-  #=== Celltype# SET_CB_INIB_POINTER, INITIALIZE_CB ãå¿
-è¦ã
+  #=== Celltype# SET_CB_INIB_POINTER, INITIALIZE_CB が必要か
   def need_CB_initializer?
     @n_var_init > 0 || has_CB?
   end
 
-  #=== Celltype# érequire ã®çµåãçæãã
+  #=== Celltype# 逆require の結合を生成する
   def create_reverse_require_join cell
     @port.each{ |p|
@@ -1004,15 +953,14 @@
   end
 
-  #=== Celltype# singleton ã»ã«ãå¾ã
-  #region:: Region   : singleton ãæ¢ã Region
-  # è·é¢ãæãè¿ããã®ãè¿ã
-  # mikan æ¬å½ã¯ region ã®ç¯å²ã® singleton ãæ¢ãå¿
-è¦ããã
+  #=== Celltype# singleton セルを得る
+  #region:: Region   : singleton を探す Region
+  # 距離が最も近いものを返す
+  # mikan 本当は region の範囲の singleton を探す必要がある
   def get_singleton_cell region
     cell = nil
-    dist = 999999999 # mikan å¶éå¤ï¼ããã¯ååãããã»ã©ãã«ã¤ãï¼
-    # require: celltype ã§æå®
+    dist = 999999999 # mikan 制限値（これは十分すぎるほどデカイが）
+    # require: celltype で指定
     @cell_list.each{ |c|
-      # å°éå¯è½ã§æãè¿ãã»ã«ãæ¢ãï¼è¤æ°ã® singleton ããããããããªãï¼
+      # 到達可能で最も近いセルを探す（複数の singleton があるかもしれない）
       d = region.distance( c.get_region )
       #debug
@@ -1033,5 +981,5 @@
   end
 
-  #=== Celltype# ã»ã«ã¿ã¤ããã©ã°ã¤ã³ãå¾ã
+  #=== Celltype# セルタイププラグインを得る
   def get_celltype_plugin
     if @generate then
@@ -1052,6 +1000,6 @@
   end
 
-  #=== Celltype# ã¢ã¯ãã£ãã§ã¯ãªãã
-  # ãã®ã¡ã½ããã§ã¯ active ã®ä»ã« factory (singleton ã«ããã¦ã¯ FACTORYãå«ã)ããªããã° inactive ã¨ãã
+  #=== Celltype# アクティブではないか
+  # このメソッドでは active の他に factory (singleton においては FACTORYを含む)がなければ inactive とする
   def is_inactive?
     if @active == false && @factory_list.length == 0 &&
@@ -1074,15 +1022,14 @@
   end
 
-  #=== Celltype# ã³ã¼ãçæããå¿
-è¦ããããå¤å®
-  # ã»ã«ã®åæ°ã 0 ãªãã»ã«ã¿ã¤ãã³ã¼ãã¯çæä¸è¦
+  #=== Celltype# コード生成する必要があるか判定
+  # セルの個数が 0 ならセルタイプコードは生成不要
   def need_generate?
     @n_cell_gen > 0
   end
 
-  #=== Celltype# require å¼ã³å£ã®çµåãè¡ã
+  #=== Celltype# require 呼び口の結合を行う
   # STAGE: S
-  # ã»ã«ã¿ã¤ãã® require å¼ã³å£ã«ã¤ãã¦ãçµåãè¡ã
-  # ã»ã«ãçæãããªãããã§ãã¯ãè¡ã
+  # セルタイプの require 呼び口について、結合を行う
+  # セルが生成されないかチェックを行う
   def set_require_join
     @require.each{ |req|
@@ -1100,6 +1047,6 @@
   end
 
-  #=== Celltype# inline åãå£ãããªããï¼
-  # åãå£ãç¡ãå ´åããã¹ã¦ã®åãå£ã inline ã¨ã¯ããªã
+  #=== Celltype# inline 受け口しかないか？
+  # 受け口が無い場合、すべての受け口が inline とはしない
   def is_all_entry_inline?
     @n_entry_port == @n_entry_port_inline && @n_entry_port > 0
@@ -1140,15 +1087,14 @@
 # @n_var:: int >= 0
 # @n_var_size_is:: int >= 0     # of [size_is] specified cells # mikan count_is
-# @n_var_omit:: int >= 0        # of [omit] specified  cells # mikan var ã® omit ã¯æï¼
+# @n_var_omit:: int >= 0        # of [omit] specified  cells # mikan var の omit は有？
 # @n_call_port:: int >= 0
 # @n_call_port_array:: int >= 0
-# @n_call_port_omitted_in_CB:: int >= 0   æé©åã§çç¥ãããå¼ã³å£
+# @n_call_port_omitted_in_CB:: int >= 0   最適化で省略される呼び口
 # @n_entry_port:: int >= 0
 # @n_entry_port_array:: int >= 0
     (indent+1).times { print "  " }
     puts "@n_entry_port_inline #{@n_entry_port_inline}"
-# @n_cell:: int >= 0  ã³ã¼ãçæã®é ­ã§ç®åºããï¼æå³è§£ææ®µéã§ã¯åç
-§ä¸å¯
-# @id_base:: Integer : cell ã® ID ã®æå°å¤(æå¤§å¤ã¯ @id_base + @n_cell)
+# @n_cell:: int >= 0  コード生成の頭で算出する．意味解析段階では参照不可
+# @id_base:: Integer : cell の ID の最小値(最大値は @id_base + @n_cell)
 
   end
@@ -1156,8 +1102,7 @@
 
 class Cell < NSBDNode # < Nestable
-# @name:: Symbol : composite celltype ã®å
-å´ã®ã¤ã³ã¹ã¿ã³ã¹ã§ã¯å¤ã®ã»ã«
-# @global_name:: Symbol : C ã§ä½¿ããååï¼namespace ãå«ãï¼
-# @local_name:: str : cell celltype name { ... } ã® name
+# @name:: Symbol : composite celltype の内側のインスタンスでは外のセル
+# @global_name:: Symbol : C で使える名前（namespace を含む）
+# @local_name:: str : cell celltype name { ... } の name
 # @celltype:: Celltype | CompositeCelltype
 # @join_list:: NamedList
@@ -1166,64 +1111,52 @@
 # @b_prototype:: bool:  prototype specified in current parsing cell. (@b_defined is used to determine whether definition done)
 # @b_duplicate:: bool:  definition duplicate
-# @b_checked::   bool:  set_definition_join ãæ¸ãã§ããå ´å true
-# @require_joined_list:: {cp_name=>true}:  set_require_join ãæ¸ãã§ããå¼ã³å£ã¯ true
+# @b_checked::   bool:  set_definition_join が済んでいる場合 true
+# @require_joined_list:: {cp_name=>true}:  set_require_join が済んでいる呼び口は true
 # @f_ref:: refercenced from others
-# @entry_array_max_subscript:: { @port=>Integer } : åãå£é
-åã®é
-åæ·»æ°ã®æå¤§å¤ï¼æ·»æ°ç¡ãåãå£é
-åå¯¾å¿ï¼
+# @entry_array_max_subscript:: { @port=>Integer } : 受け口配列の配列添数の最大値（添数無し受け口配列対応）
 # @plugin::     Plugin: avialble if cell is generated by plugin generated cdl code.
-# @referenced_port_list:: { Port => Integer } : åãå£ã®åç
-§æ°
-#                                               ãã¹ã¦ã®æå³è§£æ(through, compositeå±é)ãçµãã£ãå¾ã«è¨­å®ãã
-#                                               érequire ãã¼ãã«å¯¾ãã¦è¤æ°ã®çµåããªãããã§ãã¯ãã
-# @generate:: [ Symbol, String, Plugin ]  = [ PluginName, option, Plugin ] Plugin ã¯çæå¾ã«è¿½å ããã
+# @referenced_port_list:: { Port => Integer } : 受け口の参照数
+#                                               すべての意味解析(through, composite展開)が終わった後に設定する
+#                                               逆require ポートに対して複数の結合がないかチェックする
+# @generate:: [ Symbol, String, Plugin ]  = [ PluginName, option, Plugin ] Plugin は生成後に追加される
 #
-# composite ã®ããã¤ã³ã¹ã¿ã³ã¹å¤æ°
+# composite のためインスタンス変数
 # @in_composite:: bool : true if in composite celltype
 # @compositecelltypejoin_list:: NamedList : item= CompositeCelltypeJoin ( if @in_composite )
 # @f_cloned:: bool : true if cloned (instantiate of composite consist cell)
-# @my_clone:: Cell : Composite cell ã§ in_composite = true ã®å ´åã®ã¿æå¹ï¼ç´åã® clone ãä¸æè¨æ¶ï¼
-# @cell_list:: Cell[local_name] : Composite cell ã§ clone ããå¾ã®ãªã¹ã cell_list
-# @cell_list2:: [ Cell ] : Composite cell ã§ clone ããå¾ã®ãªã¹ã cell_list
-#                          @cell_list2 ã¯ composite å
-ã§ã®åºç¾é   
+# @my_clone:: Cell : Composite cell で in_composite = true の場合のみ有効（直前の clone を一時記憶）
+# @cell_list:: Cell[local_name] : Composite cell で clone した後のリスト cell_list
+# @cell_list2:: [ Cell ] : Composite cell で clone した後のリスト cell_list
+#                          @cell_list2 は composite 内での出現順  
 #
-# region ã®ããã®ã¤ã³ã¹ã¿ã³ã¹å¤æ°
-# @region:: Region (å±ããregion)
+# region のためのインスタンス変数
+# @region:: Region (属するregion)
 #
-# allocator ã®ããã®ã¤ã³ã¹ã¿ã³ã¹å¤æ°
+# allocator のためのインスタンス変数
 # @alloc_list::  [ [ NORMAL_ALLOC, ep_name, func_name, param_name, expr ], ... ]
-#   åãå£å´ã®ã¢ã­ã±ã¼ã¿ã¸ã®çµåãè¨æ¶ãä»¥ä¸ã®ã¡ã½ããã§è¿½å ããã
-#      set_specifier â¦ cell å®ç¾©æã«ã¢ã­ã±ã¼ã¿æå®ããã¦ããå ´å
-#      create_relay_allocator_join â¦ ãªã¬ã¼ã¢ã­ã±ã¼ã¿ã®å ´å
+#   受け口側のアロケータへの結合を記憶。以下のメソッドで追加される
+#      set_specifier … cell 定義時にアロケータ指定されている場合
+#      create_relay_allocator_join … リレーアロケータの場合
 #
-# ID ã®ããã®ã¤ã³ã¹ã¿ã³ã¹å¤æ°ï¼optimize.rb ã«ã¦è¨­å®ï¼
-# @id:: Integer : ã³ã¼ãçæç´åã«è¨­å®  (ãã­ãã¿ã¤ãå®£è¨ã®å ´åã¯ -1 ã®ã¾ã¾æ¾ç½®)
-# @id_specified::Integer : æå®ããã id
+# ID のためのインスタンス変数（optimize.rb にて設定）
+# @id:: Integer : コード生成直前に設定  (プロトタイプ宣言の場合は -1 のまま放置)
+# @id_specified::Integer : 指定された id
 # @restrict_list::{ entry_name => { func_name, [ region_name, ... ] } }
 
 =begin
-# Cell ã¯ã©ã¹ã¯ãä»¥ä¸ã®ãã®ãæ±ã
-# 1)æ®éã®ã»ã«
-# 2)composite ã»ã«ã¿ã¤ãã®ã»ã«
-# 3)composite ã»ã«ã¿ã¤ãã®å
-å´ã®ã»ã« (@in_composite)   # composite ã®å
-å´ã® composite ã»ã«ã¿ã¤ãã®ã»ã«ããã
+# Cell クラスは、以下のものを扱う
+# 1)普通のセル
+# 2)composite セルタイプのセル
+# 3)composite セルタイプの内側のセル (@in_composite)   # composite の内側の composite セルタイプのセルもある
 #
-# 2) ã¯ CellOfComposite ã¯ã©ã¹ã¨ãã¦åããã»ãããããããããªã
-#    expand (composite ã»ã«ã®å±é) ã¯ CellOfComposite ã«ã®ã¿å¿
-è¦ãªã¡ã½ããã§ãã
-#    get_real_cell, get_real_port ãªã© @celltype.instance_of?( CompositeCelltype ) ã®å¤å®ããªããã£ãããã
-#    ãã ãåé¢ãã¦ããã¡ã³ããã³ã¹ãã¹ãç¯å²ãåãé¢ããã¦ãã¾ããå¿ãããããªãåé¡ã¨ã®ãã¬ã¼ããªããã
+# 2) は CellOfComposite クラスとして分けたほうがよいかもしれない
+#    expand (composite セルの展開) は CellOfComposite にのみ必要なメソッドである
+#    get_real_cell, get_real_port など @celltype.instance_of?( CompositeCelltype ) の判定がなくすっきりする
+#    ただ、分離しても、メンテナンスすべき範囲が切り離されてしまい、忘れやすくなる問題とのトレードオフかも
 #
-# 3) ã¯ CellInCompoiste ã¯ã©ã¹ã¨ãã¦åããã»ãããããããããªã
-#    @in_composite ã§å¤å®ãã¦ããå¦çãåãé¢ãã (ä¸è¨ 2) ãããåé¢ã¯å®¹æã§ã¯ãªã)
-#    clone_for_composite ã¯ CellInCompoiste ã«ã®ã¿å¿
-è¦ãªã¡ã½ããã§ãã
-#    ãã ããclone å¾ã« Cell, CellOfComposite ã«å¤åããå¿
-è¦ãããã®ã§ãclone ã§ã¯ãªã new ããå®è£
-ã«å¤æ´ããå¿
-è¦ããã
+# 3) は CellInCompoiste クラスとして分けたほうがよいかもしれない
+#    @in_composite で判定している処理を切り離せる (上記 2) よりも分離は容易ではない)
+#    clone_for_composite は CellInCompoiste にのみ必要なメソッドである
+#    ただし、clone 後に Cell, CellOfComposite に変化する必要があるので、clone ではなく new する実装に変更する必要がある
 #
 =end
@@ -1235,11 +1168,8 @@
   @@current_object = nil
 
-  # å®ç¾©ããããã¹ã¦ã®ã»ã«ï¼åºç¾é . namespace ã«å½±é¿ãããªãï¼
-  @@cell_list = []     # composite ã®å
-é¨ã®ã»ã«ãå«ã¾ãªã
-  @@cell_list2 = []    # composite ã®å
-é¨ã®ã»ã«ãå«ã (å
-ã®ã»ã«ãå«ã)
-                       # æå³è§£æå¾ make_cell_list2 ã«ã¦è¨­å®ããã
+  # 定義されたすべてのセル（出現順. namespace に影響されない）
+  @@cell_list = []     # composite の内部のセルを含まない
+  @@cell_list2 = []    # composite の内部のセルを含む (元のセルを含む)
+                       # 意味解析後 make_cell_list2 にて設定される
 
   def self.push
@@ -1258,14 +1188,9 @@
 
 
-  # composite ã§ clone ããããã®ï¼å­å­«ã¾ã§å«ãï¼
-  # Join.change_rhs_port ã«ã¦ CompoisteCelltype å
-ã® Join ã®çµåå
-ãå¤æ´ããéã«ä½¿ç¨
+  # composite で clone されたもの（子孫まで含む）
+  # Join.change_rhs_port にて CompoisteCelltype 内の Join の結合先を変更する際に使用
   @@cloned_cell_list = {}
-  ### mikan BUG @@cloned_cell_list ã¯ composite ã®éå±¤ãã¨ã«è¨æ¶ãã¦ããªããããåãååãå
-é¨ã«ç¾ããã¨ããã¾ãåä½ããªã
-  # change_rhs_port ã®å®è£
-ã¯ããããªåããã©ããã¨ãããå¿
-è¦ã¯ãªãã£ããå³è¾ºã«ç¾ããã»ã«åã«ã¯ãcomposite ã®ã»ã«åãåã«ã¤ãªããã ãã§ããã£ã
+  ### mikan BUG @@cloned_cell_list は composite の階層ごとに記憶していないため、同じ名前が内部に現れると、うまく動作しない
+  # change_rhs_port の実装は、こんな回りくどいことをする必要はなかった。右辺に現れるセル名には、composite のセル名を前につなげるだけでよかった
 
   def initialize( ct_path, in_composite = false )
@@ -1273,13 +1198,11 @@
     @region = Region.get_current
 
-    # celltype ã®plugin/å­å¨ããã§ãã¯
+    # celltype のplugin/存在をチェック
     object = Namespace.find( ct_path )    #1
     if object == nil then
-      # mikan celltype ã®ååãä¸å®å
-¨ "::ct1ct2" ã«ãªã
+      # mikan celltype の名前が不完全 "::ct1ct2" になる
       cdl_error( "S1027 \'$1\' celltype not found" , ct_path.get_path_str )
     elsif ! object.instance_of?( Celltype ) && ! object.instance_of?( CompositeCelltype ) then
-      # mikan celltype ã®ååãä¸å®å
-¨
+      # mikan celltype の名前が不完全
       cdl_error( "S1028 \'$1\' not celltype" , ct_path.get_path_str )
     else
@@ -1329,8 +1252,7 @@
     end
 
-    # ãã®æç¹ã§ã¯ãã­ãã¿ã¤ãããå®ç¾©ãåããªãããèªå·±åç
-§ã®ããã«ç»é²
-    # set_f_def ã§ååº¦ç»é²ããªãã
-    # Celltype ã¸ã®ç»é²ã¯ãend_of_parse ã§è¡ã
+    # この時点ではプロトタイプか、定義か分らないが、自己参照のために登録
+    # set_f_def で再度登録しなおす
+    # Celltype への登録は、end_of_parse で行う
     if @in_composite then
       cell_prev = CompositeCelltype.find( name )
@@ -1339,9 +1261,9 @@
       end
     else
-      # cell_prev = Namespace.find( [ name ] )   # è¦ªã¾ã§æãã«ãã
+      # cell_prev = Namespace.find( [ name ] )   # 親まで捜しにいく
       cell_prev = Namespace.get_current.find( name )
       if cell_prev == nil then
         Namespace.new_cell( self )
-        set_namespace_path # @NamespacePath ã®è¨­å®
+        set_namespace_path # @NamespacePath の設定
       end
     end
@@ -1350,9 +1272,9 @@
       if ! cell_prev.instance_of?( Cell ) then
         cdl_error( "S1029 $1 mismatch with previous one" , name )
-        # celltype ãä¸è´ãã¦ããã ?
+        # celltype が一致しているか ?
       elsif get_celltype != cell_prev.get_celltype then
         cdl_error( "S1030 $1: celltype mismatch with previous one" , name )
       else
-        # region ãä¸è´ãã¦ããã?
+        # region が一致しているか?
         if ! cell_prev.get_region.equal? get_region then
           cdl_error( "S1031 $1 region \'$2\' mismatch  with previous one \'$3\'" , name, @region.get_name, cell_prev.get_region.get_name )
@@ -1360,6 +1282,6 @@
 
         @@current_object = cell_prev
-        # ãã®æç¹ã§ã¯ãã¾ã ãã­ãã¿ã¤ãå®£è¨ãå®ç¾©ãåããªã
-        # ä»¥åãå®ç¾©ã§ãã£ã¦ãä»åãå®ç¾©ã®å ´åãéè¤ã¨ã©ã¼ã§ãã
+        # この時点では、まだプロトタイプ宣言か定義か分らない
+        # 以前が定義であって、今回も定義の場合、重複エラーである
       end
     end
@@ -1371,10 +1293,9 @@
     dbgPrint "Cell new_cell: #{@global_name} #{@in_composite} #{self}\n"
 
-    # å
-é¨ã¢ã­ã±ã¼ã¿ã @alloc_list ã«è¿½å 
+    # 内部アロケータを @alloc_list に追加
     if @celltype.instance_of? CompositeCelltype then
       @celltype.get_internal_allocator_list.each{ |cell, cp_internal_name, port_name, fd_name, par_name, ext_alloc_ent|
         nsp = NamespacePath.new( @name, false )
-        rhs = Expression.new( [:OP_DOT, [:IDENTIFIER, nsp], Token.new( ext_alloc_ent.to_s.to_sym, nil, nil, nil ) ] )  #1 æ§æè§£ææ®µéãªã®ã§ locale ä¸è¦
+        rhs = Expression.new( [:OP_DOT, [:IDENTIFIER, nsp], Token.new( ext_alloc_ent.to_s.to_sym, nil, nil, nil ) ] )  #1 構文解析段階なので locale 不要
 
         @alloc_list << [:NORMAL_ALLOC,port_name,nil,fd_name,par_name,rhs]
@@ -1384,25 +1305,25 @@
   end
 
-  #=== Cell# cell ã®å®ç¾©
-  # æ¬ä½(join)ã®å®ç¾©ã®ç´åã«å¼ã³åºããã
+  #=== Cell# cell の定義
+  # 本体(join)の定義の直前に呼び出される
   def self.new_def
     @@current_object.new_def
   end
 
-  #=== Cell# cell ã®å®ç¾©
-  # æ¬ä½(join)ã®å®ç¾©ã®ç´åã«å¼ã³åºããã
-  # ãã®ã¡ã½ããã¯ cell tCelltype Cell { };  '{', '}' ã®é¨åãããå ´åã«å¼åºããã
+  #=== Cell# cell の定義
+  # 本体(join)の定義の直前に呼び出される
+  # このメソッドは cell tCelltype Cell { };  '{', '}' の部分がある場合に呼出される
   def new_def
     set_specifier_list( Generator.get_statement_specifier )
 
-    # prototype æå®å­ãªãã
+    # prototype 指定子ないか
     if ! @b_prototype then
-      # äºéå®ç¾©ã®ãã§ãã¯
+      # 二重定義のチェック
       if @b_defined == true then
         cdl_error( "S1032 $1: duplicate cell" , @name )
         dbgPrint "previous: #{@prev_locale[0]}: line #{@prev_locale[1]} '#{@name}' defined here\n"
 
-        # ã»ã«ã®éè¤å®ç¾©ã¨ã©ã¼ã®å¦ç½®
-        # åã®å®ç¾©ã¯æ¨ã¦ã
+        # セルの重複定義エラーの処置
+        # 前の定義は捨てる
         @join_list = NamedList.new( nil, "in cell '#{@name}'" )
       end
@@ -1417,38 +1338,36 @@
   end
 
-  #===  Cell# æ°ããçµåããã§ãã¯
+  #===  Cell# 新しい結合をチェック
   # STAGE:   P
   #
-  #join::  Join : æ°ããçµå
-  #b_regular:: bool : éå¸¸ã®å ´æ (bnf.y.rb)ãããªãã° true, ããä»¥å¤(allocator, require) ã§ã¯ false
+  #join::  Join : 新しい結合
+  #b_regular:: bool : 通常の場所 (bnf.y.rb)からならば true, それ以外(allocator, require) では false
   def new_join( join, b_regular = false )
     join.set_owner self
 
-    # composite ã®æ°ææ³å¯¾å¿ï¼
-    # composite ã®ä¸­ã®ã»ã«ã§ãattribute ã®å®ç¾©ã§ããå ´å
-    # cell å
-ã® attr_ext = composite.attr; æ§æãå¦ç
+    # composite の新文法対応．
+    # composite の中のセルで、attribute の定義である場合
+    # cell 内の attr_ext = composite.attr; 構文を処理
     if @in_composite then
       if @celltype then
-        if @celltype.find(join.get_name).instance_of?( Decl ) then # mikan a::b ã§æå®ããã¦ãããã®ãã¨ã©ã¼ã«ãªããªããã
+        if @celltype.find(join.get_name).instance_of?( Decl ) then # mikan a::b で指定されていたものがエラーにならないかも
           rhs = join.get_rhs
           if rhs.instance_of? Expression then
             ele = rhs.get_elements
-            if( ele[0]==:IDENTIFIER )then    #  attr = attr_ext ï¼å³è¾ºåé 
-ï¼ãï¼ #1
-              if( CompositeCelltype.has_attribute?(ele[1].get_name ) )then    # mikan a::b.ePort ãã¨ã©ã¼ã«ãªããªããã
-                ident = ele[1].get_name   # å³è¾ºã¯ attributeï¼
+            if( ele[0]==:IDENTIFIER )then    #  attr = attr_ext （右辺単項）か？ #1
+              if( CompositeCelltype.has_attribute?(ele[1].get_name ) )then    # mikan a::b.ePort がエラーにならないかも
+                ident = ele[1].get_name   # 右辺は attribute．
               else
-                # å³è¾ºã¯ attribute ã«ãªãã®ã§ããã°ãå®æ°ã®ã¯ã
-                # å®æ°ã¯ä¸ã¸æ¸¡ã (cell ã® join ã«ãã)
+                # 右辺は attribute にないのであれば、定数のはず
+                # 定数は下へ渡す (cell の join にする)
                 ident = nil
               end
             else
-              if join.get_rhs.eval_const2(nil) == nil then   # å®æ°å¼ã§ã¯ãªããï¼
-                # å³è¾ºããåä¸ã®ã·ã³ãã«ã§ãªãå ´åãç¾ç¶ã¯æ±ããªã
+              if join.get_rhs.eval_const2(nil) == nil then   # 定数式ではないか？
+                # 右辺が、単一のシンボルでない場合、現状は扱えない
                 cdl_error( "S1033 rhs expression is not supported. Only attribute is permitted on current version."  )
                 return
               else
-                # å®æ°ã¯ä¸ã¸æ¸¡ã (cell ã® join ã«ãã)
+                # 定数は下へ渡す (cell の join にする)
                 ident = nil
               end
@@ -1456,7 +1375,5 @@
 
             if ident then
-              # attr = attr; ã®ãããªåç
-§ã¯ã¨ã©ã¼ (a = composite.a ã¨ããå¿
-è¦ããã)
+              # attr = attr; のような参照はエラー (a = composite.a とする必要がある)
               if @celltype.find( ident ) then
                 cdl_error( "S1034 $1 : cannot refer to $2\'s attribute here. Use \'composite.$3\' to refer to composite celltype\'s" , ident, @celltype.get_name, ident )
@@ -1464,18 +1381,18 @@
             end
           elsif rhs.instance_of? Array then
-            if rhs[0] == :COMPOSITE then   # å³è¾ºã¯ composite.attr ã®å½¢å¼
+            if rhs[0] == :COMPOSITE then   # 右辺は composite.attr の形式
               ident = rhs[1].to_sym
             else
-              ident = nil    # å³è¾ºã¯ { 10, -10 } ã®å½¢å¼
+              ident = nil    # 右辺は { 10, -10 } の形式
             end
           else
-            ident = nil      # å³è¾ºã¯ C_EXP ã®å½¢å¼
+            ident = nil      # 右辺は C_EXP の形式
           end
 
-          # ident ãè¦ã¤ãã£ãï¼å³è¾ºã¯åä¸ã® identï¼
+          # ident が見つかった（右辺は単一の ident）
           if ident then
-            # composite ã®æ§ææ³ã®æ§æå¦çã¸æ¸¡ãï¼ã»ã«å¤ã® attr_ext = Cell.attr; æ§æã®å¦çã«æ¸¡ã
+            # composite の旧文法の構文処理へ渡す．セル外の attr_ext = Cell.attr; 構文の処理に渡す
             #                        export_name, internal_cell_name, internal_cell_elem_name
-            decl = CompositeCelltype.new_join( ident, @name, join.get_name, :ATTRIBUTE )  # mikan a::b.ePort ãã¨ã©ã¼ã«ãªããªããã
+            decl = CompositeCelltype.new_join( ident, @name, join.get_name, :ATTRIBUTE )  # mikan a::b.ePort がエラーにならないかも
             if ! decl.instance_of? Decl then
               return
@@ -1485,23 +1402,22 @@
               return
             end
-            # ä»¥ä¸ã®æ§ææ³å®è£
-ã«æ¸¡ãï¼
-            # æ§ææ³ã§ã¯ cell ã«åæå¤ãä¸ãããã¨ã§ãcomposite ã§å±æ§ã®åæå¤ãæå®ãããã¨ãã§ãã
-            # attribute ã§æå®ãããåæå¤ã cell ã®å±æ§ã¨ãã¦å¦çããã
+            # 以下の旧文法実装に渡す．
+            # 旧文法では cell に初期値を与えることで、composite で属性の初期値を指定することができた
+            # attribute で指定された初期値を cell の属性として処理させる
             join.change_rhs( ini )
           else
-            # ident ããªãï¼å®æ°å¼
+            # ident がない．定数式
           end
         else
-          # celltype ã®å±æ§ã¨ãã¦ããã® join ã®ååããªã
-          # ä»¥ä¸ã® join.set_definition ã®ä¸­ã§ã¨ã©ã¼ã¨ãªã
+          # celltype の属性として、この join の名前がない
+          # 以下の join.set_definition の中でエラーとなる
         end
       else
-        return    # celltype ããªãï¼ãã§ã«ã¨ã©ã¼
+        return    # celltype がない．すでにエラー
       end
     elsif join.get_rhs.instance_of? Array then
       rhs = join.get_rhs
       if rhs[0] == :COMPOSITE then
-        # composite ã®ä¸­ã§ãªãã®ã« attr = composite.attr ãä½¿ããã
+        # composite の中でないのに attr = composite.attr が使われた
         cdl_error( "S1035 composite : cannot specify out of composite celltype definition"  )
         return
@@ -1509,14 +1425,13 @@
     end
 
-    # ä»¥ä¸ composite ææ³å¤æ´åããããå¦ç
-
-    # æ¢ã«å·¦è¾ºãåãååã®åæåãå­å¨ãããï¼
-    j = @join_list.get_item( join.get_name )   # mikan NamespacePath ããã¹ãæã£ã¦ãã
-    if j.instance_of? Join then    # mikan ããã§ã¯ j ã Join or Nil ä»¥å¤ã¯ããªãã¯ã
+    # 以下 composite 文法変更前からある処理
+
+    # 既に左辺が同じ名前の初期化が存在するか？
+    j = @join_list.get_item( join.get_name )   # mikan NamespacePath がパスを持っている
+    if j.instance_of? Join then    # mikan ここでは j が Join or Nil 以外は、ないはず
 
       # debug
       dbgPrint "add_array_member: #{@name} port: #{j.get_port_name} rhs: #{j.get_rhs}, #{join.get_port_name} #{join.get_rhs}\n"
-      # å¼ã³å£é
-åï¼ã§ããã¨ä»®å®ãã¦ï¼è¦ç´ ãè¿½å 
+      # 呼び口配列（であると仮定して）要素を追加
       j.add_array_member join
 
@@ -1526,5 +1441,5 @@
     end
 
-    # if get_owner then   # error S1030 çºçæ get_owner ãè¦ã¤ãããªãã¦ä¾å¤ã«ãªã
+    # if get_owner then   # error S1030 発生時 get_owner が見つからなくて例外になる
     #   dbgPrint "Cell#new_join: #{get_owner.get_name}.#{@name}\n"
     # else
@@ -1540,10 +1455,10 @@
   end
 
-  #=== Cell.æ°ããéçµå
+  #=== Cell.新しい逆結合
   def self.new_reverse_join( reverse_join )
     @@current_object.new_reverse_join( reverse_join )
   end
 
-  #=== Cell#æ°ããéçµå
+  #=== Cell#新しい逆結合
   def new_reverse_join( reverse_join )
     dbgPrint( "new_reverse_join name=#{reverse_join.get_name}\n")
@@ -1570,5 +1485,5 @@
   end
 
-  #=== Cell#éçµåããçµåãçæ
+  #=== Cell#逆結合から結合を生成
   # STAGE: S
   def create_reverse_join
@@ -1580,10 +1495,9 @@
 #      @reverse_join_list.get_items.each{ |rj|
       @reverse_join_list.each{ |rj|
-        # éçµåã®æ
-å ±ãå¾ã
+        # 逆結合の情報を得る
         ep_name = rj.get_name
         ep_subscript, cp_cell_nsp, cp_name, cp_subscript = rj.get_rhs_cell_and_port
 
-        # å¼ã³å£å´ã®ã»ã«ã¨ããã®ã»ã«ã¿ã¤ã
+        # 呼び口側のセルと、そのセルタイプ
         cell = Namespace.find cp_cell_nsp
         if ! cell.instance_of? Cell then
@@ -1616,21 +1530,19 @@
   end
 
-  #=== Cell# cell å
-ã«è¨è¿°ããå¼ã³å£ã®å¤é¨çµå
-  # internal_cell_elem_name:: string : å¼ã³å£å
-  # export_name:: string: composite ã®å¤é¨ã«å
-¬éããå¼ã³å£å
-  #  å¼ã³å£ãå¤é¨çµåããï¼
-  #  ãã®ã¡ã½ããã¯ãcomposite ã®ä¸­ã® cell ã§ããå¼ã°ããªãï¼
+  #=== Cell# cell 内に記述する呼び口の外部結合
+  # internal_cell_elem_name:: string : 呼び口名
+  # export_name:: string: composite の外部に公開する呼び口名
+  #  呼び口を外部結合する．
+  #  このメソッドは、composite の中の cell でしか呼ばれない．
   def external_join( internal_cell_elem_name, export_name, b_composite )
 
-    # cCall => composite.cCall; ã§ã¯ãªããï¼
+    # cCall => composite.cCall; ではないか？
     if( b_composite == false )then
-      # cCall => cCall; ã®ãããªå ´å
+      # cCall => cCall; のような場合
       if @celltype.find( export_name ) then
         cdl_error( "S1036 $1 : cannot refer to $2\'s here. Use \'composite.$3\' to refer to composite celltype\'s" , export_name, @celltype.get_name, export_name )
       end
     end
-    # composite ã®æ§ææ³ã«ããããcell å¤ã® cCall = Cell.cCall; ã®æ§æå¦çã«æ¸¡ã
+    # composite の旧文法における、cell 外の cCall = Cell.cCall; の構文処理に渡す
     CompositeCelltype.new_join( export_name, @name,  internal_cell_elem_name, :CALL )
   end
@@ -1644,11 +1556,11 @@
 
   def end_of_parse f_def
-    if @b_prototype then  # prototype æå®å­ãã£ãã?
-      f_def = false       # ãã­ãã¿ã¤ãå®£è¨ã¨ãã
+    if @b_prototype then  # prototype 指定子あったか?
+      f_def = false       # プロトタイプ宣言とする
       @b_prototype = false
     end
     if f_def == false then
-      # cell tCelltype Cell; ã®å½¢å¼ã®å ´å
-      # f_def == true ã®å ´å new_def ã§ãå¼åºããã
+      # cell tCelltype Cell; の形式の場合
+      # f_def == true の場合 new_def で、呼出される
       set_specifier_list( Generator.get_statement_specifier )
     end
@@ -1660,6 +1572,6 @@
   end
 
-  #=== Cell# ãã­ãã¿ã¤ãå®£è¨(false)ãå®ç¾©(true)ããè¨­å®
-  #    ãã®ã¡ã½ããã¯æ§æè§£éã®æå¾ã«å¼åºããã
+  #=== Cell# プロトタイプ宣言(false)か定義(true)かを設定
+  #    このメソッドは構文解釈の最後に呼出される
   #f_def::     bool     false if prototype, true if definition
   def set_f_def f_def
@@ -1680,10 +1592,6 @@
     @f_ref = true
 
-    # composite ã®å
-é¨ã»ã«ãåç
-§ããããã¨ã«ãã
-    # ä»ã®ã¨ããåé¡ãªãããæªåç
-§ã§ããã¹ããã®ã¾ã§åç
-§ããããã¨ã«ãªã
+    # composite の内部セルを参照されたことにする
+    # 今のところ問題ないが、未参照であるべきものまで参照されたことになる
     if @cell_list then
       @cell_list.each{ |cn,cell|
@@ -1693,29 +1601,26 @@
   end
 
-  #=== Cell# cell ã®æå®å­ãè¨­å®
+  #=== Cell# cell の指定子を設定
   # STAGE:  B
   #
-  #    bnf.y.rb ã® statement_specifiler_list
+  #    bnf.y.rb の statement_specifiler_list
   #spec_list::      [ :ALLOCATOR, [ [ :NORMAL_ALLOC, ep_name, subscript, func_name, param_name, expr ], ... ] ]
   #                     s[0]      s[1]   a[0]        a[1]       a[2]        a[3]     a[4]       a[5]
-  #    ã»ã«ã«æå®ãããã¢ã­ã±ã¼ã¿æå®å­
-  #    a[1] ã® subscript ã¯ãã®ã¡ã½ããã®ä¸­ã§ Expression ãã Integer ã«è©ä¾¡ããã
-  #    åãå£å´ã«çæãããã¢ã­ã±ã¼ã¿å¼ã³å£ã®çµåãå
-é¨çæãã
-  #    å¼ã³å£å´ã¯ Port ã® create_allocator_join ã«ã¦çæ
-  #    ãªã¬ã¼ã¢ã­ã±ã¼ã¿ã®å ´å create_relay_allocator_join ã«ã¦çæã
+  #    セルに指定されたアロケータ指定子
+  #    a[1] の subscript はこのメソッドの中で Expression から Integer に評価される
+  #    受け口側に生成されるアロケータ呼び口の結合を内部生成する
+  #    呼び口側は Port の create_allocator_join にて生成
+  #    リレーアロケータの場合 create_relay_allocator_join にて生成す
   def set_specifier_list( spec_list )
-    return if spec_list == nil  # ç©ºãªãã°ä½ãããªã
+    return if spec_list == nil  # 空ならば何もしない
 
     dbgPrint( "set_spec_list: #{@name}\n" )
-    b_generate = false   # generate ãæå®ããã
+    b_generate = false   # generate が指定された
 
     spec_list.each{ |s|
       case s[0]             # statement_specifier
       when :ALLOCATOR       # [allocator(ePort.func.param=allocCell.eA,ePort.func2.param=allocCell.eA)]
-        s[1].each { |a|     # alloc_list : allocator ã®å
-é¨ã® ',' ã§åºåãããé¨åã®é
-å
-          cp_name = :"#{a[0+1]}_#{a[2+1]}_#{a[3+1]}"    # ã¢ã­ã±ã¼ã¿å¼ã³å£ã®ååï¼'=' ã®å·¦è¾ºã '.' ã«å¤ãã¦ '_' ã§é£çµ
+        s[1].each { |a|     # alloc_list : allocator の内部の ',' で区切られた部分の配列
+          cp_name = :"#{a[0+1]}_#{a[2+1]}_#{a[3+1]}"    # アロケータ呼び口の名前：'=' の左辺を '.' に変えて '_' で連結
           # p "#{a[0]} #{a[0+1]} #{a[2+1]} #{a[3+1]} #{cp_name}"
           if a[1+1] then
@@ -1725,6 +1630,6 @@
             subscript = nil
           end
-          # ã¢ã­ã±ã¼ã¿å¼ã³å£ã®çµåãçæ
-          join = Join.new( cp_name, subscript, a[4+1] )   # æ§æè§£ææ®µéãªã®ã§ locale ä¸è¦
+          # アロケータ呼び口の結合を生成
+          join = Join.new( cp_name, subscript, a[4+1] )   # 構文解析段階なので locale 不要
           dbgPrint( "new allocator join #{cp_name} #{subscript} #{a[4+1]}\n" )
           Cell.new_join( join )
@@ -1772,6 +1677,6 @@
   def get_allocator_list
 
-    # æå³ãã§ãã¯(set_definition)ããã¦ããªãï¼
-    # relay ã¢ã­ã±ã¼ã¿ã®å ´åãã»ã«ã®æå³ãã§ãã¯ãè¡ããã¦ããªãã¨ã@alloc_list ãå®æããªã
+    # 意味チェック(set_definition)されていない？
+    # relay アロケータの場合、セルの意味チェックが行われていないと、@alloc_list が完成しない
     if @b_checked == false then
       set_definition_join
@@ -1784,7 +1689,7 @@
   end
 
-  #=== id æå®å­ã®å¤ãè¨­å®
-  # ãã®ã¡ã½ããã¯ããã©ã°ã¤ã³ã§ cell ã®çæé åºãå¶å¾¡ãããå ´åã®ããã«è¨­ãã
-  # éå¸¸ã® id æå®å­ã§ã¯ä½¿ã£ã¦ããªã
+  #=== id 指定子の値を設定
+  # このメソッドは、プラグインで cell の生成順序を制御したい場合のために設けた
+  # 通常の id 指定子では使っていない
   def set_specified_id id
     if Integer( id ) != id || id <= 0 then
@@ -1797,5 +1702,5 @@
   end
 
-  #=== Cell# ã»ã«ã¿ã¤ããã©ã°ã¤ã³ (generate æå®å­)
+  #=== Cell# セルタイププラグイン (generate 指定子)
   def cell_plugin
 
@@ -1811,5 +1716,5 @@
 
     begin
-      eval( eval_str )     # plugin ãçæ
+      eval( eval_str )     # plugin を生成
       plugin_object.set_locale @locale
       @generate[ 2 ] = plugin_object
@@ -1827,12 +1732,11 @@
   end
 
-  #=== Cell# cell ã composite ã»ã«ã¿ã¤ãã®ã»ã«ç¨ã« clone ãã
-  #name::        string : è¦ª cell ã®åå  (cell tComposite cell1 ã§ã® cell1)
-  #global_name:: string : è¦ª cell ã® global_name 
-  #join_array::  Join[] : composite ã® cell ã® join ã§ããã® cell ã«å¯¾å¿ãããã®
-  #ct_name::     string : è¦ªã»ã«ã®ã»ã«ã¿ã¤ãå
-  #region::      Region : å
-ã®ã»ã«ãå±ãã region
-  #ãã®ã¡ã½ããã¯ CompositeCelltype ã® expand ããå¼åºããã
+  #=== Cell# cell を composite セルタイプのセル用に clone する
+  #name::        string : 親 cell の名前  (cell tComposite cell1 での cell1)
+  #global_name:: string : 親 cell の global_name 
+  #join_array::  Join[] : composite の cell の join で、この cell に対応するもの
+  #ct_name::     string : 親セルのセルタイプ名
+  #region::      Region : 元のセルが属する region
+  #このメソッドは CompositeCelltype の expand から呼出される
   def clone_for_composite( name, global_name, namespacePath, join_array, ct_name, region, plugin, locale )
 
@@ -1843,14 +1747,12 @@
     @@cloned_cell_list[ self ] = @my_clone
 
-    # clone ããã»ã«ã®å
-é¨ã«æã¤ååæ
-å ±ãèª¿æ´ãã
+    # clone したセルの内部に持つ名前情報を調整する
 
     @my_clone.set_cloned( name, global_name, namespacePath, join_array, ct_name, region, plugin, locale )
 
-    # @celltype == nil ã¯ä»¥åã«ã»ã«ã¿ã¤ãæªå®ç¾©ã¨ã©ã¼
+    # @celltype == nil は以前にセルタイプ未定義エラー
     if @b_defined == true && @celltype != nil then
       if @celltype.instance_of?( Celltype ) then
-        # celltype ã«ç»é²ï¼ã³ã¼ãçæã®å¯¾è±¡ã¨ãªãï¼
+        # celltype に登録（コード生成の対象となる）
         @celltype.new_cell( @my_clone )
       end
@@ -1860,12 +1762,10 @@
   end
 
-  #=== Cell# clone ãããã»ã«ã®å
-é¨ã«æã¤ååæ
-å ±ãèª¿æ´ãã
-  #name::        string : è¦ª cell ã®åå  (cell tComposite cell1 ã§ã® cell1)
-  #global_name:: string : è¦ª cell ã® global_name
-  #join_array::  Join[] : composite ã® cell ã® join ã§ããã® cell ã«å¯¾å¿ãããã®
-  #parent_ct_name:: string : è¦ªã»ã«ã®ã»ã«ã¿ã¤ãåï¼composite ã»ã«ã¿ã¤ãï¼
-  #  ãã®ã¡ã½ããã¯ããä¸ã® clone_for_composite ããå¼åºãããclone ãããã»ã«ãæ´ãã
+  #=== Cell# clone されたセルの内部に持つ名前情報を調整する
+  #name::        string : 親 cell の名前  (cell tComposite cell1 での cell1)
+  #global_name:: string : 親 cell の global_name
+  #join_array::  Join[] : composite の cell の join で、この cell に対応するもの
+  #parent_ct_name:: string : 親セルのセルタイプ名（composite セルタイプ）
+  #  このメソッドはすぐ上の clone_for_composite から呼出され、clone されたセルを整える
   def set_cloned( name, global_name, namespacePath, join_array, parent_ct_name, region, plugin, locale )
 
@@ -1884,8 +1784,8 @@
     @f_cloned = true
 
-    # Namespace.new_cell( self )  # mikan namespace å¯¾å¿
-    region.new_cell( self )  # mikan  namespace ã« cell ãç½®ããªããã¨ãä»®å®
-
-    # join_list : NamedList ã® clone ãä½ã
+    # Namespace.new_cell( self )  # mikan namespace 対応
+    region.new_cell( self )  # mikan  namespace に cell を置けないことを仮定
+
+    # join_list : NamedList の clone を作る
     if @celltype then
       dbgPrint "set_cloned: #{@celltype.get_name} #{@name} #{region.get_name}\n"
@@ -1900,13 +1800,13 @@
     @cell_list2 = []
 
-    # ãã®ã»ã«ã®ã°ã­ã¼ãã«åãä¸ãã
-    # C_EXP ã®$id$ ç½®æã¯ãã®ã»ã«ã®ååã«ãªã
+    # このセルのグローバル名を与える
+    # C_EXP の$id$ 置換はこのセルの名前になる
     join_array.each { |j|
       @join_list.change_item j
     }
 
-    # clone ãããã¨ããã»ã«ã composit ã»ã«ã¿ã¤ãï¼
+    # clone しようとするセルが composit セルタイプ？
     if @celltype.instance_of?( CompositeCelltype ) then
-      # composite cell ãåå¸°çã«å±é
+      # composite cell を再帰的に展開
       @cell_list, @cell_list2 = @celltype.expand( @name, @global_name, @NamespacePath, @join_list, @region, @plugin, @locale )
     end
@@ -1914,6 +1814,6 @@
   end
 
-  #=== Cell# clone ããã cell ã® join_list ã®å³è¾ºã®å¤æ´
-  #  å¼ã³å£ã®å³è¾ºã® cell ãä»ã® clone ããã cell ã«ç½®æã
+  #=== Cell# clone された cell の join_list の右辺の変更
+  #  呼び口の右辺の cell を他の clone された cell に置換え
   def change_rhs_port
 
@@ -1927,6 +1827,5 @@
     if @celltype.instance_of?( CompositeCelltype ) then
 
-      # å
-¥ãå­ã®ã»ã«ã«ã¤ãã¦ãå¤æ´
+      # 入れ子のセルについても変更
       @cell_list.each{ |name,c|
         c.change_rhs_port
@@ -1967,9 +1866,9 @@
   end
 
-  #=== Cell# çæãããã»ã«ãï¼
-  # æé©åãã³ã¼ãçæä¸­ã«ãå¯¾è±¡ã¨ãªã region ã«å±ããå ´å true ãè¿ã
+  #=== Cell# 生成されるセルか？
+  # 最適化、コード生成中に、対象となる region に属する場合 true を返す
   def is_generate?
     if $generating_region == nil then
-      # æ§æè§£éãæå³è§£ææ®µéã§å¼ã°ããã¨ä¾å¤çºç
+      # 構文解釈、意味解析段階で呼ばれると例外発生
       raise "is_generate? called before optimizing"
     end
@@ -1983,21 +1882,16 @@
   end
 
-  #=== Cell# composite å
-é¨ã®è¤è£½ãããã»ã«ãï¼
-  # composite å®ç¾©ã®å
-é¨ã®ã»ã« (@in_composite = true) ã§ã¯ãªã
+  #=== Cell# composite 内部の複製されたセルか？
+  # composite 定義の内部のセル (@in_composite = true) ではない
   def is_cloned?
     @f_cloned
   end
 
-  #=== Cell# composite å
-é¨ã®ã»ã«ãï¼
+  #=== Cell# composite 内部のセルか？
   def is_in_composite?
     @in_composite
   end
 
-  # composite cell ã® port ã«å¯¾å¿ããå
-é¨ã® cell ã® port ã®ååï¼ãªã³ã¯æã«å¿
-è¦ãªååï¼
+  # composite cell の port に対応する内部の cell の port の名前（リンク時に必要な名前）
   def get_real_global_name port_name
     if @celltype.instance_of?( CompositeCelltype ) then
@@ -2027,9 +1921,9 @@
   end
 
-  #=== Cell# ã»ã«ã®åãå£ port_name ã«å¯¾ããå®éã®ã»ã«åãåãå£åã '_' ã§é£çµ
-  #    namespace å + '_' + ã»ã«å + '_' + åãå£å   ï¼ãã®ã»ã«ã composite ãªãã°å±éå¾ã®ã»ã«åãåãå£åï¼
+  #=== Cell# セルの受け口 port_name に対する実際のセル名、受け口名を '_' で連結
+  #    namespace 名 + '_' + セル名 + '_' + 受け口名   （このセルが composite ならば展開後のセル名、受け口名）
   def get_real_global_port_name port_name
 
-    # composite ãï¼
+    # composite か？
     if @celltype.instance_of?( CompositeCelltype ) then
 
@@ -2042,7 +1936,5 @@
       }
 
-      # ã»ã«ã¿ã¤ãå
-ã§ port_name ã® CompositeCelltypeJoin ãæ¢ãï¼ã³ã¼ãçææ®µéã§ã¯å¿
-ãè¦ã¤ããï¼
+      # セルタイプ内で port_name の CompositeCelltypeJoin を探す（コード生成段階では必ず見つかる）
       cj = @celltype.find_export( port_name )
 
@@ -2050,6 +1942,5 @@
       dbgPrint "   composite join name: #{cj.get_name}  cell: #{cj.get_cell_name}  cell elem: #{cj.get_cell_elem_name}\n"
 
-      # composite ã®å
-é¨ã®ã»ã«ã«å¯¾ãåå¸°çã« get_real_global_port_name ãé©ç¨
+      # composite の内部のセルに対し再帰的に get_real_global_port_name を適用
       name = @cell_list[ "#{cj.get_cell_name}" ].get_real_global_port_name( cj.get_cell_elem_name )
       return name
@@ -2063,17 +1954,14 @@
   end
 
-  #=== Cell# PORT (celltype ã®å®ç¾©) ãå¾ã
+  #=== Cell# PORT (celltype の定義) を得る
   def get_real_port( port_name )
 
-    # composite ãï¼
+    # composite か？
     if @celltype.instance_of?( CompositeCelltype ) then
 
-      # ã»ã«ã¿ã¤ãå
-ã§ port_name ã® CompositeCelltypeJoin ãæ¢ãï¼ã³ã¼ãçææ®µéã§ã¯å¿
-ãè¦ã¤ããï¼
+      # セルタイプ内で port_name の CompositeCelltypeJoin を探す（コード生成段階では必ず見つかる）
       cj = @celltype.find_export( port_name )
 
-      # composite ã®å
-é¨ã®ã»ã«ã«å¯¾ãåå¸°çã« get_real_port ãé©ç¨
+      # composite の内部のセルに対し再帰的に get_real_port を適用
       port = @cell_list[ "#{cj.get_cell_name}" ].get_real_port( cj.get_cell_elem_name )
       return port
@@ -2084,18 +1972,15 @@
   end
 
-  #=== Cell# cell ãå¾ã
-  #    composite ã§ãªããã°èªåèªèº«ãè¿ã
+  #=== Cell# cell を得る
+  #    composite でなければ自分自身を返す
   def get_real_cell( port_name )
 
-    # composite ãï¼
+    # composite か？
     if @celltype.instance_of?( CompositeCelltype ) then
 
-      # ã»ã«ã¿ã¤ãå
-ã§ port_name ã® CompositeCelltypeJoin ãæ¢ãï¼ã³ã¼ãçææ®µéã§ã¯å¿
-ãè¦ã¤ããï¼
+      # セルタイプ内で port_name の CompositeCelltypeJoin を探す（コード生成段階では必ず見つかる）
       cj = @celltype.find_export( port_name )
 
-      # composite ã®å
-é¨ã®ã»ã«ã«å¯¾ãåå¸°çã« get_real_port ãé©ç¨
+      # composite の内部のセルに対し再帰的に get_real_port を適用
       cell = @cell_list[ "#{cj.get_cell_name}" ].get_real_cell( cj.get_cell_elem_name )
       return cell
@@ -2107,7 +1992,6 @@
 
 
-  #=== Cell# åãå£ã®port ã®åç
-§ã«ã¦ã³ããã¢ãããã
-  #port_name:: Symbol  : ãã¼ãå
+  #=== Cell# 受け口のport の参照カウントをアップする
+  #port_name:: Symbol  : ポート名
   def port_referenced port
     if @referenced_port_list[ port ] then
@@ -2117,17 +2001,14 @@
     end
 
-    # composite ãï¼
+    # composite か？
     if @celltype.instance_of?( CompositeCelltype ) then
 
-      # ã»ã«ã¿ã¤ãå
-ã§ port_name ã® CompositeCelltypeJoin ãæ¢ãï¼ã³ã¼ãçææ®µéã§ã¯å¿
-ãè¦ã¤ããï¼
+      # セルタイプ内で port_name の CompositeCelltypeJoin を探す（コード生成段階では必ず見つかる）
       cj = @celltype.find_export( port.get_name )
 
       dbgPrint " port_referenced: #{@celltype.get_name} #{@name} cj=#{cj&&(cj.get_name)||"nil"}\n"
 
-      if cj then  # æ¢ã«ã¨ã©ã¼
-        # composite ã®å
-é¨ã®ã»ã«ã«å¯¾ãåå¸°çã« get_real_port ãé©ç¨
+      if cj then  # 既にエラー
+        # composite の内部のセルに対し再帰的に get_real_port を適用
         cell = @cell_list[ "#{cj.get_cell_name}" ]
         if cell && cell.get_celltype then
@@ -2181,6 +2062,5 @@
   end
 
-  #=== Cell# åãå£é
-åã®æ·»æ°ã®æå¤§å¤ãè¨­å®
+  #=== Cell# 受け口配列の添数の最大値を設定
   def set_entry_port_max_subscript( port, num )
     dbgPrint( "set_entry_port_max_subscript: #{@name}.#{port.get_name}: #{num}\n" )
@@ -2193,15 +2073,11 @@
   end
 
-  #=== Cell# composite ã®å
-å´ã»ã«ã®åãå£é
-åã®æ·»æ°ã®æå¤§å¤ãè¨­å®
+  #=== Cell# composite の内側セルの受け口配列の添数の最大値を設定
   def set_entry_inner_port_max_subscript( port, num )
-    if @cell_list == nil then   # mikan ããã£ã¦åé¡ãªãï¼
-      return    # ãã­ãã¿ã¤ãå®£è¨ããããã¦ããªãã¦ãå
-å´ã»ã«ãå±éããã¦ããªã
-    end
-
-    # composite ã®å
-å´ã®ã»ã«ã«ä¼æ­
+    if @cell_list == nil then   # mikan これって問題ない？
+      return    # プロトタイプ宣言しかされていなくて、内側セルが展開されていない
+    end
+
+    # composite の内側のセルに伝播
     if @celltype.instance_of? CompositeCelltype then
       cj = @celltype.find_export port.get_name
@@ -2217,8 +2093,7 @@
   end
 
-  #=== Cell# åãå£é
-åã®æ·»æ°ã®æå¤§å¤ãè¿ã
-  # é·ãã¯ +1 ãã
-  # 1ã¤ããªãå ´åã¯ -1 ãè¿ã
+  #=== Cell# 受け口配列の添数の最大値を返す
+  # 長さは +1 する
+  # 1つもない場合は -1 を返す
   def get_entry_port_max_subscript( port )
     subscript = @entry_array_max_subscript[port]
@@ -2229,14 +2104,13 @@
   end
 
-  #=== Cell# ãªã¬ã¼ã¢ã­ã±ã¼ã¿ã®çµåãçæ
+  #=== Cell# リレーアロケータの結合を生成
   # STAGE: S
-  # å¼ã³å£å´ã®çµåãå
-ã«åãå£å´ã®çµåãçæ
+  # 呼び口側の結合を元に受け口側の結合を生成
   def create_relay_allocator_join
 
-    # celltype ããªããã°ãã§ãã¯ããªãï¼æ¢ã«ã¨ã©ã¼ï¼
+    # celltype がなければチェックしない（既にエラー）
     return if @celltype == nil
 
-    # relay allocator ãçæ
+    # relay allocator を生成
     @celltype.get_port_list.each { |p|
       ail = p.get_allocator_instance
@@ -2244,5 +2118,5 @@
         dbgPrint "create_relay_allocator_join: #{@name}, #{p.get_name}\n"
         if p.get_array_size then
-          # mikan relay allocator ã array ã«å¯¾å¿ã§ãã¦ãããã®ã§ã¯ï¼
+          # mikan relay allocator が array に対応できてもよいのでは？
           cdl_error( "S1040 array not supported for relay allocator"  )
           next
@@ -2252,12 +2126,11 @@
           if ai2[0] == :RELAY_ALLOC then
             dbgPrint "create_relay_allocator_join: #{@name}, #{name}\n"
-            # å¼ã³å£å´ã®çµåãåãåºã
+            # 呼び口側の結合を取り出す
             ja = @join_list.get_item( :"#{ai2[3]}_#{ai2[4]}_#{ai2[5]}" )
             if ja == nil then
-              # è¦ã¤ãããªãå ´å
+              # 見つからない場合
               found = false
               
-              # composite å
-ã§å¤é¨ã«çµåããã¦ããã
+              # composite 内で外部に結合されているか
               if @in_composite then
                 @compositecelltypejoin_list.get_items.each { |cj|
@@ -2276,22 +2149,19 @@
                 cdl_error( "S1041 \'$1_$2_$3\': not joined. cannot create internal join for relay allocator" , ai2[3], ai2[4], ai2[5] )
                 print( "      In cell #{get_name}\n" )
-                # join ãæªçµåã§ãããã¨ã®ã¨ã©ã¼ã¯äºåº¦ã§ã (S1043)
+                # join が未結合であることのエラーは二度でる (S1043)
               end
-              next    # æã¡åã
+              next    # 打ち切る
             end
 
             b_export = false
-            # composite å
-ã®ã»ã«ã§ã¨ã¯ã¹ãã¼ãããã¦ããããã§ãã¯
-            #  mikan ã¨ã¯ã¹ãã¼ãå´ã¨ããã¡ãå´ã§ããªã¬ã¼å
-ãä¸è´ããããã§ãã¯ãå¿
-è¦
+            # composite 内のセルでエクスポートされているかチェック
+            #  mikan エクスポート側と、こちら側で、リレー先が一致するかチェックが必要
             if @compositecelltypejoin_list then
-              # export ããã¦ãããèª¿ã¹ã
+              # export されているか調べる
               @compositecelltypejoin_list.get_items.each{ |cj|
-                # å±æ§åã¨ composite ã® export ããååã¯ä¸è´ããã
+                # 属性名と composite の export する名前は一致するか
                 if p.get_name == cj.get_cell_elem_name then
                   print "export : #{p.get_name}\n"
-                  b_export = true    # å±æ§ã¯ export ããã¦ããã®ã§ãã¨ããããæªåæåã¨ã¯ããªã
+                  b_export = true    # 属性は export されているので、とりあえず未初期化とはしない
                   break
                 end
@@ -2300,6 +2170,5 @@
             end
 
-            # mikan é
-å
+            # mikan 配列
             am = nil
             if am then
@@ -2308,12 +2177,10 @@
                 subscript = ja2.get_subscript
                 if b_export == false then
-                  # CompositeCelltype ã®å ´åãå
-å´ã®ã»ã«ã§çæããã
+                  # CompositeCelltype の場合、内側のセルで生成させる
                   join = Join.new( :"#{p.get_name}_#{ai2[1]}_#{ai2[2]}", subscript, rhs, @loacle )
                   # p ( "#{p.get_name}_#{ai2[1]}_#{ai2[2]}", subscript, rhs )
                   new_join( join )
                   join.set_definition( @celltype.find(join.get_name) )
-                  # mikan relay mismatch ãã§ãã¯ãã§ãã¦ããªãï¼ä¸æ¹ãåç
-§ï¼
+                  # mikan relay mismatch チェックができていない（下方を参照）
                 end
                 @alloc_list << [ :NORMAL_ALLOC, p.get_name, subscript, ai2[1], ai2[2], rhs ]
@@ -2321,6 +2188,5 @@
             else
               if b_export == false then
-                # CompositeCelltype ã®å ´åãå
-å´ã®ã»ã«ã§çæããã
+                # CompositeCelltype の場合、内側のセルで生成させる
                 join = Join.new( :"#{p.get_name}_#{ai2[1]}_#{ai2[2]}", nil, ja.get_rhs, @locale )
                 new_join( join )
@@ -2332,6 +2198,5 @@
                                       "#{p.get_name}_#{ai2[1]}_#{ai2[2]}",
                                       "#{ai2[3]}_#{ai2[4]}_#{ai2[5]}" )
-                    # æ¬å½ã¯ composite ã®å¼ã³å£ã¨åãå£ã®éã§è¡ãã¹ãã ããå
-é¨ã§å¤æ®µæ¥ç¶ããã¦ããå ´å
+                    # 本当は composite の呼び口と受け口の間で行うべきだが、内部で多段接続されている場合
                   else
                     dbgPrint "relay success:  #{p.get_name}_#{ai2[1]}_#{ai2[2]}=>#{ai2[3]}_#{ai2[4]}_#{ai2[5]} #{jr.get_rhs_cell2.get_name}.#{jr.get_rhs_port2} \n"
@@ -2348,7 +2213,6 @@
   end
 
-  #=== Cell# @@cell_list2 ãä½ã
-  # @@cell_list2 ã¯ãåºç¾é ã« composite å
-ãå«ãã»ã«ã®ãªã¹ã
+  #=== Cell# @@cell_list2 を作る
+  # @@cell_list2 は、出現順に composite 内を含むセルのリスト
   def self.make_cell_list2
     @@cell_list.each{ |c|
@@ -2358,19 +2222,18 @@
   end
 
-  #=== Cell# @@cell_list2 ãå¾ã
-  # composite å
-ãå«ã (compositeãå«ã)
-  # æå³è§£æå¾ã«ä½æããã
+  #=== Cell# @@cell_list2 を得る
+  # composite 内を含む (compositeも含む)
+  # 意味解析後に作成される
   def self.get_cell_list2
     @@cell_list2
   end
 
-  #=== Cell# @@cell_list ãå¾ã
-  #composite ã®ä¸­ãå«ã¾ãªã
+  #=== Cell# @@cell_list を得る
+  #composite の中を含まない
   def self.get_cell_list
     @@cell_list
   end
 
-  #=== Cell# reverse_join ãçæãã
+  #=== Cell# reverse_join を生成する
   def self.create_reverse_join
     @@cell_list.each{ |c|
@@ -2384,5 +2247,5 @@
   end
 
-  #=== Cell# reverse_require_join ãçæãã
+  #=== Cell# reverse_require_join を生成する
   def self.create_reverse_require_join
     @@cell_list2.each{ |c|
@@ -2390,5 +2253,5 @@
       # if c.is_generate? then
         if ct then
-          # self ã¸ã®å¼ã³å£å´ã®çµåãçæ
+          # self への呼び口側の結合を生成
           ct.create_reverse_require_join c
         end
@@ -2397,21 +2260,16 @@
   end
 
-  #=== Cell# åãå£ã®port ã®åç
-§ã«ã¦ã³ããè¨­å®ãã
-  # self ã¯å¼ã³å
-ã®ã»ã«
-  # å¼ã³å
-ã»ã«ã®åãå£ã®åç
-§ã«ã¦ã³ããã¢ãããã
+  #=== Cell# 受け口のport の参照カウントを設定する
+  # self は呼び元のセル
+  # 呼び先セルの受け口の参照カウントをアップする
   def set_port_reference_count
     @join_list.get_items.each { |j|
       if j.get_definition.instance_of? Port then
         am = j.get_array_member2
-        if am then             # å¼ã³å£é
-å
+        if am then             # 呼び口配列
           am.each { |j2|
-            next if j2 == nil    # optional ã§ä¸é¨ãæ¬ è½ãã¦ããã±ã¼ã¹
+            next if j2 == nil    # optional で一部が欠落しているケース
             cell = j2.get_rhs_cell2
-            next if cell == nil     # å³è¾ºãè¦ã¤ãããªãã£ãï¼æ¢ã«ã¨ã©ã¼
+            next if cell == nil     # 右辺が見つからなかった．既にエラー
             port = cell.get_celltype.find( j2.get_rhs_port2 )
             dbgPrint( "set_port_reference_count: #{@name}.#{j2.get_name} => #{cell.get_name}.#{port.get_name}\n")
@@ -2420,5 +2278,5 @@
         else
           cell = j.get_rhs_cell2
-          next if cell == nil     # å³è¾ºãè¦ã¤ãããªãã£ãï¼æ¢ã«ã¨ã©ã¼
+          next if cell == nil     # 右辺が見つからなかった．既にエラー
           port = cell.get_celltype.find( j.get_rhs_port2 )
           dbgPrint( "set_port_reference_count: #{@name}.#{j.get_name} => #{cell.get_name}.#{port.get_name}\n")
@@ -2429,20 +2287,18 @@
   end
 
-  #=== Cell# çµå(Join)ã®ãã§ãã¯
-  #     Join ã¯å¼ã³å£ã®çµåã¾ãã¯ attribute ã®åæå
+  #=== Cell# 結合(Join)のチェック
+  #     Join は呼び口の結合または attribute の初期化
   #
-  #  mikan ãã®ã¡ã½ããã¯ãä»¥ä¸ã®ï¼ã¤ã®ãã§ãã¯ãããªãããåå²ããã»ããããé©åãªé·ãã®ã¡ã½ããã«ãªã
-  #  ã»ãªã¬ã¼ã¢ã­ã±ã¼ã¿ã®çæ => create_relay_allocator_join
-  #  ã»æªçµåã®å¼ã³å£ã®ãã§ãã¯
-  #  ã»ãã¤ã³ã¿åãé
-åã§åæåãããå ´åã®ãã§ãã¯
-  #  ã»æªåæåã®å±æ§ã®ãã§ãã¯
+  #  mikan このメソッドは、以下の４つのチェックからなるが、分割したほうがより適切な長さのメソッドになる
+  #  ・リレーアロケータの生成 => create_relay_allocator_join
+  #  ・未結合の呼び口のチェック
+  #  ・ポインタ型が配列で初期化される場合のチェック
+  #  ・未初期化の属性のチェック
   def check_join
 
-    # celltype ããªããã°ãã§ãã¯ããªãï¼æ¢ã«ã¨ã©ã¼ï¼
+    # celltype がなければチェックしない（既にエラー）
     return if @celltype == nil
     return if @b_defined == false
-    return if @f_cloned == true    # å
-é¨ã»ã«ã«ã¤ãã¦ã¯ãcomposite ã®å®ç¾©æã«ãã§ãã¯ããã¦ãã
+    return if @f_cloned == true    # 内部セルについては、composite の定義時にチェックされている
 
     # debug
@@ -2452,8 +2308,8 @@
     # end
 
-    # æªçµåã®å¼ã³å£ã®ãã§ãã¯
+    # 未結合の呼び口のチェック
     @celltype.get_port_list.each { |p|
 
-      # å¼ã³å£ã§ãªããã°ããã§ãã¯ããªã
+      # 呼び口でなければ、チェックしない
       next if p.get_port_type != :CALL
 
@@ -2461,18 +2317,17 @@
       dbgPrint "check_join: #{@name} #{get_celltype.get_name} #{p.get_name}\n"
 
-      # çµåãªã¹ãã®ä¸­ããå¼ã³å£åã«ä¸è´ãããã®ãåãã ã
+      # 結合リストの中から呼び口名に一致するものを取りだす
       j = @join_list.get_item( p.get_name )
 
       if j == nil then
-        # æªçµåã®å¼ã³å£
-
-        # composite celltype ã®å
-é¨ã®å ´åãcomposite celltype ã export ããå¼ã³å£ã«çµåããã¦ãããæ¢ã
+        # 未結合の呼び口
+
+        # composite celltype の内部の場合、composite celltype が export する呼び口に結合されているか探す
         found = false
         if @in_composite then
-          # composite celltype ã® export ãããã®ãã¹ã¦ããæ¢ã
-          # ï¼export ãããã®ã®å³è¾ºå¤ããæ¢ãããã« get_item ã§ã¯ãã¡ï¼
+          # composite celltype の export するものすべてから探す
+          # （export するものの右辺値から探すために get_item ではダメ）
           @compositecelltypejoin_list.get_items.each{ |cj|
-            # å¼ã³å£åã¨ composite ã® export ããååã¯ä¸è´ããã
+            # 呼び口名と composite の export する名前は一致するか
             if p.get_name == cj.get_cell_elem_name then
               found = true
@@ -2481,7 +2336,5 @@
         end
 
-        # å¼ã³å£é
-åã®å ´å optional ã§å
-¨ã¦ã®è¦ç´ ãåæåãããªãå ´åã«ãããã¸æ¥ã
+        # 呼び口配列の場合 optional で全ての要素が初期化されない場合に、ここへ来る
         if ! found && ! p.is_require? && ! p.is_optional? then
           if ! p.is_allocator_port? then
@@ -2492,28 +2345,21 @@
         end
       elsif p.get_array_size.kind_of? Integer then
-        # æ·»æ°ããå¼ã³å£é
-åã®å ´åããã¹ã¦ã®æ·»æ°è¦ç´ ãåæåããã¦ããããã§ãã¯ãã
+        # 添数あり呼び口配列の場合、すべての添数要素が初期化されているかチェックする
 
         am = j.get_array_member2
         if( am )then
-          # join ã¯é
-å
-
-          # å¼ã³å£é
-åå®ç¾©ã§ã®é
-åã®å¤§ãã
+          # join は配列
+
+          # 呼び口配列定義での配列の大きさ
           length = p.get_array_size
 
-          # é
-åã®å¤§ãããå¼ã³å£é
-åå®ç¾©ã¨çµåå®ç¾©ã§ä¸è´ãããï¼
+          # 配列の大きさが呼び口配列定義と結合定義で一致するか？
           if am.length != length then
             if ! p.is_optional? || am.length >= length then
-              # optional ã®å ´åãè¦ç´ æ°ãå°ãªãããã®ã¯ OK
+              # optional の場合、要素数が少なすぎるのは OK
               cdl_error( "S1044 $1: array initializer too many or few, $2 for $3" , p.get_name, am.length, length )
             end
 
-            # am ã®è¦ç´ ã« nil ãè¿½å ãã¦ãã (#_CPA_# ã®ã³ã¼ãçææããã®é
-åè¦ç´ æ°åçæ)
+            # am の要素に nil を追加しておく (#_CPA_# のコード生成時、この配列要素数分生成)
             i = am.length
             while i < length
@@ -2523,7 +2369,6 @@
           end
 
-#          # é
-åè¦ç´ ã®æãããªãããã§ãã¯
-#          if am.length < length then  # æºããªãå ´åæ¢ã«ã¨ã©ã¼ã ãè¦ç´ ã®ããç¯å²ã§ãã§ãã¯
+#          # 配列要素の抜けがないかチェック
+#          if am.length < length then  # 満たない場合既にエラーだが要素のある範囲でチェック
 #            length = am.length
 #          end
@@ -2535,5 +2380,5 @@
               end
             else
-              # çæãããªããªã¼ã¸ã§ã³ã¸ã®çµåããã§ãã¯
+              # 生成されないリージョンへの結合かチェック
               if ! @in_composite then
                 am[i].check_region2
@@ -2544,10 +2389,8 @@
 
         # else
-        # join ãéé
-åã§ããã°ãæ¢ã«ã¨ã©ã¼
+        # join が非配列であれば、既にエラー
         end
       elsif j.get_array_member then
-        # æ·»æ°ãªãå¼ã³å£é
-åã®å ´å
+        # 添数なし呼び口配列の場合
         am = j.get_array_member2
         length = am.length
@@ -2562,5 +2405,5 @@
         end
 
-        # çæãããªããªã¼ã¸ã§ã³ã¸ã®çµåããã§ãã¯
+        # 生成されないリージョンへの結合かチェック
         if ! @in_composite then
           am.each { |join|
@@ -2571,8 +2414,7 @@
         end
       else
-        # å¼ã³å£ï¼»é
-åãã§ãªãå ´å
-
-        # çæãããªããªã¼ã¸ã§ã³ã¸ã®çµåããã§ãã¯
+        # 呼び口［配列」でない場合
+
+        # 生成されないリージョンへの結合かチェック
         if ! @in_composite then
           j.check_region2
@@ -2582,11 +2424,10 @@
     }
 
-    # ãã¤ã³ã¿åãé
-åã§åæåãããå ´åã®ãã§ãã¯
+    # ポインタ型が配列で初期化される場合のチェック
     (@celltype.get_attribute_list+@celltype.get_var_list).each { |a|
       if a.get_size_is then
 
         if a.instance_of? CompositeCelltypeJoin then
-          # æ¢ã«ã¨ã©ã¼ã«ãªã£ã¦ãã
+          # 既にエラーになっている
           # cdl_error( "S1047 size_is pointer cannot be exposed for composite attribute"  )
           next
@@ -2598,6 +2439,6 @@
           size = a.get_size_is.eval_const( @join_list, @celltype.get_name_list )
           a.get_type.set_scs( a.get_size_is, nil, nil, nil, false )
-          if( ! size.kind_of? Integer )then               # C_EXP ã®å¯è½æ§ãã
-            # mikan å¤åããã§ã®ã¨ã©ã¼çºçã¯ä¸è¦ãeval_const ã®ä¸­ã§å¤æ°ãå­å¨ããªããåãä¸é©åãªã©ã®ã¨ã©ã¼ã«ãªãã¯ã
+          if( ! size.kind_of? Integer )then               # C_EXP の可能性あり
+            # mikan 多分ここでのエラー発生は不要、eval_const の中で変数が存在しない、型が不適切などのエラーになるはず
             cdl_error( "S1049 $1: size_is arg not constant" , a.get_name )
           else
@@ -2615,5 +2456,5 @@
               end
             else
-              # size_is å¼æ°ãã»ã«ã§æå®ããã¦ãã¦ãåæåå­ãã»ã«ã¿ã¤ãã§æå®ããã¦ããã±ã¼ã¹ã®ãã§ãã¯
+              # size_is 引数がセルで指定されていて、初期化子がセルタイプで指定されているケースのチェック
               ini = a.get_initializer
               if ini.instance_of? Expression
@@ -2630,9 +2471,9 @@
       else
         if ! a.instance_of? CompositeCelltypeJoin then
-          # composite ã¯ size_is æå®ã§ããªã
+          # composite は size_is 指定できない
           if a.get_type.kind_of?( PtrType ) then
             j = @join_list.get_item( a.get_identifier )
             if j && j.get_rhs.instance_of?( Array ) then
-              ## size_is æå®ããã¦ããªããã¤ã³ã¿ã Array ã§åæåããã¦ããããã¨ã©ã¼ã¨ãã
+              ## size_is 指定されていないポインタが Array で初期化されていたら、エラーとする
               cdl_error( "S1169 $1: non-size_is pointer cannot be initialized with array initializer" , a.get_identifier )
             end
@@ -2642,30 +2483,27 @@
     }
 
-    # æªåæåã®å±æ§ããã§ãã¯
+    # 未初期化の属性をチェック
     @celltype.get_attribute_list.each { |a|
       b_init = false
       # self.show_tree 1
-      if a.get_initializer then                               # ã»ã«ã¿ã¤ãã§åæåããã¦ãã
+      if a.get_initializer then                               # セルタイプで初期化されている
         b_init = true
-        # @in_composite ã§ export ããã¦ããå ´åã«ã¯ããã®åæå¤ã¯ä½¿ãããªã
-        # export ããã¦ãããããªãã«é¢ããããåæåããã¦ãããã¨ãä¿è¨¼ããã
-      elsif @join_list.get_item( a.get_name ) then            # ã»ã«ã§åæåããã¦ãã
+        # @in_composite で export されている場合には、この初期値は使われない
+        # export されている、いないに関わらず、初期化されていることが保証される
+      elsif @join_list.get_item( a.get_name ) then            # セルで初期化されている
         b_init = true
       elsif @in_composite && @compositecelltypejoin_list then
-        # å±æ§ã export ããã¦ãããèª¿ã¹ããexport ããã¦ããã°æªåæåã¨ã¯ããªã
-        # mikan ãªãã¢ãµã¼ã
+        # 属性が export されているか調べる。export されていれば未初期化とはしない
+        # mikan リニアサーチ
         @compositecelltypejoin_list.get_items.each{ |cj|
-          # å±æ§åã¨ composite ã® export ããååã¯ä¸è´ããã
+          # 属性名と composite の export する名前は一致するか
           if a.get_name.to_sym == cj.get_cell_elem_name.to_sym then
-            b_init = true    # å±æ§ã¯ export ããã¦ããã®ã§ãã¨ããããæªåæåã¨ã¯ããªã
+            b_init = true    # 属性は export されているので、とりあえず未初期化とはしない
           end
         }
         if b_init then
-          # size_is ã®å¼æ°ããããããããã§ãã¯ãã
-          # å
-é¨ã»ã«ã® size_is ãã¨ã¯ã¹ãã¼ããã size_is ã¨ãããããããã§ãã¯ãã
-          # å
-é¨ã»ã«ã¨ã¨ã¯ã¹ãã¼ãã§ååãå¤ãã¦ããå¯è½æ§ãããã®ã§ãå
-é¨ã»ã«ã® size_is ã®ååãå¤æããä¸ã§ãã§ãã¯ãã
+          # size_is の引数がマッチするかチェックする
+          # 内部セルの size_is をエクスポートする size_is とマッチするかチェックする
+          # 内部セルとエクスポートで名前を変えている可能性があるので、内部セルの size_is の名前を変換した上でチェックする
           if a.get_size_is then
             ### p "attr: get_size_is"
@@ -2673,6 +2511,5 @@
             if cj.get_port_decl.instance_of? Decl then
               ### p "attr: get_size_is 2"
-              # cj_size_is ã¯ãå¤é¨å
-¬éããã attr ã® size_is
+              # cj_size_is は、外部公開される attr の size_is
               cj_size_is = cj.get_port_decl.get_size_is
               if cj_size_is == nil then
@@ -2683,8 +2520,8 @@
               remain = exprs
               inner_to_export = {}
-			  ### exprs ã«å«ã¾ããè­å¥å­ãæãåºããå¯¾å¿ãã export ãããååãæ¢ã
+			  ### exprs に含まれる識別子を抜き出し、対応する export される名前を探す
               while remain != "" && remain != nil
                 ### p "remain ", remain
-                remain =~ /([^\w]*)([_A-Za-z][\w\d]*)/   # å¤æ°åæå­åãåãåºã 
+                remain =~ /([^\w]*)([_A-Za-z][\w\d]*)/   # 変数名文字列を取り出す 
 				if $2 == nil then
 						break
@@ -2693,5 +2530,5 @@
                 remain = $'
                 ### p exprs, $1, $2, $'
-                # size_is ã«å«ã¾ããå¤æ°ã¯ãcomposite ã§ export ããã¦ããã
+                # size_is に含まれる変数は、composite で export されているか
                 cj2 = nil
                 @compositecelltypejoin_list.get_items.each{ |cj2t|
@@ -2706,17 +2543,15 @@
                 if cj2.get_port_decl.instance_of? Decl then
                    decl2 = cj2.get_port_decl
-                   # å
-é¨ã®ååã¨å¤é¨ã®ååã®å¯¾å¿é¢ä¿ãè¨æ¶
+                   # 内部の名前と外部の名前の対応関係を記憶
                    inner_to_export[arg_name] = decl2.get_name
-                # else cj2 ã¯ Port (æ¢ã«ã¨ã©ã¼)
+                # else cj2 は Port (既にエラー)
                 end
               end
-              # å
-é¨ã®ååãå¤é¨ã®ååã§ç½®æ
+              # 内部の名前を外部の名前で置換
               inner_to_export.each{ |arg_name, exp_name|
                 ### p "changing #{arg_name}=>#{exp_name}"
                 # exprs.gsub!( Regexp.new("#{arg_name}[^0-9A-Za-z_]"), exp_name.to_s )
-                exprs.gsub!( Regexp.new("#{arg_name}(\\W)"), exp_name.to_s+"\\1" )  # æå­åæ«å°¾ã«ãªãã±ã¼ã¹
-                exprs.gsub!( Regexp.new("#{arg_name}\\Z"), exp_name.to_s )          # æå­åæ«å°¾ã«ããã±ã¼ã¹
+                exprs.gsub!( Regexp.new("#{arg_name}(\\W)"), exp_name.to_s+"\\1" )  # 文字列末尾にないケース
+                exprs.gsub!( Regexp.new("#{arg_name}\\Z"), exp_name.to_s )          # 文字列末尾にあるケース
               }
               ### p "changed: #{exprs} #{cj_size_is.to_s}"
@@ -2724,5 +2559,5 @@
                 cdl_error( "S1172 \'$1\' size_is argument mismatch with exporting one \'$2\'", a.get_name, cj.get_name )
               end
-            # else cj ã¯ Port (æ¢ã«ã¨ã©ã¼)
+            # else cj は Port (既にエラー)
             end
           end
@@ -2737,15 +2572,14 @@
   end
 
-  #=== Cell# é require ããã§ãã¯ãã
-  # é require æå®ãããåãå£ã«è¤æ°ã®çµåããªãããã§ãã¯ãã
-  # composite ã®å
-é¨ã»ã« (f_cloned=true) ããã§ãã¯ãã
+  #=== Cell# 逆 require をチェックする
+  # 逆 require 指定された受け口に複数の結合がないかチェックする
+  # composite の内部セル (f_cloned=true) もチェックする
   def check_reverse_require
-    # celltype ããªããã°ãã§ãã¯ããªãï¼æ¢ã«ã¨ã©ã¼ï¼
+    # celltype がなければチェックしない（既にエラー）
     return if @celltype == nil
     return if @b_defined == false
 
     # p "check reverse require   #{@name}"
-    # érequire æå®ãããåãå£ã«è¤æ°ã®çµåããªãããã§ãã¯
+    # 逆require 指定された受け口に複数の結合がないかチェック
     @referenced_port_list.each{ |port,count|
       # p port.class, count
@@ -2757,13 +2591,13 @@
   end
 
-  #=== Cell# require å¼ã³å£ã®çµåãè¡ã
+  #=== Cell# require 呼び口の結合を行う
   # STAGE: S
-  #cp_name:: Symbol           : å¼ã³å£å
-  #cell_or_t:: Celltype|Cell  : celltype ã® require ã®å³è¾ºã§æå®ãããã»ã«ã¿ã¤ãã¾ãã¯ã»ã«
-  #port::  Port               : celltype ã® Port ãªãã¸ã§ã¯ã
+  #cp_name:: Symbol           : 呼び口名
+  #cell_or_t:: Celltype|Cell  : celltype の require の右辺で指定されたセルタイプまたはセル
+  #port::  Port               : celltype の Port オブジェクト
   def set_require_join( cp_name, cell_or_ct, port )
 
-    # set_require_join ã¯2åº¦å¼ã³åºããã
-    # 2åº¦ç®ã¯ post ã³ã¼ããçæããå¾       #####  ãã£ããè¦åããï¼éè¤ã¨ã©ã¼ãè¦éãï¼
+    # set_require_join は2度呼び出される
+    # 2度目は post コードを生成した後       #####  いったん見合わせ（重複エラーを見逃す）
     # if @require_joined_list[ cp_name ] then
     #   return
@@ -2782,5 +2616,5 @@
       end
     else
-      # require: cell ã§æå®
+      # require: cell で指定
       cell = cell_or_ct
       if @region.distance( cell.get_region ) == nil then
@@ -2792,5 +2626,5 @@
       cdl_warning( "W1003 $1 : require call port overridden in $2" , cp_name, @name )
     else
-      # require ã® join ãçæ(å¼ã³å£ã®çµå)
+      # require の join を生成(呼び口の結合)
 #      rhs = Expression.new( [ :OP_DOT, [ :IDENTIFIER, Token.new( cell.get_name, nil, nil, nil ) ],
       nsp = NamespacePath.new( cell.get_name, false, cell.get_namespace )
@@ -2805,16 +2639,14 @@
   end
 
-  #=== Cell# Join ã® definition ã®è¨­å®ã¨ãã§ãã¯
+  #=== Cell# Join の definition の設定とチェック
   # STAGE: S
   def set_definition_join
-    return if @celltype == nil    # æ¢ã«ã¨ã©ã¼ï¼æã¡åã
-    return if @b_defined == false # ãã­ãã¿ã¤ãå®£è¨ã®ã¿
-    return if @b_checked == true  # æ¢ã«è¨­å®ï¼ãã§ãã¯ï¼æ¸ã¿
+    return if @celltype == nil    # 既にエラー：打ち切る
+    return if @b_defined == false # プロトタイプ宣言のみ
+    return if @b_checked == true  # 既に設定（チェック）済み
 
     dbgPrint "set_definition_join in #{@name}\n"
 
-    # relay allocator ããã©ã£ã¦åå
-¥ããªããããå
-é ­ã§ @b_checked ã true ã«ãã
+    # relay allocator をたどって再入しないよう、先頭で @b_checked を true にする
     @b_checked = true
 
@@ -2822,10 +2654,7 @@
       check_restrict_list
       
-      # compoiste ã»ã«ã®ã¯ã­ã¼ã³ããããã®ã¯ãset_definition ä¸è¦
-      # å
-ã® join ã¯æ¢ã« definition ããã¦ãã
-      # å
-ã®ã»ã«ã«ããã¦ãä»£å
-¥ãã§ãã¯ããã¦ããã®ã§ãäºéã«ãã§ãã¯(throughé©ç¨)ããã¦ãã¾ã
+      # compoiste セルのクローンされたものは、set_definition 不要
+      # 元の join は既に definition されている
+      # 元のセルにおいて、代入チェックされているので、二重にチェック(through適用)されてしまう
       @join_list.get_items.each{ |join|
         dbgPrint " set_definition_join: checking #{@name}.#{join.get_name}\n"
@@ -2833,7 +2662,7 @@
           port = @celltype.find(join.get_name)
           join.get_array_member2.each { |am|
-            if am == nil then   # æªçµåã®å ´åãã¨ã©ã¼ãã§ãã¯ã¯ check_join
+            if am == nil then   # 未結合の場合、エラーチェックは check_join
               if port && ! port.is_optional? then
-                # ãã¹ãç¨ã«ã¨ã©ã¼ã¡ãã»ã¼ã¸åºå
+                # テスト用にエラーメッセージ出力
                 # cdl_error( "TEMPORAL set_definition_join: uninitialized array member"  )
               end
@@ -2848,20 +2677,16 @@
     end
 
-    # ãªã¬ã¼ join ã¯ through ãã©ã°ã¤ã³çæå¾ã«ããã§ããªã
-    # through å¾ã«çµåå
-ãå
-¥ãæ¿ãããã 
+    # リレー join は through プラグイン生成後にしかできない
+    # through 後に結合先が入れ替えられる 
     create_relay_allocator_join
 
-    # composite ã»ã«ã®å±é
+    # composite セルの展開
     if ! @in_composite && ! @f_cloned && @celltype.instance_of?( CompositeCelltype ) then
-      # composite ã»ã«ã¿ã¤ãå
-ã® composite ã¯å±éããªã
-      # compoiste ã»ã«å±éä¸­ã® composite ã¯å±éããªã (CompositeCelltype::expand å
-ã§åå¸°çã« expnad)
+      # composite セルタイプ内の composite は展開しない
+      # compoiste セル展開中の composite は展開しない (CompositeCelltype::expand 内で再帰的に expnad)
       expand
     end
 
-    # celltype ã« generate ãæå®ããããã¦ããã
+    # celltype に generate が指定されされているか
     celltype_plugin = @celltype.get_celltype_plugin
     if celltype_plugin then
@@ -2875,6 +2700,6 @@
   end
 
-  #=== Cell# composite ã»ã«ã®å±é
-  # ãã®ã»ã«ã composite ã»ã«ã¿ã¤ã
+  #=== Cell# composite セルの展開
+  # このセルが composite セルタイプ
   def expand
 
@@ -2882,13 +2707,11 @@
     dbgPrint "expanding #{@name} #{@celltype.get_name}\n"
 
-    # å±éãããã»ã«ã®ãªã¹ã
+    # 展開されたセルのリスト
     @@cloned_cell_list = {}
 
-    # composite celltype ã® cell ãå±é
+    # composite celltype の cell を展開
     @cell_list, @cell_list2 = @celltype.expand( @name, @global_name, @NamespacePath, @join_list, @region, @plugin, @locale )
 
-    # ãã­ãã¿ã¤ããåç
-§ããã¦ããå ´åãå­ãåç
-§ããã¦ãããã¨ã«ãã
+    # プロトタイプが参照されている場合、子も参照されていることにする
     if @f_ref then
       dbgPrint "expand: set_f_ref\n"
@@ -2896,8 +2719,8 @@
     end
 
-    # å¼ã³å£ã®å³è¾ºã®ã»ã«ã clone ãããã®ã«å¤æ´
+    # 呼び口の右辺のセルを clone したものに変更
     self.change_rhs_port
 
-    # ãã­ãã¿ã¤ãå®£è¨ã§è¨­å®ããã¦ãããã®ãåæ ãã
+    # プロトタイプ宣言で設定されていたものを反映する
     @entry_array_max_subscript.each{ |port,name|
       set_entry_inner_port_max_subscript( port, name )
@@ -2905,5 +2728,5 @@
   end
 
-  #=== Cell#restrict ãè¿½å 
+  #=== Cell#restrict を追加
   def add_restrict( entry_name, func_name, region_name_list )
     if @restrict_list[ entry_name ] then
@@ -2994,5 +2817,5 @@
       puts "entry array #{port.get_name}: max subscript=#{num}"
     }
-    if @cell_list then   # ããã§ @cell_list ã nil ãªã®ã¯ Bug
+    if @cell_list then   # ここで @cell_list が nil なのは Bug
       (indent+1).times { print "  " }
       puts "cloned cell list:"
@@ -3018,5 +2841,5 @@
           subscript = ""
         end
-        # ã¢ã­ã±ã¼ã¿å¼ã³å£ã®çµåãçæ
+        # アロケータ呼び口の結合を生成
         (indent+2).times { print "  " }
         puts "#{cp_name}#{subscript} = #{a[4+1]}"
@@ -3042,5 +2865,5 @@
 # @real_singleton:: bool : has singleton cell in this composite celltype
 # @real_active:: bool : has active cell in this composite celltype
-# @name_list:: NamedList item: Decl (attribute), Port ã¨ã¯ã¹ãã¼ãå®ç¾©
+# @name_list:: NamedList item: Decl (attribute), Port エクスポート定義
 # @internal_allocator_list:: [ [cell, internal_cp_name, port_name, func_name, param_name, ext_alloc_ent], ... ]
 
@@ -3082,5 +2905,5 @@
 
     Namespace.new_compositecelltype( self )
-    set_namespace_path # @NamespacePath ã®è¨­å®
+    set_namespace_path # @NamespacePath の設定
 
     @port_list = []
@@ -3098,5 +2921,5 @@
   def end_of_parse
 
-    # singleton ã«é¢ãããã§ãã¯
+    # singleton に関するチェック
     if @b_singleton && @real_singleton == nil then
       cdl_warning( "W1004 $1 : specified singleton but has no singleton in this celltype" , @name )
@@ -3107,5 +2930,5 @@
     end
 
-    # active ã«é¢ãããã§ãã¯
+    # active に関するチェック
     if @b_active && @real_active == nil then
       cdl_error( "S1054 $1 : specified active but has no active in this celltype" , @name )
@@ -3114,5 +2937,5 @@
     end
 
-    # @allocator_instance ãè¨­å®ãã
+    # @allocator_instance を設定する
     @name_list.get_items.each{ |n|
       if n.instance_of? Port then
@@ -3121,5 +2944,5 @@
     }
 
-    # ãªã¬ã¼ã¢ã­ã±ã¼ã¿ã® entry å´
+    # リレーアロケータの entry 側
     @port_list.each{ |p|
       if p.get_port_type == :ENTRY then
@@ -3135,12 +2958,12 @@
       end
     }
-    # mikan relay ãæ­£ããæãã¦ããããã§ãã¯ããã¦ããªã
-
-    # æå³è§£æ
+    # mikan relay が正しく抜けているかチェックされていない
+
+    # 意味解析
     @cell_list.get_items.each{ |c|
       c.set_definition_join
     }
 
-    # cell ã®æªçµåã®å¼ã³å£ããªãããã§ãã¯
+    # cell の未結合の呼び口がないかチェック
     @cell_list.get_items.each{ |c|
       c.check_join
@@ -3148,13 +2971,11 @@
     }
 
-    # å¼ã³å£ã®çµåã«ã¤ãã¦ãexport ã¨å
-é¨çµåã®ä¸¡æ¹ããªãããã§ãã¯
-    # ãªã¬ã¼ã¢ã­ã±ã¼ã¿ãå
-é¨ã¢ã­ã±ã¼ã¿ã®è¨­å®
+    # 呼び口の結合について、export と内部結合の両方がないかチェック
+    # リレーアロケータ、内部アロケータの設定
     @port_list.each{ |p|
       p.check_dup_init
     }
 
-    # ãã¹ã¦ã®ã¨ã¯ã¹ãã¼ãå®ç¾©ã«å¯¾å¿ããå¼ã³å£ãåãå£ãå±æ§ãå­å¨ããããã§ãã¯
+    # すべてのエクスポート定義に対応した呼び口、受け口、属性が存在するかチェック
     @name_list.get_items.each{ |n|
       if( @export_name_list.get_item( n.get_name ) == nil )then
@@ -3163,6 +2984,5 @@
     }
 
-    # å
-é¨ã¢ã­ã±ã¼ã¿ãè¨­å®ãã
+    # 内部アロケータを設定する
     @internal_allocator_list.each{ |cell, cp_internal_name, port_name, fd_name, par_name, ext_alloc_ent|
       res = ext_alloc_ent.get_allocator_rhs_elements( :INTERNAL_ALLOC )
@@ -3195,5 +3015,5 @@
     cell.set_owner self  # Cell (in_omposite)
     @cell_list.add_item( cell )
-    if cell.get_celltype then    # nil ãªãã°ããã§ã«ã»ã«ã¿ã¤ããªãã¨ã©ã¼
+    if cell.get_celltype then    # nil ならば、すでにセルタイプなしエラー
       if cell.get_celltype.is_singleton? then
         @real_singleton = cell
@@ -3213,21 +3033,16 @@
   end
 
-  #=== CompositeCelltype# CompositeCelltypeJoin ãä½æ
+  #=== CompositeCelltype# CompositeCelltypeJoin を作成
   # STAGE: B
-  #export_name:: Symbol : å¤é¨ã«å
-¬éããåå
-  #internal_cell_name:: Symbol : å
-é¨ã»ã«å
-  #internal_cell_elem_name:: Symbol : å
-é¨ã»ã«ã®è¦ç´ åï¼å¼ã³å£åãåãå£åãå±æ§åã®ããããï¼
-  #type::  :CALL, :ENTRY, :ATTRIBUTE ã®ããããï¼æ§æè¦ç´ ã¨ãã¦ããã¹ããã®ï¼
-  #RETURN:: Decl | Port : ã¨ã¯ã¹ãã¼ãå®ç¾©
-  # new_join ã¯
-  #   cCall => composite.cCall;     (ã»ã«å
-)
-  #   attr = composite.attr;        (ã»ã«å
-)
-  #   composite.eEnt => cell2.eEnt; (ã»ã«å¤)
-  # ã®æ§æè¦ç´ ã®åºç¾ã«å¯¾ãã¦å¼ã³åºããã
+  #export_name:: Symbol : 外部に公開する名前
+  #internal_cell_name:: Symbol : 内部セル名
+  #internal_cell_elem_name:: Symbol : 内部セルの要素名（呼び口名、受け口名、属性名のいずれか）
+  #type::  :CALL, :ENTRY, :ATTRIBUTE のいずれか（構文要素としてあるべきもの）
+  #RETURN:: Decl | Port : エクスポート定義
+  # new_join は
+  #   cCall => composite.cCall;     (セル内)
+  #   attr = composite.attr;        (セル内)
+  #   composite.eEnt => cell2.eEnt; (セル外)
+  # の構文要素の出現に対して呼び出される
   def new_join( export_name, internal_cell_name,
 		 internal_cell_elem_name, type )
@@ -3242,10 +3057,9 @@
 
     celltype = cell.get_celltype
-    return if celltype == nil	# celltype == nil ãªããã§ã«ã¨ã©ã¼
-
-    # å
-é¨ã»ã«ã®ã»ã«ã¿ã¤ãããå¯¾å¿è¦ç´ ãæ¢ã
-    # ãã®ã¡ã½ããã¯ãæ§æä¸ãå¼ã³å£ãåãå£ãå±æ§ãè¨è¿°ã§ããç®æããå¼åºããã
-    # æ§æä¸ã®å¼åºãä½ç½®ï¼è¨è¿°ä½ç½®ï¼ã¨ãè¦ç´ ãå¯¾å¿ãããã®ããã§ãã¯
+    return if celltype == nil	# celltype == nil ならすでにエラー
+
+    # 内部セルのセルタイプから対応要素を探す
+    # このメソッドは、構文上、呼び口、受け口、属性が記述できる箇所から呼出される
+    # 構文上の呼出し位置（記述位置）と、要素が対応したものかチェック
     obj = celltype.find( internal_cell_elem_name )
     if obj.instance_of?( Decl ) then
@@ -3255,10 +3069,10 @@
       elsif type != :ATTRIBUTE then
         cdl_error( "S1059 \'$1\' : exporting attribute. write in cell or use \'=\' to export attribute" , export_name )
-        # return æ¬¡ã®ã¨ã©ã¼ãé¿ããããã«å¦çç¶è¡ããä»ãå ãã¦ã¿ã
+        # return 次のエラーを避けるために処理続行し、付け加えてみる
       end
     elsif obj.instance_of?( Port ) then
       if obj.get_port_type != type then
         cdl_error( "S1060 \'$1\' : port type mismatch. $2 type is allowed here." , export_name, type )
-        # return æ¬¡ã®ã¨ã©ã¼ãé¿ããããã«å¦çç¶è¡ããä»ãå ãã¦ã¿ã
+        # return 次のエラーを避けるために処理続行し、付け加えてみる
       end
     else
@@ -3268,5 +3082,5 @@
     end
 
-    # ã¨ã¯ã¹ãã¼ãå®ç¾©ã¨ä¸è´ãããã©ãããã§ãã¯
+    # エクスポート定義と一致するかどうかチェック
     obj2 = @name_list.get_item( export_name )
     if( obj2 == nil )then
@@ -3284,5 +3098,5 @@
         elsif obj.get_signature != obj2.get_signature then
           if obj.get_signature != nil && obj2.get_signature != nil then
-            # nil ãªãã°æ¢ã«ã¨ã©ã¼ãªã®ã§å ±åããªã
+            # nil ならば既にエラーなので報告しない
             cdl_error( "S1066 $1 : signature \'$2\' mismatch with previous definition \'$3\'" , export_name, obj.get_signature.get_name, obj2.get_signature.get_name )
           end
@@ -3309,6 +3123,5 @@
     if obj.instance_of?( Decl ) then
       # attribute
-#      # å
-é¨ããå¤é¨ã¸è¤æ°ã®çµåããªãããã§ãã¯
+#      # 内部から外部へ複数の結合がないかチェック
 #      found = false
 #      @attr_list.each{ |a|
@@ -3323,6 +3136,5 @@
     else
       # call/entry port
-#      # å
-é¨ããå¤é¨ã¸è¤æ°ã®çµåããªãããã§ãã¯
+#      # 内部から外部へ複数の結合がないかチェック
 #      found = false
 #      @port_list.each{ |port|
@@ -3337,25 +3149,24 @@
     end
 
-    # join ã @export_name_list ã«ç»é²ï¼éè¤ãã§ãã¯ã¨ã¨ãã«ï¼å¾ã§è¡ããã CompositeCelltypeJoin ã® clone ã«åããï¼
+    # join を @export_name_list に登録（重複チェックとともに，後で行われる CompositeCelltypeJoin の clone に備える）
     if obj.instance_of?( Decl ) && @export_name_list.get_item( export_name ) then
-      # æ¢ã«å­å¨ãããè¿½å ããªããæ°ä»æ§ã§ã¯ã@export_name_list ã«åãååãå«ã¾ãããã¨ãããã
+      # 既に存在する。追加しない。新仕様では、@export_name_list に同じ名前が含まれることがある。
     elsif obj.instance_of?( Port ) && obj.get_port_type == :CALL && @export_name_list.get_item( export_name ) then
-      # æ¢ã«å­å¨ãããè¿½å ããªããæ°ä»æ§ã§ã¯ã@export_name_list ã«åãååãå«ã¾ãããã¨ãããã
+      # 既に存在する。追加しない。新仕様では、@export_name_list に同じ名前が含まれることがある。
     else
       @export_name_list.add_item( join )
     end
 
-    # export ãããã¼ãã«å«ã¾ãã send/receive ãã©ã¡ã¼ã¿ã®ã¢ã­ã±ã¼ã¿(allocator)å¼ã³å£ãã»ã«ã¨çµå
+    # export するポートに含まれる send/receive パラメータのアロケータ(allocator)呼び口をセルと結合
     if obj2.instance_of? Port then
       obj2.each_param{ |port, fd, par|
-        case par.get_direction                        # å¼æ°ã®æ¹åæå®å­ (in, out, inout, send, receive )
+        case par.get_direction                        # 引数の方向指定子 (in, out, inout, send, receive )
         when :SEND, :RECEIVE
-          cp_name = :"#{port.get_name}_#{fd.get_name}_#{par.get_name}"     # ã¢ã­ã±ã¼ã¿å¼ã³å£ã®åå
-          #            ãã¼ãå         é¢æ°å         ãã©ã¡ã¼ã¿å
+          cp_name = :"#{port.get_name}_#{fd.get_name}_#{par.get_name}"     # アロケータ呼び口の名前
+          #            ポート名         関数名         パラメータ名
           cp_internal_name = :"#{internal_cell_elem_name}_#{fd.get_name}_#{par.get_name}"
 
-          # ãªã¬ã¼ã¢ã­ã±ã¼ã¿ or å
-é¨ã¢ã­ã±ã¼ã¿æå®ããªããã¦ããå ´åãã¢ã­ã±ã¼ã¿å¼ã³å£ãè¿½å ããªã
-          # ãã®æç¹ã§ã¯ get_allocator_instance ã§ã¯å¾ãããªããã tmp ãå¾ã
+          # リレーアロケータ or 内部アロケータ指定がなされている場合、アロケータ呼び口を追加しない
+          # この時点では get_allocator_instance では得られないため tmp を得る
           if port.get_allocator_instance_tmp then
             found = false
@@ -3365,7 +3176,5 @@
 
                 if s[0] == :INTERNAL_ALLOC then
-                  # å
-é¨ã¢ã­ã±ã¼ã¿ã®å ´å    # mikan ããã¯å
-é¨ã®ã»ã«ã«ç´çµãããå¤é¨ã®ãã¼ãã«æ¹ããã¹ã
+                  # 内部アロケータの場合    # mikan これは内部のセルに直結する。外部のポートに改めるべき
                   @internal_allocator_list << [ cell, cp_internal_name, port.get_name, fd.get_name, par.get_name, s[3] ]
                 end
@@ -3377,5 +3186,5 @@
           end
 
-          # å¤é¨ã¢ã­ã±ã¼ã¿ã®å ´å
+          # 外部アロケータの場合
           new_join( cp_name, internal_cell_name, cp_internal_name, :CALL )
         end
@@ -3383,5 +3192,5 @@
     end
 
-    # ã¨ã¯ã¹ãã¼ãå®ç¾©ãè¿ã
+    # エクスポート定義を返す
     return obj2
   end
@@ -3405,15 +3214,12 @@
     @name_list.add_item port
 
-    # export ãããã¼ãã«å«ã¾ãã send/receive ãã©ã¡ã¼ã¿ã®ã¢ã­ã±ã¼ã¿å¼ã³å£ã® export ãçæãã¦ãã¼ãã«è¿½å 
-    # ãã®æç¹ã§ã¯å
-é¨ã¢ã­ã±ã¼ã¿ãã©ããå¤æ­ã§ããªãã®ã§ãã¨ããããçæãã¦ãã
+    # export するポートに含まれる send/receive パラメータのアロケータ呼び口の export を生成してポートに追加
+    # この時点では内部アロケータかどうか判断できないので、とりあえず生成しておく
     port.each_param { |port, fd, par|
-      case par.get_direction                        # å¼æ°ã®æ¹åæå®å­ (in, out, inout, send, receive )
+      case par.get_direction                        # 引数の方向指定子 (in, out, inout, send, receive )
       when :SEND, :RECEIVE
-        #### ãªã¬ã¼ã¢ã­ã±ã¼ã¿ or å
-é¨ã¢ã­ã±ã¼ã¿æå®ããªããã¦ããå ´åãã¢ã­ã±ã¼ã¿å¼ã³å£ãè¿½å ããªã
-        # å
-é¨ã¢ã­ã±ã¼ã¿æå®ããªããã¦ããå ´åãã¢ã­ã±ã¼ã¿å¼ã³å£ãè¿½å ããªã
-        # ãã®æç¹ã§ã¯ get_allocator_instance ã§ã¯å¾ãããªããã tmp ãå¾ã
+        #### リレーアロケータ or 内部アロケータ指定がなされている場合、アロケータ呼び口を追加しない
+        # 内部アロケータ指定がなされている場合、アロケータ呼び口を追加しない
+        # この時点では get_allocator_instance では得られないため tmp を得る
         if port.get_allocator_instance_tmp then
           found = false
@@ -3430,15 +3236,14 @@
 
         if par.get_allocator then
-          cp_name = :"#{port.get_name}_#{fd.get_name}_#{par.get_name}"     # ã¢ã­ã±ã¼ã¿å¼ã³å£ã®åå
-          #           ãã¼ãå          é¢æ°å         ãã©ã¡ã¼ã¿å
-          alloc_sig_path = [ par.get_allocator.get_name ]  # mikan Namespace ã¢ã­ã±ã¼ã¿å¼ã³å£ã®ã·ã°ããã£
-          array_size = port.get_array_size            # å¼ã³å£ã¾ãã¯åãå£é
-åã®ãµã¤ãº
-          created_port = Port.new( cp_name, alloc_sig_path, :CALL, array_size ) # å¼ã³å£ãçæ
+          cp_name = :"#{port.get_name}_#{fd.get_name}_#{par.get_name}"     # アロケータ呼び口の名前
+          #           ポート名          関数名         パラメータ名
+          alloc_sig_path = [ par.get_allocator.get_name ]  # mikan Namespace アロケータ呼び口のシグニチャ
+          array_size = port.get_array_size            # 呼び口または受け口配列のサイズ
+          created_port = Port.new( cp_name, alloc_sig_path, :CALL, array_size ) # 呼び口を生成
           created_port.set_allocator_port( port, fd, par )
           if port.is_omit? then
             created_port.set_omit
           end
-          new_port( created_port )           # ã»ã«ã¿ã¤ãã«æ°ããå¼ã³å£ãè¿½å 
+          new_port( created_port )           # セルタイプに新しい呼び口を追加
         # else
         #   already error
@@ -3457,5 +3262,5 @@
     attribute.each { |a|
       a.set_owner self   # Decl (CompositeCelltype)
-      # V1.1.0.10 composite ã® attr ã® size_is ã¯å¯ã¨ãªã£ã
+      # V1.1.0.10 composite の attr の size_is は可となった
       # if a.get_size_is then
       #  cdl_error( "S1070 $1: size_is pointer cannot be exposed for composite attribute" , a.get_name )
@@ -3468,5 +3273,5 @@
   end
 
-  #=== CompositeCelltype# érequire ã®çµåãçæãã
+  #=== CompositeCelltype# 逆require の結合を生成する
   def create_reverse_require_join cell
     @name_list.get_items.each{ |n|
@@ -3493,5 +3298,5 @@
     return @name_list.get_item( name )
 
-    # å¾æ¥ä»æ§
+    # 従来仕様
 #    cj = @export_name_list.get_item( name )
 #p "#{name}, #{cj.get_port_decl}"
@@ -3503,19 +3308,18 @@
   end
 
-  #=== CompositeCelltype# export ãã CompositeCelltypeJoin ãå¾ã
+  #=== CompositeCelltype# export する CompositeCelltypeJoin を得る
   #name:: string:
-  # attribute ã®å ´åãåãååã«å¯¾ãè¤æ°å­å¨ããå¯è½æ§ãããããæåã®ãã®ããè¿ããªã
+  # attribute の場合、同じ名前に対し複数存在する可能性があるが、最初のものしか返さない
   def find_export name
     return @export_name_list.get_item( name )
   end
 
-  #=== CompositeCelltype# composite celltype ã® cell ãå±é
-  #name:: string: Composite cell ã®åå
-  #global_name:: string: Composite cell ã® global name (C è¨èªå)
-  #join_list:: NamedList : Composite cell ã«å¯¾ãã Join ã® NamedList
+  #=== CompositeCelltype# composite celltype の cell を展開
+  #name:: string: Composite cell の名前
+  #global_name:: string: Composite cell の global name (C 言語名)
+  #join_list:: NamedList : Composite cell に対する Join の NamedList
   #RETURN:
   # [ { name => cell }, [ cell, ... ] ]
-  #  æ»ãå¤ åã¯ ååâcloneãããå
-é¨ã»ã«ãå¾ãã¯ composite ã®åºç¾é ã®ãªã¹ã
+  #  戻り値 前は 名前⇒cloneされた内部セル、後ろは composite の出現順のリスト
   def expand( name, global_name, namespacePath, join_list, region, plugin, locale )
 
@@ -3526,10 +3330,9 @@
     }
   
-    # å±éã§ clone ãããã»ã«ã®ãªã¹ããå³è¾ºã¯ Cell (composite ã®å ´å composite ãª cell ã® clone)
+    # 展開で clone されたセルのリスト、右辺は Cell (composite の場合 composite な cell の clone)
     clone_cell_list = {}
     clone_cell_list2 = []
 
-    #  composite å
-é¨ã®ãã¹ã¦ã® cell ã«ã¤ãã¦
+    #  composite 内部のすべての cell について
     @cell_list.get_items.each { |c|
 
@@ -3537,12 +3340,10 @@
       dbgPrint "expand : cell #{c.get_name}\n"
 
-      # Join ã®é
-å
+      # Join の配列
       ja = []
 
-      # CompositeCelltype ã export ããå¼ã³å£ãåãå£ãå±æ§ã®ãªã¹ãã«ã¤ãã¦
+      # CompositeCelltype が export する呼び口、受け口、属性のリストについて
       # @export_name_list.get_items.each{ |cj|	# cj: CompositeCelltypeJoin
-      # æ°ä»æ§ã§ã¯ã@export_name_list ã«å
-¥ã£ã¦ããªã attr ããããã
+      # 新仕様では、@export_name_list に入っていない attr がありうる
       (@port_list+@attr_list).each{ |cj|	# cj: CompositeCelltypeJoin
 
@@ -3550,9 +3351,8 @@
         dbgPrint "        cj : #{cj.get_name}\n"
 
-        # CompositeCelltypeJoin (export) ã®å¯¾è±¡ã»ã«ãï¼
+        # CompositeCelltypeJoin (export) の対象セルか？
         if cj.match?( c ) then
 
-          # å¯¾è±¡ã»ã«å
-ã® CompositeCelltype ã® export ãã Join (attribute ã¾ãã¯ call port)
+          # 対象セル内の CompositeCelltype の export する Join (attribute または call port)
           j = join_list.get_item( cj.get_name )
 
@@ -3565,6 +3365,6 @@
 
           if j then
-            # å¼ã³å£ãå±æ§ã®å ´å
-            #  ComositeCell ç¨ã®ãã®(j) ãå¯¾è±¡ã»ã«ç¨ã« clone (@through_list ãã³ãã¼ããã)
+            # 呼び口、属性の場合
+            #  ComositeCell 用のもの(j) を対象セル用に clone (@through_list もコピーされる)
             # p "expand: cloning Join #{j.get_name} #{@name} #{name}"
             jc = j.clone_for_composite( @name, name, locale )
@@ -3574,9 +3374,8 @@
             # p "cn #{jc.get_name} #{cj.get_cell_elem_name}"
 
-            # å¯¾è±¡ã»ã«ã®å¼ã³å£ã¾ãã¯å±æ§ã®ååã«å¤æ´
+            # 対象セルの呼び口または属性の名前に変更
             jc.change_name( cj.get_cell_elem_name )
 
-            # å¯¾è±¡ã»ã«ã«å¯¾ãã Join ã®é
-å
+            # 対象セルに対する Join の配列
             ja << jc
           end
@@ -3590,5 +3389,5 @@
       dbgPrint "expand : clone #{name}_#{c.get_name}\n"
 
-      # ã»ã«ã® clone ãçæ
+      # セルの clone を生成
 #      clone_cell_list[ "#{name}_#{c.get_name}" ] =  c.clone_for_composite( name, global_name, ja )
       c2 =  c.clone_for_composite( name, global_name, namespacePath, ja, @name, region, plugin, locale )
@@ -3600,5 +3399,5 @@
     clone_cell_list.each { |nm,c|
       dbgPrint "  cloned: #{nm} = #{c.get_global_name}\n"
-      # join ã® owner ã clone ãããã»ã«ã«å¤æ´ãã V1.1.0.25
+      # join の owner を clone されたセルに変更する V1.1.0.25
       c.get_join_list.get_items.each{ |j|
         j.set_cloned( clone_cell_list[ "#{c.get_local_name}" ] )
@@ -3608,5 +3407,5 @@
   end
 
-  #=== CompositeCelltype æå®å­ãªã¹ãã®è¨­å®
+  #=== CompositeCelltype 指定子リストの設定
   def set_specifier_list( spec_list )
     return if spec_list == nil
@@ -3639,6 +3438,5 @@
 
   def get_var_list
-    []   # ç©ºã®é
-åãè¿ã
+    []   # 空の配列を返す
   end
 
@@ -3647,9 +3445,7 @@
   end
 
-  #== CompositeCelltype# generate æå®å­ã®æ
-å ±
-  # CompositeCelltype ã«ã¯ generate ãæå®ã§ããªãã®ã§ nil ãè¿ã
-  # Celltype::@generate ãåç
-§ã®ãã¨
+  #== CompositeCelltype# generate 指定子の情報
+  # CompositeCelltype には generate が指定できないので nil を返す
+  # Celltype::@generate を参照のこと
   def get_celltype_plugin
     nil
@@ -3664,15 +3460,12 @@
   end
 
-  #=== CompositeCelltype# ã¢ã¯ãã£ãã§ã¯ãªã
-  # active ã§ã¯ãªãã«å ããå
-¨ã¦ã®å
-é¨ã»ã«ã®ã»ã«ã¿ã¤ãã inactive ã®å ´åã« inactive
-  # ï¼å
-é¨ã®ã»ã«ã active ã¾ãã¯ factory ãæã£ã¦ããï¼
+  #=== CompositeCelltype# アクティブではない
+  # active ではないに加え、全ての内部セルのセルタイプが inactive の場合に inactive
+  # （内部のセルが active または factory を持っている）
   def is_inactive?
     if @b_active == false then
       @cell_list.get_items.each{ |c|
         if c.get_celltype && c.get_celltype.is_inactive? == false then
-          # c.get_celltype == nil ã®å ´åã¯ã»ã«ã¿ã¤ãæªå®ç¾©ã§ãã§ã«ã¨ã©ã¼
+          # c.get_celltype == nil の場合はセルタイプ未定義ですでにエラー
           return false
         end
@@ -3714,5 +3507,5 @@
 
 
-#== æ§æè¦ç´ ï¼å£ãè¡¨ãã¯ã©ã¹ï¼ã»ã«ã¿ã¤ãã®å¼ã³å£ãåãå£ï¼
+#== 構文要素：口を表すクラス（セルタイプの呼び口、受け口）
 class Port < BDNode
 # @name::  str
@@ -3720,18 +3513,13 @@
 # @port_type::  :CALL, :ENTRY
 # @array_size:: nil: not array, "[]": sizeless, Integer: sized array
-# @reverse_require_cell_path:: NamespacePath :     érequireå¼ã³å
-ã»ã«  mikan namespace (å¼ã³å£ã®ã¿æå®å¯è½)
-# @reverse_require_callport_name:: Symbol:  érequireå¼ã³å
-ã»ã«ã®å¼ã³å£å
+# @reverse_require_cell_path:: NamespacePath :     逆require呼び元セル  mikan namespace (呼び口のみ指定可能)
+# @reverse_require_callport_name:: Symbol:  逆require呼び元セルの呼び口名
 #
-# set_allocator_port ã«ãã£ã¦è¨­å®ãããï¼è¨­å®ãããå ´åããã®ãã¼ãã¯ã¢ã­ã±ã¼ã¿ãã¼ãã§ããã
-# @allocator_port:: Port : ãã®å¼ã³å£ãã§ããå
-ã¨ãªã£ãå¼ã³å£ã¾ãã¯åãå£
-# @allocator_func_decl:: Decl : ãã®å¼ã³å£ãã§ããå
-ã¨ãªã£ãå¼ã³å£ã¾ãã¯åãå£ã®é¢æ°
-# @allocator_param_decl:: ParamDecl : ãã®å¼ã³å£ãã§ããå
-ã¨ãªã£ãå¼ã³å£ã¾ãã¯åãå£ã®ãã©ã¡ã¼ã¿
+# set_allocator_port によって設定される．設定された場合、このポートはアロケータポートである。
+# @allocator_port:: Port : この呼び口ができる元となった呼び口または受け口
+# @allocator_func_decl:: Decl : この呼び口ができる元となった呼び口または受け口の関数
+# @allocator_param_decl:: ParamDecl : この呼び口ができる元となった呼び口または受け口のパラメータ
 #
-# set_specifier ã«ãã£ã¦è¨­å®ããã(
+# set_specifier によって設定される(
 # @allocator_instance:: Hash : {"func_param" => [ :RELAY_ALLOC, func_name, param_name, rhs_cp_name, rhs_func_name, rhs_param_name ]}
 #                                               [:INTERNAL_ALLOC, func_name, param_name, rhs_ep_name ]
@@ -3739,28 +3527,25 @@
 #                                                                                    function    parameter   rhs
 #
-# @b_require:: bool : require ã«ããçæããã call port ã®å ´å true
-# @b_has_name:: bool : require : ååããã®ãªã¯ã¯ã¤ã¢å¼ã³å£
-# @b_inline:: bool : entry port ã®ã¿
-# @b_omit:: bool : omit æå®å­ãæå®ããã (call port ã®ã¿)
-# @b_optional:: bool : call port ã®ã¿
-# @b_ref_des:: bool :  ref_desc ã­ã¼ã¯ã¼ããæå®ããã
-# @b_dynamic:: bool :  dynamic ã­ã¼ã¯ã¼ããæå®ããã (å¼ã³å£ã®ã¿)
+# @b_require:: bool : require により生成された call port の場合 true
+# @b_has_name:: bool : require : 名前ありのリクワイア呼び口
+# @b_inline:: bool : entry port のみ
+# @b_omit:: bool : omit 指定子が指定された (call port のみ)
+# @b_optional:: bool : call port のみ
+# @b_ref_des:: bool :  ref_desc キーワードが指定された
+# @b_dynamic:: bool :  dynamic キーワードが指定された (呼び口のみ)
 #
 # optimize::
-# @celltype:: å±ããã»ã«ã¿ã¤ã
+# @celltype:: 属するセルタイプ
 #
-# :CALL ã®å ´åã®æé©å
-# @b_VMT_useless:: bool                     # VMT é¢æ°ãã¼ãã«ãä½¿ç¨ããªã
-# @b_skelton_useless:: bool                 # ã¹ã±ã«ãã³é¢æ°ä¸è¦   (true ã®æãåãå£é¢æ°ãå¼åºã)
-# @b_cell_unique:: bool                     # å¼ã³å
-ã¯å¯ä¸ã®ã»ã«
-# @only_callee_port:: Port                  # å¯ä¸ã®å¼ã³å
-ãã¼ã
-# @only_callee_cell:: Cell                  # å¯ä¸ã®å¼ã³å
-ã»ã« (@b_PEPDES_in_CB_useless = true ã®ææå¹)
+# :CALL の場合の最適化
+# @b_VMT_useless:: bool                     # VMT 関数テーブルを使用しない
+# @b_skelton_useless:: bool                 # スケルトン関数不要   (true の時、受け口関数を呼出す)
+# @b_cell_unique:: bool                     # 呼び先は唯一のセル
+# @only_callee_port:: Port                  # 唯一の呼び先ポート
+# @only_callee_cell:: Cell                  # 唯一の呼び先セル (@b_PEPDES_in_CB_useless = true の時有効)
 #
-# :ENTRY ã®å ´åã®æé©åï¼å¼ã³å£æé©åã¨åãå¤æ°åãä½¿ç¨ï¼
-# @b_VMT_useless:: bool                     # VMT é¢æ°ãã¼ãã«ãä¸è¦
-# @b_skelton_useless:: bool                 # ã¹ã±ã«ãã³é¢æ°ä¸è¦
+# :ENTRY の場合の最適化（呼び口最適化と同じ変数名を使用）
+# @b_VMT_useless:: bool                     # VMT 関数テーブルが不要
+# @b_skelton_useless:: bool                 # スケルトン関数不要
 
   def initialize( name, sig_path, port_type, array_size = nil, reverse_require_cell_path = nil, reverse_require_entry_port_name = nil )
@@ -3778,6 +3563,5 @@
         @array_size = array_size.eval_const(nil)
       else
-        @array_size = array_size   # ããã¯ã¢ã­ã±ã¼ã¿å¼ã³å£ã®å ´åï¼å
-ã®å¼ã³å£ã§æ¢ã«è©ä¾¡æ¸ã¿ï¼
+        @array_size = array_size   # これはアロケータ呼び口の場合（元の呼び口で既に評価済み）
       end
       if @array_size == nil then
@@ -3794,10 +3578,8 @@
     object = Namespace.find( sig_path )    #1
     if object == nil then
-      # mikan signature ã®ååãä¸å®å
-¨
+      # mikan signature の名前が不完全
       cdl_error( "S1075 \'$1\' signature not found" , sig_path )
     elsif ! object.instance_of?( Signature ) then
-      # mikan signature ã®ååãä¸å®å
-¨
+      # mikan signature の名前が不完全
       cdl_error( "S1076 \'$1\' not signature" , sig_path )
     else
@@ -3806,5 +3588,5 @@
     end
 
-    # érequire
+    # 逆require
     @reverse_require_cell_path       = nil
     @reverse_require_entry_port_name = nil
@@ -3816,11 +3598,10 @@
         @reverse_require_entry_port_name = reverse_require_entry_port_name
 
-        # åãå£é
-åãï¼
+        # 受け口配列か？
         if array_size then
           cdl_error( "S1153 $1: cannot be entry port array for fixed join port", @name )
         end
 
-        # å¼ã³å£ã®ã»ã«ã¿ã¤ããæ¢ã
+        # 呼び口のセルタイプを探す
         ct_or_cell = Namespace.find( @reverse_require_cell_path )  #1
         if ct_or_cell.instance_of? Cell then
@@ -3837,9 +3618,8 @@
 
         if ct == nil then
-          return    # æ¢ã«ã¨ã©ã¼
-        end
-
-        # æ·»ãå­ãªãã®å¼ã³å£é
-åãï¼
+          return    # 既にエラー
+        end
+
+        # 添え字なしの呼び口配列か？
         port = ct.find( @reverse_require_entry_port_name )
         if port == nil || port.get_port_type != :CALL
@@ -3863,27 +3643,24 @@
   end
 
-  #=== Port#æé©åã«é¢ããå¤æ°ããªã»ãããã
-  # Region ãã¨ã«æé©åã®ãããªãããããããããªã»ãããã
+  #=== Port#最適化に関する変数をリセットする
+  # Region ごとに最適化のやりなおしをするため、リセットする
   def reset_optimize
     if @port_type == :CALL then
       # call port optimize
-      @b_VMT_useless = false                     # VMT ä¸è¦ (true ã®æ VMT ãä»ãããã¨ãªãå¼åºã)
-      @b_skelton_useless = false                 # ã¹ã±ã«ãã³é¢æ°ä¸è¦   (true ã®æãåãå£é¢æ°ãå¼åºã)
-      @b_cell_unique = false                     # å¯ä¸ã®å¼ã³å
-ã»ã«
-      @only_callee_port = nil                    # å¯ä¸ã®å¼ã³å
-ãã¼ã
-      @only_callee_cell = nil                    # å¯ä¸ã®å¼ã³å
-ã»ã«
+      @b_VMT_useless = false                     # VMT 不要 (true の時 VMT を介することなく呼出す)
+      @b_skelton_useless = false                 # スケルトン関数不要   (true の時、受け口関数を呼出す)
+      @b_cell_unique = false                     # 唯一の呼び先セル
+      @only_callee_port = nil                    # 唯一の呼び先ポート
+      @only_callee_cell = nil                    # 唯一の呼び先セル
     else
       # entry port optimize
       if $unopt then
-        # æé©åãªã
-        @b_VMT_useless = false                     # VMT ä¸è¦ (true ã®æ VMT ãä»ãããã¨ãªãå¼åºã)
-        @b_skelton_useless = false                 # ã¹ã±ã«ãã³é¢æ°ä¸è¦   (true ã®æãåãå£é¢æ°ãå¼åºã)
+        # 最適化なし
+        @b_VMT_useless = false                     # VMT 不要 (true の時 VMT を介することなく呼出す)
+        @b_skelton_useless = false                 # スケルトン関数不要   (true の時、受け口関数を呼出す)
       else
-        # æé©åãã
-        @b_VMT_useless = true                      # VMT ä¸è¦ (true ã®æ VMT ãä»ãããã¨ãªãå¼åºã)
-        @b_skelton_useless = true                  # ã¹ã±ã«ãã³é¢æ°ä¸è¦   (true ã®æãåãå£é¢æ°ãå¼åºã)
+        # 最適化あり
+        @b_VMT_useless = true                      # VMT 不要 (true の時 VMT を介することなく呼出す)
+        @b_skelton_useless = true                  # スケルトン関数不要   (true の時、受け口関数を呼出す)
       end
     end
@@ -3914,10 +3691,9 @@
   end
 
-  #=== Port# ã¢ã­ã±ã¼ã¿ãã¼ãã®è¨­å®
-  #port:: Port : send/receive ã®ãã£ãå¼ã³å£ã¾ãã¯åãå£
-  #fd:: Decl : é¢æ°ã® declarator
-  #par:: ParamDecl : send/receive ã®ãã£ãå¼æ°
-  # ãã®å¼ã³å£ãçæããããã¨ã«ãªã£ãå¼ã³å£ã¾ãã¯åãå£ã®æ
-å ±ãè¨­å®
+  #=== Port# アロケータポートの設定
+  #port:: Port : send/receive のあった呼び口または受け口
+  #fd:: Decl : 関数の declarator
+  #par:: ParamDecl : send/receive のあった引数
+  # この呼び口が生成されるもとになった呼び口または受け口の情報を設定
   def set_allocator_port( port, fd, par )
     @allocator_port = port
@@ -3951,6 +3727,6 @@
   end
 
-  #=== Port# require å¼ã³å£ãååãæã¤ï¼
-  # require éå®
+  #=== Port# require 呼び口が名前を持つ？
+  # require 限定
   def has_name?
     @b_has_name
@@ -3965,5 +3741,5 @@
   end
 
-  #=== Port# omit æå®ããã¦ãã?
+  #=== Port# omit 指定されている?
   def is_omit?
     @b_omit || ( @signature && @signature.is_empty? )
@@ -3974,19 +3750,18 @@
   end
 
-  def set_VMT_useless                     # VMT é¢æ°ãã¼ãã«ãä½¿ç¨ããªã
+  def set_VMT_useless                     # VMT 関数テーブルを使用しない
    @b_VMT_useless = true
   end
 
-  def set_skelton_useless                 # ã¹ã±ã«ãã³é¢æ°ä¸è¦   (true ã®æãåãå£é¢æ°ãå¼åºã)
+  def set_skelton_useless                 # スケルトン関数不要   (true の時、受け口関数を呼出す)
     @b_skelton_useless = true
   end
 
-  def set_cell_unique                     # å¼ã³å
-ã»ã«ã¯ä¸ã¤ã ã
+  def set_cell_unique                     # 呼び先セルは一つだけ
     @b_cell_unique = true
   end
 
-  #=== Port# å¼ã³å£/åãå£ã®æå®å­ã®è¨­å®
-  # inline, allocator ã®æå®
+  #=== Port# 呼び口/受け口の指定子の設定
+  # inline, allocator の指定
   def set_specifier spec_list
     spec_list.each { |s|
@@ -4033,8 +3808,6 @@
   end
 
-  #=== Port# ãªã¬ã¼ã¢ã­ã±ã¼ã¿ãå
-é¨ã¢ã­ã±ã¼ã¿ã®ã¤ã³ã¹ã¿ã³ã¹ãè¨­å®
-  # å¼ã³å£ã®åæ¹åç
-§å¯è½ãªããã«ãã»ã«ã¿ã¤ãã®è§£éã®æå¾ã§è¡ã
+  #=== Port# リレーアロケータ、内部アロケータのインスタンスを設定
+  # 呼び口の前方参照可能なように、セルタイプの解釈の最後で行う
   def set_allocator_instance
     if @allocator_instance_tmp == nil then
@@ -4049,6 +3822,6 @@
       case alloc_type
       when :INTERNAL_ALLOC
-        if ! @owner.instance_of? CompositeCelltype then # ãã¹ãé²ãããã« composite ã§ãªããã°ã¨ãã
-          cdl_error( "S1081 self allocator not supported yet"  )   # mikan ããã¯ãµãã¼ãããã¦ããã¯ããè¦èª¿æ» 12/1/15
+        if ! @owner.instance_of? CompositeCelltype then # ミスを防ぐために composite でなければとした
+          cdl_error( "S1081 self allocator not supported yet"  )   # mikan これはサポートされているはず。要調査 12/1/15
           next
         end
@@ -4057,5 +3830,5 @@
         # OK
       when :NORMAL_ALLOC
-        # ããã¸æ¥ãã®ã¯ composite ã®åãå£ã§å³è¾ºã "eEnt.func.param" å½¢å¼ã§æå®ããã¦ããå ´å
+        # ここへ来るのは composite の受け口で右辺が "eEnt.func.param" 形式で指定されていた場合
         cdl_error( "S1174 $1 not suitable for lhs, suitable lhs: 'func.param'", "#{ai[1]}.#{ai[3]}.#{ai[4]}" )
         next
@@ -4064,6 +3837,6 @@
       end
 
-      # '=' å·¦è¾º(func_name,param_name)ã¯å®å¨ããã?
-      if @signature then       # signature = nil ãªãæ¢ã«ã¨ã©ã¼
+      # '=' 左辺(func_name,param_name)は実在するか?
+      if @signature then       # signature = nil なら既にエラー
         fh = @signature.get_function_head( ai[1] )
         if fh == nil then
@@ -4073,5 +3846,5 @@
         decl = fh.get_declarator
         if ! decl.is_function? then
-          next   # æ¢ã«ã¨ã©ã¼
+          next   # 既にエラー
         end
         paramdecl = decl.get_type.get_paramlist.find( ai[2] )
@@ -4090,10 +3863,10 @@
       end
 
-      # éè¤æå®ããªãã?
+      # 重複指定がないか?
       if @allocator_instance[ "#{@name}_#{ai[1]}_#{ai[2]}" ] then
         cdl_error( "S1085 duplicate allocator specifier for \'$1_$2\'" , ai[1], ai[2] )
       end
 
-      # å³è¾ºã®ãã§ãã¯
+      # 右辺のチェック
       case alloc_type
       when :INTERNAL_ALLOC
@@ -4105,10 +3878,10 @@
         end
 
-        ep_name = ele[1]   # ã¢ã­ã±ã¼ã¿åãå£å
+        ep_name = ele[1]   # アロケータ受け口名
         ep = @owner.find ep_name.get_path[0]  # mikan "a::b"
         if ep == nil || ! ep.instance_of?( Port ) || ep.get_port_type != :ENTRY || ! ep.get_signature.is_allocator? then
           cdl_error( "S1175 $1 not found or not allocator entry port for $2" , ep_name, ai[1] )
         end
-        # å³è¾ºãã§ãã¯çµãã
+        # 右辺チェック終わり
         # ai2 = [ :INTERNAL_ALLOC, func_name, param_name, rhs_ep_name ]
         ai2 = [ ai[0], ai[1], ai[2], ep_name ]
@@ -4122,5 +3895,5 @@
           #    ele[0]    ele[1][0]  ele[1][1][0]  ele[1][1][1]        ele[1][2]    ele[2]
           #      name_space_path.Token(1).Token(2) === call_port.func.param
-          #  mikan Expression#analyze_cell_join_expression ã®å¤ç¨®ãä½æãã¦ç½®ãæããã¹ã
+          #  mikan Expression#analyze_cell_join_expression の変種を作成して置き換えるべき
 
           cdl_error( "S1176 rhs not in 'call_port.func.param' form for for $1_$2" , ai[1], ai[2] )   # S1086
@@ -4128,10 +3901,8 @@
         end
         func_name = ele[1][2]; cp_name = ele[1][1][1].get_name; param_name = ele[2].to_sym
-        cp = @owner.find cp_name    # ãªã¬ã¼ããå
-ã®å¼ã³å£
+        cp = @owner.find cp_name    # リレーする先の呼び口
         if cp then
-# mikan cp ãå¼ã³å£ã§ãããã¨ã®ãã§ãã¯ï¼å±æ§ã®å ´åãããï¼
-# mikan åãå£ããåãå£ã¸ã®ãªã¬ã¼ã¸ã®å¯¾å¿ (å¼ã³å£ããå¼ã³å£ã¸ã®ãªã¬ã¼ã¯ããããªã)  <=== ææ³ã«ããããäºé 
-ï¼å¼ã³å£å´ã§ã¢ã­ã±ã¼ã¿ãæ±ºå®ãããï¼
+# mikan cp が呼び口であることのチェック（属性の場合もある）
+# mikan 受け口から受け口へのリレーへの対応 (呼び口から呼び口へのリレーはありえない)  <=== 文法にかかわる事項（呼び口側でアロケータが決定される）
           sig = cp.get_signature
           if sig && @signature then
@@ -4143,5 +3914,5 @@
             decl = fh.get_declarator
             if ! decl.is_function? then
-              next   # æ¢ã«ã¨ã©ã¼
+              next   # 既にエラー
             end
             paramdecl = decl.get_type.get_paramlist.find( param_name )
@@ -4162,5 +3933,5 @@
 
             # else
-            # sig == nil ãªãã°æ¢ã«ã¨ã©ã¼
+            # sig == nil ならば既にエラー
           end
         else
@@ -4173,5 +3944,5 @@
           next
         end
-        # å³è¾ºãã§ãã¯çµãã
+        # 右辺チェック終わり
         # ai2 = [ :RELAY_ALLOC, func_name, param_name, rhs_cp_name, rhs_func_name, rhs_param_name ]
         ai2 = [ ai[0], ai[1], ai[2], cp_name, func_name, param_name ]
@@ -4186,24 +3957,20 @@
   end
 
-  def is_VMT_useless?                     # VMT é¢æ°ãã¼ãã«ãä½¿ç¨ããªã
+  def is_VMT_useless?                     # VMT 関数テーブルを使用しない
    @b_VMT_useless
   end
 
-  def is_skelton_useless?                 # ã¹ã±ã«ãã³é¢æ°ä¸è¦   (true ã®æãåãå£é¢æ°ãå¼åºã)
+  def is_skelton_useless?                 # スケルトン関数不要   (true の時、受け口関数を呼出す)
     @b_skelton_useless
   end
 
-  def is_cell_unique?                     # å¼ã³å
-ã®ã»ã«ã¯ä¸ã¤ï¼
+  def is_cell_unique?                     # 呼び先のセルは一つ？
     @b_cell_unique
   end
 
-  #=== Port# åãå£æé©åã®è¨­å®
-  # ãã®åãå£ãåç
-§ããå¼ã³å£ã VMT, skelton ãå¿
-è¦ã¨ãã¦ãããã©ãããè¨­å®
-  # ä¸ã¤ã§ãå¼ã³å£ãå¿
-è¦ã¨ãã¦ããï¼ããªãã¡ b_*_useless ã falseï¼å ´åã¯ã
-  # ãã®åãå£ã®æé©åã false ã¨ãã
+  #=== Port# 受け口最適化の設定
+  # この受け口を参照する呼び口が VMT, skelton を必要としているかどうかを設定
+  # 一つでも呼び口が必要としている（すなわち b_*_useless が false）場合は、
+  # この受け口の最適化を false とする
   def set_entry_VMT_skelton_useless( b_VMT_useless, b_skelton_useless )
     if ! b_VMT_useless then
@@ -4215,9 +3982,8 @@
   end
 
-  #=== Port# å¯ä¸ã®çµåå
-ãè¨­å®
-  # æé©åã§ä½¿ç¨
-  #  b_VMT_useless == true || b_skelton_useless == true ã®æã«è¨­å®ããã
-  #  optional ã®å ´å callee_cell, callee_port ã nil ã¨ãªã
+  #=== Port# 唯一の結合先を設定
+  # 最適化で使用
+  #  b_VMT_useless == true || b_skelton_useless == true の時に設定される
+  #  optional の場合 callee_cell, callee_port が nil となる
   def set_only_callee( callee_port, callee_cell )
     @only_callee_port = callee_port
@@ -4225,7 +3991,6 @@
   end
 
-  #=== Port# å¯ä¸ã®çµåå
-ãã¼ããè¿ã(compositeã®å ´åå®ã»ã«)
-  # optional å¼ã³å£ã§æªçµåã®å ´å nil ãè¿ã
+  #=== Port# 唯一の結合先ポートを返す(compositeの場合実セル)
+  # optional 呼び口で未結合の場合 nil を返す
   def get_real_callee_port
     if @only_callee_cell then
@@ -4234,7 +3999,6 @@
   end
 
-  #=== Port# å¯ä¸ã®çµåå
-ã»ã«ãè¿ã(compositeã®å ´åå®ã»ã«)
-  # optional å¼ã³å£ã§æªçµåã®å ´å nil ãè¿ã
+  #=== Port# 唯一の結合先セルを返す(compositeの場合実セル)
+  # optional 呼び口で未結合の場合 nil を返す
   def get_real_callee_cell
     if @only_callee_cell then
@@ -4251,5 +4015,5 @@
   end
 
-  #=== Port# érequire ã®çµåãçæãã
+  #=== Port# 逆require の結合を生成する
   # STAGE: S
   def create_reverse_require_join cell
@@ -4258,6 +4022,5 @@
     end
 
-    # å¼ã³å
-ã»ã«ãæ¢ã
+    # 呼び元セルを探す
     ct_or_cell = Namespace.find( @reverse_require_cell_path )   # mikan namespace    #1
     if ct_or_cell.instance_of? Cell then
@@ -4265,5 +4028,5 @@
       ct = cell2.get_celltype
       if ct == nil then
-        return    # æ¢ã«ã¨ã©ã¼
+        return    # 既にエラー
       end
     elsif ct_or_cell.instance_of? Celltype then
@@ -4275,9 +4038,9 @@
       ct = ct_or_cell
     else
-      # æ¢ã«ã¨ã©ã¼ï¼ç¡è¦
+      # 既にエラー：無視
       return
     end
 
-    # çµåãçæãã
+    # 結合を生成する
     dbgPrint "create_reverse_require_join #{cell2.get_name}.#{@reverse_require_entry_port_name}[] = #{cell.get_name}.#{@name}"
     nsp = NamespacePath.new( cell.get_name, false, cell.get_namespace )
@@ -4291,22 +4054,19 @@
   end
 
-  #=== Port# signature ã®ãã¹ã¦ã®é¢æ°ã®ãã¹ã¦ã®ãã©ã¡ã¼ã¿ããã©ã
-  #block:: ãã­ãã¯ãå¼æ°ã¨ãã¦åã(ruby ã®ææ³ã§æ¸ããªã)
-  #  ãã­ãã¯ã¯3ã¤ã®å¼æ°ãåãåã(Port, Decl,      ParamDecl)    Decl: é¢æ°ããã
-  # Signature ã¯ã©ã¹ã«ã each_param ãããï¼åãåãï¼
-  def each_param # ãã­ãã¯å¼æ°{  |port, func_decl, param_decl| }
-    return if @signature == nil                         # signature æªå®ç¾©ï¼æ¢ã«ã¨ã©ã¼ï¼
-    fha = @signature.get_function_head_array            # å¼ã³å£ã¾ãã¯åãå£ã®ã·ã°ããã£ã®é¢æ°é
-å
-    return if fha == nil                                # nil ãªãææ³ã¨ã©ã¼ã§æå¹å¤ãè¨­å®ãããªãã£ã
-
-    pr = Proc.new   # ãã®ã¡ã½ããã®ãã­ãã¯å¼æ°ã pr ã«ä»£å
-¥
+  #=== Port# signature のすべての関数のすべてのパラメータをたどる
+  #block:: ブロックを引数として取る(ruby の文法で書かない)
+  #  ブロックは3つの引数を受け取る(Port, Decl,      ParamDecl)    Decl: 関数ヘッダ
+  # Signature クラスにも each_param がある（同じ働き）
+  def each_param # ブロック引数{  |port, func_decl, param_decl| }
+    return if @signature == nil                         # signature 未定義（既にエラー）
+    fha = @signature.get_function_head_array            # 呼び口または受け口のシグニチャの関数配列
+    return if fha == nil                                # nil なら文法エラーで有効値が設定されなかった
+
+    pr = Proc.new   # このメソッドのブロック引数を pr に代入
     port = self
-    fha.each{ |fh|  # fh: FuncHead                      # é¢æ°é
-åä¸­ã®åé¢æ°é ­é¨
-      fd = fh.get_declarator                            # fd: Decl  (é¢æ°é ­é¨ããDeclarotorãå¾ã)
-      if fd.is_function? then                           # fd ãé¢æ°ã§ãªããã°ããã§ã«ã¨ã©ã¼
-        fd.get_type.get_paramlist.get_items.each{ |par| # ãã¹ã¦ã®ãã©ã¡ã¼ã¿ã«ã¤ãã¦
+    fha.each{ |fh|  # fh: FuncHead                      # 関数配列中の各関数頭部
+      fd = fh.get_declarator                            # fd: Decl  (関数頭部からDeclarotorを得る)
+      if fd.is_function? then                           # fd が関数でなければ、すでにエラー
+        fd.get_type.get_paramlist.get_items.each{ |par| # すべてのパラメータについて
           pr.call( port, fd, par )
         }
@@ -4315,5 +4075,5 @@
   end
 
-  #=== Port# érequireæå®ããã¦ããï¼
+  #=== Port# 逆require指定されている？
   def is_reverse_required?
     @reverse_require_cell_path != nil
@@ -4357,16 +4117,15 @@
 #== Namespace
 #
-# root namespace ã ããRegion ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã¨ãã¦çæããã
-# root namespace ã¯ãroot region ãå
-¼ã­ããã
+# root namespace だけ、Region クラスのインスタンスとして生成される
+# root namespace は、root region を兼ねるため
 #
-# @cell_list ã¯ Region ã®å ´åã«ã®ã¿æã¤ (mikan @cell_list é¢é£ã¯ Region ã«ç§»ãã¹ã)
+# @cell_list は Region の場合にのみ持つ (mikan @cell_list 関連は Region に移すべき)
 #
 class Namespace < NSBDNode
-# @name::  Symbol     # root ã®å ´å "::" (String)
+# @name::  Symbol     # root の場合 "::" (String)
 # @global_name:: str
 # @name_list:: NamedList   Signature,Celltype,CompositeCelltype,Cell,Typedef,Namespace
 # @struct_tag_list:: NamedList : StructType
-# @namespace_list:: Namespace[] : Region ã¯ Namespace ã®å­ã¯ã©ã¹ã§ãããå«ã¾ãã
+# @namespace_list:: Namespace[] : Region は Namespace の子クラスであり、含まれる
 # @signature_list:: Sginature[]
 # @celltype_list:: Celltype[]
@@ -4374,17 +4133,16 @@
 # @cell_list:: Cell[]
 # @typedef_list:: Typedef[]
-# @decl_list:: ( Typedef | StructType | EnumType )[]   ä¾å­é¢ä¿ãããå ´åã«åãã¦ãé çªã©ããã«é
-åã«æ ¼ç´ mikan enum
+# @decl_list:: ( Typedef | StructType | EnumType )[]   依存関係がある場合に備えて、順番どおりに配列に格納 mikan enum
 # @const_decl_list:: Decl[]
-# @cache_n_cells:: Integer :  get_n_cells ã®çµæãã­ã£ãã·ã¥ãã
-# @cache_generating_region:: Region :  get_n_cells ã®çµæãã­ã£ãã·ã¥ãããã¦ãããªã¼ã¸ã§ã³
-
-  # mikan namespace ã® push, pop
-
-  # namespace éå±¤ç¨ã®ã¹ã¿ãã¯
+# @cache_n_cells:: Integer :  get_n_cells の結果をキャッシュする
+# @cache_generating_region:: Region :  get_n_cells の結果をキャッシュするしているリージョン
+
+  # mikan namespace の push, pop
+
+  # namespace 階層用のスタック
   @@namespace_stack = []      # @@namespace_stack[0] = "::" (generator.rb)
   @@namespace_sp = -1
 
-  # Generator ãã¹ãç¨ã®ã¹ã¿ãã¯ (namespace éå±¤ç¨ã®ã¹ã¿ãã¯ãå¯¾æ¯ãã)
+  # Generator ネスト用のスタック (namespace 階層用のスタックを対比する)
   @@nest_stack_index = -1
   @@nest_stack = []
@@ -4392,5 +4150,5 @@
   @@root_namespace = nil
 
-  # Generator ãã¹ãç¨ã¹ã¿ãã¯ã® push, pop (ã¯ã©ã¹ã¡ã½ãã)
+  # Generator ネスト用スタックの push, pop (クラスメソッド)
   def self.push
     dbgPrint "push Namespace\n"
@@ -4412,5 +4170,5 @@
   end
 
-  # namespace éå±¤ç¨ã¹ã¿ãã¯ã® push, pop (ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã)
+  # namespace 階層用スタックの push, pop (インスタンスメソッド)
   def push ns
     @@namespace_sp += 1
@@ -4434,5 +4192,5 @@
     if( name == "::" )then
       if( @@root_namespace != nil )then
-        # root ã¯ä¸åã®ã¿çæã§ãã
+        # root は一回のみ生成できる
         raise "try to re-create root namespace"
       end
@@ -4443,5 +4201,5 @@
       if ns.kind_of? Namespace then
         dbgPrint "namespace: re-appear #{@name}\n"
-        # ç»é²æ¸ã¿ namespace ã®åç»é²
+        # 登録済み namespace の再登録
         ns.push ns
         return
@@ -4454,10 +4212,10 @@
     end
 
-    if @@namespace_sp >= 0 then   # root ã¯é¤å¤
+    if @@namespace_sp >= 0 then   # root は除外
       @@namespace_stack[@@namespace_sp].new_namespace( self )
     end
     push self
 
-    @global_name = Namespace.get_global_name    # stack ç»é²å¾åã
+    @global_name = Namespace.get_global_name    # stack 登録後取る
     @name_list = NamedList.new( nil, "symbol in namespace '#{@name}'" )
     @struct_tag_list = NamedList.new( nil, "struct tag" )
@@ -4474,6 +4232,6 @@
     @cache_generating_region = nil
     if @NamespacePath == nil then
-      # root namespace ã®å ´åã¯è¨­å®æ¸ (è¦ª namespace ãè¦ã¤ãããä¾å¤ã«ãªã)
-      set_namespace_path # @NamespacePath ã®è¨­å®
+      # root namespace の場合は設定済 (親 namespace が見つからず例外になる)
+      set_namespace_path # @NamespacePath の設定
     end
   end
@@ -4487,8 +4245,8 @@
   end
 
-  #=== Namespace:: global_name ãå¾ã
-  # parse ä¸­ã®ã¿ãã®ã¡ã½ããã¯ä½¿ãã
+  #=== Namespace:: global_name を得る
+  # parse 中のみこのメソッドは使える
   # STAGE: P
-  def self.get_global_name    # parse ä¸­æå¹
+  def self.get_global_name    # parse 中有効
     if @@namespace_sp <= 0 then
       return ""
@@ -4509,12 +4267,12 @@
   end
 
-  #=== Namespace#ã»ã«ã®åæ°ãå¾ã
-  # å­ region ã linkunit, node æå®ããã¦ããã°ãå«ããªãï¼å¥ã®ãªã³ã¯åä½ï¼
-  # ãã­ãã¿ã¤ãå®£è¨ã®ãã®ã®ã¿ã®åæ°ãå«ããªã
-  # mikan namespace ä¸ã« cell ãç½®ããªãä»æ§ã«ãªãã¨ããã®ã¡ã½ããã¯ Region ã®ãã®ã§ãã
-  # mikan ä¸è¨ã®å ´å instance_of? Namespace ã®æ¡ä»¶å¤å®ã¯ä¸è¦ã¨ãªã
+  #=== Namespace#セルの個数を得る
+  # 子 region が linkunit, node 指定されていれば、含めない（別のリンク単位）
+  # プロトタイプ宣言のもののみの個数を含めない
+  # mikan namespace 下に cell を置けない仕様になると、このメソッドは Region のものでよい
+  # mikan 上記の場合 instance_of? Namespace の条件判定は不要となる
   def get_n_cells
     if @cache_generating_region == $generating_region then
-      # ãã®ã¡ã½ããã¯ç¹°ãè¿ãå¼ã³åºããããããçµæãã­ã£ãã·ã¥ãã
+      # このメソッドは繰り返し呼び出されるため、結果をキャッシュする
       return @cache_n_cells
     end
@@ -4522,5 +4280,5 @@
     count = 0
     @cell_list.each{ |c|
-      # å®ç¾©ããã­ãã¿ã¤ãå®£è¨ã ããã¯ãnew_cell ã®æ®µéã§å¤æ­ã§ããªããããã«ã¦ã³ãããªãã
+      # 定義かプロトタイプ宣言だけかは、new_cell の段階で判断できないため、カウントしなおす
       if c.get_f_def == true then
         # print "get_n_cells: cell: #{c.get_name}\n"
@@ -4533,9 +4291,9 @@
         count += ns.get_n_cells
       else
-        # ns ã¯ Region ã§ãã
+        # ns は Region である
         rt = ns.get_region_type
         # print "get_n_cells: region: #{ns.get_name}: #{rt}\n"
         if rt == :NODE || rt == :LINKUNIT then
-          # å¥ã® linkunit ãªã®ã§å ç®ããªã
+          # 別の linkunit なので加算しない
         else
           count += ns.get_n_cells
@@ -4549,7 +4307,7 @@
   end
 
-  #=== Namespace.find : in_path ã§ç¤ºããããªãã¸ã§ã¯ããæ¢ã
+  #=== Namespace.find : in_path で示されるオブジェクトを探す
   #in_path:: NamespacePath
-  #in_path:: Array : å¤ãå½¢å¼
+  #in_path:: Array : 古い形式
   #  path [ "::", "ns1", "ns2" ]   absolute
   #  path [ "ns1", "ns2" ]         relative
@@ -4566,9 +4324,8 @@
       if name == "::" then
         i = 1
-        name = path[i]   # æ§æçã«å¿
-ãå­å¨
+        name = path[i]   # 構文的に必ず存在
         object = @@root_namespace.find( name )  # root
       else
-        # ç¸å¯¾ãã¹
+        # 相対パス
         i = 0
         object = @@namespace_stack[@@namespace_sp].find_one( name ) # crrent
@@ -4603,10 +4360,8 @@
 
       unless object.kind_of?( Namespace ) then
-        # ã¯ã©ã¹ã¡ã½ããå
-ã§ cdl_error ãå¼ã³åºããã¨ã¯ã§ããªã
-        # ã¾ããåæ¹åç
-§å¯¾å¿å¾ãæ­£ç¢ºãªè¡çªå·ãåºãªãåé¡ãçãã
+        # クラスメソッド内で cdl_error を呼び出すことはできない
+        # また、前方参照対応後、正確な行番号が出ない問題も生じる
         # cdl_error( "S1092 \'$1\' not namespace" , name )
-        # ãã®ã¡ã½ãããã nil ãå¸°ã£ãå ´å "not found" ãåºãã®ã§ãããã§ã¯åºããªã
+        # このメソッドから nil が帰った場合 "not found" が出るので、ここでは出さない
         return nil
       end
@@ -4624,5 +4379,5 @@
   end
 
-  #=== Namespace# namespace ããæ¢ããè¦ã¤ãããªããã°è¦ª namespace ããæ¢ã
+  #=== Namespace# namespace から探す。見つからなければ親 namespace から探す
   def self.find_one( name )
     return @@namespace_stack[@@namespace_sp].find_one( name )
@@ -4632,5 +4387,5 @@
 
     object = find( name )
-    # ããã¯åºãã
+    # これは出すぎ
     # dbgPrint "in '#{@name}' find '#{name}' object #{object ? object.class : "Not found"}\n"
 
@@ -4649,7 +4404,7 @@
 
   def self.find_tag( name )
-    # mikan tag : namespace ã® path ã«å¯¾å¿ããªã
-    # namespace ã®ä¸­ã«ãã£ã¦ããroot namespace ã«ãããã®ã¨è¦ãªããã
-    # ãã£ã¦ ã«ã¬ã³ã namespace ããæ ¹ã«åãã£ã¦æ¢ã
+    # mikan tag : namespace の path に対応しない
+    # namespace の中にあっても、root namespace にあるものと見なされる
+    # よって カレント namespace から根に向かって探す
     i = @@namespace_sp
     while i >= 0
@@ -4727,11 +4482,10 @@
   end
 
-  #=== Namespace# åç
-§ããã¦ããããæªå®ç¾©ã®ã»ã«ãæ¢ã
-  # ãã­ãã¿ã¤ãå®£è¨ã ãã§å®ç¾©ããã¦ããªãã±ã¼ã¹ãã¨ã©ã¼ã¨ãã
-  # ååã®æªçµåã»ã«ã«ã¤ãã¦è­¦åãã
+  #=== Namespace# 参照されているが、未定義のセルを探す
+  # プロトタイプ宣言だけで定義されていないケースをエラーとする
+  # 受動の未結合セルについて警告する
   def check_ref_but_undef
     @cell_list.each { |c|
-      if ! c.get_f_def then   # Namespace ã® @cell_list ã«ã¯ãã­ãã¿ã¤ããå«ã¾ããã±ã¼ã¹ãã
+      if ! c.get_f_def then   # Namespace の @cell_list にはプロトタイプが含まれるケースあり
         if c.get_f_ref then
           cdl_error( "S1093 $1 : undefined cell" , c.get_namespace_path.get_path_str )
@@ -4753,6 +4507,5 @@
   end
 
-  #=== Namespace# ã»ã«ã®åãå£ã®åç
-§ã«ã¦ã³ããè¨­å®ãã
+  #=== Namespace# セルの受け口の参照カウントを設定する
   def set_port_reference_count
     @cell_list.each { |c|
@@ -4770,9 +4523,9 @@
 
   def new_structtype( struct )
-    # struct.set_owner self   # StructType (Namespace) # StructType ã¯ BDNode ã§ã¯ãªã
+    # struct.set_owner self   # StructType (Namespace) # StructType は BDNode ではない
     dup = @struct_tag_list.get_item(struct.get_name)
     if dup != nil then
       if struct.same? dup then
-        # åããã®ã typedef ããã
+        # 同じものが typedef された
         # p "#{struct.get_name}"
         return
@@ -4798,10 +4551,10 @@
       if typedef_type.get_type_str == dup_type.get_type_str &&
           typedef_type.get_type_str_post == dup_type.get_type_str_post then
-        # åããã®ã typedef ããã
-        # ããã¸æ¥ãã®ã¯ C ã§é¢æ°ãã¤ã³ã¿ã typedef ãã¦ããã±ã¼ã¹
-        # ä»¥ä¸ã®ããã«äºéã«å®ç¾©ããã¦ããå ´åã¯ type_specifier_qualifier_list ã¨ãã¦æ±ããã
+        # 同じものが typedef された
+        # ここへ来るのは C で関数ポインタを typedef しているケース
+        # 以下のように二重に定義されている場合は type_specifier_qualifier_list として扱われる
         #    typedef long LONG; 
         #    typedef long LONG;
-        # bnf.y.rb ã§ã¯ declarator ã« TYPE_NAME ãè¨±ããªãã®ã§ãããã¸æ¥ããã¨ã¯ãªã
+        # bnf.y.rb では declarator に TYPE_NAME を許さないので、ここへ来ることはない
         # p "#{typedef.get_declarator.get_type.get_type_str} #{typedef.get_name} #{typedef.get_declarator.get_type.get_type_str_post}"
         return
@@ -4844,5 +4597,5 @@
   def new_const_decl( decl )
     decl.set_owner self   # Decl (Namespace:const)
-    if ! decl.is_const? then			# const ä¿®é£¾ãã¦ãããã¨
+    if ! decl.is_const? then			# const 修飾さていること
       if decl.is_type?( PtrType ) then
         cdl_error( "S1094 $1: pointer is not constant. check \'const\'" , decl.get_name )
@@ -4852,10 +4605,10 @@
     elsif ! decl.is_type?( IntType ) && ! decl.is_type?( FloatType ) &&
         ! decl.is_type?( BoolType ) && ! decl.is_type?( PtrType ) then
-                                            # IntType, FloatType ã§ãããã¨
+                                            # IntType, FloatType であること
       cdl_error( "S1096 $1: should be int, float, bool or pointer type" , decl.get_name )
-    elsif decl.get_initializer == nil then   # åæå¤ãæã¤ãã¨
+    elsif decl.get_initializer == nil then   # 初期値を持つこと
       cdl_error( "S1097 $1: has no initializer" , decl.get_name )
-#    elsif decl.get_initializer.eval_const(nil) == nil then  #eval_const ã¯ check_init ã§å¼åºãããã®ã§äºéãã§ãã¯
-#                                            # mikan åæå¤ãåã«å¯¾ãé©åã§ãããã¨
+#    elsif decl.get_initializer.eval_const(nil) == nil then  #eval_const は check_init で呼出されるので二重チェック
+#                                            # mikan 初期値が型に対し適切であること
 #      cdl_error( "S1098 $1: has unsuitable initializer" , decl.get_name )
     else
@@ -4879,5 +4632,5 @@
  ###
 
-  #=== Namespace# ãã¹ã¦ã®ã»ã«ã® require ãã¼ããè¨­å®
+  #=== Namespace# すべてのセルの require ポートを設定
   # STAGE: S
   def set_require_join
@@ -4885,5 +4638,5 @@
       ct.set_require_join
     }
-    # ãã¹ã¦ã® namespace ã«ã¤ãã¦ require ãã¼ããã»ãã
+    # すべての namespace について require ポートをセット
     @namespace_list.each{ |ns|
       ns.set_require_join
@@ -4891,8 +4644,8 @@
   end
 
-  #=== Namespace# Join ã¸ã® definition ã®è¨­å®ã¨ãã§ãã¯
-  # ã»ã«ã¿ã¤ãã«å±ãããã¹ã¦ã®ã»ã«ã«å¯¾ãã¦å®æ½
+  #=== Namespace# Join への definition の設定とチェック
+  # セルタイプに属するすべてのセルに対して実施
   def set_definition_join
-    # celltype ã®ã³ã¼ããçæ
+    # celltype のコードを生成
     @cell_list.each { |c|
       dbgPrint "set_definition_join #{c.get_name}\n"
@@ -4904,5 +4657,5 @@
   end
 
-  #=== Namespace# ã»ã«ã®çµåããã§ãã¯ãã
+  #=== Namespace# セルの結合をチェックする
   def check_join
     @cell_list.each { |c|
@@ -4916,12 +4669,12 @@
   end
 
-  #== Namespace# ã«ã¼ãã?
-  # ã«ã¼ããã¼ã ã¹ãã¼ã¹ ã¨ ã«ã¼ããªã¼ã¸ã§ã³ã¯åã
+  #== Namespace# ルートか?
+  # ルートネームスペース と ルートリージョンは同じ
   def is_root?
     @name == "::"
   end
 
-  #== Namespace# ã«ã¼ããå¾ã
-  # ã«ã¼ããªã¼ã¸ã§ã³ã¨ã«ã¼ããã¼ã ã¹ãã¼ã¹ã¯åããªãã¸ã§ã¯ã
+  #== Namespace# ルートを得る
+  # ルートリージョンとルートネームスペースは同じオブジェクト
   def self.get_root
     @@root_namespace
@@ -4945,33 +4698,31 @@
 #
 # available if definition is Port
-# @cell_name:: string : å³è¾ºã®ã»ã«ã®åå
-# @cell:: Cell  : å³è¾ºã®ã»ã«
-# @celltype:: Celltype : å³è¾ºã®ã»ã«ã¿ã¤ã
-# @port_name:: string : å³è¾ºã®åãå£å
-# @port:: Port : å³è¾ºã®åãå£
+# @cell_name:: string : 右辺のセルの名前
+# @cell:: Cell  : 右辺のセル
+# @celltype:: Celltype : 右辺のセルタイプ
+# @port_name:: string : 右辺の受け口名
+# @port:: Port : 右辺の受け口
 # @array_member:: rhs array : available only for first appear in the same name
 # @array_member2:: Join array : available only for first appear in the same name
-# @rhs_subscript:: nil : not array, >=0: å³è¾ºã®æ·»æ°
+# @rhs_subscript:: nil : not array, >=0: 右辺の添数
 #
 
 # @through_list::  @cp_through_list + @region_through_list
-#  ä»¥ä¸ã®æ§é ãæã¤ï¼@cp_through_list ã®æ§é ã¯å
-±éï¼
-# @cp_through_list::  å¼ã³å£ã«æå®ããã through
+#  以下の構造を持つ（@cp_through_list の構造は共通）
+# @cp_through_list::  呼び口に指定された through
 #   [ [plugin_name, cell_name, plugin_arg], [plugin_name2, cell_name2, plugin_arg], ... ]
-# @region_through_list::  region ã«æå®ããã through
+# @region_through_list::  region に指定された through
 #   [ [plugin_name, cell_name, plugin_arg, region], [plugin_name2, cell_name2, plugin_arg, region2], ... ]
 #
-# @through_generated_list:: [Plugin_class object, ...]: @through_list ã«å¯¾å¿
-# @region_through_generated_list:: [Plugin_class object, ...]: @region_through_list ã«å¯¾å¿
+# @through_generated_list:: [Plugin_class object, ...]: @through_list に対応
+# @region_through_generated_list:: [Plugin_class object, ...]: @region_through_list に対応
 #
 
   include PluginModule
 
-  #=== Join# åæå
-  #name:: string: ååï¼å±æ§åãå¼ã³å£åï¼
-  #subscript:: Nil=éé
-å, -1="[]", N="[N]"
-  #rhs:: Expression: å³è¾ºã®å¼
+  #=== Join# 初期化
+  #name:: string: 名前（属性名、呼び口名）
+  #subscript:: Nil=非配列, -1="[]", N="[N]"
+  #rhs:: Expression: 右辺の式
   def initialize( name, subscript, rhs, locale = nil )
     # dbgPrint "Join#new: #{name}, #{subscript} #{rhs.eval_const(nil)}\n"
@@ -4985,6 +4736,5 @@
     @name = name
     if subscript.instance_of?( Expression ) then
-       #mikan é
-åæ·»æ°ãæ´æ°ã§ãããã¨ãæªãã§ãã¯
+       #mikan 配列添数が整数であることを未チェック
        @subscript = subscript.eval_const(nil)
        if @subscript == nil then
@@ -4998,8 +4748,7 @@
     @definition = nil
 
-    # é
-åè¦ç´ ãè¨­å®
-    # æ¬å½ã¯ãååºã®è¦ç´ ã®ã¿è¨­å®ããã®ãé©å½
-    # new_join ã§ add_array_member ã®ä¸­ã§ååºè¦ç´ ã® array_member ã«å¯¾ãè¨­å®ãã
+    # 配列要素を設定
+    # 本当は、初出の要素のみ設定するのが適当
+    # new_join で add_array_member の中で初出要素の array_member に対し設定する
     if @subscript == -1 then
       @array_member  = [self]
@@ -5019,10 +4768,9 @@
   end
 
-  #===  Join# å·¦è¾ºã«å¯¾å¿ãã celltype ã®å®ç¾©ãè¨­å®ããã¨ã¨ãã«ãã§ãã¯ãã
+  #===  Join# 左辺に対応する celltype の定義を設定するとともにチェックする
   # STAGE:   S
   #
-  #     ä»£å
-¥å¯è½ããã§ãã¯ãã
-  #definition:: Decl (attribute,varã®æ) ã¾ãã¯ Port (callã®æ) ã¾ãã¯ nil (definition ãè¦ã¤ãããªãã£ãæ)
+  #     代入可能かチェックする
+  #definition:: Decl (attribute,varの時) または Port (callの時) または nil (definition が見つからなかった時)
 
   def set_definition( definition )
@@ -5030,8 +4778,8 @@
     dbgPrint "set_definition: #{@owner.get_name}.#{@name} = #{definition.class}\n"
 
-    # äºéãã§ãã¯ã®é²æ­¢
+    # 二重チェックの防止
     if @definition then
-      # set_definition ãåå¥ã«è¡ãã±ã¼ã¹ã§ãäºéã«è¡ãããå¯è½æ§ãããï¼ç°å¸¸ã§ã¯ãªãï¼
-      # äºéã« set_definition ãå®è¡ãããã¨ through ãäºéã«é©ç¨ããã¦ãã¾ã
+      # set_definition を個別に行うケースで、二重に行われる可能性がある（異常ではない）
+      # 二重に set_definition が実行されると through が二重に適用されてしまう
       # cdl_warning( "W9999 $1, internal error: set_definition duplicate", @name )
       return
@@ -5040,13 +4788,12 @@
     @definition = definition
 
-    # mikan å·¦è¾ºå¤ãå³è¾ºå¤ã®åãã§ãã¯ãªã©
+    # mikan 左辺値、右辺値の型チェックなど
     if @definition.instance_of?( Decl ) then
       check_var_init
     elsif @definition.instance_of?( Port ) then
       check_call_port_init
-      if @definition.get_port_type == :CALL then   # :ENTRY ãªãã¨ã©ã¼ãç¡è¦ããªã
+      if @definition.get_port_type == :CALL then   # :ENTRY ならエラー。無視しない
         check_and_gen_through
-        create_allocator_join  # through ãã©ã°ã¤ã³çæããå¾ã§ãªãã¨ãæ¿å
-¥åã®ã»ã«ã®ã¢ã­ã±ã¼ã¿ãçµåãã¦ãã¾ã
+        create_allocator_join  # through プラグイン生成した後でないと、挿入前のセルのアロケータを結合してしまう
       end
     elsif @definition == nil then
@@ -5057,13 +4804,13 @@
   end
 
-  #=== Join# å¤æ°ã®åæåãã§ãã¯
+  #=== Join# 変数の初期化チェック
   def check_var_init
-    # attribute, var ã®å ´å
+    # attribute, var の場合
     if @definition.get_kind == :ATTRIBUTE then
 #        check_cell_cb_init( definition.get_type, @rhs )
-      # å³è¾ºã§åæåå¯è½ããã§ãã¯
+      # 右辺で初期化可能かチェック
       @definition.get_type.check_init( @locale, @definition.get_identifier, @rhs, :ATTRIBUTE )
     elsif @definition.get_kind == :VAR then
-      # var ã¯åæåã§ããªã
+      # var は初期化できない
       cdl_error( "S1100 $1: cannot initialize var" , @name )
     else
@@ -5073,9 +4820,9 @@
   end
 
-  #=== Join# å¼ã³å£ã®åæåãã§ãã¯
+  #=== Join# 呼び口の初期化チェック
   def check_call_port_init
     ### Port
 
-    # å·¦è¾ºã¯åãå£ãï¼åãå£ãåæåãããã¨ãã¦ããï¼ï¼
+    # 左辺は受け口か（受け口を初期化しようとしている）？
     if @definition.get_port_type == :ENTRY then
       cdl_error( "S1101 \'$1\' cannot initialize entry port" , @name )
@@ -5083,10 +4830,6 @@
     end
 
-#      # é
-åæ·»æ°ã®æ´åæ§ãã§ãã¯
-#      # å¼ã³å£ã®å®ç¾©ã§ãéé
-åãªãæ·»æ°ãªããæ·»æ°ãªãé
-åãªãæ·»æ°ãªããæ·»æ°ããé
-åãªãæ·»æ°ãã
+#      # 配列添数の整合性チェック
+#      # 呼び口の定義で、非配列なら添数なし、添数なし配列なら添数なし、添数あり配列なら添数あり
     as = @definition.get_array_size
     if ( @subscript == nil && as != nil ) then
@@ -5111,23 +4854,21 @@
 #    end
 
-    # mikan Expression ã® get_type ã§åå°åºãããæ¹ãã¹ãã¼ã
-    # mikan '=' ã®å·¦è¾ºãé
-åãã©ããæªãã§ãã¯
-    #(1) '=' ã®å³è¾ºã¯ "Cell.ePort" ã®å½¢å¼ãï¼
-    #     æ¼ç®å­ã¯ "."  ãã¤ "." ã®å·¦è¾ºã :IDENTIFIER
-    #     "." ã®å³è¾ºã¯ãã§ãã¯ä¸è¦ (synatax çã« :IDENTIFIER)
-    #(2) "Cell" ã¯å­å¨ãããï¼ï¼ååãä¸è´ãããã®ã¯ãããï¼
-    #(3) "Cell" ã¯ cell ãï¼
-    #(4) "Cell" ã® celltype ã¯æå¹ãï¼ (ç¡å¹ãªãæ¢ã«ã¨ã©ã¼ï¼
-    #(5) "ePort" ã¯ "Cell" ã® celltype å
-ã«å­å¨ãããï¼
-    #(6) "ePort" ã¯ entry port ãï¼
-    #(7) signature ã¯ä¸è´ããã
-
-    # å³è¾ºããªãï¼ä»¥åã®æ®µéã§ã¨ã©ã¼ï¼
+    # mikan Expression の get_type で型導出させる方がスマート
+    # mikan '=' の左辺が配列かどうか未チェック
+    #(1) '=' の右辺は "Cell.ePort" の形式か？
+    #     演算子は "."  かつ "." の左辺が :IDENTIFIER
+    #     "." の右辺はチェック不要 (synatax 的に :IDENTIFIER)
+    #(2) "Cell" は存在するか？（名前が一致するものはあるか）
+    #(3) "Cell" は cell か？
+    #(4) "Cell" の celltype は有効か？ (無効なら既にエラー）
+    #(5) "ePort" は "Cell" の celltype 内に存在するか？
+    #(6) "ePort" は entry port か？
+    #(7) signature は一致するか
+
+    # 右辺がない（以前の段階でエラー）
     return unless @rhs
 
-    # cCall = composite.cCall; ã®ãã§ãã¯ï¼ãã®å½¢å¼ã¯å±æ§ç¨
-    # å¼ã³å£ã export ããã«ã¯ cCall => composite.cCall; ã®å½¢å¼ãç¨ãã
+    # cCall = composite.cCall; のチェック．この形式は属性用
+    # 呼び口を export するには cCall => composite.cCall; の形式を用いる
     if @rhs.instance_of?( Array ) == true && @rhs[0] == :COMPOSITE then
       cdl_error( "S1107 to export port, use \'cCall => composite.cCall\'"  )
@@ -5137,5 +4878,5 @@
     end
 
-    # å³è¾ºã® Expression ã®è¦ç´ ãåãåºã
+    # 右辺の Expression の要素を取り出す
     ret = @rhs.analyze_cell_join_expression
     if ret == nil then   #1
@@ -5145,13 +4886,11 @@
 
     nsp, @rhs_subscript, @port_name = ret[0], ret[1], ret[2]
-    @cell_name = nsp.get_name     # mikan ns::cellname ã®å½¢å¼ã®èæ
-®
-
-    # composite ã®å®ç¾©ã®ä¸­ãªã object ã¯çµåå
- cell ããè¦ã¤ãããªããã° nil ãè¿ã
-    # composite ã®å®ç¾©å¤ãªã false ãè¿ã
+    @cell_name = nsp.get_name     # mikan ns::cellname の形式の考慮
+
+    # composite の定義の中なら object は結合先 cell か、見つからなければ nil が返る
+    # composite の定義外なら false が返る
     object = CompositeCelltype.find( @cell_name )
     if object == false then
-#     mikan å·¦è¾ºã namespace ã«å¯¾å¿ãã¦ããªãããã path ã«ãã¦ find
+#     mikan 左辺が namespace に対応していないため。 path にして find
       # p nsp.get_path_str, nsp.get_path
       object = Namespace.find( nsp )    #1
@@ -5172,5 +4911,5 @@
       object.set_f_ref
 
-      # å³è¾ºã®ã»ã«ã®ã»ã«ã¿ã¤ã
+      # 右辺のセルのセルタイプ
       celltype = object.get_celltype
 
@@ -5185,9 +4924,8 @@
           cdl_error( "S1113 \'$1\' signature mismatch" , @port_name )
         elsif object2.get_array_size then
-          # åãå£é
-å
+          # 受け口配列
 
           unless @rhs_subscript then
-            # å³è¾ºã«æ·»æ°æå®ããªãã£ã
+            # 右辺に添数指定がなかった
             cdl_error( "S1114 \'$1\' should be array" , @port_name )
           else
@@ -5195,6 +4933,5 @@
             as = object2.get_array_size
             if( as.kind_of?( Integer ) && as <= @rhs_subscript )then
-              # åãå£é
-åã®å¤§ããã«å¯¾ããå³è¾ºã®æ·»æ°ãåããå¤§ãã
+              # 受け口配列の大きさに対し、右辺の添数が同じか大きい
               cdl_error( "S1115 $1[$2]: subscript out of range (< $3)" , @port_name, @rhs_subscript, as )
             else
@@ -5203,6 +4940,5 @@
               @celltype = celltype
               @port = object2
-              # å³è¾ºã®ã»ã«ã®åãå£ object2 ãåç
-§æ¸ã¿ã«ãã
+              # 右辺のセルの受け口 object2 を参照済みにする
               # object2: Port, @definition: Port
               @cell.set_entry_port_max_subscript( @port, @rhs_subscript )
@@ -5214,6 +4950,5 @@
           end
         elsif @rhs_subscript then
-          # åãå£é
-åã§ãªãã®ã«å³è¾ºã§æ·»æ°æå®ããã¦ãã
+          # 受け口配列でないのに右辺で添数指定されている
           cdl_error( "S1116 \'$1\' entry port is not array" , @port_name )
         else
@@ -5223,39 +4958,35 @@
           @celltype = celltype
 
-          # å³è¾ºã®ã»ã« object ã®åãå£ object2 ãåç
-§æ¸ã¿ã«ãã
+          # 右辺のセル object の受け口 object2 を参照済みにする
           # object2: Port, @definition: Port
 
           # debug
           # p "rhs:  #{@cell}  #{@cell.get_name}"
-        end  # end of port (object2) ãã§ãã¯
+        end  # end of port (object2) チェック
 
         #else
-        #  celltype == nil (ãã§ã«ã¨ã©ã¼)
-      end  # end of celltyep ãã§ãã¯
+        #  celltype == nil (すでにエラー)
+      end  # end of celltyep チェック
 
 
       check_region( object )
 
-    end  # end of cell (object) ãã§ãã¯
-
-  end
-
-  #=== Join# ã¢ã­ã±ã¼ã¿ã®çµåãçæ
+    end  # end of cell (object) チェック
+
+  end
+
+  #=== Join# アロケータの結合を生成
   # STAGE: S
-  #cell::  å¼ã³å£ã®çµåå
-ã®ã»ã«
+  #cell::  呼び口の結合先のセル
   #
-  # ããã§ã¯å¼ã³å£å´ã«çæãããã¢ã­ã±ã¼ã¿å¼ã³å£ã®çµåãçæ
-  # åãå£å´ã¯ Cell ã® set_specifier_list ã§çæ
-  #  a[*] ã®å
-å®¹ã¯ Cell ã® set_specifier_list ãåç
-§
+  # ここでは呼び口側に生成されるアロケータ呼び口の結合を生成
+  # 受け口側は Cell の set_specifier_list で生成
+  #  a[*] の内容は Cell の set_specifier_list を参照
   def create_allocator_join
 
-    cell = get_rhs_cell2   # å³è¾ºã®ã»ã«ãå¾ã
+    cell = get_rhs_cell2   # 右辺のセルを得る
     port = get_rhs_port2
 
-    if( cell && cell.get_allocator_list ) then      # cell == nil ãªãæ¢ã«ã¨ã©ã¼
+    if( cell && cell.get_allocator_list ) then      # cell == nil なら既にエラー
 
       dbgPrint "create_allocator_join: #{@owner.get_name}.#{@name}=>#{cell ? cell.get_name : "nil"}\n"
@@ -5264,6 +4995,6 @@
 
         if( a[0+1] == port && a[1+1] == @rhs_subscript )then
-          # ååã®ä¸è´ãããã®ã®çµåãçæãã
-          # éä¸è¶³ã¯ãå¥éãã§ãã¯ããã
+          # 名前の一致するものの結合を生成する
+          # 過不足は、別途チェックされる
           cp_name = :"#{@name}_#{a[2+1]}_#{a[3+1]}"
           # p "creating allocator join #{cp_name} #{@subscript} #{a[1+1]}"
@@ -5280,9 +5011,8 @@
   end
 
-  #=== Join# ãªã¼ã¸ã§ã³éã®çµåããã§ãã¯
-  # ãªã¼ã¸ã§ã³éã® through ã«ãã @region_through_list ã®ä½æ
-  # å®éã®çæã¯ check_and_gen_through ã§è¡ã
-  # mikan Cell#distance ã¨Region ã¸ãã©ãçãã¾ã§ããã®å¦çã«å
-±éé¨åãå¤ã
+  #=== Join# リージョン間の結合をチェック
+  # リージョン間の through による @region_through_list の作成
+  # 実際の生成は check_and_gen_through で行う
+  # mikan Cell#distance とRegion へたどり着くまでための処理に共通部分が多い
   def check_region( object )
 
@@ -5291,19 +5021,18 @@
     # print "DOMAIN: check_region #{@owner.get_name}.#{@name} => #{object.get_name}\n"
 
-    # ãã©ã°ã¤ã³ã§çæããããªãã§ã¯çæããªã
-    # ãããªãã¨ãã©ã°ã¤ã³çæããããã®ã¨ã®éã§ãç¡éã«çæããã
+    # プラグインで生成されたなかでは生成しない
+    # さもないとプラグイン生成されたものとの間で、無限に生成される
 ##    if Generator.get_nest >= 1 then
-##    if Generator.get_plugin then     # mikan ããã¯å¿
-è¦ï¼ (æå³è§£ææ®µéã§ã®å®è¡ã«ãªãã®ã§ä¸é©å)
+##    if Generator.get_plugin then     # mikan これは必要？ (意味解析段階での実行になるので不適切)
     if @owner.get_plugin.kind_of?( ThroughPlugin ) then
-      # ãã©ã°ã¤ã³çæãããã»ã«ã®å ´åãçµåãã§ãã¯ã®ã¿
+      # プラグイン生成されたセルの場合、結合チェックのみ
       return
     end
 
-    # region ã®ãã§ãã¯
-    r1 = @owner.get_region      # å¼ã³å£ã»ã«ã® region
-    r2 = object.get_region      # åãå£ã»ã«ã® region
-
-    if ! r1.equal? r2 then      # åä¸ region ãªãå¼åºãå¯è½
+    # region のチェック
+    r1 = @owner.get_region      # 呼び口セルの region
+    r2 = object.get_region      # 受け口セルの region
+
+    if ! r1.equal? r2 then      # 同一 region なら呼出し可能
 
       f1 = r1.get_family_line
@@ -5312,8 +5041,6 @@
       len2 = f2.length
 
-      # ä¸ä¸è´ã«ãªãã¨ããï¼å
-å¼ï¼ãæ¢ã
-      i = 1  # i = 0 ã¯ :RootRegion ãªã®ã§å¿
-ãä¸è´
+      # 不一致になるところ（兄弟）を探す
+      i = 1  # i = 0 は :RootRegion なので必ず一致
       while( i < len1 && i < len2 )
         if( f1[i] != f2[i] )then
@@ -5323,6 +5050,5 @@
       end
 
-      sibling_level = i     # å
-å¼ã¨ãªãã¬ãã«ããããã¯ã©ã¡ããä¸æ¹ãçµãã£ãã¬ãã«
+      sibling_level = i     # 兄弟となるレベル、もしくはどちらか一方が終わったレベル
 
       dbgPrint "sibling_level: #{i}\n"
@@ -5337,8 +5063,5 @@
 
 
-      # å¼ã³å´ã«ã¤ãã¦å¼ã³å
-ã®ã¬ãã«ããå
-å¼ã¬ãã«ã¾ã§ï¼out_through ããã§ãã¯ããã³æ¿å
-¥ï¼
+      # 呼び側について呼び元のレベルから兄弟レベルまで（out_through をチェックおよび挿入）
       i = len1 -1
       if b_to_through then
@@ -5364,5 +5087,5 @@
 
         out_through_list.each { |ol|
-          if ol[0] then    # plugin_name ãæå®ããã¦ããªããã°ç»é²ããªã
+          if ol[0] then    # plugin_name が指定されていなければ登録しない
             plugin_arg = CDLString.remove_dquote ol[1]
             through = [ ol[0], :"Join_out_through_", plugin_arg, f1[i], f1[i-1], :OUT_THROUGH, region_count]
@@ -5377,14 +5100,12 @@
       end
 
-      # å
-å¼ã¬ãã«ã«ããã¦ï¼to_through ããã§ãã¯ããã³æ¿å
-¥ï¼
+      # 兄弟レベルにおいて（to_through をチェックおよび挿入）
       if f1[sibling_level] && f2[sibling_level] then
         dbgPrint "going from #{f1[sibling_level].get_name} to #{f2[sibling_level].get_name}\n"
         found = 0
-        region_count = f1[i].next_to_through_count( f2[sibling_level].get_name )   # to_through ã® region ã«ã¦ã³ã
+        region_count = f1[i].next_to_through_count( f2[sibling_level].get_name )   # to_through の region カウント
         f1[sibling_level].get_to_through_list.each { |t|
-          if t[0][0] == f2[sibling_level].get_name then   # region åãä¸è´ããã ?
-            if t[1] then    # plugin_name ãæå®ããã¦ããªããã°ç»é²ããªã
+          if t[0][0] == f2[sibling_level].get_name then   # region 名が一致するか ?
+            if t[1] then    # plugin_name が指定されていなければ登録しない
               plugin_arg = CDLString.remove_dquote t[2]
               through = [ t[1], :"Join_to_through__", plugin_arg, f1[sibling_level], f2[sibling_level], :TO_THROUGH, region_count ]
@@ -5409,9 +5130,7 @@
       end
 
-      # åãå´ã«ã¤ãã¦å
-å¼ã¬ãã«ããåãå´ã®ã¬ãã«ã¾ã§ï¼in_through ããã§ãã¯ããã³æ¿å
-¥ï¼
+      # 受け側について兄弟レベルから受け側のレベルまで（in_through をチェックおよび挿入）
       if b_to_through then
-        i = sibling_level + 1      # to_through ãçµãå ´åãæåã® in_through ã¯é©ç¨ããªã
+        i = sibling_level + 1      # to_through を経た場合、最初の in_through は適用しない
       else
         i = sibling_level
@@ -5436,5 +5155,5 @@
         end
         in_through_list.each { |il|
-          if il[0] then    # plugin_name ãæå®ããã¦ããªããã°ç»é²ããªã
+          if il[0] then    # plugin_name が指定されていなければ登録しない
             plugin_arg = CDLString.remove_dquote il[1]
             through = [ il[0], :"Join_in_through_", plugin_arg, f2[i-1], f2[i],:IN_THROUGH, region_count ]
@@ -5449,13 +5168,13 @@
 
 
-  #=== Join# çæããªããªã¼ã¸ã§ã³ã¸ã®çµåããã§ãã¯
-  # å³è¾ºã®ã»ã«ããçæãããªããªã¼ã¸ã§ã³ã«ããã°ã¨ã©ã¼
-  # å³è¾ºã¯ããã©ã°ã¤ã³çæãããã»ã«ãããã°ããããå¯¾è±¡ã¨ãã
+  #=== Join# 生成しないリージョンへの結合かチェック
+  # 右辺のセルが、生成されないリージョンにあればエラー
+  # 右辺は、プラグイン生成されたセルがあれば、それを対象とする
   def check_region2
     lhs_cell = @owner
 
-    # çæããªããªã¼ã¸ã§ã³ã®ã»ã«ã¸ã®çµåãï¼
+    # 生成しないリージョンのセルへの結合か？
     # if join.get_cell && ! join.get_cell.is_generate? then
-    # if get_rhs_cell && ! get_rhs_cell.is_generate? then # composite ã»ã«ããã­ã¿ã¤ãå®£è¨ã®å ´åä¾å¤
+    # if get_rhs_cell && ! get_rhs_cell.is_generate? then # composite セルがプロタイプ宣言の場合例外
     # print "Link root: (caller #{@owner.get_name}) '#{@owner.get_region.get_link_root.get_name}'"
     # print " #{@owner.get_region.get_link_root == get_rhs_region.get_link_root ? "==" : "!="} "
@@ -5470,5 +5189,5 @@
       end
     else
-      # rhs ã®ã»ã«ãå­å¨ããªãã£ã (æ¢ã«ã¨ã©ã¼)
+      # rhs のセルが存在しなかった (既にエラー)
     end
   end
@@ -5478,9 +5197,9 @@
   end
 
-  #=== Join# specifier ãè¨­å®
+  #=== Join# specifier を設定
   # STAGE: B
-  # set_specifier_list ã¯ãjoin ã®è§£æã®æå¾ã§å¼ã³åºããã
-  # through æå®å­ãè¨­å®
-  #  check_and_gen_through ãå¼åºãã¦ãthrough çæ
+  # set_specifier_list は、join の解析の最後で呼び出される
+  # through 指定子を設定
+  #  check_and_gen_through を呼出して、through 生成
   def set_specifier_list( specifier_list )
 
@@ -5490,6 +5209,5 @@
         # set plugin_name
         plugin_name = s[1].to_s
-        plugin_name[0] = "#{plugin_name[/^./].upcase}"     # å
-é ­æå­ãå¤§æå­ã« : ruby ã®ã¯ã©ã¹åã®å¶ç´
+        plugin_name[0] = "#{plugin_name[/^./].upcase}"     # 先頭文字を大文字に : ruby のクラス名の制約
 
         # set cell_name
@@ -5498,5 +5216,5 @@
         # set plugin_arg
         plugin_arg = CDLString.remove_dquote s[2].to_s
-        # plugin_arg = s[2].to_s.gsub( /\A"(.*)/, '\1' )   # åå¾ã® "" ãåãé¤ã
+        # plugin_arg = s[2].to_s.gsub( /\A"(.*)/, '\1' )   # 前後の "" を取り除く
         # plugin_arg.sub!( /(.*)"\z/, '\1' )
 
@@ -5507,8 +5225,8 @@
   end
 
-  #=== Join# through ã®ãã§ãã¯ã¨çæ
-  # new_join ã®ä¸­ã® check_region ã§ region éã® through ã @region_through ã«è¨­å®ããã
-  # set_specifier ã§å¼ã³å£ã®çµåã§æå®ããã through ã @cp_through è¨­å®ããã
-  # ãã®å¾ããã®ã¡ã½ãããå¼ã°ãã
+  #=== Join# through のチェックと生成
+  # new_join の中の check_region で region 間の through が @region_through に設定される
+  # set_specifier で呼び口の結合で指定された through が @cp_through 設定される
+  # その後、このメソッドが呼ばれる
   def check_and_gen_through
 
@@ -5531,9 +5249,8 @@
 
     @through_list = @cp_through_list + @region_through_list
-      # å¾ãã @cp_through_list ã¨ @region_through_list ã«åããããããã®ãããªå®è£
-ã«ãªã£ã
+      # 後から @cp_through_list と @region_through_list に分けたため、このような実装になった
 
     if @through_list then           # nil when the join is not Port
-      len = @through_list.length    # through ãé£æ¥ãã¦ããæ°
+      len = @through_list.length    # through が連接している数
     else
       len = 0
@@ -5546,5 +5263,5 @@
     end
 
-    # é£ç¶ãã through ã«ã¤ãã¦ãåãå£å´ããé ã«ã»ã«ãçæãè§£éãã
+    # 連続した through について、受け口側から順にセルを生成し解釈する
     i = len - 1
     while i >= 0
@@ -5575,11 +5292,10 @@
 
       else
-        # æå¾ã®ã»ã«ã®å ´åãæ¬¡ã®ã»ã«ã®ååããã¼ãå
+        # 最後のセルの場合、次のセルの名前、ポート名
         next_cell      = @cell
         next_port_name = @port_name
 
         if next_cell == nil then
-          # çµåå
-ããªã
+          # 結合先がない
           return
         end
@@ -5587,16 +5303,14 @@
 
       if i >= cp_len then
-        # region_through_list é¨å
-        # region ãã @cell_name.@port_name ã¸ã® through ããªããæ¢ã
+        # region_through_list 部分
+        # region から @cell_name.@port_name への through がないか探す
         # rp = @through_list[i][3].find_cell_port_through_plugin( @cell_name, @port_name ) #762
         rp = @through_list[i][3].find_cell_port_through_plugin( @cell.get_global_name, @port_name )
-           # @through_list[i] ã¨ @region_through_list[i-cp_len] ã¯åã
-        # å
-±ç¨ããªãããã«ããã«ã¯ãè¦ã¤ãããªãã£ããã¨ã«ããã°ãã
+           # @through_list[i] と @region_through_list[i-cp_len] は同じ
+        # 共用しないようにするには、見つからなかったことにすればよい
         # rp = nil
       else
-        # region ä»¥å¤ã®ãã®ã¯å
-±æããªã
-        # å¼ã³å£å´ã«æå®ããã¦ããããplugin_arg ãç°ãªããããããªã
+        # region 以外のものは共有しない
+        # 呼び口側に指定されているし、plugin_arg が異なるかもしれない
         rp = nil
       end
@@ -5607,14 +5321,13 @@
         end
       else
-        # è¦ã¤ãã£ããã®ãå
-±ç¨ãã
+        # 見つかったものを共用する
         @through_generated_list[ i ] = rp
       end
 
       if i >= cp_len then
-        # @through_generated_list ã®ãã¡ @region_through_listã«å¯¾å¿ããé¨å
+        # @through_generated_list のうち @region_through_listに対応する部分
         @region_through_generated_list[ i - cp_len ] = @through_generated_list[ i ]
         if rp == nil then
-          # çæãããã®ã region(@through_list[i][3]) ã®ãªã¹ãã«è¿½å 
+          # 生成したものを region(@through_list[i][3]) のリストに追加
           # @through_list[i][3].add_cell_port_through_plugin( @cell_name, @port_name, @through_generated_list[i] ) #762
           @through_list[i][3].add_cell_port_through_plugin( @cell.get_global_name, @port_name, @through_generated_list[i] )
@@ -5623,10 +5336,9 @@
 
       if i == 0 then
-        # æãå¼ã³å£å´ã®ã»ã«ã¯ãCDL ä¸ã®çµåããªããããåç
-§ããããã¨ã«ãªããªã
-        # mikan namespace å¯¾å¿
+        # 最も呼び口側のセルは、CDL 上の結合がないため、参照されたことにならない
+        # mikan namespace 対応
         # cell = Namespace.find( [ @through_generated_list[0].get_cell_name] )    #1
         if @through_generated_list[0] == nil then
-          return  # plugin_object ã®çæã«å¤±æãã¦ãã
+          return  # plugin_object の生成に失敗している
         end
         cell = Namespace.find( @through_generated_list[0].get_cell_namespace_path )    #1
@@ -5652,5 +5364,5 @@
   end
 
-  #=== Join# through ãã©ã°ã¤ã³ãå¼ã³åºãã¦ CDL çæãããã¨ã¨ãã«ãimport ãã
+  #=== Join# through プラグインを呼び出して CDL 生成させるとともに、import する
   def gen_through_cell_code_and_parse( plugin_name, i, next_cell, next_port_name )
 
@@ -5660,5 +5372,5 @@
     plugin_arg            = through[ 2 ]
     if through[ 3 ] then
-      # region éã® through ã®å ´å
+      # region 間の through の場合
       @@start_region      = through[ 3 ]
       if next_cell.get_region.equal? @@start_region then
@@ -5670,8 +5382,8 @@
       @@region_count      = through[ 6 ]
     else
-      # å¼ã³å£ã® through ã®å ´å
-      @@start_region      = @owner.get_region    # å¼ã³å£å´ã»ã«ã® region
-      @@end_region        = next_cell.get_region # æ¬¡ã®ã»ã«ã® region
-      @@through_type      = :THROUGH             # å¼ã³å£ã® through æå®
+      # 呼び口の through の場合
+      @@start_region      = @owner.get_region    # 呼び口側セルの region
+      @@end_region        = next_cell.get_region # 次のセルの region
+      @@through_type      = :THROUGH             # 呼び口の through 指定
       @@region_count      = 0
     end
@@ -5687,5 +5399,5 @@
 
     begin
-      eval( eval_str )     # plugin ãçæ
+      eval( eval_str )     # plugin を生成
       plugin_object.set_locale @locale
     rescue Exception => evar
@@ -5702,7 +5414,6 @@
     @through_generated_list[ i ] = plugin_object
 
-    # Region ã«é¢ããæ
-å ±ãè¨­å®
-    # å¾ããè¿½å ããã®ã§ãnew ã®å¼æ°å¤ã§è¨­å®
+    # Region に関する情報を設定
+    # 後から追加したので、new の引数外で設定
     # plugin_object.set_through_info( start_region, end_region, through_type )
 
@@ -5710,6 +5421,6 @@
   end
 
-  #ãã©ã°ã¤ã³ã¸ã®å¼æ°ã§æ¸¡ããªããã®ããä¸æçã«è¨æ¶ãã¦ãã
-  # ãã©ã°ã¤ã³ã® initialize ã®ä¸­ã§ã³ã¼ã«ããã¯ãã¦è¨­å®ãã
+  #プラグインへの引数で渡さないものを、一時的に記憶しておく
+  # プラグインの initialize の中でコールバックして設定する
   @@plugin_creating_join = nil
   @@start_region = nil
@@ -5718,9 +5429,7 @@
   @@region_count = nil
 
-  #=== Join# ThroughPlugin ã®è¿½å æ
-å ±ãè¨­å®ãã
-  # ãã®ã¡ã½ããã¯ ThroughPlugin#initialize ããå¼ã³åºããã
-  # plugin_object ãçæããéã®å¼æ°ã§ã¯ä¸è¶³ããæ
-å ±ãè¿½å ãã
+  #=== Join# ThroughPlugin の追加情報を設定する
+  # このメソッドは ThroughPlugin#initialize から呼び出される
+  # plugin_object を生成する際の引数では不足する情報を追加する
   def self.set_through_info plugin_object
     plugin_object.set_through_info( @@start_region, @@end_region, @@through_type,
@@ -5734,13 +5443,11 @@
   end
 
-  #=== Join#é
-åæ·»æ°ãå¾ã
-  # @subscript ã®èª¬æãåç
-§ã®ãã¨
+  #=== Join#配列添数を得る
+  # @subscript の説明を参照のこと
   def get_subscript
     @subscript
   end
 
-  def get_cell_name         # åãå£ã»ã«å
+  def get_cell_name         # 受け口セル名
     @cell_name
   end
@@ -5754,42 +5461,39 @@
   end
 
-  #=== Join# å³è¾ºã®å®ã»ã«ãå¾ã
-  #    å®ã»ã«ã¨ã¯ through ã§æ¿å
-¥ããããã®ãcomposite ã®å
-é¨ãªã©å®éã«çµåãããå
-
-  #    ãã®ã¡ã½ããã¯ãget_rhs_port ã¨å¯¾ã«ãªã£ã¦ãã
-  #    ãã®ã¡ã½ããã¯ãæå³è§£ææ®µéã§ã¯å¼ã³åºãã¦ã¯ãªããªã (å¯¾è±¡ã»ã«ã®æå³è§£æãæ¸ãåã«ã¯æ­£ããçµæãè¿ããªã)
+  #=== Join# 右辺の実セルを得る
+  #    実セルとは through で挿入されたもの、composite の内部など実際に結合される先
+  #    このメソッドは　get_rhs_port と対になっている
+  #    このメソッドは、意味解析段階では呼び出してはならない (対象セルの意味解析が済む前には正しい結果を返さない)
   def get_rhs_cell
-    # through æå®ããï¼
+    # through 指定あり？
     if @through_list[0] then
-      # mikan through ã§çæãããã®ã root namespace éå®
+      # mikan through で生成したものが root namespace 限定
       if @through_generated_list[0] then
         # cell = Namespace.find( [ "::", @through_generated_list[0].get_cell_name.to_sym ] )    #1
         cell = Namespace.find( @through_generated_list[0].get_cell_namespace_path )    #1
-        # cell ã nil ã«ãªãã®ã¯ãã©ã°ã¤ã³ã® get_cell_namespace_path ãæ­£ãããªããã
-        # ãã©ã°ã¤ã³çæã³ã¼ããã¨ã©ã¼ã«ãªã£ã¦ããã
-        # ã§ãã®æªããã©ã°ã¤ã³ãå¤ããã°ãcell == nil ãã¯ãããæ¹ãããã
+        # cell が nil になるのはプラグインの get_cell_namespace_path が正しくないか、
+        # プラグイン生成コードがエラーになっている。
+        # できの悪いプラグインが多ければ、cell == nil をはじいた方がよい。
         return cell.get_real_cell( @through_generated_list[0].get_through_entry_port_name )
       else
-        return nil            # generate ã«å¤±æãã¦ãã
+        return nil            # generate に失敗している
       end
     elsif @cell then
       return @cell.get_real_cell( @port_name )
     else
-      # å³è¾ºãæªå®ç¾©ã®å ´å @cell ã¯ nil (æ¢ã«ã¨ã©ã¼)
+      # 右辺が未定義の場合 @cell は nil (既にエラー)
       return nil
     end
   end
 
-  #=== Join# å³è¾ºã®ã»ã«ãå¾ã
-  # å³è¾ºã®ã»ã«ãå¾ãããã ããcomposite å±éããã¦ããªã
-  # composite å±éããããã®ãå¾ãã«ã¯ get_rhs_cell ãä½¿ã
-  # ãã­ãã¿ã¤ãå®£è¨ããããã¦ããªãå ´åã«ã¯ããã¡ãããä½¿ããªã
-  # ãã®ã¡ã½ããã¯ get_rhs_port2 ã¨å¯¾ã«ãªã£ã¦ãã
+  #=== Join# 右辺のセルを得る
+  # 右辺のセルを得る。ただし、composite 展開されていない
+  # composite 展開されたものを得るには get_rhs_cell を使う
+  # プロトタイプ宣言しかされていない場合には、こちらしか使えない
+  # このメソッドは get_rhs_port2 と対になっている
   def get_rhs_cell2
-    # through æå®ããï¼
+    # through 指定あり？
     if @through_list[0] then
-      # mikan through ã§çæãããã®ã root namespace éå®
+      # mikan through で生成したものが root namespace 限定
       # cell = Namespace.find( [ "::", @through_generated_list[0].get_cell_name ] )
       if @through_generated_list[0] then
@@ -5797,5 +5501,5 @@
         cell = Namespace.find( @through_generated_list[0].get_cell_namespace_path )    #1
       else
-        cell = @cell            # generate ã«å¤±æãã¦ãã
+        cell = @cell            # generate に失敗している
       end
     else
@@ -5806,8 +5510,8 @@
   end
 
-  #=== Join# å³è¾ºã®ã»ã«ãå¾ã
-  # through ã¯é©ç¨ããªãããcomposite ã¯å±éããå¾ã®ã»ã«
-  # (æå³è§£æãçµãã£ã¦ããªãã¨ãcomposite å±éãçµãã£ã¦ããªã)
-  # ãã®ã¡ã½ããã¯ get_rhs_port3 ã¨å¯¾ã«ãªã£ã¦ãã
+  #=== Join# 右辺のセルを得る
+  # through は適用しないが、composite は展開した後のセル
+  # (意味解析が終わっていないと、composite 展開が終わっていない)
+  # このメソッドは get_rhs_port3 と対になっている
   def get_rhs_cell3
     if @cell then
@@ -5816,13 +5520,13 @@
   end
 
-  #=== Join# å³è¾ºã®ã»ã«ã®ãªã¼ã¸ã§ã³ãå¾ã
-  # å³è¾ºãæªå®ç¾©ã®å ´åãnil ãè¿ã
-  # composite ã®å ´åãå®ã»ã«ã§ã¯ãªã composite cell ã® region ãè¿ã(composite ã¯ãã¹ã¦åã region ã«å±ãã)
-  # composite ã® cell ããã­ãã¿ã¤ãå®£è¨ããã¦ããã¨ã get_rhs_cell/get_real_cell ã¯ ruby ã®ä¾å¤ã¨ãªã
+  #=== Join# 右辺のセルのリージョンを得る
+  # 右辺が未定義の場合、nil を返す
+  # composite の場合、実セルではなく composite cell の region を返す(composite はすべて同じ region に属する)
+  # composite の cell がプロトタイプ宣言されているとき get_rhs_cell/get_real_cell は ruby の例外となる
   def get_rhs_region
-    # through æå®ããï¼
+    # through 指定あり？
     if @through_list[0] then
       if @through_generated_list[0] then
-        # mikan through ã§çæãããã®ã root namespace éå®
+        # mikan through で生成したものが root namespace 限定
         # cell = Namespace.find( [ "::", @through_generated_list[0].get_cell_name.to_sym ] )    #1
         cell = Namespace.find( @through_generated_list[0].get_cell_namespace_path )    #1
@@ -5831,15 +5535,14 @@
         end
       else
-        return nil       # generate ã«å¤±æãã¦ãã
+        return nil       # generate に失敗している
       end
     elsif @cell then
       return @cell.get_region
     end
-    # å³è¾ºãæªå®ç¾©ã®å ´å @cell ã¯ nil (æ¢ã«ã¨ã©ã¼)
+    # 右辺が未定義の場合 @cell は nil (既にエラー)
     return nil
   end
 
-  def get_cell_global_name  # åãå£ã»ã«åï¼ã³ã³ãã¸ãããªãå±éããå
-å´ã®ã»ã«ï¼
+  def get_cell_global_name  # 受け口セル名（コンポジットなら展開した内側のセル）
 
     # debug
@@ -5855,29 +5558,24 @@
   end
 
-  #===  Join# çµåã®å³è¾ºã®åãå£ã®åå
-  #     namespace å + '_' + ã»ã«å + '_' + åãå£å   ï¼ãã®ã»ã«ã composite ãªãã°å±éå¾ã®ã»ã«åãåãå£åï¼
-  #subscript:: Integer  å¼ã³å£é
-åã®ææ·»æ° ã¾ãã¯ nil å¼ã³å£é
-åã§ãªãæ
-  def get_port_global_name( subscript = nil )  # åãå£åï¼ã³ã³ãã¸ãããªãå±éããå
-å´ã®ã»ã«ï¼
+  #===  Join# 結合の右辺の受け口の名前
+  #     namespace 名 + '_' + セル名 + '_' + 受け口名   （このセルが composite ならば展開後のセル名、受け口名）
+  #subscript:: Integer  呼び口配列の時添数 または nil 呼び口配列でない時
+  def get_port_global_name( subscript = nil )  # 受け口名（コンポジットなら展開した内側のセル）
 
     # debug
     dbgPrint "Cell get_port_global_name:  #{@cell_name}\n"
 
-    # through æå®ããï¼
+    # through 指定あり？
     if @through_list[0] then
 
-      # mikan through ã§çæãããã®ã root namespace éå®
+      # mikan through で生成したものが root namespace 限定
       # cell = Namespace.find( [ "::", @through_generated_list[0].get_cell_name.to_sym ] )    #1
       cell = Namespace.find( @through_generated_list[0].get_cell_namespace_path )    #1
 
-      # through ã§æ¿å
-¥ãããã»ã«ã§ãå®éã«æ¥ç¶ãããã»ã«ï¼compositeã®å ´åå
-é¨ã®)ã®åãå£ã® C è¨èªåå
+      # through で挿入されたセルで、実際に接続されるセル（compositeの場合内部の)の受け口の C 言語名前
       return cell.get_real_global_port_name( @through_generated_list[0].get_through_entry_port_name )
     else
 
-      # å®éã«æ¥ç¶ãããã»ã«ã®åãå£ã® C è¨èªåå
+      # 実際に接続されるセルの受け口の C 言語名前
       if @cell then
         return @cell.get_real_global_port_name( @port_name )
@@ -5902,36 +5600,32 @@
   end
 
-  #=== Join# å³è¾ºã®ãã¼ããå¾ã
-  #    å³è¾ºã composite ã®å ´åã¯ãå
-é¨ã®ç¹ããã»ã«ã®ãã¼ã, through ã®å ´åã¯æ¿å
-¥ãããã»ã«ã®ãã¼ã
-  #    ãã®ã¡ã½ããã¯ get_rhs_cell ã¨å¯¾ã«ãªã£ã¦ãã
+  #=== Join# 右辺のポートを得る
+  #    右辺が composite の場合は、内部の繋がるセルのポート, through の場合は挿入されたセルのポート
+  #    このメソッドは get_rhs_cell と対になっている
   def get_rhs_port
-    # through æå®ããï¼
+    # through 指定あり？
     if @through_list[0] then
-      # mikan through ã§çæãããã®ã root namespace éå®
-      # through ã§çæãããã»ã«ãæ¢ã
+      # mikan through で生成したものが root namespace 限定
+      # through で生成されたセルを探す
 #      cell = Namespace.find( [ "::", @through_generated_list[0].get_cell_name.to_sym ] )    #1
       cell = Namespace.find( @through_generated_list[0].get_cell_namespace_path )    #1
-      # cell ã®ãã©ã°ã¤ã³ã§çæããããã¼ãåã®ãã¼ããæ¢ã (composite ãªãå
-é¨ã®ç¹ãããã¼ã)
+      # cell のプラグインで生成されたポート名のポートを探す (composite なら内部の繋がるポート)
       return cell.get_real_port( @through_generated_list[0].get_through_entry_port_name )
     else
-      # ãã¼ããè¿ã(composite ãªãå
-é¨ã®ç¹ãããã¼ããè¿ã)
+      # ポートを返す(composite なら内部の繋がるポートを返す)
       return @cell.get_real_port( @port_name )
     end
   end
 
-  #=== Join# å³è¾ºã®ãã¼ããå¾ã
-  # å³è¾ºã®ãã¼ããå¾ãã
-  # ããã¯ãã­ãã¿ã¤ãå®£è¨ããããã¦ããªãå ´åã«ã¯ããã¡ãããä½¿ããªã
+  #=== Join# 右辺のポートを得る
+  # 右辺のポートを得る。
+  # これはプロトタイプ宣言しかされていない場合には、こちらしか使えない
   def get_rhs_port2
-    # through æå®ããï¼
+    # through 指定あり？
     if @through_list[0] then
       if @through_generated_list[0] then
         port = @through_generated_list[0].get_through_entry_port_name.to_sym
       else
-        port = @port_name    # generate ã«å¤±æãã¦ãã
+        port = @port_name    # generate に失敗している
       end
     else
@@ -5942,6 +5636,6 @@
   end
 
-  #=== Join# å³è¾ºã®ãã¼ããå¾ã
-  # through ã¯é©ç¨ããªãããcomposite ã¯å±éããå¾ã®ã»ã«ã®å¯¾å¿ãããã¼ã
+  #=== Join# 右辺のポートを得る
+  # through は適用しないが、composite は展開した後のセルの対応するポート
   def get_rhs_port3
     if @cell then
@@ -5950,38 +5644,29 @@
   end
 
-  #=== Join# å¼ã³å£é
-åã®2çªç®ä»¥éã®è¦ç´ ãè¿½å ãã
-  #     ä¸çªæåã«å®ç¾©ãããé
-åè¦ç´ ãå
-¨è¦ç´ ã®åæå¤ã®é
-åãæã¤
-  #     ãã®ã¡ã½ããã¯éé
-åã®å ´åãå¼åºãããï¼join éè¤ã¨ã©ã¼ã®å ´åï¼
-  #join2:: Join  å¼ã³å£é
-åè¦ç´ ã® Join
+  #=== Join# 呼び口配列の2番目以降の要素を追加する
+  #     一番最初に定義された配列要素が全要素の初期値の配列を持つ
+  #     このメソッドは非配列の場合も呼出される（join 重複エラーの場合）
+  #join2:: Join  呼び口配列要素の Join
   def add_array_member join2
 
-    # subscript2: join2 ã®å·¦è¾ºæ·»æ°
+    # subscript2: join2 の左辺添数
     subscript2 = join2.get_subscript
 
     if @subscript == nil then		# not array : initialize duplicate
-      # éé
-åã®å ´åãjoin ãéè¤ãã¦ãã
+      # 非配列の場合、join が重複している
       cdl_error( "S1127 \'$1\' duplicate", @name )
       # print "add_array_member2: #{@owner.get_name}\n"
 
     elsif @subscript >= 0 then
-      # æ·»æ°æå®ããã®å ´å
+      # 添数指定ありの場合
       if( subscript2 == nil || subscript2 < 0 ) then
-        # join2 å·¦è¾ºã¯éé
-åã¾ãã¯æ·»æ°ãªã
-        # é
-åãä¸ä¸è´
+        # join2 左辺は非配列または添数なし
+        # 配列が不一致
         cdl_error( "S1128 \'$1\' inconsistent array definition", @name )
       elsif @array_member[subscript2] != nil then
-        # åãæ·»æ°ãæ¢ã«å®ç¾©æ¸ã¿
+        # 同じ添数が既に定義済み
         cdl_error( "S1129 \'$1\' redefinition of subscript $2" ,@name, subscript2 )
       else
-        # æ·»æ°ã®ä½ç½®ã«è¦ç´ ãè¿½å 
+        # 添数の位置に要素を追加
         @array_member[subscript2] = join2.get_rhs
         @array_member2[subscript2] = join2
@@ -5990,16 +5675,12 @@
 
     else
-      # æ·»æ°æå®ãªãã®å ´å
+      # 添数指定なしの場合
       if( subscript2 == nil || subscript2 >= 0 ) then
-        # join2 å·¦è¾ºã¯éé
-åã¾ãã¯æ·»æ°æ
-        # é
-åãä¸ä¸è´
+        # join2 左辺は非配列または添数有
+        # 配列が不一致
         cdl_error( "S1130 \'R1\' inconsistent array definition", @name )
       end
 
-      # æ·»æ°ãªãé
-åã®å ´åãé
-åè¦ç´ ãè¿½å 
+      # 添数なし配列の場合、配列要素を追加
       @array_member  << join2.get_rhs
       @array_member2 << join2
@@ -6025,8 +5706,7 @@
       while i < @array_member2.length
         if @array_member2[i] != self && @array_member[i] != nil then
-          # @array_member2[i] ã nil ã«ãªãã®ã¯ optional ã®æã¨ã
-          # Join ã® initialize ã§ç¡é§ã« @array_member2 ãè¨­å®ããã¦ããå ´å
-          # ç¡é§ã«è¨­å®ããã¦ãããã®ã«ã¤ãã¦ã¯ãåå¸°çã«å¼ã³åºãå¿
-è¦ã¯ãªãï¼clone_for_composite ã§ã¯å¯¾ç­ãã¦ããï¼
+          # @array_member2[i] が nil になるのは optional の時と、
+          # Join の initialize で無駄に @array_member2 が設定されている場合
+          # 無駄に設定されているものについては、再帰的に呼び出す必要はない（clone_for_composite では対策している）
           @array_member2[i].change_name( name )
         end
@@ -6036,5 +5716,5 @@
   end
 
-  # composite cell ãå±éããã»ã«ã®çµåã clone ããã»ã«ã®ååã«å¤æ´
+  # composite cell を展開したセルの結合を clone したセルの名前に変更
   def change_rhs_port( clone_cell_list, celltype )
 
@@ -6054,20 +5734,15 @@
     dbgPrint "  cell_name:   #{@cell_name} => #{c.get_global_name}, #{c.get_name}\n"
 
-    # @rhs ã®å
-å®¹ãèª¿æ´ãã¦ããï¼ãã®å
-å®¹ã¯ãsubscript ãé¤ãã¦ãå¾ããä½¿ããã¦ããªãï¼
+    # @rhs の内容を調整しておく（この内容は、subscript を除いて、後から使われていない）
     elements = @rhs.get_elements
-    if elements[0] == :OP_SUBSC then  # å³è¾ºï¼åãå£é
-åï¼
+    if elements[0] == :OP_SUBSC then  # 右辺：受け口配列？
       elements  = elements[1]
     end
 
-    # å³è¾ºããcell.ePort ã®å½¢å¼ã§ãªã
+    # 右辺が　cell.ePort の形式でない
     if elements[0] != :OP_DOT || elements[1][0] != :IDENTIFIER then   #1
       return
     else
-      # ã»ã«åã composite å
-é¨ã®ååãããå¤é¨ã®ååã«å
-¥ãæ¿ãã
+      # セル名を composite 内部の名前から、外部の名前に入れ替える
       # elements[1][1] = Token.new( c.get_name, nil, nil, nil )
       elements[1][1] = NamespacePath.new( c.get_name, false, c.get_namespace )
@@ -6076,5 +5751,5 @@
     @cell_name = c.get_name
     @cell = c
-    # @definition = nil          # @definition ãæå¹ï¼ ãã§ãã¯æ¸ã¿ï¼ã¨ã¯ãããªãï¼
+    # @definition = nil          # @definition が有効： チェック済み（とは、しない）
 
     if @array_member2 then
@@ -6085,8 +5760,7 @@
       i = 0
       while i < @array_member2.length
-        # @array_member2[i] ã nil ã«ãªãã®ã¯ optional ã®æã¨ã
-        # Join ã® initialize ã§ç¡é§ã« @array_member2 ãè¨­å®ããã¦ããå ´å
-        # ç¡é§ã«è¨­å®ããã¦ãããã®ã«ã¤ãã¦ã¯ãåå¸°çã«å¼ã³åºãå¿
-è¦ã¯ãªãï¼clone_for_composite ã§ã¯å¯¾ç­ãã¦ããï¼
+        # @array_member2[i] が nil になるのは optional の時と、
+        # Join の initialize で無駄に @array_member2 が設定されている場合
+        # 無駄に設定されているものについては、再帰的に呼び出す必要はない（clone_for_composite では対策している）
         if @array_member2[i] != self && @array_member[i] != nil then
           @array_member2[i].change_rhs_port( clone_cell_list, celltype )
@@ -6098,12 +5772,10 @@
   end
 
-  #=== Join# composite ã»ã«ç¨ã«ã¯ã­ã¼ã³
-  #cell_global_name:: string : è¦ªã»ã«ã®ã°ã­ã¼ãã«å
-  # å³è¾ºã® C_EXP ã«å«ã¾ãã $id$, $cell$, $ct$ ãç½®æ
-  # ããã§ç½®æããã®ã¯ composite ã® attribute ã® C_EXP ã composite ã»ã«ã¿ã¤ãããã³ã»ã«åã«ç½®æãããã
-  # ï¼å
-é¨ã»ã«ã® C_EXP ãããã§ç½®æãããï¼
-  # @through_list ãªã©ãã³ãã¼ãããã®ã§ããããå¼ã³åºãããåã«ç¢ºå®ããå¿
-è¦ããã
+  #=== Join# composite セル用にクローン
+  #cell_global_name:: string : 親セルのグローバル名
+  # 右辺の C_EXP に含まれる $id$, $cell$, $ct$ を置換
+  # ここで置換するのは composite の attribute の C_EXP を composite セルタイプおよびセル名に置換するため
+  # （内部セルの C_EXP もここで置換される）
+  # @through_list などもコピーされるので、これが呼び出される前に確定する必要がある
   def clone_for_composite( ct_name, cell_name, locale, b_need_recursive = true )
 
@@ -6125,20 +5797,18 @@
 
   def clone_array_member( array_member, array_member2, ct_name, cell_name, prev, locale )
-    # é
-åã®ã³ãã¼ãä½ã
+    # 配列のコピーを作る
     am  = array_member.clone
     am2 = array_member2.clone
 
-    # é
-åè¦ç´ ã®ã³ãã¼ãä½ã
+    # 配列要素のコピーを作る
     i = 0
     while i < am2.length
       if array_member2[i] == prev then
-        # èªåèªèº«ã§ããï¼ã®ã§ãå¼åºãã¨ç¡éåå¸°å¼åºãã¨ãªãï¼
+        # 自分自身である（ので、呼出すと無限再帰呼出しとなる）
         am2[i] = self
       elsif array_member2[i] then
         am2[i] = array_member2[i].clone_for_composite( ct_name, cell_name, locale, false )
       else
-        # ä»¥åã®ã¨ã©ã¼ã§ array_member2[i] ã¯ nil ã«ãªã£ã¦ãã
+        # 以前のエラーで array_member2[i] は nil になっている
       end
 
@@ -6149,5 +5819,5 @@
     end
 
-    # i = 0 ã¯ãããã§èªåèªèº«ãè¨­å®
+    # i = 0 は、ここで自分自身を設定
     # am2[0] = self
 
@@ -6157,17 +5827,14 @@
   end
 
-  #=== Join# rhs ãå
-¥ãæãã
+  #=== Join# rhs を入れ換える
   #rhs:: Expression | initializer
-  # å³è¾ºãå
-¥ãæããï¼
-  # ãã®ã¡ã½ããã¯ãcomposite ã§ cell ã®å±æ§ã®åæå¤ã attribute ã®å¤ã§ç½®ãæããã®ã«ä½¿ããã
-  # ãã®ã¡ã½ããã¯ composite å
-ã® cell ã®å±æ§ã®åæå¤ãå®æ°ã§ã¯ãªãå¼ã«ãªã£ãå ´åãä¸è¦ã«ãªã
+  # 右辺を入れ換える．
+  # このメソッドは、composite で cell の属性の初期値を attribute の値で置き換えるのに使われる
+  # このメソッドは composite 内の cell の属性の初期値が定数ではなく式になった場合、不要になる
   def change_rhs rhs
     @rhs = rhs
   end
 
-  #=== Join# clone ããã join ã® owner ãå¤æ´
+  #=== Join# clone された join の owner を変更
   def set_cloned( owner )
     dbgPrint "Join#set_cloned: #{@name}  prev owner: #{@owner.get_name} new owner: #{owner.get_name}\n"
@@ -6255,5 +5922,5 @@
 end
 
-#== éçµå
+#== 逆結合
 class ReverseJoin < BDNode
 #@ep_name:: Symbol
@@ -6280,14 +5947,11 @@
 end
 
-# CLASS: CompositeCelltype ç¨ã® Join
-# REM:   CompositeCelltype ã export ãããã®
+# CLASS: CompositeCelltype 用の Join
+# REM:   CompositeCelltype が export するもの
 class CompositeCelltypeJoin < BDNode
-# @export_name:: string     :  CompositeCelltype ã export ããååï¼å¼ã³å£ãåãå£ãå±æ§ï¼
-# @internal_cell_name:: string : CompositeCelltype å
-é¨ã®ã»ã«ã®åå
-# @internal_cell_elem_name:: string : CompositeCelltype å
-é¨ã®ã»ã«ã®å¼ã³å£ãåãå£ãå±æ§ã®åå
-# @cell : Cell : Cell::  internal cell  : CompositeCelltyep å
-é¨ã®ã»ã«ï¼in_compositeã»ã«ï¼
+# @export_name:: string     :  CompositeCelltype が export する名前（呼び口、受け口、属性）
+# @internal_cell_name:: string : CompositeCelltype 内部のセルの名前
+# @internal_cell_elem_name:: string : CompositeCelltype 内部のセルの呼び口、受け口、属性の名前
+# @cell : Cell : Cell::  internal cell  : CompositeCelltyep 内部のセル（in_compositeセル）
 # @port_decl:: Port | Decl
 # @b_pseudo: bool : 
@@ -6304,9 +5968,9 @@
   end
 
-  #=== CompositeCelltypeJoin# CompositeCelltypeJoin ã®å¯¾è±¡ã»ã«ãï¼
-  #cell::  Cell å¯¾è±¡ãã©ãããã§ãã¯ããã»ã«
+  #=== CompositeCelltypeJoin# CompositeCelltypeJoin の対象セルか？
+  #cell::  Cell 対象かどうかチェックするセル
   #
-  #     CompositeCelltypeJoin ã¨ cell ã®ååãä¸è´ããããã§ãã¯ãã
-  #     port_decl ãæå®ãããå ´åã¯ãç¾ç¶ä½¿ããã¦ããªã
+  #     CompositeCelltypeJoin と cell の名前が一致するかチェックする
+  #     port_decl が指定された場合は、現状使われていない
   def match?( cell, port_decl = nil )
 
@@ -6324,6 +5988,6 @@
 
 #    if @cell.equal?( cell ) && ( port_decl == nil || @port_decl.equal?( port_decl ) ) then
-    # ãªã port_decl ãä¸è´ããªããã°ãªããªãã£ããå¿ããã
-    # recursive_composite ã§ååã®ä¸è´ã«å¤æ´   060917
+    # なぜ port_decl が一致しなければならなかったか忘れた。
+    # recursive_composite で名前の一致に変更   060917
     if((@cell.get_name == cell.get_name) && (port_decl == nil || @port_decl.get_name == port_decl.get_name))then
       true
@@ -6357,5 +6021,5 @@
   end
 
-  # @port_decl ã Port ã®å ´åã®ã¿å¼ã³åºãã¦ãã
+  # @port_decl が Port の場合のみ呼び出してよい
   def get_port_type
     if @port_decl then
@@ -6379,5 +6043,5 @@
   end
 
-  # @port_decl ã Port ã®å ´åã®ã¿å¼ã³åºãã¦ãã
+  # @port_decl が Port の場合のみ呼び出してよい
   def is_require?
     if @port_decl then
@@ -6386,5 +6050,5 @@
   end
 
-  # @port_decl ã Port ã®å ´åã®ã¿å¼ã³åºãã¦ãã
+  # @port_decl が Port の場合のみ呼び出してよい
   def is_allocator_port?
     if @port_decl then
@@ -6393,5 +6057,5 @@
   end
 
-  # @port_decl ã Port ã®å ´åã®ã¿å¼ã³åºãã¦ãã
+  # @port_decl が Port の場合のみ呼び出してよい
   def is_optional?
     if @port_decl then
@@ -6400,6 +6064,6 @@
   end
 
-  #=== CompositeCelltypeJoin# å³è¾ºã Decl ãªãã°åæåå­ï¼å¼ï¼ãè¿ã
-  # ãã®ã¡ã½ããã¯ Cell ã® check_join ããåæå¤ãã§ãã¯ã®ããã«å¼ã³åºããã
+  #=== CompositeCelltypeJoin# 右辺が Decl ならば初期化子（式）を返す
+  # このメソッドは Cell の check_join から初期値チェックのために呼び出される
   def get_initializer
     if @port_decl.instance_of? Decl then
@@ -6414,13 +6078,12 @@
   end
 
-  #=== CompositeCelltypeJoin# é
-åãµã¤ãºãå¾ã
-  #RETURN:: nil: not array, "[]": å¤§ããæå®ãªã, Integer: å¤§ããæå®ãã
+  #=== CompositeCelltypeJoin# 配列サイズを得る
+  #RETURN:: nil: not array, "[]": 大きさ指定なし, Integer: 大きさ指定あり
   def get_array_size
     @port_decl.get_array_size
   end
 
-  #=== CompositeCelltypeJoin# signature ãå¾ã
-  # @port_decl ã Port ã®æã®ã¿å¼ã³åºãã¦ããã
+  #=== CompositeCelltypeJoin# signature を得る
+  # @port_decl が Port の時のみ呼び出してもよい
   def get_signature
     @port_decl.get_signature
@@ -6465,5 +6128,5 @@
 # @file_name:: string
 # @format:: string
-# @arg_list:: Expression ã® elements ã¨åãå½¢å¼ [ [:IDENTIFIER, String], ... ]
+# @arg_list:: Expression の elements と同じ形式 [ [:IDENTIFIER, String], ... ]
 # @f_celltype:: bool : true: celltype factory, false: cell factory
 
@@ -6476,27 +6139,26 @@
     case name
     when :write
-      # write é¢æ°
+      # write 関数
       @name = name
 
-      # write é¢æ°ã®ç¬¬ä¸å¼æ°ï¼åºåå
-ãã¡ã¤ã«å
-        # å¼ãè©ä¾¡ããï¼éå¸¸åä¸ã®æå­åã§ãããããåä¸ã®æå­åãè¿ãããï¼
+      # write 関数の第一引数：出力先ファイル名
+        # 式を評価する（通常単一の文字列であるから、単一の文字列が返される）
       @file_name = file_name.eval_const(nil).val  # file_name : Expression
       if ! @file_name.instance_of?( String ) then
-        # æå­åå®æ°ã§ã¯ãªãã£ã
+        # 文字列定数ではなかった
         cdl_error( "S1132 $1: 1st parameter is not string(file name)" , @name )
         @file_name = nil
       end
 
-      # write é¢æ°ã®ç¬¬äºå¼æ°ï¼ãã©ã¼ãããæå­å
+      # write 関数の第二引数：フォーマット文字列
       @format    = format.eval_const(nil).val     # format : Expression
-        # å¼ãè©ä¾¡ããï¼éå¸¸åä¸ã®æå­åã§ãããããåä¸ã®æå­åãè¿ãããï¼
+        # 式を評価する（通常単一の文字列であるから、単一の文字列が返される）
       if ! @format.instance_of?( String ) then
-        # æå­åå®æ°ã§ã¯ãªãã£ã
+        # 文字列定数ではなかった
         cdl_error( "S1133 $1: 2nd parameter is not string(fromat)" , @name )
         @format = nil
       end
 
-      # ç¬¬ä¸å¼æ°ä»¥éãå¼æ°ãªã¹ãã¨ãã mikan å¼æ°ã®ãã§ãã¯
+      # 第三引数以降を引数リストとする mikan 引数のチェック
       @arg_list = arg_list
 
@@ -6575,17 +6237,17 @@
 #== Domain
 #
-# region ã® domain ãè¨æ¶ããã¯ã©ã¹
+# region の domain を記憶するクラス
 class DomainType < Node
-#@name::Symbol : ãã¡ã¤ã³ã¿ã¤ãã®åå ex) HRP2
+#@name::Symbol : ドメインタイプの名前 ex) HRP2
 #@region::Region
 #@plugin_name::Symbol : ex) HRP2Plugin
 #@option::String : ex) "trusted", "nontrusted"
-#@plugin::DomainPlugin ã®å­ã¯ã©ã¹
+#@plugin::DomainPlugin の子クラス
 
   include PluginModule
 
-  # ãã¡ã¤ã³ã«å±ãã region ã® Hash
-  # domain æå®ãä¸åº¦ãè¡ãããªãå ´åããã®ãªã¹ãã¯ç©ºã§ãã
-  # ã«ã¼ããªã¼ã¸ã§ã³ã¯ option = "OutOfDomain" ã§ç»é²ããã (domain æå®ãç¡ããã°ç»é²ãããªã)
+  # ドメインに属する region の Hash
+  # domain 指定が一度も行われない場合、このリストは空である
+  # ルートリージョンは option = "OutOfDomain" で登録される (domain 指定が無ければ登録されない)
   @@domain_regions = { }  # { :domain_type => [ region, ... ] }
 
@@ -6628,7 +6290,6 @@
   end
 
-  #== Domain ãªã¼ã¸ã§ã³ã® Hash ãå¾ã
-  # @@domain_regions ã®èª¬æåç
-§
+  #== Domain リージョンの Hash を得る
+  # @@domain_regions の説明参照
   def self.get_domain_regions
     return @@domain_regions
@@ -6649,28 +6310,28 @@
 end
 
-#== Region ã¯ã©ã¹
+#== Region クラス
 # 
-# Region ã¯ Namespace ãç¶æ¿ãã¦ãã
-# root region ã¯ç¹æ®ã§ãroot namespace ã¨åãã§ãã
+# Region は Namespace を継承している
+# root region は特殊で、root namespace と同じである
 #
-# cell ã¯ region ã«å±ãã
-# region ã«å±ãã cell ã®ãªã¹ãã¯ Namespace ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹å¤æ°ã¨ãã¦è¨æ¶ããã
+# cell は region に属する
+# region に属する cell のリストは Namespace クラスのインスタンス変数として記憶される
 #
 class Region < Namespace
 # @name:: string
-# @in_through_list:: [ [ plugin_name, plugin_arg ], ... ] : plungin_name = nil ã®æ in ç¦æ­¢
-# @out_through_list:: [ [ plugin_name, plugin_arg ], ... ] : plungin_name = nil ã®æ out ç¦æ­¢
+# @in_through_list:: [ [ plugin_name, plugin_arg ], ... ] : plungin_name = nil の時 in 禁止
+# @out_through_list:: [ [ plugin_name, plugin_arg ], ... ] : plungin_name = nil の時 out 禁止
 # @to_through_list:: [ [ dst_region, plugin_name, plugin_arg ], ... ]
-# @cell_port_throug_plugin_list:: { "#{cell_name}.#{port_name}" => through_generated_list ã®è¦ç´  }
-#    ãã® region ãã cell_name.port_name ã¸ã® through ãã©ã°ã¤ã³ã§çæããããªãã¸ã§ã¯ã
+# @cell_port_throug_plugin_list:: { "#{cell_name}.#{port_name}" => through_generated_list の要素 }
+#    この region から cell_name.port_name への through プラグインで生成されたオブジェクト
 # @region_type::Symbol : :NODE, :LINKUNIT, :DOMAIN, :CLASS
-# @region_type_param::Symbol : domain, class ã®åå. node, linkunit ã§ã¯ nil
-# @link_root:: Region : linkUnit ã®æ ¹ã£ãã¨ãªã region (node, linkunit ãæå®ããã region)
-# @family_line:: [ @region_root, ...,@region_me ]  å®¶ç³»
-# @in_through_count:: Integer :  n çªç®ã® in_through çµå (n>=0)
-# @out_through_count:: Integer : n çªç®ã® out_through çµå (n>=0)
-# @to_through_count:: { :RegionName => Integer }: RegionName ã¸ã® n çªç®ã® to_through çµå (n>=0)
-# @domain_type::DomainType : domain æå®ããã¦ããªãå ´åãnil
-# @domain_root::Region : domain æå®ããã¦ããªã Region (root ã®å ´å nil)
+# @region_type_param::Symbol : domain, class の名前. node, linkunit では nil
+# @link_root:: Region : linkUnit の根っことなる region (node, linkunit が指定された region)
+# @family_line:: [ @region_root, ...,@region_me ]  家系
+# @in_through_count:: Integer :  n 番目の in_through 結合 (n>=0)
+# @out_through_count:: Integer : n 番目の out_through 結合 (n>=0)
+# @to_through_count:: { :RegionName => Integer }: RegionName への n 番目の to_through 結合 (n>=0)
+# @domain_type::DomainType : domain 指定されていない場合、nil
+# @domain_root::Region : domain 指定されていなる Region (root の場合 nil)
 
   @@in_through_list  = []
@@ -6680,16 +6341,15 @@
   @@region_type_param = nil
   @@domain_name = nil
-  @@domain_option = nil    # Token ãå
-¥ã
+  @@domain_option = nil    # Token が入る
 
   @@link_roots = []
 
   def initialize( name )
-    # mikan name ã® Namespace ä¿®é£¾
-    # object = Namespace.find( [ name ] )   # è¦ªã¾ã§æãã«ãã
+    # mikan name の Namespace 修飾
+    # object = Namespace.find( [ name ] )   # 親まで捜しにいく
     if name != "::" then
       object = Namespace.get_current.find( name )    #1
     else
-      # root ãªã¼ã¸ã§ã³
+      # root リージョン
       object = nil
       @@region_type = :NODE
@@ -6727,5 +6387,5 @@
         dbgPrint "Region.new: re-appear #{@name}\n"
 
-        # # Region path ãåååºç¾ã¨ä¸è´ãããï¼
+        # # Region path が前回出現と一致するか？
         # if @@region_stack[ @@region_stack_sp - 1 ] then
         #   my_path = @@region_stack[ @@region_stack_sp - 1 ].get_path_string.to_s + "." + @name.to_s
@@ -6737,8 +6397,8 @@
         # end
 
-        # ååºç¾
+        # 再出現
         # @@region_stack[@@region_stack_sp] = object
 
-        # ååºç¾æã« specifier ãæå®ããã¦ãããï¼
+        # 再出現時に specifier が指定されているか？
         if( @in_through_list.length != 0 || @out_through_list.length != 0 || @to_through_list.length != 0 || @region_type != nil )then
           cdl_error( "S1140 $1: region specifier must place at first appearence" , name )
@@ -6747,12 +6407,12 @@
 
       else
-        # ã¨ã©ã¼ç¨ããã¼å®ç¾©
-
-        # ç°ãªãååã®ãªãã¸ã§ã¯ããå®ç¾©æ¸ã¿
+        # エラー用ダミー定義
+
+        # 異なる同名のオブジェクトが定義済み
         cdl_error( "S1141 $1 duplication, previous one : $2" , name, object.class )
-        # @@region_stack[@@region_stack_sp] = self    # ã¨ã©ã¼ææ«å® region
-      end
-    else
-      # ååºç¾
+        # @@region_stack[@@region_stack_sp] = self    # エラー時暫定 region
+      end
+    else
+      # 初出現
       dbgPrint "Region.new: #{@name}\n"
       set_region_family_line
@@ -6807,6 +6467,6 @@
   end
 
-  #== Region ã«ã¼ããªã¼ã¸ã§ã³ãå¾ã
-  # ã«ã¼ããªã¼ã¸ã§ã³ã¯ãã«ã¼ããã¼ã ã¹ãã¼ã¹ã¨åãã§ãã
+  #== Region ルートリージョンを得る
+  # ルートリージョンは、ルートネームスペースと同じである
   def self.get_root
     Namespace.get_root
@@ -6816,5 +6476,5 @@
 
     dbgPrint  "set_region_family_line: Region: #{@name}  \n"
-    # root namespace (root region) ã® region type ã¯ :NODE
+    # root namespace (root region) の region type は :NODE
     if @name == "::" then
       @region_type = :NODE
@@ -6834,7 +6494,6 @@
 
     if @domain_type then
-      # ã«ã¼ããªã¼ã¸ã§ã³ãæåãã @domain_type è¨­å®ããããã¨ã¯ãªãã®
-      # ã§ @owner == nil ãèª¿ã¹ãå¿
-è¦ã¯ãªã
+      # ルートリージョンが最初から @domain_type 設定されることはないの
+      # で @owner == nil を調べる必要はない
       @owner.set_domain_type @domain_type
     end
@@ -6850,12 +6509,9 @@
     @link_root = nil
 
-    # @family_line ãä½æãã
-    # @link_root ãã¿ã¤ãã
-    # (ä¸ä½ã«ãã©ã£ã¦ãã£ã¦ Region ã§ node ã¾ãã¯ linkunit ã®ããããå
-ã«è¦ã¤ãã£ããã®ã @link_root ã¨ãªã)
-    # root namespace ã¯ Region ãã¤ node ãªã®ã§å¿
-ã @link_root ã¯è¦ã¤ãã
-    # mikan: self ã node, linkUnit ã®å ´åãããã§æå¾
-ããã¨ããã«è¨­å®ãããªããããRegion#initialize ã§åè¨­å®
+    # @family_line を作成する
+    # @link_root もみつける
+    # (上位にたどっていって Region で node または linkunit のいずれか先に見つかったものが @link_root となる)
+    # root namespace は Region かつ node なので必ず @link_root は見つかる
+    # mikan: self が node, linkUnit の場合、ここで期待したとおりに設定されないため、Region#initialize で再設定
     obj = self
     while 1
@@ -6868,9 +6524,9 @@
         end
       else
-        # ãããªããã° Namespace
-        # namespace ã®ä¸ã« region ãããå ´å
-      end
-
-      # root namespace ã«ãã©ãçãã°çµã
+        # さもなければ Namespace
+        # namespace の下に region がある場合
+      end
+
+      # root namespace にたどり着けば終り
       break if obj.get_name == "::"
 
@@ -6883,5 +6539,5 @@
   end
 
-  #== Region#ãã¡ã¤ã³ãè¨­å®ãã
+  #== Region#ドメインを設定する
   def set_domain_type domain_type
     if @region_type == :NODE then
@@ -6927,8 +6583,8 @@
   end
 
-  #== Region# domain ã®æ ¹ã£ãã¨ãªã region ãå¾ã
-  # Region ã®ã¤ã³ã¹ã¿ã³ã¹ãè¿ã
-  # domain æå®å­ãããã°ããã®ãªã¼ã¸ã§ã³ããã¡ã¤ã³ã«ã¼ãã§ãã
-  # ãªããã°ãè¦ªãªã¼ã¸ã§ã³ã®ãã¡ã¤ã³ã«ã¼ãã¨ãã
+  #== Region# domain の根っことなる region を得る
+  # Region のインスタンスを返す
+  # domain 指定子があれば、そのリージョンがドメインルートである
+  # なければ、親リージョンのドメインルートとする
   def get_domain_root
     @domain_root
@@ -6970,8 +6626,7 @@
   end
 
-  #=== Region# æ§æè§£æä¸­ã® region ãå¾ã
-  # æ§æè§£æä¸­ Namespace (ãããã¯å­ã¯ã©ã¹ã® Region) ã®ä¸ä½ããã©ã£ã¦ Region ãè¦ã¤ãã
-  # cell ã namespace ä¸ã«ãããã¨ãã§ããªããã°ãã«ã¼ããã¾ããå¿
-è¦ã¯ãªã
+  #=== Region# 構文解析中の region を得る
+  # 構文解析中 Namespace (あるいは子クラスの Region) の上位をたどって Region を見つける
+  # cell が namespace 下におくことができなければ、ループをまわす必要はない
   def self.get_current
     # @@region_stack[@@region_stack_sp]
@@ -6986,6 +6641,6 @@
   end
 
-  #=== Region# through ãã©ã°ã¤ã³ã§ããã® region ãã cell_name.port_name ã¸ã®ãã©ã°ã¤ã³ãªãã¸ã§ã¯ããç»é²
-  # mikan namesppace å¯¾å¿ (cell_name)
+  #=== Region# through プラグインで、この region から cell_name.port_name へのプラグインオブジェクトを登録
+  # mikan namesppace 対応 (cell_name)
   def add_cell_port_through_plugin( cell_name, port_name, through_plugin_object )
     @cell_port_throug_plugin_list[ "#{cell_name}.#{port_name}" ] = through_plugin_object
@@ -7002,17 +6657,16 @@
   end
 
-  #=== Region# to_region ã¸ã®è·é¢ï¼unreachable ãªå ´å nil)
-  # mikan Cell#check_region ã¨Region ã¸ãã©ãçãã¾ã§ããã®å¦çã«å
-±éæ§ãé«ã
-  # region#distance ã¯ require ã§ç¨ãããã
+  #=== Region# to_region への距離（unreachable な場合 nil)
+  # mikan Cell#check_region とRegion へたどり着くまでための処理に共通性が高い
+  # region#distance は require で用いられる
   def distance( to_region )
 
-    r1 = self                   # åºçº region
-    r2 = to_region              # ç®ç region
+    r1 = self                   # 出発 region
+    r2 = to_region              # 目的 region
     dist = 0
 
-    if ! r1.equal? r2 then      # åä¸ region ãªãå¼åºãå¯è½
-
-      # mikan namespace å¯¾å¿
+    if ! r1.equal? r2 then      # 同一 region なら呼出し可能
+
+      # mikan namespace 対応
       f1 = r1.get_family_line
       len1 = f1.length
@@ -7020,8 +6674,6 @@
       len2 = f2.length
 
-      # ä¸ä¸è´ã«ãªãã¨ããï¼å
-å¼ï¼ãæ¢ã
-      i = 1  # i = 0 ã¯ :RootRegion ãªã®ã§å¿
-ãä¸è´
+      # 不一致になるところ（兄弟）を探す
+      i = 1  # i = 0 は :RootRegion なので必ず一致
       while( i < len1 && i < len2 )
         if( f1[i] != f2[i] )then
@@ -7031,6 +6683,5 @@
       end
 
-      sibling_level = i     # å
-å¼ã¨ãªãã¬ãã«ããããã¯ã©ã¡ããä¸æ¹ãçµãã£ãã¬ãã«
+      sibling_level = i     # 兄弟となるレベル、もしくはどちらか一方が終わったレベル
 
       # p "sibling_level: #{i}"
@@ -7038,8 +6689,5 @@
       # p "to: #{f2[i].get_name}" if f2[i]
 
-      # å¼ã³å´ã«ã¤ãã¦å¼ã³å
-ã®ã¬ãã«ããå
-å¼ã¬ãã«ã¾ã§ï¼out_through ããã§ãã¯ããã³æ¿å
-¥ï¼
+      # 呼び側について呼び元のレベルから兄弟レベルまで（out_through をチェックおよび挿入）
       i = len1 -1
       while i >= sibling_level
@@ -7064,7 +6712,5 @@
       end
 
-      # å
-å¼ã¬ãã«ã«ããã¦ï¼to_through ããã§ãã¯ããã³æ¿å
-¥ï¼
+      # 兄弟レベルにおいて（to_through をチェックおよび挿入）
       if f1[sibling_level] && f2[sibling_level] then
         dbgPrint "going from #{f1[sibling_level].get_name} to #{f2[sibling_level].get_name}\n"
@@ -7081,5 +6727,5 @@
           found = 0
           f1[sibling_level].get_to_through_list.each { |t|
-            if t[0][0] == f2[sibling_level].get_name then   # region åãä¸è´ããã ?
+            if t[0][0] == f2[sibling_level].get_name then   # region 名が一致するか ?
               found = 1
             end
@@ -7092,7 +6738,5 @@
       end
 
-      # åãå´ã«ã¤ãã¦å
-å¼ã¬ãã«ããåãå´ã®ã¬ãã«ã¾ã§ï¼in_through ããã§ãã¯ããã³æ¿å
-¥ï¼
+      # 受け側について兄弟レベルから受け側のレベルまで（in_through をチェックおよび挿入）
       i = sibling_level
       while i < len2
@@ -7137,36 +6781,33 @@
 class Import_C < Node
 
-  # ãããã®ååæå­åã®ãªã¹ã
+  # ヘッダの名前文字列のリスト
   @@header_list = {}
   @@header_list2 = []
   @@define_list = {}
 
-  #=== Import_C# import_C ã®çæï¼ããããã¡ã¤ã«ãåè¾¼ãï¼
-  #header:: Token : import_C ã®ç¬¬ä¸å¼æ°æå­åãªãã©ã«ãã¼ã¯ã³
-  #define:: Token : import_C ã®ç¬¬äºå¼æ°æå­åãªãã©ã«ãã¼ã¯ã³
+  #=== Import_C# import_C の生成（ヘッダファイルを取込む）
+  #header:: Token : import_C の第一引数文字列リテラルトークン
+  #define:: Token : import_C の第二引数文字列リテラルトークン
   def initialize( header, define = nil )
     super()
-    # ããããã¡ã¤ã«åæå­åããåå¾ã® "" ãåãé¤ã
+    # ヘッダファイル名文字列から前後の "" を取り除く
     # header = header.to_s.gsub( /\A"(.*)"\z/, '\1' )
     header = CDLString.remove_dquote header.to_s
 
     if define then
-      # åå¾ã® "" ãåãé¤ã
+      # 前後の "" を取り除く
       # def_opt = define.to_s.gsub( /\A"(.*)/, '\1' )
       # def_opt.sub!( /(.*)"\z/, '\1' )
       def_opt = CDLString.remove_dquote define.to_s
 
-      # "," ã -D ã«ç½®ãæã
+      # "," を -D に置き換え
       def_opt = def_opt.gsub( /,/, " -D " )
 
-      # å
-é ­ã« -D ãæ¿å
-¥ # mikan ä¸é©åãª define å
-¥åããã£ãå ´åãCPP æã«ã¨ã©ã¼
+      # 先頭に -D を挿入 # mikan 不適切な define 入力があった場合、CPP 時にエラー
       def_opt = def_opt.gsub( /^/, "-D " )
 
     end
 
-    # ã³ãã³ãã©ã¤ã³æå®ããã DEFINE 
+    # コマンドライン指定された DEFINE 
     $define.each{ |define|
       if $IN_EXERB then
@@ -7189,8 +6830,8 @@
       if found == false then
         begin
-          # ãã¡ã¤ã«ã® stat ãåã£ã¦ã¿ã(ãªããã°ä¾å¤çºç)
+          # ファイルの stat を取ってみる(なければ例外発生)
           File.stat( "#{path}/#{header}" )
 
-          # cdl ãè¦ã¤ãã£ããã¡ã¤ã«ãã¹ã«åè¨­å®
+          # cdl を見つかったファイルパスに再設定
           header_path = "#{path}/#{header}"
           found = true
@@ -7207,15 +6848,15 @@
     end
 
-    # èª­è¾¼ã¿æ¸ã¿ï¼
+    # 読込み済み？
     if( @@header_list[ header ] ) then
-      # ç¬¬äºå¼æ° define ãä»¥åã¨ç°ãªã
+      # 第二引数 define が以前と異なる
       if @@define_list[ header ].to_s != define.to_s then
         cdl_error( "S1143 import_C: arg2: mismatch with previous one"  )
       end
-      # ãããã«ããèª­ã¿è¾¼ã¾ãªã
+      # いずれにせよ読み込まない
       return
     end
 
-    # ãããã®ãªã¹ããè¨é²
+    # ヘッダのリストを記録
     @@header_list[ header ] = header_path
     @@header_list2 << header
@@ -7241,9 +6882,9 @@
     end
 
-    # CPP åºåç¨ tmp ãã¡ã¤ã«å
+    # CPP 出力用 tmp ファイル名
     tmp_header = header.gsub( /\//, "_" )
     tmp_header = "#{$gen}/tmp_#{tmp_header}"
 
-    # CPP ã³ãã³ãã©ã¤ã³ãä½æ
+    # CPP コマンドラインを作成
     cmd = "#{$cpp} #{def_opt} #{include_opt} #{tmp_C}"
 
@@ -7253,8 +6894,8 @@
       end
 
-      # ããªãã­ã»ããµã³ãã³ãã pipe ã¨ãã¦éã
-          # cmd ã¯ cygwin/Linux ã§ã¯ bash(sh) çµç±ã§å®è¡ããã
-          # Exerb çã§ã¯ cmd.exe çµç±ã§å®è¡ããã
-          # ãã®å·®ã¯å¼ãæ°ã® (), $, % ãªã©ã·ã§ã«ã®ç¹å¥ãªæå­ã®è©ä¾¡ã«ç¾ããã®ã§æ³¨æ
+      # プリプロセッサコマンドを pipe として開く
+          # cmd は cygwin/Linux では bash(sh) 経由で実行される
+          # Exerb 版では cmd.exe 経由で実行される
+          # この差は引き数の (), $, % などシェルの特別な文字の評価に現れるので注意
           cpp = IO.popen( cmd, "r:ASCII-8BIT" )
       begin
@@ -7269,5 +6910,5 @@
         print_exception( evar )
       ensure
-        tmp_file.close if tmp_file    # mikan File.open ã«å¤±æããæ tmp_file == nil ã¯ä¿è¨¼ããã¦ãã ?
+        tmp_file.close if tmp_file    # mikan File.open に失敗した時 tmp_file == nil は保証されている ?
         cpp.close
       end
@@ -7277,11 +6918,11 @@
     end
 
-    # C è¨èªã®ãã¼ãµã¤ã³ã¹ã¿ã³ã¹ãçæ
+    # C 言語のパーサインスタンスを生成
     c_parser = C_parser.new
 
-    # tmp_header ããã¼ã¹
+    # tmp_header をパース
     c_parser.parse( [tmp_header] )
 
-    # çµæåããã¼ãµã¹ã¿ãã¯ãæ»ã
+    # 終期化　パーサスタックを戻す
     c_parser.finalize
 
@@ -7337,11 +6978,11 @@
 
 class Import < Node
-# @b_reuse::bool:       åå©ç¨ï¼ã»ã«ã¿ã¤ãã® template çæä¸è¦
-# @b_reuse_real::bool:  å®éã«åå©ç¨
-# @cdl::      string:   import ãã CDL
-# @cdl_path:: string:   CDL ã®ãã¹
-# @b_imported:: bool:   import ããã(ã³ãã³ãã©ã¤ã³æå®ããã¦ããªã)
-
-  # ãããã®ååæå­åã®ãªã¹ã  æ·»å­ï¼expand ãããã¹ãå¤ï¼Import
+# @b_reuse::bool:       再利用．セルタイプの template 生成不要
+# @b_reuse_real::bool:  実際に再利用
+# @cdl::      string:   import する CDL
+# @cdl_path:: string:   CDL のパス
+# @b_imported:: bool:   import された(コマンドライン指定されていない)
+
+  # ヘッダの名前文字列のリスト  添字：expand したパス、値：Import
   @@import_list = {}
 
@@ -7364,7 +7005,7 @@
   end
 
-  #=== Import# import ãè¡ã
-  #cdl::      string   cdl ã¸ã®ãã¹ï¼"" ã§å²ã¾ãã¦ãããã¨ãä»®å®
-  #b_reuse::  bool     true: template ãçæããªã
+  #=== Import# import を行う
+  #cdl::      string   cdl へのパス．"" で囲まれていることを仮定
+  #b_reuse::  bool     true: template を生成しない
   def initialize( cdl, b_reuse = false, b_imported = true )
     Import.push self
@@ -7372,8 +7013,8 @@
     super()
     @@current_import = self
-    # ããããã¡ã¤ã«åæå­åããåå¾ã® "", <> ãåãé¤ãn
+    # ヘッダファイル名文字列から前後の "", <> を取り除くn
     @cdl = cdl.to_s.gsub( /\A["<](.*)[">]\z/, '\1' )
 
-    # ãµã¼ããã¹ããæ¢ã
+    # サーチパスから探す
     found = false
     @cdl_path = ""
@@ -7383,6 +7024,5 @@
 
     if Generator.get_plugin then
-      # plugin ãã import ããã¦ããå ´å gen ããµã¼ããã¹ã®å
-é ­ã«å ãã
+      # plugin から import されている場合 gen をサーチパスの先頭に加える
       search_path = [ $gen ] + $import_path
     else
@@ -7399,8 +7039,8 @@
         end
 
-        # ãã¡ã¤ã«ã® stat ãåã£ã¦ã¿ã(ãªããã°ä¾å¤çºç)
+        # ファイルの stat を取ってみる(なければ例外発生)
         File.stat( cdl_path )
 
-        # cdl ãè¦ã¤ãã£ããã¡ã¤ã«ãã¹ã«åè¨­å®
+        # cdl を見つかったファイルパスに再設定
         @cdl_path = cdl_path
         found = true
@@ -7419,5 +7059,5 @@
     end
 
-    # èª­è¾¼ã¿æ¸ã¿ãªããèª­è¾¼ã¾ãªã
+    # 読込み済みなら、読込まない
     prev = @@import_list[ File.expand_path( @cdl_path ) ]
     if( prev ) then
@@ -7428,23 +7068,23 @@
     end
 
-    # import ãªã¹ããè¨é²
+    # import リストを記録
     @@import_list[ File.expand_path( @cdl_path ) ] = self
 
-    # plugin ãã import ããã¦ããå ´å
+    # plugin から import されている場合
     plugin = Generator.get_plugin
 
-    # ãã¼ãµã¤ã³ã¹ã¿ã³ã¹ãçæ(å¥ãã¼ãµã§èª­ã¿è¾¼ã)
+    # パーサインスタンスを生成(別パーサで読み込む)
     parser = Generator.new
 
-    # plugin ãã import ããã¦ããå ´åã® plugin è¨­å®
+    # plugin から import されている場合の plugin 設定
     parser.set_plugin plugin
 
-    # reuse ãã©ã°ãè¨­å®
+    # reuse フラグを設定
     parser.set_reuse @b_reuse_real
 
-    # cdl ããã¼ã¹
+    # cdl をパース
     parser.parse( [@cdl_path] )
 
-    # çµæåããã¼ãµã¹ã¿ãã¯ãæ»ã
+    # 終期化　パーサスタックを戻す
     parser.finalize
     Import.pop
@@ -7471,6 +7111,6 @@
   end
 
-  #=== cdl ã®ååãè¿ã
-  # å¼æ°ã§æå®ããã¦ãã cdl åãä¸é¨ãã¹ãå«ãå¯è½æ§ããã
+  #=== cdl の名前を返す
+  # 引数で指定されている cdl 名。一部パスを含む可能性がある
   def get_cdl_name
     @cdl
@@ -7478,9 +7118,9 @@
 end
 
-#== generate: signature ãã©ã°ã¤ã³ã®ã­ã¼ãã¨å®è¡
+#== generate: signature プラグインのロードと実行
 class Generate < Node
 #@plugin_name:: Symbol
 #@signature_nsp:: NamespacePath
-#@option::         String '"', '"' ã§å²ã¾ãã¦ãã
+#@option::         String '"', '"' で囲まれている
 
   include PluginModule
@@ -7490,5 +7130,5 @@
     @plugin_name = plugin_name
     @signature_nsp = signature_nsp
-    option = option.to_s    # option ã¯ Token
+    option = option.to_s    # option は Token
     @option = option
 
@@ -7511,5 +7151,5 @@
 
     begin
-      eval( eval_str )     # plugin ãçæ
+      eval( eval_str )     # plugin を生成
       plugin_object.set_locale @locale
     rescue Exception => evar
@@ -7523,15 +7163,14 @@
 end
 
-#== ååç©ºéãã¹
+#== 名前空間パス
 class NamespacePath < Node
 #@b_absolute::Bool
 #@path::[ Symbol,... ]
-#@namespace::Namespace:  @b_absolute == false ã®ã¨ããåºç¹ã¨ãªã namespace
+#@namespace::Namespace:  @b_absolute == false のとき、基点となる namespace
 
   #=== NamespacePath# initialize
-  #ident::Symbol           æåã®åå, ãã ã "::" ã®ã¿ã®å ´åã¯ String
-  #b_absolute:Bool         "::" ã§å§ã¾ã£ã¦ããå ´å true
-  #namespace::Namespace    b_absolute = false ãã¤ãæ§æè§£éæ®µéä»¥å¤ã§å¼ã³åºãå ´åã¯ãå¿
-ãæå®ãããã¨ 
+  #ident::Symbol           最初の名前, ただし "::" のみの場合は String
+  #b_absolute:Bool         "::" で始まっている場合 true
+  #namespace::Namespace    b_absolute = false かつ、構文解釈段階以外で呼び出す場合は、必ず指定すること 
   def initialize( ident, b_absolute, namespace = nil )
     super()
@@ -7559,16 +7198,14 @@
   end
 
-  #=== NamespacePath# append ãã
+  #=== NamespacePath# append する
   #RETURN self
-  # ãã®ã¡ã½ããã¯ãå
-ã® NamespacePath ãªãã¸ã§ã¯ããå¤å½¢ãã¦è¿ã
+  # このメソッドは、元の NamespacePath オブジェクトを変形して返す
   def append!( ident )
     @path << ident
     return self
   end
-  #=== NamespacePath# append ãã
-  # ãã®ã¡ã½ããã¯ãå
-ã® NamespacePath ãªãã¸ã§ã¯ããå¤å½¢ããªã
-  #RETURN:: è¤è£½ãã NamespacePath
+  #=== NamespacePath# append する
+  # このメソッドは、元の NamespacePath オブジェクトを変形しない
+  #RETURN:: 複製した NamespacePath
   def append( ident )
     cl = self.clone
@@ -7586,5 +7223,5 @@
   end
 
-  #=== NamespacePath#ã¯ã­ã¼ã³ãä½æãã¦ååãå¤æ´ãã
+  #=== NamespacePath#クローンを作成して名前を変更する
   def change_name name
     cl = self.clone
@@ -7595,7 +7232,6 @@
   alias :change_name_clone :change_name
 
-  #=== NamespacePath#ååãå¤æ´ãã
-  # ãã®ã¤ã³ã¹ã¿ã³ã¹ãåç
-§ãããã¹ã¦ã«å½±é¿ãä¸ãããã¨ã«æ³¨æ
+  #=== NamespacePath#名前を変更する
+  # このインスタンスを参照するすべてに影響を与えることに注意
   def change_name_no_clone name
     @path[ @path.length - 1 ] = name
@@ -7603,6 +7239,6 @@
   end
 
-  #=== NamespacePath:: path æå­åãå¾ã
-  # CDL ç¨ã® path æå­åãçæ
+  #=== NamespacePath:: path 文字列を得る
+  # CDL 用の path 文字列を生成
   def to_s
     get_path_str
@@ -7633,10 +7269,8 @@
   end
 
-  #=== NamespacePath:: ãã¹ã®é
-åãè¿ã
-  # is_absolute? true ã®å ´åãã«ã¼ãããã®ãã¹
-  #              false ã®å ´åãbase_namespace ããã®ç¸å¯¾
-  # ã«ã¼ã namespace ã®å ´åãé·ãï¼ã®é
-åãè¿ã
+  #=== NamespacePath:: パスの配列を返す
+  # is_absolute? true の場合、ルートからのパス
+  #              false の場合、base_namespace からの相対
+  # ルート namespace の場合、長さ０の配列を返す
   #
   def get_path
@@ -7644,8 +7278,6 @@
   end
 
-  #=== NamespacePath#ãã«ãã¹ã®é
-åãè¿ã
-  # è¿ãããé
-åãæ¸ãæãã¦ã¯ãªããªã
+  #=== NamespacePath#フルパスの配列を返す
+  # 返された配列を書き換えてはならない
   def get_full_path
     if @b_absolute then
@@ -7656,11 +7288,11 @@
   end
 
-  #=== NamespacePath:: ç¸å¯¾ãã¹ã®ãã¼ã¹ã¨ãªã namespace
-  # is_absolute? == false ã®æã®ã¿æå¹ãªå¤ãè¿ã (true ãªã nil)
+  #=== NamespacePath:: 相対パスのベースとなる namespace
+  # is_absolute? == false の時のみ有効な値を返す (true なら nil)
   def get_base_namespace
     @namespace
   end
 
-  #=== NamespacePath:: C è¨èªã°ã­ã¼ãã«åãå¾ã
+  #=== NamespacePath:: C 言語グローバル名を得る
   def get_global_name
     if @b_absolute then
@@ -7680,11 +7312,11 @@
   end
 
-  #=== NamespacePath:: åè§£ãã¦ NamespacePath ã¤ã³ã¹ã¿ã³ã¹ãçæãã
-  #path_str:: String       : namespace ã¾ãã¯ region ã®ãã¹ ex) "::path::A" , "::", "ident"
-  #b_force_absolute:: Bool : "::" ã§å§ã¾ã£ã¦ããªãå ´åã§ãçµ¶å¯¾ãã¹ã«æ±ã
+  #=== NamespacePath:: 分解して NamespacePath インスタンスを生成する
+  #path_str:: String       : namespace または region のパス ex) "::path::A" , "::", "ident"
+  #b_force_absolute:: Bool : "::" で始まっていない場合でも絶対パスに扱う
   #
-  # NamespacePath ã¯éå¸¸æ§æè§£æããã¦ä½æããã
-  # ãã®ã¡ã½ããã¯ããªãã·ã§ã³ãªã©ã§æå®ãããæå­åãåè§£ãã¦ NamespacePath ãçæããã®ã«ç¨ãã
-  # ãã§ãã¯ã¯ããããä¸é©åãªãã¹æå®ã¯ãä¸é©åãª NamespacePath ãçæããã
+  # NamespacePath は通常構文解析されて作成される
+  # このメソッドは、オプションなどで指定される文字列を分解して NamespacePath を生成するのに用いる
+  # チェックはゆるい。不適切なパス指定は、不適切な NamespacePath が生成される
   def self.analyze( path_str, b_force_absolute = false )
 
@@ -7725,5 +7357,5 @@
 end
 
-# ä»¥ä¸åä½ãã¹ãã³ã¼ã
+# 以下単体テストコード
 if $unit_test then
   root_namespace = Namespace.new("::")
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/ctypes.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/ctypes.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/ctypes.rb	(revision 321)
@@ -6,69 +6,54 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: ctypes.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-# CType ã¯ C_parser ã§å®ç¾©ãããåãæ±ã CIntType, CFloatType ãªã©ã« include ãããã®
-# CIntType ã¯ IntType ãç¶æ¿ãããªã©ãC ã®åã§ã¯ TECS ã®åãç¶æ¿ãã
+# CType は C_parser で定義される型を扱う CIntType, CFloatType などに include するもの
+# CIntType は IntType を継承するなど、C の型では TECS の型を継承する
 module CType
 
-  #=== æ§æè¦ç´  type_specifier ãè¤æ°æå®ããã¦ããå ´åã« merge ãã
-  # merge ã¯ const(CIntType) unsigned(CIntTtype), long(CIntType), ãªã©ã¨ä»ã®åããã¼ã¸ãã
-  # const, unsigned, long ãªã©ã¯ãåä½ã§ int (CIntType) åã«ãªããã
+  #=== 構文要素 type_specifier が複数指定されている場合に merge する
+  # merge は const(CIntType) unsigned(CIntTtype), long(CIntType), などと他の型をマージする
+  # const, unsigned, long などは、単体で int (CIntType) 型になりうる
   #
-  # mikan C ã®ææ³ãå³å¯ã«ã¯ãã§ãã¯ãã¦ããªã  long struct ç­ãã§ãã¦ãã¾ã
+  # mikan C の文法を厳密にはチェックしていない  long struct 等もできてしまう
   def merge another
 
     # p "self: #{self.class} kind_of( IntType ): #{self.kind_of?( IntType )}  another: #{another.class}"
 
-    # signed, unsigned ã Symbol ã¨ãã¦æ¥ãäºã¯ç¡ããªã£ã
+    # signed, unsigned が Symbol として来る事は無くなった
     # if another.instance_of? Symbol then
-    #   # ããã§ Symbol ã¯ :SIGNED, :UNSIGNED ã®ãããã
+    #   # ここで Symbol は :SIGNED, :UNSIGNED のいずれか
     # 
-    #   # CIntType ãï¼
+    #   # CIntType か？
     #   if self.instance_of? CIntType then
     #     self.set_sign another
@@ -84,6 +69,6 @@
           @bit_size = -5  # long long
         else
-          # self ã¯ int åãanother ã® bit_size ã (int ä»¥å¤ã§ããã°)ãã¡ãã«ãã
-          # mikan ä¸è¨ä»¥å¤ã§ ä¸¡æ¹ -3 ã§ãªããã°ãæ¬æ¥ã¨ã©ã¼
+          # self は int 型、another の bit_size が (int 以外であれば)そちらにする
+          # mikan 上記以外で 両方 -3 でなければ、本来エラー
           @bit_size = another.get_bit_size
         end
@@ -91,10 +76,10 @@
 
       if another.get_sign then
-        # another ã§ sign ãæå®ããã¦ããã°ããã¡ãã®ãã®ãæ¡ç¨ãã mikan çç¾ã®ãã§ãã¯
+        # another で sign が指定されていれば、そちらのものを採用する mikan 矛盾のチェック
         @sign = another.get_sign
       end
 
 #      if another.get_qualifier then
-#        # another ã§ qualifier ãæå®ããã¦ããã°ããã¡ãã®ãã®ãæ¡ç¨ãã mikan çç¾ã®ãã§ãã¯
+#        # another で qualifier が指定されていれば、そちらのものを採用する mikan 矛盾のチェック
 #        @qualifier = another.get_qualifier
 #      end
@@ -110,5 +95,5 @@
       return another.merge self
     elsif self.instance_of?( CDefinedType ) then
-      # mikan unsigned ãªã©ã¨ã® merge ã®ä¸æ­£æ¤åº
+      # mikan unsigned などとの merge の不正検出
       if another.is_const? then
         @b_const = true
@@ -135,5 +120,5 @@
     else
       # mikan long double
-      #   TECS ã«ã¯ long double ãè¡¨ç¾ããææ®µããªã (double80_t ãå®ç¾©ããã°ããã?)
+      #   TECS には long double を表現する手段がない (double80_t を定義すればよいか?)
 #      cdl_warning( "C1003 $1 & $2 incompatible (\'long double\' is not supported.). Treated as $3." , self.class, another.class, self.class )
       cdl_warning( "W9999 $1 & $2 incompatible (\'long double\' is not supported.). Treated as $3." , self.get_type_str, another.get_type_str, self.get_type_str )
@@ -142,7 +127,6 @@
   end
 
-  #=== qualifier ãè¨­å®ãã
-  #     å
-ã® Type ã¯ã©ã¹ã§ã¯çç¾ãã§ãã¯ããªãï¼TECSã®æ¬æ¥ã®ææ³ã§ã¯éè¤æå®ã§ããªãããï¼
+  #=== qualifier を設定する
+  #     元の Type クラスでは矛盾チェックしない（TECSの本来の文法では重複指定できないため）
   def set_qualifier( qual )
 
@@ -181,5 +165,5 @@
 
   def initialize( bit_size )
-    #p super.class   mikan super.class ã Symbol ã ããªãï¼
+    #p super.class   mikan super.class が Symbol だ、なぜ？
     super( bit_size )
   end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/expression.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/expression.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/expression.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: expression.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -71,5 +56,5 @@
 
   #=== Expression# to_s
-  # C è¨èªã½ã¼ã¹åãã®æå­åãçæ (globa_name)
+  # C 言語ソース向きの文字列を生成 (globa_name)
   def to_s
     elements_to_s( @elements )
@@ -77,5 +62,5 @@
 
   #=== Expression# to_str
-  # C è¨èªã½ã¼ã¹åãã®æå­åãçæ (globa_name)
+  # C 言語ソース向きの文字列を生成 (globa_name)
   def to_str( name_list, pre, post )
     elements_to_s( @elements, name_list, pre, post )
@@ -83,27 +68,25 @@
 
   #=== Expression#to_CDL_str
-  # CDL è¡¨ç¾ã®æå­åãçæ
+  # CDL 表現の文字列を生成
   def to_CDL_str
     return to_s
   end
 
-  #=== å®æ°å¼ã¨ãã¦è©ä¾¡ãã(ãã©ã¤ãã¦ã¿ã)
+  #=== 定数式として評価する(トライしてみる)
   #
-  # ãã®ã¡ã½ããã¯ãå®æ°å¼ãè©ä¾¡ãã
-  # ã»attribute, var ã®åæåå­
-  # ã»size_is, count_is å¼æ°
-  # ã»é
-åã®æ·»æ°
+  # このメソッドは、定数式を評価する
+  # ・attribute, var の初期化子
+  # ・size_is, count_is 引数
+  # ・配列の添数
   #
-  # name_list(NamedList|Nil): å¼ããåç
-§å¯è½ãªãªã¹ãï¼
-  # NamedList ã®è¦ç´ ã¯  size_is, count_is ã®å¼æ°è©ä¾¡ã®å ´å ParamDecl (é¢æ°ä»®å¼æ°)
+  # name_list(NamedList|Nil): 式から参照可能なリスト．
+  # NamedList の要素は  size_is, count_is の引数評価の場合 ParamDecl (関数仮引数)
   #
-  # name_list2(NamedList|Nil) : NamedList ã®è¦ç´ ã¯ Decl (attribute, var) ã§ããï¼çç¥æ nil
+  # name_list2(NamedList|Nil) : NamedList の要素は Decl (attribute, var) である．省略時 nil
   # 
-  # RETURN: è©ä¾¡ããå®æ°ï¼è©ä¾¡ã§ããªãã£ãå ´åã¯ nil ãè¿ã
+  # RETURN: 評価した定数．評価できなかった場合は nil を返す
   #
-  # åã¯ get_type ã§ãè©ä¾¡ããï¼å®æ°ã¨ãã¦æ±ããããªãã¨ãã«ä½¿ç¨ã§ããï¼
-  # Array ãè¿ãã®ã¯ attr{ int *a = {1, 2, 3}; int *b = a; }; ã® b ã®å³è¾ºãè©ä¾¡ããå ´å
+  # 型は get_type で、評価する（定数として求められないときに使用できる）
+  # Array を返すのは attr{ int *a = {1, 2, 3}; int *b = a; }; の b の右辺を評価した場合
 
   def eval_const( name_list, name_list2 = nil )
@@ -116,26 +99,26 @@
       return val.to_i
     elsif val.kind_of? PointerVal then
-      return val.to_i           # mikan ã¨ã©ã¼ V1008 ãçºçãã¦ãã¾ã
+      return val.to_i           # mikan エラー V1008 が発生してしまう
       # elsif val.kind_of? EnumVal then
       # enum mikan
     else
-      # C_EXP, Array ã¾ãã¯ nil ï¼ãã®ã¾ã¾è¿ã
+      # C_EXP, Array または nil ：そのまま返す
       return val
     end
   end
 
-  #=== å®æ°å¼ã¨ãã¦è©ä¾¡ãã2(ãã©ã¤ãã¦ã¿ã)
+  #=== 定数式として評価する2(トライしてみる)
   #
-  # IntegerVal, FloatVal ããã®ã¾ã¾è¿ãï¼eval_const ã§ã¯ Integer, Float ã«å¤æï¼
+  # IntegerVal, FloatVal をそのまま返す（eval_const では Integer, Float に変換）
   def eval_const2( name_list, name_list2 = nil, nest = 0 )
     val = elements_eval_const( @elements, name_list, name_list2, nest )
   end
 
-  #=== å¼ã®åãè©ä¾¡ãã
+  #=== 式の型を評価する
   #
-  # eval_const ã§å¤ãå¾ãããªãå ´åãåãå°åºå¯è½ã§ããã°åãå¾ã
-  # param ãå«ãã å¼ã¯å®æ°å¤ãæ±ããããªãããåãå¾ããã¨ã¯ã§ãã
-  # æªå®ç¾©å¤æ°ãå«ãã åã¯ãå¾ããã¨ãã§ããªã (ããã¼åå®ç¾©ãè¿ã)
-  def get_type( namedList )        # ååç©ºéã® NamedList ãæå®
+  # eval_const で値が得られない場合、型を導出可能であれば型を得る
+  # param を含んだ式は定数値を求められないが、型を得ることはできる
+  # 未定義変数を含んだ型は、得ることができない (ダミー型定義が返る)
+  def get_type( namedList )        # 名前空間の NamedList を指定
     elements_get_type( @elements, namedList )
   end
@@ -150,5 +133,5 @@
 
   def show_tree( indent )
-    # mikan override ãã¦ãã¾ã£ã print ãå¼åºãæ¹æ³ãããããªãã®ã§ãããã
+    # mikan override してしまった print を呼出す方法がわからないのでこうした
     str = ""
     indent.times { str += "  " }
@@ -158,9 +141,9 @@
 ## private
 
-  #=== å¼ãæå­åã«å¤æ
-  #name_list:: attribute (Celltype::@attribute_list), struct ã® @member_list ãä»®å®ãã¦ãã
+  #=== 式を文字列に変換
+  #name_list:: attribute (Celltype::@attribute_list), struct の @member_list を仮定している
   def elements_to_s( elements, name_list = nil, pre = nil, post = nil )
     if elements.instance_of? Token then
-      return elements.to_s    # OP_DOT, OP_REF ã®å³è¾º
+      return elements.to_s    # OP_DOT, OP_REF の右辺
     end
 
@@ -246,18 +229,15 @@
   end
 
-  # å®æ°å¼(elements)ãè©ä¾¡ãã
+  # 定数式(elements)を評価する
   #
-  # ãã®ã¡ã½ããã¯ Expression ã¯ã©ã¹ã®ã¡ã½ããã§ããå¿
-è¦ã¯ãªãï¼é¢æ°åã§ããï¼
+  # このメソッドは Expression クラスのメソッドである必要はない（関数化できる）
   #
-  # elements ã¯å¼ã®è¦ç´ 
+  # elements は式の要素
   #
-  # name_list, name_list2 ã¯ eval_const ãåç
-§
+  # name_list, name_list2 は eval_const を参照
   #
-  # RETURN: è©ä¾¡ããå®æ°ãè©ä¾¡ã§ããªãã£ãå ´åã¯ nil ãè¿ã
-
-  MAX_NEST_LEVEL = 64    # ç°¡æã®ã«ã¼ãæ¤åºï¼åç
-§ã®ãã¹ãã 64 ã¾ã§è¨±å¯ããï¼
+  # RETURN: 評価した定数、評価できなかった場合は nil を返す
+
+  MAX_NEST_LEVEL = 64    # 簡易のループ検出（参照のネストを 64 まで許可する）
   def elements_eval_const( elements, name_list, name_list2 = nil, nest = nil )
 
@@ -266,9 +246,7 @@
       nsp = elements[1]
 
-      # #809 ã®ä¿®æ­£ããã (å¥ã®åé¡ãè§£æ±ºãããã¦ããªã)
-      # nest += 1     # åç
-§ãã«ã¼ãã«ãªã£ã¦ããªããã®ãã§ãã¯
-      #               # mikan æ¬å½ã«ã«ã¼ããã¦ãããã©ããã§ã¯ãªããåç´ã«å¤æ°ã®åç
-§ãç¹°ãè¿ãã¦ãããã¨ã§å¤å®ãã¦ãã
+      # #809 の修正しかけ (別の問題が解決しきれていない)
+      # nest += 1     # 参照がループになっていないかのチェック
+      #               # mikan 本当にループしているかどうかではなく、単純に多数の参照を繰り返していることで判定している
       # if nest > MAX_NEST_LEVEL then
       #   cdl_error( "E9999: '$1' too many reference (maybe loop) max=$1" , nsp.to_s, MAX_NEST_LEVEL )
@@ -285,17 +263,16 @@
       end
 
-      # è¦ã¤ãããªããã°å®æ°å®ç¾©ããæ¢ã
+      # 見つからなければ定数定義から探す
       if object == nil then
-        object = Namespace.find( nsp )# mikan namespace ã®å¯¾å¿ #1
-      end
-
-# ãã®å®è£
-ã¯ãããå°ãæ´çãããã¹ã
-# ãããå¼åºãããã®ã¯ãä»¥ä¸ã®å ´å
-#   ã»attribute, var ã®å³è¾ºå¼ã®è©ä¾¡
-#   ã»size_is å¼æ°ã®è©ä¾¡ï¼é¢æ°ãã©ã¡ã¼ã¿ã®å ´åã¨attribute, var ã®å ´åããã
-# ä»¥ä¸ã®ã¨ã©ã¼ãã§ãã¯ã§ã¯ããããããã£ã¡ãã«ãªã£ã¦èª¤ããæ¤åºãããã¨ãã¦ãã
-
-      # IDENTIFIER ã¯è¦ã¤ãããªãã£ãï¼
+        object = Namespace.find( nsp )# mikan namespace の対応 #1
+      end
+
+# この実装は、もう少し整理されるべき
+# これが呼出されるのは、以下の場合
+#   ・attribute, var の右辺式の評価
+#   ・size_is 引数の評価：関数パラメータの場合とattribute, var の場合がある
+# 以下のエラーチェックでは、これらがごっちゃになって誤りを検出しようとしている
+
+      # IDENTIFIER は見つからなかった？
       if object == nil then
         cdl_error( "E1001 $1: not found" , nsp.get_path_str )
@@ -303,6 +280,6 @@
         return nil
       elsif object.instance_of?( Join ) then
-        # Join ã®å ´åï¼ cell ã®ä¸­ã® attribute, var, call ã®ã©ãããè¦ã¤ãã£ã
-        # Decl (attribute, var) ã§ãªãï¼
+        # Join の場合： cell の中の attribute, var, call のどれかが見つかった
+        # Decl (attribute, var) でない？
         if ! object.get_definition.instance_of?( Decl ) then
           cdl_error( "E1002 $1: not constant (port)" , nsp.get_path_str )
@@ -311,8 +288,8 @@
         return object.get_rhs.eval_const2( name_list, name_list2, nest )
       elsif ! object.instance_of?( Decl ) then
-        # Decl ã§ãªãå ´åï¼ å®æ°ã§ããªã
+        # Decl でない場合： 定数でもない
         if ( ! object.instance_of?( ParamDecl ) ) then
-                                                      # mikan paramdecl ã¯ç¡è¦ãã
-                                                      # ParamList ããå¼ã°ããã¨ã
+                                                      # mikan paramdecl は無視する
+                                                      # ParamList から呼ばれたとき
           cdl_error( "E1003 $1: not constant" , nsp.get_path_str )
         else
@@ -324,13 +301,13 @@
         object.referenced
         if object.get_initializer == nil then
-          # åæåå­ã®å­å¨ããªãå¤æ°   # mikan ããã¸ããã®ã¯ãéå¸¸ããããªãã¯ãï¼æªæ¤è¨¼ï¼
+          # 初期化子の存在しない変数   # mikan ここへくるのは、通常ありえないはず（未検証）
           return IntegerVal.new( 0 )
         else
-          # Decl ã®å³è¾ºã®è©ä¾¡
-          # mikan size_is å¼æ°ã«ç¾ããå¤æ°ã®åãé©åãã®ãã§ãã¯ãã
+          # Decl の右辺の評価
+          # mikan size_is 引数に現れる変数の型が適切かのチェックする
           if object.get_initializer.instance_of?( Expression ) || object.get_initializer.instance_of?( C_EXP ) then
             return object.get_initializer.eval_const2( name_list, name_list2, nest )
           else
-            # Array ã®å ´å
+            # Array の場合
             return object.get_initializer
           end
@@ -440,5 +417,5 @@
 # p "val.respond_to?( \"-@\" )=#{val.respond_to?( "-@" )} #{val.class}"
 # p "val.respond_to?( \"~@\" )=#{val.respond_to?( "~@" )}"
-#2.0      if val.respond_to?( "~@" ) then  # Ruby 1.9, 2.0 preview çã§ã¯ä¾å¤ãçºçãã¦ãã¾ã
+#2.0      if val.respond_to?( "~@" ) then  # Ruby 1.9, 2.0 preview 版では例外が発生してしまう
       if val.kind_of? IntegerVal then
         return ~ val
@@ -586,6 +563,5 @@
   def elements_get_type( elements, namedList )
     type = elements_get_type_sub( elements, namedList )
-    # è¿ãããæ¹ã DefinedType ã®å ´å å
-ã®åãè¿ã
+    # 返された方が DefinedType の場合 元の型を返す
     if type.kind_of?( DefinedType ) then
       type = type.get_type
@@ -626,24 +602,24 @@
       unless type.kind_of?( PtrType ) then
         cdl_error( "E1013 \'*\': operand is not pointer value"  )
-        return IntType.new( 8 )    # IntType ãè¿ãã¦ãã
+        return IntType.new( 8 )    # IntType を返しておく
       end
       return type.get_referto
 
     when :OP_U_PLUS, :OP_U_MINUS
-      # mikan operand ãé©åãªåããã§ãã¯ãã¦ããªã
+      # mikan operand が適切な型かチェックしていない
       return elements_get_type( elements[1], namedList )
 
     when :OP_ADD, :OP_SUB, :OP_MULT, :OP_DIV, :OP_REMAIN
-      # mikan operand ãé©åãªåããã§ãã¯ãã¦ããªãï¼å·¦è¾ºã®åãæ¡ç¨ãã¦ãã
+      # mikan operand が適切な型かチェックしていない＆左辺の型を採用している
       return elements_get_type( elements[1], namedList )
 
     when :OP_U_TILDE
-      # mikan operand ãæ´æ°ããã§ãã¯ãã¦ããªã
+      # mikan operand が整数かチェックしていない
       return elements_get_type( elements[1], namedList )
     when :OP_AND, :OP_EOR, :OP_OR, :OP_LSFT, :OP_RSFT
-      # mikan operand ãæ´æ°ããã§ãã¯ãã¦ããªã
+      # mikan operand が整数かチェックしていない
       return BoolType.new
     when :OP_U_EXCLAM
-      # mikan operand ãæ´æ°ããã§ãã¯ãã¦ããªã
+      # mikan operand が整数かチェックしていない
       return BoolType.new
 
@@ -655,9 +631,8 @@
   end
 
-  # å¼ã size_is, count_is, string ã®å¼æ°ã§ããå ´åã®æ¹åã®ãã§ãã¯
+  # 式が size_is, count_is, string の引数である場合の方向のチェック
   def elements_check_dir_for_param( elements, namedList, dir, spec )
-   # dir ï¼ å
-ã®å¼æ°ã®æ¹å
-   # direct: size_is ãªã©ã®å¼æ°ã®å¤æ°ã®æ¹å
+   # dir ： 元の引数の方向
+   # direct: size_is などの引数の変数の方向
 
     case elements[0]
@@ -690,5 +665,5 @@
           judge = true if ( direct == :IN || direct == :INOUT )
           req_direct = "in or inout"
-        when :OUT, :RECEIVE     # mikan out ã§ count_is ã®ã¿æå®ããã¦ããå ´å in ã§ãªãã¦ã¯ãªããªã
+        when :OUT, :RECEIVE     # mikan out で count_is のみ指定されている場合 in でなくてはならない
           judge = true if ( direct == :OUT || direct == :INOUT )
           req_direct = "out or inout"
@@ -706,16 +681,13 @@
       return true
 
-    # åé 
-æ¼ç®å­
+    # 単項演算子
     when :OP_U_ASTER, :OP_SIZEOF_EXPR, :OP_SIZEOF_TYPE, :OP_U_PLUS, :OP_U_MINUS, :OP_U_TILDE, :OP_U_EXCLAM, :CAST, :OP_U_AMP, :PARENTHESES,
       elements_check_dir_for_param( elements[1], namedList, dir, spec )
 
-    # 2é 
-æ¼ç®å­
+    # 2項演算子
     when :OP_SUBSC, :OP_DOT, :OP_REF, :OP_MULT, :OP_DIV, :OP_REMAIN, :OP_ADD, :OP_SUB, :OP_LSFT, :OP_RSFT, :OP_LT, :OP_GT, :OP_LE, :OP_GE, :OP_EQ, :OP_NE, :OP_AND, :OP_EOR, :OP_OR, :OP_LAND, :OP_LOR
       return elements_check_dir_for_param( elements[1], namedList, dir, spec ) && elements_check_dir_for_param( elements[2], namedList, dir, spec )
 
-    # 3é 
-æ¼ç®å­
+    # 3項演算子
     when :OP_CEX
       return elements_check_dir_for_param( elements[1], namedList, dir, spec ) && elements_check_dir_for_param( elements[2], namedList, dir, spec ) && elements_check_dir_for_param( elements[3], namedList, dir, spec )
@@ -729,5 +701,5 @@
   #Express# get_allocator_rhs_elem
   #alloc_type::Symbol  :NORMAL_ALLOC|:INTERNAL_ALLOC|:RELAY_ALLOC
-  #å¼ãã¢ã­ã±ã¼ã¿æå®å­ã®å³è¾ºã¨ãã¦å¦¥å½ããã§ãã¯ããæ­£ãããã°åè§£ããå¤ãè¿ã
+  #式がアロケータ指定子の右辺として妥当かチェックし、正しければ分解した値を返す
   #return:
   #  :NORMAL_ALLOC      [ cell_nsp, ep_name ]               # rhs = cell_nsp.ep_name    ex) Alloc.eAlloc
@@ -767,5 +739,5 @@
   end
 
-  #Expression#Expression ã®ã¯ã­ã¼ã³ãä½æãã
+  #Expression#Expression のクローンを作成する
   def clone_for_composite
     cl = self.clone
@@ -775,7 +747,7 @@
   end
 
-  #Expression#elements ã®ã¯ã­ã¼ã³ãä½æ
+  #Expression#elements のクローンを作成
   #elements::Array
-  # ãã®ã¡ã½ããã¯ãArray ã®ãã£ã¼ãã³ãã¼ãè¡ã
+  # このメソッドは、Array のディープコピーを行う
   def clone_elements elements
     elements = elements.clone
@@ -794,18 +766,15 @@
   end
 
-  #=== Expression#ã»ã«çµåã®å¼ãè§£æãã
+  #=== Expression#セル結合の式を解析する
   # Cell.eEntry  => [ :OP_DOT, [ :IDENTIFIER, token ], token ]
   # Cell.eEntry[expression] => [ :OP_SUBSC, [ :OP_DOT, [ :IDENTIFIER, token ], token ], expression ]
   # Return: [ NamespacePath(cell_name), Integer(subscript) or nil, Token(port_name)]
   def analyze_cell_join_expression
-    # å³è¾ºã® Expression ã®è¦ç´ ãåãåºã
+    # 右辺の Expression の要素を取り出す
     elements = @elements
-    if elements[0] == :OP_SUBSC then  # å³è¾ºï¼åãå£é
-åï¼
+    if elements[0] == :OP_SUBSC then  # 右辺：受け口配列？
       # elements = [ :OP_SUBSC, [ :OP_DOT, [ :IDENTIFIER, token ], token ], expression ]
-      subscript = elements[2].eval_const(nil)  # åãå£é
-åã®æ·»æ°
-      elements  = elements[1]          # mikan é
-åã ã£ãå ´å
+      subscript = elements[2].eval_const(nil)  # 受け口配列の添数
+      elements  = elements[1]          # mikan 配列だった場合
     else
       subscript = nil
@@ -823,9 +792,9 @@
   end
 
-  #=== Expression# ã»ã«ã¸ã®çµåã®å¼ãçæãã
+  #=== Expression# セルへの結合の式を生成する
   #nsp:: NamespacePath
   #subscript:: Integer
   #port_name:: Symbol
-  # analyze_cell_join_expression ã¨å¯¾ã«ãªã£ã¦ãã
+  # analyze_cell_join_expression と対になっている
   def self.create_cell_join_expression( nsp, subscript, port_name, locale = nil )
     if ! port_name.instance_of?( Symbol ) then
@@ -843,6 +812,6 @@
   end
 
-  #=== Expression#æ´æ°å®æ°ã®å¼ãçæãã
-  #val:: Integer : å¤ï¼ æ´æ°
+  #=== Expression#整数定数の式を生成する
+  #val:: Integer : 値： 整数
   def self.create_integer_constant( val, locale = nil )
     if val != Integer( val ) || val < 0 then
@@ -852,9 +821,9 @@
   end
 
-  #=== Expression#åä¸ã®è­å¥å­ã®å¼ãè§£æãã
+  #=== Expression#単一の識別子の式を解析する
   # Identifier  => [ :IDENTIFIER, token ]
   # Return: NamespacePath(Identifier)
   def analyze_single_identifier
-    # å³è¾ºã® Expression ã®è¦ç´ ãåãåºã
+    # 右辺の Expression の要素を取り出す
     elements = @elements
     if elements[0] == :IDENTIFIER
@@ -866,6 +835,5 @@
 
   #=== Expression#
-  #nsp:: NamespacePath :  åç
-§ãããã®è­å¥å­
+  #nsp:: NamespacePath :  参照するもの識別子
   def self.create_single_identifier( nsp, locale )
     if ! nsp.instance_of?( NamespacePath ) then
@@ -875,7 +843,7 @@
   end
 
-  #=== è©ä¾¡å¯è½ããã§ãã¯ãã
-  #*v:: å¯å¤åå¼æ°ï¼ä»»æã®åï¼
-  # ãã¹ã¦ã BaseVal ã®å­ã¯ã©ã¹ï¼å¤ï¼ã§ããã°ãè©ä¾¡å¯è½ã¨å¤æ­ãã
+  #=== 評価可能かチェックする
+  #*v:: 可変個引数（任意の型）
+  # すべてが BaseVal の子クラス（値）であれば、評価可能と判断する
   def evaluable?( *v )
     v.each{ |val|
@@ -896,10 +864,10 @@
 
   #c_exp_string::String
-  #b_renew::Bool  : true ãªã C_EXP ã® clone ä½æï¼ã¨ã¹ã±ã¼ãå¦çç­ãããªãï¼
+  #b_renew::Bool  : true なら C_EXP の clone 作成（エスケープ処理等をしない）
   def initialize( c_exp_string, b_renew = false )
     if b_renew then
       @c_exp_string = c_exp_string
     else
-      # åå¾ã® " ãåãé¤ã
+      # 前後の " を取り除く
       # str = c_exp_string.to_s.sub( /^\"(.*)\"$/, "\\1" )
       str = CDLString.remove_dquote c_exp_string.to_s
@@ -908,10 +876,10 @@
   end
 
-  #=== composite ç¨ã« C_EXP ã clone ãã
+  #=== composite 用に C_EXP を clone する
   #ct_name::
   #cell_name::
-  # composite ã® attribute ã«ç¾ãã C_EXP ãæå­åç½®æãã¦çæããªããï¼
-  # ãã®æå­åç½®æã¯ãæå³è§£éæ®µéã§è¡ãï¼
-  # ä»ã® C_EXP ã®æå­åç½®æã¯ãã³ã¼ãçææ®µéã§è¡ãï¼
+  # composite の attribute に現れる C_EXP を文字列置換して生成しなおす．
+  # この文字列置換は、意味解釈段階で行う．
+  # 他の C_EXP の文字列置換は、コード生成段階で行う．
   def clone_for_composite( ct_name, cell_name, locale )
     dbgPrint "C_EXP: #{ct_name} #{cell_name} #{@c_exp_string}\n"
@@ -928,7 +896,7 @@
   end
 
-  #=== C_EXP ãè©ä¾¡ãã
-  # C_EXP ã®å¼ãæ°æå­åãè¿ã
-  # æ¬æ¥ C_EXP ã¯ eval_const ããå¯¾è±¡ã§ã¯ãªãããä¾¿å®ä¸ eval_const ã§å¯¾å¿
+  #=== C_EXP を評価する
+  # C_EXP の引き数文字列を返す
+  # 本来 C_EXP は eval_const する対象ではないが、便宜上 eval_const で対応
   def eval_const( name_list, name_list2 = nil )
      return self
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/gen_xml.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/gen_xml.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/gen_xml.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: gen_xml.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -80,25 +65,25 @@
 
   def gen_XML( file, nest )
-    # signature ã®ã³ã¼ããçæ
+    # signature のコードを生成
     @signature_list.each { |s|
       s.gen_XML file, nest
     }
 
-    # celltype ã®ã³ã¼ããçæ
+    # celltype のコードを生成
     @celltype_list.each { |t|
       t.gen_XML( file, nest )
     }
 
-    # composite ã®ã³ã¼ããçæ
+    # composite のコードを生成
     @compositecelltype_list.each { |t|
       t.gen_XML( file, nest )
     }
 
-    # cell ã®ã³ã¼ããçæ
+    # cell のコードを生成
     @cell_list.each { |t|
       t.gen_XML( file, nest )
     }
 
-    # ãµããã¼ã ã¹ãã¼ã¹ã®ã³ã¼ããçæ
+    # サブネームスペースのコードを生成
     @namespace_list.each { |n|
       kind = n.instance_of?( Namespace ) ? "namespace" : "region"
@@ -250,11 +235,9 @@
 
 #
-# Celltype ã¨å
-±ç¨å¯è½ãªã¯ãã ããä»¥ä¸ã®ç¹ã®å¤æ´ãå¿
-è¦
-#  @active â @b_active
-#  @singleton â @b_singleton
-#  @attribute â @name_list (Decl)
-#  @port â @name_list (Port)
+# Celltype と共用可能なはずだが、以下の点の変更が必要
+#  @active ⇒ @b_active
+#  @singleton ⇒ @b_singleton
+#  @attribute ⇒ @name_list (Decl)
+#  @port ⇒ @name_list (Port)
 class CompositeCelltype
   def gen_XML file, nest
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/generate.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/generate.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/generate.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2016 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: generate.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -134,5 +119,5 @@
 end
 
-# celltype_private.h ãçæ
+# celltype_private.h を生成
 
 class Namespace
@@ -140,8 +125,6 @@
 
     begin
-      # root namespace ãªãã° makefile ãåºåãã(å
-¨ã»ã«ã¿ã¤ãã«é¢ãããã®ã ã)
-      # å
-ã«åºåãã
+      # root namespace ならば makefile を出力する(全セルタイプに関わるものだけ)
+      # 先に出力する
       if @name == "::" then
 
@@ -155,18 +138,18 @@
 
       dbgPrint "generating region: #{$generating_region.get_name} namespace=#{@name} gen_dir=#{$gen}\n"
-      # global_tecsgen.h (typedef, struct, const) ã®çæ
+      # global_tecsgen.h (typedef, struct, const) の生成
       gen_global_header
 
-      # signature ã®ã³ã¼ããçæ
+      # signature のコードを生成
       @signature_list.each { |s|
         s.generate
       }
 
-      # celltype ã®ã³ã¼ããçæ
+      # celltype のコードを生成
       @celltype_list.each { |t|
         t.generate
       }
 
-      # ãµããã¼ã ã¹ãã¼ã¹ã®ã³ã¼ããçæ
+      # サブネームスペースのコードを生成
       @namespace_list.each { |n|
         n.generate
@@ -174,5 +157,5 @@
 
     rescue => evar
-      # ããã¹ã¿ãã¯ãã¬ã¼ã¹ãåºãã¾ã§ãæéãããããããªãã°ãæ¬¡ãã³ã¡ã³ãã¢ã¦ããã¦ã¿ãã¹ã
+      # もしスタックトレースが出るまでい時間がかかるようならば、次をコメントアウトしてみるべし
       cdl_error( "H1001 tecsgen: fatal internal error during code generation"  )
       print_exception( evar )
@@ -187,18 +170,18 @@
 
     begin
-      # global_tecsgen.h (typedef, struct, const) ã®çµããã®ã¬ã¼ãã³ã¼ãçæ
+      # global_tecsgen.h (typedef, struct, const) の終わりのガードコード生成
       gen_global_header_post
 
-      # signature ã®ã³ã¼ããçæ
+      # signature のコードを生成
       @signature_list.each { |s|
         s.generate_post
       }
 
-      # celltype ã®ã³ã¼ããçæ
+      # celltype のコードを生成
       @celltype_list.each { |t|
         t.generate_post
       }
 
-      # ãµããã¼ã ã¹ãã¼ã¹ã®ã³ã¼ããçæ
+      # サブネームスペースのコードを生成
       @namespace_list.each { |n|
         n.generate_post
@@ -214,5 +197,5 @@
   def gen_global_header
 
-    # global_tecs.h ã®çæ
+    # global_tecs.h の生成
     f = AppFile.open( "#{$gen}/global_tecsgen.#{$h_suffix}" )
 
@@ -220,5 +203,5 @@
       print_note f
 
-      # ã¬ã¼ãã³ã¼ããåºå
+      # ガードコードを出力
       f.print <<EOT
 #ifndef GLOBAL_TECSGEN_H
@@ -227,7 +210,7 @@
 EOT
 
-      # import_C ã§æå®ãããããããã¡ã¤ã«ã® #include ãåºå
+      # import_C で指定されたヘッダファイルの #include を出力
       if Import_C.get_header_list2.length > 0 then
-        # ããã include ã®åºå
+        # ヘッダ include の出力
         f.printf TECSMsg.get( :IMP_comment ), "#_IMP_#"
         Import_C.get_header_list2.each{ |h|
@@ -240,11 +223,11 @@
     end
 
-    # typedef, struct, enum ãçæ
+    # typedef, struct, enum を生成
     @decl_list.each { |d|
 
-      # d ã¯ Typedef, StructType, EnumType ã®ãããã
+      # d は Typedef, StructType, EnumType のいずれか
       if d.instance_of?( Typedef ) then
 
-        # Typedef ã®å ´åãdeclarator ã® @type ããCType ã§ãªãã
+        # Typedef の場合、declarator の @type が　CType でないか
         if ! d.get_declarator.get_type.kind_of?( CType ) then
           d.gen_gh f
@@ -252,8 +235,8 @@
       elsif ! d.kind_of?( CType ) then
 
-        # CType ã§ã¯ãªã (StructType ã¾ãã¯ EnumType)
+        # CType ではない (StructType または EnumType)
         d.gen_gh f
 #     else
-#       ããã«è©²å½ããã®ã¯ CStructType, CEnumType
+#       ここに該当するのは CStructType, CEnumType
       end
     }
@@ -283,5 +266,5 @@
     end
 
-    # const ãçæ  mikan
+    # const を生成  mikan
     @const_decl_list.each { |d|
       f.printf( "#define %-14s ((%s%s)%s)\n", d.get_global_name,
@@ -296,5 +279,5 @@
   def gen_global_header_post
 
-    # global_tecs.h ãéã
+    # global_tecs.h を開く
     f = AppFile.open( "#{$gen}/global_tecsgen.#{$h_suffix}" )
 
@@ -310,10 +293,8 @@
   end
 
-  #=== Makefile.tecsgen, Makefile.templ ã®åºå
-  # å
-¨ã»ã«ã¿ã¤ãåãåºåããé¨åãåºå
-  #    ï¼æ¬ã¡ã½ããã¯ root namespace ã«å¯¾ãã¦å¼åºãï¼
-  #     åã
-ã®ã»ã«ã¿ã¤ãã®ã¡ã¼ã¯ã«ã¼ã«ã¯ Celltype ã¯ã©ã¹ã§åºå
+  #=== Makefile.tecsgen, Makefile.templ の出力
+  # 全セルタイプ名を出力する部分を出力
+  #    （本メソッドは root namespace に対して呼出す）
+  #     個々のセルタイプのメークルールは Celltype クラスで出力
   def gen_makefile
     gen_makefile_template
@@ -325,17 +306,17 @@
     return if $generate_no_template
 
-    ### Makefile.templ ã®çæ
+    ### Makefile.templ の生成
     f = AppFile.open( "#{$gen}/Makefile.templ" )
 
     print_Makefile_note f
 
-    # Makefile ã®å¤æ°ã®åºå
+    # Makefile の変数の出力
     f.printf TECSMsg.get( :MVAR_comment ), "#_MVAR_#"
     f.printf "# fixed variable (unchangeable by config or plugin)\n"
 
-    # TARGET ã®åºå (ç¬¬ä¸å¼æ° $target ã« region åããã³ .exe ãä»å )
+    # TARGET の出力 (第一引数 $target に region 名および .exe を付加)
     target = $target
     if $generating_region != @@root_namespace then
-      # å­ region ã®ãªã³ã¯ã¿ã¼ã²ããã®å ´å
+      # 子 region のリンクターゲットの場合
       target += "-#{$generating_region.get_global_name}"
     end
@@ -419,5 +400,5 @@
 EOT
 
-    # make ã«ã¼ã«ã®åºå
+    # make ルールの出力
     f.printf( TECSMsg.get( :MRUL_comment), "#_MRUL_#" )
 
@@ -447,5 +428,5 @@
     f.print "-include $(GEN_DIR)/Makefile.tecsgen\n"
     if $generating_region.get_n_cells != 0 then
-      # Makefile.depend ã® include
+      # Makefile.depend の include
       f.print "-include $(GEN_DIR)/Makefile.depend\n\n"
 
@@ -457,5 +438,5 @@
       f.print "\nsub_regions:$(TIMESTAMP)\n"
       Region.get_link_roots.each {|region|
-        if region.get_global_name != "" then  # Root region: ãã® Makefile èªèº«
+        if region.get_global_name != "" then  # Root region: この Makefile 自身
           f.print "\tcd #{region.get_global_name}; make all\n"
         end
@@ -464,9 +445,9 @@
     end
 
-    # clean: ã¿ã¼ã²ãã
+    # clean: ターゲット
     f.print "clean :\n"
     if $generating_region == @@root_namespace then
       Region.get_link_roots.each {|region|
-        if region.get_global_name != "" then  # Root region: ãã® Makefile èªèº«
+        if region.get_global_name != "" then  # Root region: この Makefile 自身
           f.print "\tcd #{region.get_global_name}; make clean\n"
         end
@@ -479,5 +460,5 @@
     f.print "\n"
 
-    # tecs: ã¿ã¼ã²ãã
+    # tecs: ターゲット
     if $generating_region == @@root_namespace then
       f.print "tecs : $(PRE_TECSGEN_TARGET) $(TIMESTAMP) $(POST_TECSGEN_TARGET)\n\n"
@@ -508,5 +489,5 @@
 
   def gen_makefile_tecsgen
-    ### Makefile.tecsgen ã®çæ
+    ### Makefile.tecsgen の生成
     f = AppFile.open( "#{$gen}/Makefile.tecsgen" )
 
@@ -563,6 +544,5 @@
     domain_regions = nil
     DomainType.get_domain_regions.each{ |dt, regions|
-      # domain_type ã¯ä¸ã¤ã®ãã¼ãã«ã¯ãä¸ã¤ãããªãã®ã§ããã®ã«ã¼ãã¯ãå¿
-ãä¸åããåããªã
+      # domain_type は一つのノードには、一つしかないので、このループは、必ず一回しか回らない
       domain_regions = regions
       domain_type = dt
@@ -687,14 +667,13 @@
   end
 
-  #=== ãã¹ã¦ã®ã»ã«ã¿ã¤ãã®ååãåºå
-  #f::       FILE:   åºåå
-ãã¡ã¤ã«
-  #prepend:: string: åç½®æå­å
-  #append::  string: å¾ç½®æå­å
-  #b_plguin::  bool:   plugin ã«ããçæãããã»ã«ã¿ã¤ããåºå
-  ##b_inline_only::  bool:   true ãªãã° inline ã® entry port ã®ã¿ã®ã»ã«ã¿ã¤ããå«ãã
-  #b_inline_only_or_proc::  bool|Proc:   true ãªãã° inline ã® entry port ã®ã¿ããã¤ã¤ã³ã¢ã¯ãã£ããªã»ã«ã¿ã¤ããå«ãã
-  #                                      Proc ãªãã° Proc ãå®è¡ããçµæ true ãªãã°å«ãã
-  #  namespace "::" ããå¼åºããã
+  #=== すべてのセルタイプの名前を出力
+  #f::       FILE:   出力先ファイル
+  #prepend:: string: 前置文字列
+  #append::  string: 後置文字列
+  #b_plguin::  bool:   plugin により生成されたセルタイプを出力
+  ##b_inline_only::  bool:   true ならば inline の entry port のみのセルタイプを含める
+  #b_inline_only_or_proc::  bool|Proc:   true ならば inline の entry port のみ、かつインアクティブなセルタイプを含める
+  #                                      Proc ならば Proc を実行した結果 true ならば含める
+  #  namespace "::" から呼出される
   def gen_celltype_names( f, prepend, append, b_plugin, b_inline_only_or_proc = true )
     dbgPrint "gen_celltype_names #{@name}\n"
@@ -716,11 +695,10 @@
   end
 
-  #=== ãã¹ã¦ã®ã»ã«ã¿ã¤ãã®ååãåºå
+  #=== すべてのセルタイプの名前を出力
   #region:: Region:
-  # gen_celltype_names ã¨gen_celltype_names_domain ã®ç¸éï¼
-  #   region ã domain_roots ã«å«ãå ´åãåºåããï¼
-  #   ã¾ãã¯ãregion ãå«ã¾ãªãããdomain_roots ãè¤æ°ãã¤ã«ã¼ããªã¼ã¸ã§ã³ã®å ´åãåºåããï¼
-  # ããä»¥å¤ã¯ãgen_celltype_names ã®èª¬æãåç
-§
+  # gen_celltype_names とgen_celltype_names_domain の相違：
+  #   region を domain_roots に含む場合、出力する．
+  #   または、region を含まないが、domain_roots が複数かつルートリージョンの場合、出力する．
+  # それ以外は、gen_celltype_names の説明を参照
   def gen_celltype_names_domain( f, prepend, append, domain_type, region, b_plugin, b_inline_only = true )
     dbgPrint "gen_celltype_names #{@name}\n"
@@ -752,11 +730,11 @@
     }
   end
-  #== Namespace#ãã¹ã¦ã®ã»ã«ã¿ã¤ãã®ååãåºå
-  # ã»ã«ã¿ã¤ãã³ã¼ãã®ããã®åååºå
-  # gen_celltype_names_domain ã¨ gen_celltype_names_domain2 ã®ç¸é
-  # ã»ã©ããä¸ã¤ã®ãªã¼ã¸ã§ã³ã«ããåºããªã
-  #     domain_roots ã1ã¤ã ãã§ãæå®ãªã¼ã¸ã§ã³ãå«ã
-  #     domain_roots ã2ã¤ä»¥ä¸ã§ãæå®ãªã¼ã¸ã§ã³ãã«ã¼ããªã¼ã¸ã§ã³ 
-  # ã»ãã¡ã¤ã³åãä»å ããªã
+  #== Namespace#すべてのセルタイプの名前を出力
+  # セルタイプコードのための名前出力
+  # gen_celltype_names_domain と gen_celltype_names_domain2 の相違
+  # ・どれか一つのリージョンにしか出さない
+  #     domain_roots が1つだけで、指定リージョンを含む
+  #     domain_roots が2つ以上で、指定リージョンがルートリージョン 
+  # ・ドメイン名を付加しない
   def gen_celltype_names_domain2( f, prepend, append, domain_type, region, b_plugin, b_inline_only = true )
     dbgPrint "gen_celltype_names #{@name}\n"
@@ -885,5 +863,5 @@
   def gen_sh_func_tab f
 
-    # ã·ã°ããã£ãã£ã¹ã¯ãªãã¿ã®åºå
+    # シグニチャディスクリプタの出力
     f.printf TECSMsg.get(:SD_comment), "#_SD_#"
     f.print "struct tag_#{@global_name}_VDES {\n"
@@ -891,5 +869,5 @@
     f.print "};\n\n"
 
-    # ã·ã°ããã£é¢æ°ãã¼ãã«ã®åºå
+    # シグニチャ関数テーブルの出力
     f.printf TECSMsg.get(:SFT_comment), "#_SFT_#"
     f.print( "struct tag_#{@global_name}_VMT {\n" )
@@ -906,5 +884,5 @@
         len = items.length
       else
-        # ããã§ nil ã«ãªãã®ã¯ãå¼æ°ãªãã®æã« void ããªãã£ãå ´å
+        # ここで nil になるのは、引数なしの時に void がなかった場合
         items = []
         len = 0
@@ -932,5 +910,5 @@
   end
 
-  #=== Signature# é¢æ°ã® ID ã® define ãåºå
+  #=== Signature# 関数の ID の define を出力
   def gen_sh_func_id f
     f.print "/* function id */\n"
@@ -951,5 +929,5 @@
   def generate
 
-    if need_generate?    # ã»ã«ã®ãªãã»ã«ã¿ã¤ãã¯çæããªã
+    if need_generate?    # セルのないセルタイプは生成しない
 
       generate_private_header
@@ -962,10 +940,10 @@
       generate_makefile
 
-    elsif $generate_all_template   # ãã³ãã¬ã¼ãã³ã¼ãçæãªãã·ã§ã³
+    elsif $generate_all_template   # テンプレートコード生成オプション
 
       generate_template_code
       generate_inline_template_code
 
-      # generate_makefile_template ã¯ Makefile ã«è¿½è¨ãããã®ã ãããå¼ã³åºããªã
+      # generate_makefile_template は Makefile に追記するものだから、呼び出さない
 
     end
@@ -974,5 +952,5 @@
 
   def generate_post
-    return if ! need_generate?    # ã»ã«ã®ãªãã»ã«ã¿ã¤ãã¯çæããªã
+    return if ! need_generate?    # セルのないセルタイプは生成しない
 
     generate_private_header_post
@@ -994,8 +972,6 @@
     gen_ph_cell_cb_type f
     gen_ph_INIB_as_CB f
-    gen_ph_extern_cell f          # ã»ã«ã¿ã¤ãã°ã«ã³ã¼ãä»¥å¤ã¯åç
-§ããªã
-    gen_ph_typedef_idx f          # mikan åç
-§ãããã®ãã§ãã¦ããªã
+    gen_ph_extern_cell f          # セルタイプグルコード以外は参照しない
+    gen_ph_typedef_idx f          # mikan 参照するものができていない
     gen_ph_ep_fun_prototype f
     end_extern_C f
@@ -1005,6 +981,6 @@
 
     if @n_entry_port_inline == 0 then
-      # inline ããªããã° CB_TYPE_ONLY ã¨ãã
-      # inline ããã®å ´åããã£ãã define ãã¦ããã¦ãå¾ã§ãã¹ã¦ undef ãã
+      # inline がなければ CB_TYPE_ONLY とする
+      # inline ありの場合、いったん define しておいて、後ですべて undef する
       ifndef_cb_type_only f
     end
@@ -1028,8 +1004,6 @@
 #    gen_ph_cell_cb_type f
 #    gen_ph_INIB_as_CB f
-#    gen_ph_extern_cell f          # ã»ã«ã¿ã¤ãã°ã«ã³ã¼ãä»¥å¤ã¯åç
-§ããªã
-    # gen_ph_typedef_idx f          # mikan åç
-§ãããã®ãã§ãã¦ããªã
+#    gen_ph_extern_cell f          # セルタイプグルコード以外は参照しない
+    # gen_ph_typedef_idx f          # mikan 参照するものができていない
 #    gen_ph_ep_fun_prototype f
     gen_ph_ep_skel_prototype f
@@ -1037,5 +1011,5 @@
     endif_macro_only f
 
-    # ç­ç¸®å½¢ãªã©ã®ãã¯ã­åºå
+    # 短縮形などのマクロ出力
     if @n_entry_port_inline == 0 then
       ifndef_cb_type_only f
@@ -1047,6 +1021,6 @@
     gen_ph_test_optional_call_port_abbrev f
     gen_ph_ep_fun_macro f         if @n_entry_port > 0
-    gen_ph_foreach_cell f         # FOREACH ãã¯ã­ã®åºå
-    gen_ph_cb_initialize_macro f   # CB åæåãã¯ã­ã®åºåï¼æ¶è²»ããªãã®ã§ ram_initializer ãã©ã°ã«é¢ãããåºå
+    gen_ph_foreach_cell f         # FOREACH マクロの出力
+    gen_ph_cb_initialize_macro f   # CB 初期化マクロの出力．消費しないので ram_initializer フラグに関わらず出力
     gen_ph_dealloc_code f, ""
     gen_ph_dealloc_code f, "_RESET"
@@ -1095,5 +1069,5 @@
         next if p.get_port_type != :CALL
 
-        # is_...joined ã¯ omit ããã±ã¼ã¹ã§ãåºåããããããomit ãæ¤æ»ããåã«åºå
+        # is_...joined は omit するケースでも出力されるため、omit を検査する前に出力
         if p.is_optional? then
           f.print( "#undef is_#{p.get_name}_joined\n" )
@@ -1130,5 +1104,5 @@
   end
 
-  #=== CELLTYPE_tecsgen.c ãçæ
+  #=== CELLTYPE_tecsgen.c を生成
   def generate_cell_code
     fs = { }
@@ -1165,5 +1139,5 @@
     end
 
-    # ãã¹ã¦ã® _tecsgen.c ã«åºå
+    # すべての _tecsgen.c に出力
     print_note f
     gen_cell_private_header f
@@ -1171,5 +1145,5 @@
     gen_cell_ep_des_type f
 
-    # ãã¹ã¦ã® _tecsgen.c ã«åºå
+    # すべての _tecsgen.c に出力
     fs.each{ |r,f2|
       if f == f2 then
@@ -1182,19 +1156,18 @@
     }
 
-    # ä¸ã¤ã® _tecsgen.c ã«åºå
+    # 一つの _tecsgen.c に出力
     gen_cell_skel_fun f
     gen_cell_fun_table f
     gen_cell_var_init f
 
-    # ã»ã«ãã¨ã« _tecsgen.c ã«åºå
+    # セルごとに _tecsgen.c に出力
     gen_cell_ep_vdes fs
     gen_cell_ep_vdes_array fs
-    gen_cell_cb_out_init fs         # INITIALIZE_CB ã§åç
-§ããããã ram_initializer=false ã§ãæ¶ããªã
+    gen_cell_cb_out_init fs         # INITIALIZE_CB で参照されるため ram_initializer=false でも消せない
     gen_cell_cb fs
     gen_cell_extern_mt fs
     gen_cell_ep_des fs
 
-    # ä¸ã¤ã® _tecsgen.c ã«åºå
+    # 一つの _tecsgen.c に出力
     gen_cell_cb_tab f
     if $ram_initializer then
@@ -1251,13 +1224,13 @@
 
   def gen_ph_include f
-    # ã©ã³ã¿ã¤ã ãããã® include
+    # ランタイムヘッダの include
 #    f.printf TECSMsg.get( :IRTH_comment), "#_IRTH_#"
 #    f.print "#include \"tecs.#{$h_suffix}\"\n\n"
 
-    # ã°ã­ã¼ãã«ãããã® include
+    # グローバルヘッダの include
     f.printf TECSMsg.get( :IGH_comment ), "#_IGH_#"
     f.print "#include \"global_tecsgen.#{$h_suffix}\"\n\n"
 
-    # ã·ã°ããã£ãããã® include
+    # シグニチャヘッダの include
     f.printf TECSMsg.get( :ISH_comment ), "#_ISH_#"
     @port.each { |p|
@@ -1277,7 +1250,6 @@
     end
 
-    # æé©åã®ããåç
-§ããã»ã«ã¿ã¤ãã® CB åã®å®ç¾©ãåè¾¼ã
-    # _CB_TYPE_ONLY ãå®ç¾©ããä¸ã§ include ãã
+    # 最適化のため参照するセルタイプの CB 型の定義を取込む
+    # _CB_TYPE_ONLY を定義した上で include する
     f.printf( TECSMsg.get( :ICT_comment ), "#_ICT_#" )
 
@@ -1292,5 +1264,5 @@
 
       if p.is_skelton_useless? || p.is_cell_unique? || p.is_VMT_useless? then
-        # æé©åã³ã¼ã (optimize) # ã¹ã±ã«ãã³ä¸è¦ãªã©
+        # 最適化コード (optimize) # スケルトン不要など
         p2 = p.get_real_callee_port
         if p2 then
@@ -1301,5 +1273,5 @@
           end
         # else
-          # optional ã§æªçµå
+          # optional で未結合
         end
       end
@@ -1313,5 +1285,5 @@
 #      next if p.get_port_type != :CALL
 #      if p.is_skelton_useless? || p.is_cell_unique? || p.is_VMT_useless? then
-#        # æé©åã³ã¼ã (optimize) # ã¹ã±ã«ãã³ä¸è¦ãªã©
+#        # 最適化コード (optimize) # スケルトン不要など
 #        p2 = p.get_real_callee_port
 #        ct = p2.get_celltype
@@ -1329,5 +1301,5 @@
     return if @singleton
 
-    # ID ã®åºæ°ããã³åæ°ã® define ãåºå
+    # ID の基数および個数の define を出力
     f.printf("#define %-20s %10s  /* %s #_NIDB_# */\n", "#{@global_name}_ID_BASE", "(#{@id_base})", TECSMsg.get(:NIDB_comment))
     f.printf("#define %-20s %10s  /* %s  #_NCEL_# */\n\n", "#{@global_name}_N_CELL", "(#{@n_cell_gen})", TECSMsg.get(:NCEL_comment))
@@ -1337,6 +1309,6 @@
     return if @singleton
 
-    # mikan  æé©å
-    # IDX æ­£å½æ§ãã§ãã¯ãã¯ã­ã®åºå
+    # mikan  最適化
+    # IDX 正当性チェックマクロの出力
     f.printf( TECSMsg.get( :CVI_comment ), "#_CVI_#" )
     if @idx_is_id_act then
@@ -1351,5 +1323,5 @@
     return if @singleton
 
-    # IDX æ­£å½æ§ãã§ãã¯ãã¯ã­ï¼ç­ç¸®å½¢ï¼ã®åºå
+    # IDX 正当性チェックマクロ（短縮形）の出力
     f.printf( TECSMsg.get( :CVIA_comment ), "#_CVIA_#")
     f.print("#define VALID_IDX(IDX)  #{@global_name}_VALID_IDX(IDX)\n\n")
@@ -1357,8 +1329,7 @@
   end
 
-  #=== å¼ã³å£é
-åã®å¤§ãããå¾ããã¯ã­ã®åºå
+  #=== 呼び口配列の大きさを得るマクロの出力
   #
-  #ã»ã«ã¿ã¤ããããã¸å¼ã³å£ã®åæ°ãåºå
+  #セルタイプヘッダへ呼び口の個数を出力
   def gen_ph_n_cp f
 
@@ -1374,10 +1345,8 @@
       end
 
-      if p.get_array_size != "[]" then       # åºå®é·é
-å
+      if p.get_array_size != "[]" then       # 固定長配列
         f.print( "#define N_CP_#{p.get_name}    (#{p.get_array_size})\n" )
         f.print( "#define NCP_#{p.get_name}     (#{p.get_array_size})\n" )
-      else                                   # å¯å¤é·é
-å
+      else                                   # 可変長配列
         if @singleton then
           if has_INIB? then
@@ -1388,5 +1357,5 @@
           f.print( "#define N_CP_#{p.get_name}  (#{@global_name}_SINGLE_CELL_#{inib}.n_#{p.get_name})\n" )
           f.print( "#define NCP_#{p.get_name}   (#{@global_name}_SINGLE_CELL_#{inib}.n_#{p.get_name})\n" )
-          # mikan singleton ãªãã°ãåºå®é·åã§ãã
+          # mikan singleton ならば、固定長化できる
         else
           if has_CB? && has_INIB? then
@@ -1402,8 +1371,7 @@
   end
 
-  #=== åãå£é
-åã®å¤§ãããå¾ããã¯ã­ã®åºå
+  #=== 受け口配列の大きさを得るマクロの出力
   #
-  #ã»ã«ã¿ã¤ããããã¸åãå£ã®åæ°ãåºå
+  #セルタイプヘッダへ受け口の個数を出力
   def gen_ph_n_ep f
 
@@ -1411,6 +1379,5 @@
     @port.each { |p|
       next if p.get_port_type != :ENTRY
-      # next if p.is_omit?                       # åãå£é
-åã®åæ°ã¯çç¥ããªã
+      # next if p.is_omit?                       # 受け口配列の個数は省略しない
       next if p.get_array_size == nil
 
@@ -1420,9 +1387,7 @@
       end
 
-      if p.get_array_size != "[]" then       # åºå®é·é
-å
+      if p.get_array_size != "[]" then       # 固定長配列
         f.print( "#define NEP_#{p.get_name}     (#{p.get_array_size})\n" )
-      else                                   # å¯å¤é·é
-å
+      else                                   # 可変長配列
         if @singleton then
           if has_INIB? then
@@ -1432,5 +1397,5 @@
           end
           f.print( "#define NEP_#{p.get_name}   (#{@global_name}_SINGLE_CELL_#{inib}.n_#{p.get_name})\n" )
-          # mikan singleton ãªãã°ãåºå®é·åã§ãã
+          # mikan singleton ならば、固定長化できる
         else
           if has_CB? && has_INIB? then
@@ -1445,5 +1410,5 @@
   end
 
-  #=== optional ãªå¼ã³å£ãçµåããã¦ããããã¹ãããã³ã¼ãã®çæ
+  #=== optional な呼び口が結合されているかテストするコードの生成
   def gen_ph_test_optional_call_port f
     b_comment = false
@@ -1466,5 +1431,5 @@
       next if p.get_port_type != :CALL
       next if ! p.is_optional?
-      # next if p.is_omit?  # omit ã§ã test ã³ã¼ãã¯çæãã
+      # next if p.is_omit?  # omit でも test コードは生成する
 
       if b_comment == false then
@@ -1484,9 +1449,8 @@
       end
 
-      # é¢æ°åã®åºå(æ¨æºï¼åãå£ãã£ã¹ã¯ãªãã¿ãã VMT ã®é¢æ°åãæé©åï¼åãå£é¢æ° or åãå£ãã£ã¹ã¯ãªãã¿)
-      # mikan  å
-¨é¨ã¤ãªãã£ã¦ãããã©ããã§ (1) ãå¤å®ãã
+      # 関数名の出力(標準：受け口ディスクリプタから VMT の関数名、最適化：受け口関数 or 受け口ディスクリプタ)
+      # mikan  全部つながっているかどうかで (1) を判定する
       if ! p.is_VMT_useless? then
-        # æ¨æºã³ã¼ã
+        # 標準コード
         if p.get_array_size == nil then
           if @singleton then
@@ -1496,6 +1460,5 @@
           end
         else
-          # é
-åã®å ´å
+          # 配列の場合
           if @singleton then
             f.print( "\t  ((#{@global_name}_SINGLE_CELL_#{inib}.#{p.get_name}!=0) \\\n" )
@@ -1507,18 +1470,17 @@
         end
       else
-        # æé©åã³ã¼ã (optimize) # VMT ä¸è¦ï¼é
-åè¦ç´ ãã¹ã¦åãï¼
+        # 最適化コード (optimize) # VMT 不要（配列要素すべて同じ）
         p2 = p.get_real_callee_port
         if p2 then
           ct = p2.get_celltype
           if p.is_skelton_useless? then
-            # åãå£é¢æ°ãç´æ¥å¼åºã
+            # 受け口関数を直接呼出す
             f.print( "\t  (1)\n" )
           else
-            # åãå£ã¹ã±ã«ãã³é¢æ°ãç´æ¥å¼åºã
+            # 受け口スケルトン関数を直接呼出す
             f.print( "\t  (1)\n" )
           end
         else
-          # optional ã§æªçµå
+          # optional で未結合
           f.print( "\t  (0)    /* not joined */\n" )
         end
@@ -1527,5 +1489,5 @@
   end
 
-  #=== optional ãªå¼ã³å£ãçµåããã¦ããããã¹ãããã³ã¼ãã®çæï¼ç­ç¸®å½¢ï¼
+  #=== optional な呼び口が結合されているかテストするコードの生成（短縮形）
   def gen_ph_test_optional_call_port_abbrev f
     b_comment = false
@@ -1534,5 +1496,5 @@
       next if p.get_port_type != :CALL
       next if ! p.is_optional?
-      # next if p.is_omit?  # omit ã§ã test ã³ã¼ãã¯çæãã
+      # next if p.is_omit?  # omit でも test コードは生成する
 
       if b_comment == false then
@@ -1550,11 +1512,11 @@
   end
 
-  #=== CELLCB ã¸ã®ãã¤ã³ã¿ãå¾ããã¯ã­ãåºå
-  #   ã»ã«ã¿ã¤ããããã¸åºå
+  #=== CELLCB へのポインタを得るマクロを出力
+  #   セルタイプヘッダへ出力
   def gen_ph_get_cellcb f
     f.printf( TECSMsg.get( :GCB_comment ), "#_GCB_#" )
     if ( ! has_CB? && ! has_INIB? ) || @singleton then
       f.print( "#define #{@global_name}_GET_CELLCB(idx) ((void *)0)\n" )
-    elsif @idx_is_id_act then   # mikan åä¸ã®ã»ã«ã®å ´åã®æé©å, idx_is_id ã§ãªãå ´å
+    elsif @idx_is_id_act then   # mikan 単一のセルの場合の最適化, idx_is_id でない場合
       f.print( "#define #{@global_name}_GET_CELLCB(idx) (#{@global_name}_CB_tab[(idx) - #{@global_name}_ID_BASE])\n" )
     else
@@ -1563,6 +1525,6 @@
   end
 
-  #=== CELLCB ã¸ã®ãã¤ã³ã¿ãå¾ããã¯ã­ï¼ç­ç¸®å½¢ï¼ãåºå
-  #  ã»ã«ã¿ã¤ããããã¸åºå
+  #=== CELLCB へのポインタを得るマクロ（短縮形）を出力
+  #  セルタイプヘッダへ出力
   def gen_ph_get_cellcb_abbrev f
     f.printf( TECSMsg.get( :GCBA_comment ), "#_GCBA_#" )
@@ -1580,6 +1542,6 @@
   end
 
-  #===  attribute, var ãã¢ã¯ã»ã¹ãããã¯ã­ãåºå
-  #    ã»ã«ã¿ã¤ããããã¸åºå
+  #===  attribute, var をアクセスするマクロを出力
+  #    セルタイプヘッダへ出力
   def gen_ph_attr_access f
     if @n_attribute_rw > 0 || @n_attribute_ro > 0 then
@@ -1591,5 +1553,5 @@
       next if a.is_omit?
 
-      # mikan const_value ã®å ´å
+      # mikan const_value の場合
       f.print( "#define " )
       if @singleton then
@@ -1601,5 +1563,5 @@
         f.printf( "%-20s", "#{@global_name}_ATTR_#{a.get_name}" )
         f.print( "\t(#{@global_name}_SINGLE_CELL_#{inib}.#{a.get_name})\n" )
-        # mikan ããã§ã¯ cell ã§ã¯ãªã celltype ã®åå
+        # mikan ここでは cell ではなく celltype の名前
       else
         if ! a.is_rw? && has_CB? && has_INIB? then
@@ -1632,10 +1594,10 @@
       end
 
-      # mikan const_value ã®å ´å
+      # mikan const_value の場合
       f.print( "#define " )
       if @singleton then
         f.printf( "%-20s", "#{@global_name}_GET_#{a.get_name}()" )
         f.print( "\t(#{@global_name}_SINGLE_CELL_#{inib}.#{a.get_name})\n" )
-        # mikan ããã§ã¯ cell ã§ã¯ãªã celltype ã®åå
+        # mikan ここでは cell ではなく celltype の名前
       else
         f.printf( "%-20s", "#{@global_name}_GET_#{a.get_name}(p_that)" )
@@ -1648,5 +1610,5 @@
           f.printf( "%-20s", "#{@global_name}_SET_#{a.get_name}(val)" )
           f.print( "\t(#{@global_name}_SINGLE_CELL_#{inib}.#{a.get_name} = (val))\n" )
-          # mikan ããã§ã¯ cell ã§ã¯ãªã celltype ã®åå
+          # mikan ここでは cell ではなく celltype の名前
         else
           f.printf( "%-20s", "#{@global_name}_SET_#{a.get_name}(p_that,val)" )
@@ -1680,10 +1642,10 @@
       end
 
-      # mikan const_value ã®å ´å
+      # mikan const_value の場合
       f.print( "#define " )
       if @singleton then
         f.printf( "%-20s", "#{@global_name}_VAR_#{v.get_name}" )
         f.print( "\t(#{@global_name}_SINGLE_CELL_#{inib}.#{v.get_name})\n" )
-        # mikan ããã§ã¯ cell ã§ã¯ãªã celltype ã®åå
+        # mikan ここでは cell ではなく celltype の名前
       else
         f.printf( "%-20s", "#{@global_name}_VAR_#{v.get_name}(p_that)" )
@@ -1696,10 +1658,10 @@
       next if v.is_omit?
 
-      # mikan const_value ã®å ´å
+      # mikan const_value の場合
       f.print( "#define " )
       if @singleton then
         f.printf( "%-20s", "#{@global_name}_GET_#{v.get_name}()" )
         f.print( "\t(#{@global_name}_SINGLE_CELL_CB.#{v.get_name})\n" )
-        # mikan ããã§ã¯ cell ã§ã¯ãªã celltype ã®åå
+        # mikan ここでは cell ではなく celltype の名前
       else
         f.printf( "%-20s", "#{@global_name}_GET_#{v.get_name}(p_that)" )
@@ -1711,5 +1673,5 @@
         f.printf( "%-20s", "#{@global_name}_SET_#{v.get_name}(val)" )
         f.print( "\t(#{@global_name}_SINGLE_CELL_CB.#{v.get_name}=(val))\n" )
-        # mikan ããã§ã¯ cell ã§ã¯ãªã celltype ã®åå
+        # mikan ここでは cell ではなく celltype の名前
       else
         f.printf( "%-20s", "#{@global_name}_SET_#{v.get_name}(p_that,val)" )
@@ -1721,5 +1683,5 @@
   end
 
-  #===  attribute/var ã¢ã¯ã»ã¹ãã¯ã­ï¼ç­ç¸®å½¢ï¼ã³ã¼ãã®çæ
+  #===  attribute/var アクセスマクロ（短縮形）コードの生成
   def gen_ph_attr_access_abbrev f
     if @n_attribute_rw > 0 || @n_attribute_ro > 0 then
@@ -1730,5 +1692,5 @@
       next if a.is_omit?
 
-      # mikan const_value ã®å ´å
+      # mikan const_value の場合
       f.print( "#define " )
       f.printf( "%-20s", "ATTR_#{a.get_name}" )
@@ -1748,5 +1710,5 @@
       next if v.is_omit?
 
-      # mikan const_value ã®å ´å
+      # mikan const_value の場合
       f.print( "#define " )
       f.printf( "%-20s", "VAR_#{v.get_name}" )
@@ -1809,7 +1771,7 @@
         delim = ""
 
-        # é¢æ°åã®åºå(æ¨æºï¼åãå£ãã£ã¹ã¯ãªãã¿ãã VMT ã®é¢æ°åãæé©åï¼åãå£é¢æ° or åãå£ãã£ã¹ã¯ãªãã¿)
+        # 関数名の出力(標準：受け口ディスクリプタから VMT の関数名、最適化：受け口関数 or 受け口ディスクリプタ)
         if ! p.is_VMT_useless? then
-          # æ¨æºã³ã¼ã
+          # 標準コード
           if @singleton then
             f.print( "\t  #{@global_name}_SINGLE_CELL_#{inib}.#{p.get_name}" )
@@ -1819,18 +1781,18 @@
           f.print( "#{subsc}->VMT->#{fun.get_name}__T( \\\n" )
         else
-          # æé©åã³ã¼ã (optimize) # VMT ä¸è¦
+          # 最適化コード (optimize) # VMT 不要
           p2 = p.get_real_callee_port
           if p2 then
             ct = p2.get_celltype
             if p.is_skelton_useless? then
-              # åãå£é¢æ°ãç´æ¥å¼åºã
+              # 受け口関数を直接呼出す
               f.print( "\t  #{ct.get_global_name}_#{p2.get_name}_#{fun.get_name}( \\\n" )
             else
-              # åãå£ã¹ã±ã«ãã³é¢æ°ãç´æ¥å¼åºã
+              # 受け口スケルトン関数を直接呼出す
               f.print( "\t  #{ct.get_global_name}_#{p2.get_name}_#{fun.get_name}_skel( \\\n" )
               # print "skelton: #{@name} #{ct.get_global_name}_#{p2.get_name}\n"
             end
           else
-            # optional ã§æªçµå
+            # optional で未結合
             f.print( "\t  ((#{fun.get_declarator.get_type.get_type.get_type_str} (*)()" )
             f.print( "#{fun.get_declarator.get_type.get_type.get_type_str_post})0)()\n" )
@@ -1842,10 +1804,9 @@
         end
 
-        b_join = true    # optional ã§çµåãã¦ããªãå ´å false
-
-        # åãå£æ
-å ±ã®åºå(æ¨æºï¼åãå£ãã£ã¹ã¯ãªãã¿ãæé©åï¼IDX ãªã©)
+        b_join = true    # optional で結合していない場合 false
+
+        # 受け口情報の出力(標準：受け口ディスクリプタ、最適化：IDX など)
         if ! p.is_skelton_useless? && ! p.is_cell_unique? then
-          # æ¨æºã³ã¼ã
+          # 標準コード
           if @singleton then
             f.print( "\t  #{@global_name}_SINGLE_CELL_#{inib}.#{p.get_name}#{subsc}" )
@@ -1856,10 +1817,9 @@
           end
         else
-          # æé©åã³ã¼ã (optimize) # ã¹ã±ã«ãã³ä¸è¦
-          c2 = p.get_real_callee_cell               # å¯ä¸ã®ã»ã«(ã§ãªãå ´åããããè¤æ°ã»ã«ãããå ´å)
-          p2 = p.get_real_callee_port               # å¯ä¸ã®ãã¼ã(ã§ãªãå ´åã¯ããªã)
+          # 最適化コード (optimize) # スケルトン不要
+          c2 = p.get_real_callee_cell               # 唯一のセル(でない場合もある、複数セルがある場合)
+          p2 = p.get_real_callee_port               # 唯一のポート(でない場合は、ない)
           if p2 then
-            ct = p2.get_celltype                    # å¼ã³å
-ã®ã»ã«ã¿ã¤ã
+            ct = p2.get_celltype                    # 呼び先のセルタイプ
             if ! ct.is_singleton? then
               if ct.has_CB? || ct.has_INIB? then
@@ -1868,6 +1828,6 @@
                   f.print( "\t   #{name_array[7]}" )
                 else
-                  # CELLCB IDX ãæ¸¡ã (æ¨æºã³ã¼ãã¨åãã ããæ±ãåã¯ç°ãªã)
-                  # p.is_skelton_useless? == true/false ã¨ãã«åã
+                  # CELLCB IDX を渡す (標準コードと同じだが、扱う型は異なる)
+                  # p.is_skelton_useless? == true/false ともに同じ
                   f.print( "\t   (p_that)#{inib}->#{p.get_name}#{subsc}" )
                 end
@@ -1880,5 +1840,5 @@
             end
           else
-            # optional ã§æªçµå
+            # optional で未結合
             b_join = false
           end
@@ -1897,7 +1857,7 @@
   end
 
-  #=== send/receive ã§åãåã£ãã¡ã¢ãªé åã dealloc ãããã¯ã­ã³ã¼ã
+  #=== send/receive で受け取ったメモリ領域を dealloc するマクロコード
   #f:: File
-  #b_undef:: bool : true = #undef ã³ã¼ãã®çæ,  false = #define ã³ã¼ãã®çæ
+  #b_undef:: bool : true = #undef コードの生成,  false = #define コードの生成
   def  gen_ph_dealloc_code( f, append_name, b_undef = false )
     b_msg = false
@@ -1906,5 +1866,5 @@
 
       p.each_param{ |port, fd, par|
-        case par.get_direction                        # å¼æ°ã®æ¹åæå®å­ (in, out, inout, send, receive )
+        case par.get_direction                        # 引数の方向指定子 (in, out, inout, send, receive )
         when :SEND
           # next if port.get_port_type == :CALL
@@ -1923,5 +1883,5 @@
         end
 
-        #                      ãã¼ãå         é¢æ°å         ãã©ã¡ã¼ã¿å
+        #                      ポート名         関数名         パラメータ名
         dealloc_func_name = "#{port.get_name}_#{fd.get_name}_#{par.get_name}_dealloc"
         dealloc_macro_name = dealloc_func_name.upcase
@@ -1962,5 +1922,5 @@
     @port.each { |p|
       next if p.get_port_type != :CALL
-      # next if p.is_omit?  å¼ã³åºãã¨ã¨ã©ã¼ãèµ·ããã³ã¼ããçæ
+      # next if p.is_omit?  呼び出すとエラーを起こすコードを生成
 
       p.get_signature.get_function_head_array.each{ |fun|
@@ -2067,5 +2027,5 @@
         f.print( "struct tag_#{@global_name}_CB *" )
       elsif has_INIB? then
-        # f.print( "struct tag_#{@global_name}_INIB *" )  # const ãåºåãã¦ããªã
+        # f.print( "struct tag_#{@global_name}_INIB *" )  # const を出力していない
         f.print( "const struct tag_#{@global_name}_INIB *" )
       else
@@ -2103,5 +2063,5 @@
 
         if p.get_array_size then
-          f.print( "#{delim} int_t subscript" )     # mikan singleton æã® ',' ã®å§æ«
+          f.print( "#{delim} int_t subscript" )     # mikan singleton 時の ',' の始末
           delim = ","
         end
@@ -2111,5 +2071,5 @@
           len = items.length
         else
-          # ããã§ nil ã«ãªãã®ã¯ãå¼æ°ãªãã®æã« void ããªãã£ãå ´å
+          # ここで nil になるのは、引数なしの時に void がなかった場合
           items = []
           len = 0
@@ -2132,5 +2092,5 @@
 
   def gen_ph_ep_skel_prototype f
-    # åãå£ã¹ã±ã«ãã³é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨ãåºå
+    # 受け口スケルトン関数のプロトタイプ宣言を出力
     if @n_entry_port >0 then
       f.printf( TECSMsg.get( :EPSP_comment ), "#_EPSP_#" )
@@ -2139,6 +2099,6 @@
       next if p.get_port_type != :ENTRY
       next if p.is_omit?
-#      if p.is_skelton_useless? || ! p.is_VMT_useless? then    # åãå£æé©å
-      if p.is_skelton_useless? then    # åãå£æé©å
+#      if p.is_skelton_useless? || ! p.is_VMT_useless? then    # 受け口最適化
+      if p.is_skelton_useless? then    # 受け口最適化
 #        f.print( "/* #{p.get_name} : omitted by entry port optimize */\n" )
         next
@@ -2159,5 +2119,5 @@
           len = items.length
         else
-          # ããã§ nil ã«ãªãã®ã¯ãå¼æ°ãªãã®æã« void ããªãã£ãå ´å
+          # ここで nil になるのは、引数なしの時に void がなかった場合
           items = []
           len = 0
@@ -2182,5 +2142,5 @@
 
     if ( $rom )then
-      # å®æ°é¨ã¯ ROM, å¤æ°é¨ã¯ RAM
+      # 定数部は ROM, 変数部は RAM
 
       if has_INIB? then
@@ -2215,6 +2175,5 @@
 
     else
-      # å
-¨ã¦ RAM
+      # 全て RAM
       f.printf( TECSMsg.get( :CCTPO_comment ), "#_CCTPO_#" )
 
@@ -2230,6 +2189,6 @@
 
 
-  #===   attribute ã®åå®£è¨åºå
-  #inib_cb::  :INIB ã¾ãã¯ :CB
+  #===   attribute の型宣言出力
+  #inib_cb::  :INIB または :CB
   def gen_cell_cb_type_attribute( f, inib_cb )
     if inib_cb == :INIB && @n_attribute_ro > 0 then
@@ -2264,5 +2223,5 @@
       next if v.is_omit?
       next if v.get_size_is == nil
-      next if $rom && inib_cb == :CB      # size_is æå®ããããã®ã¯ INIB ã«ã®ã¿åºåãã
+      next if $rom && inib_cb == :CB      # size_is 指定されたものは INIB にのみ出力する
 
       f.print "    "
@@ -2273,5 +2232,5 @@
 
   def gen_cell_cb_type_var f
-    # å¤æ°ã®åºå
+    # 変数の出力
     if @n_var > 0 then
       f.print "    /* var #_VA_# */ \n"
@@ -2281,5 +2240,5 @@
 
       next if v.is_omit?
-      next if v.get_size_is != nil    # size_is æå®ããã var ã¯ attribute ã¸åºåãã
+      next if v.get_size_is != nil    # size_is 指定された var は attribute へ出力する
 
       f.print "    "
@@ -2295,5 +2254,5 @@
 
   def gen_cell_cb_type_call_port f
-    # å¼ã³å£
+    # 呼び口
     if @n_call_port >0 then
       f.print "    /* call port #_TCP_# */ \n"
@@ -2308,5 +2267,5 @@
       if ! p.is_cell_unique? then
         if ! p.is_skelton_useless? then
-          # æ¨æºå½¢
+          # 標準形
           f.print( "    struct tag_#{p.get_signature.get_global_name}_VDES #{ptr}const*#{p.get_name;};\n" )
           if p.get_array_size == "[]" then
@@ -2314,13 +2273,11 @@
           end
         else
-          # æé©å skelton é¢æ°ãå¼åºããªã(åãå£é¢æ°ãç´æ¥å¼åºã)
-          # å¼ã³å
-ã»ã«ã¿ã¤ãã® CB ã® IDX å
+          # 最適化 skelton 関数を呼出さない(受け口関数を直接呼出す)
+          # 呼び先セルタイプの CB の IDX 型
           if p.get_real_callee_cell then
             f.print( "    " )
             p.get_real_callee_cell.get_celltype.gen_ph_idx_type f
             f.print( " #{ptr}#{p.get_name;};\n" )
-            # ç¸äºåç
-§ã«åãã¦ãtypedef ããåãä½¿ããªã
+            # 相互参照に備えて、typedef した型を使わない
             # f.print( "    #{p.get_real_callee_cell.get_celltype.get_global_name}_IDX #{ptr}#{p.get_name;};\n" )
             if p.get_array_size == "[]" then
@@ -2328,17 +2285,16 @@
             end
           #else
-          #  optional ã§æªçµå
+          #  optional で未結合
           end
         end
       # else
-        # æé©å ä¸ã¤ããã»ã«ããªãå ´åãåãå£ãã£ã¹ã¯ãªãã¿ã¾ãã¯åãå´ã® IDX ã¯å¼ã³å£é¢æ°ãã¯ã­ã«åãè¾¼ã¾ãã
-      end
-    }
-  end
-
-  #=== Celltype#åãå£é
-åæ·»æ°ãè¨æ¶ããå¤æ°ã®å®ç¾©
+        # 最適化 一つしかセルがない場合、受け口ディスクリプタまたは受け側の IDX は呼び口関数マクロに埋め込まれる
+      end
+    }
+  end
+
+  #=== Celltype#受け口配列添数を記憶する変数の定義
   def gen_cell_cb_type_entry_port f
-    # å¼ã³å£
+    # 呼び口
     if @n_entry_port >0 then
       f.print "    /* call port #_NEP_# */ \n"
@@ -2346,6 +2302,5 @@
 
     @port.each{ |p|
-      # next if p.is_omit?                       # åãå£é
-åã®åæ°ã¯çç¥ããªã
+      # next if p.is_omit?                       # 受け口配列の個数は省略しない
       if p.get_port_type == :ENTRY && p.get_array_size == "[]"
         f.print( "    int_t n_#{p.get_name};\n" )
@@ -2389,6 +2344,6 @@
   end
 
-  #===  ã¤ãã¬ã¼ã¿ã³ã¼ã (FOREACH_CELL)ã®çæ
-  #      singleton ã§ã¯åºåããªã
+  #===  イテレータコード (FOREACH_CELL)の生成
+  #      singleton では出力しない
   def gen_ph_foreach_cell f
 
@@ -2431,5 +2386,5 @@
 
 
-  #===  å¤æ°varåæåã³ã¼ã
+  #===  変数var初期化コード
   #
   def gen_ph_cb_initialize_macro f
@@ -2442,7 +2397,7 @@
         type = v.get_type
         if( type.kind_of? PtrType )then
-          # PtrType ã¯ ArrayType ã«ããæ¿ãã
-
-          # åæåå­ã®è¦ç´ æ°ã¨ãã (å¾ã¯ 0 ã§ãã)
+          # PtrType は ArrayType にすり替える
+
+          # 初期化子の要素数とする (後は 0 である)
           t2 = ArrayType.new( Expression.create_integer_constant( init.length, nil ) )
           t2.set_type( type.get_type )
@@ -2512,5 +2467,5 @@
 
     # else
-    #   ã»ã«ãä¸ã¤ããªããã°åºåããªã
+    #   セルが一つもなければ出力しない
     end
 
@@ -2519,5 +2474,5 @@
 
   def gen_ph_inline f
-    # inline ãã¼ããä¸ã¤ã§ãããã°ãinline.h ã® include
+    # inline ポートが一つでもあれば、inline.h の include
     if @n_entry_port_inline > 0 then
       f.printf( TECSMsg.get( :INL_comment ), "#_INL_#" )
@@ -2571,5 +2526,5 @@
       next if p.get_port_type != :ENTRY
       next if p.is_omit?
-      if p.is_skelton_useless?    # åãå£æé©å
+      if p.is_skelton_useless?    # 受け口最適化
         f.print( "/* #{p.get_name} : omitted by entry port optimize */\n\n" )
         next
@@ -2582,5 +2537,5 @@
         f.print( "    #{@name}_IDX  idx;\n" )
       else
-        # CB ã INIB ãå­å¨ããªã (ã®ã§ãidx ã¨ãã¦æ´æ°ã§åæåãã¦ãã)
+        # CB も INIB も存在しない (ので、idx として整数で初期化しておく)
         f.print( "    int           idx;\n" )
       end
@@ -2600,5 +2555,5 @@
       next if p.get_port_type != :ENTRY
       next if p.is_omit?
-      if p.is_skelton_useless? then    # åãå£æé©å
+      if p.is_skelton_useless? then    # 受け口最適化
         f.print( "/* #{p.get_name} : omitted by entry port optimize */\n" )
         next
@@ -2619,5 +2574,5 @@
           len = items.length
         else
-          # ããã§ nil ã«ãªãã®ã¯ãå¼æ°ãªãã®æã« void ããªãã£ãå ´å
+          # ここで nil になるのは、引数なしの時に void がなかった場合
           items = []
           len = 0
@@ -2641,5 +2596,5 @@
         end
 
-        if functype.get_type_str == "void" then # mikan "void" ã® typedef ã«æªå¯¾å¿
+        if functype.get_type_str == "void" then # mikan "void" の typedef に未対応
           f.print "    "
         else
@@ -2684,5 +2639,5 @@
       next if p.get_port_type != :ENTRY
       next if p.is_omit?
-      if p.is_VMT_useless? then    # åãå£æé©å
+      if p.is_VMT_useless? then    # 受け口最適化
         f.print "/* #{p.get_name} : omitted by entry port optimize */\n"
         next
@@ -2710,36 +2665,31 @@
     end
 
-    # ãã®ã»ã«ã¿ã¤ãã®ãã¹ã¦ã®ã»ã«ã«ã¤ãã¦
+    # このセルタイプのすべてのセルについて
     @ordered_cell_list.each{ |c|
-      if c.is_generate? then                           # çæå¯¾è±¡ãï¼
+      if c.is_generate? then                           # 生成対象か？
 
         f = fs[ c.get_region.get_domain_root ]
 
-        # çµåã®ãªã¹ã (NamedList)
+        # 結合のリスト (NamedList)
         jl = c.get_join_list
 
-        # å
-¨ã¦ã®çµåãªã¹ãã«ã¤ãã¦
+        # 全ての結合リストについて
         jl.get_items.each{ |j|
 
-          # å·¦è¾ºã®å®ç¾©ãå¾ã
+          # 左辺の定義を得る
           definition = j.get_definition
 
-          # å¼ã³å£ã§ã¯ãªãï¼ãï¼å±æ§ï¼
+          # 呼び口ではない？　（属性）
           next unless definition.instance_of? Port
 
-          port = find j.get_name # celltype ã® Port (ãã¡ãã«æé©åæ
-å ±ããã)
-          # port = definition    # definition ã¯ composite ã® Port ãå¾ããããã¨ããã
+          port = find j.get_name # celltype の Port (こちらに最適化情報がある)
+          # port = definition    # definition は composite の Port が得られることがある
           next if port.is_cell_unique?
           next if port.is_omit?
 
-          # é
-åè¦ç´ ãå¾ãï¼åãå£é
-åã§ãªããã° nil ãè¿ãï¼
+          # 配列要素を得る（受け口配列でなければ nil が返る）
           am = j.get_array_member2
 
-          # å¼ã³å£é
-åã?
+          # 呼び口配列か?
           if am  then
             i = 0
@@ -2748,5 +2698,5 @@
               if j then
                 if am[i].get_cell.get_celltype == self then
-                  # åãã»ã«ã¿ã¤ãã¸çµåãã¦ããå ´å(VDES ã§ã¯ type conflict ã«ãªã)
+                  # 同じセルタイプへ結合している場合(VDES では type conflict になる)
                   p = am[i].get_rhs_port
                   des_type = "const struct tag_#{@global_name}_#{p.get_name}_DES"
@@ -2755,10 +2705,8 @@
                 end
 
-                # å³è¾ºã¯åãå£é
-åãï¼
+                # 右辺は受け口配列か？
                 if j.get_rhs_subscript then
 
-                  # åãå£ã®é
-åæ·»æ°
+                  # 受け口の配列添数
                   subscript = j.get_rhs_subscript
 
@@ -2773,6 +2721,5 @@
                 end
               #else if j == nil
-              #  optioanl ã§é
-åè¦ç´ ãåæåããã¦ããªã
+              #  optioanl で配列要素が初期化されていない
               end
               i += 1
@@ -2780,5 +2727,5 @@
           else
             if j.get_cell.get_celltype == self then
-              # åãã»ã«ã¿ã¤ãã¸çµåãã¦ããå ´å(VDES ã§ã¯ type conflict ã«ãªã)
+              # 同じセルタイプへ結合している場合(VDES では type conflict になる)
               p = j.get_rhs_port
               des_type = "const struct tag_#{@global_name}_#{p.get_name}_DES"
@@ -2788,6 +2735,5 @@
 
             if j.get_rhs_subscript then
-              # åãå£é
-å
+              # 受け口配列
               subscript = j.get_rhs_subscript
               f.printf( "extern %s %s%d;\n",
@@ -2801,6 +2747,5 @@
             end
           end
-          # mikan   cell ã® namespace æªå¯¾å¿ãJoin ã§ Cell ãªãã¸ã§ã¯ããå¼å½ã¦ããå¿
-è¦ãã
+          # mikan   cell の namespace 未対応、Join で Cell オブジェクトを引当ておく必要あり
         }
 
@@ -2812,6 +2757,5 @@
   def gen_cell_ep_vdes_array fs
     if @n_cell_gen >0 then
-      fs.each{ |r, f| f.printf( TECSMsg.get( :CPA_comment ), "#_CPA_#" ) }  # mikan å¼ã³å£é
-åãç¡ãå ´åãåºã¦ãã¾ã
+      fs.each{ |r, f| f.printf( TECSMsg.get( :CPA_comment ), "#_CPA_#" ) }  # mikan 呼び口配列が無い場合も出てしまう
     end
 
@@ -2824,7 +2768,6 @@
           definition = j.get_definition
           next unless definition.instance_of? Port
-          # port = definition    # definition ã¯ composite ã® Port ãå¾ããããã¨ããã
-          port = find j.get_name # celltype ã® Port (ãã¡ãã«æé©åæ
-å ±ããã)
+          # port = definition    # definition は composite の Port が得られることがある
+          port = find j.get_name # celltype の Port (こちらに最適化情報がある)
           next if port.is_cell_unique?
           next if port.is_omit?
@@ -2832,6 +2775,5 @@
           am = j.get_array_member2
           if am  then
-            # å·¦è¾ºã¯é
-å
+            # 左辺は配列
 
             if ! port.is_skelton_useless? then
@@ -2842,10 +2784,8 @@
             else
 
-#              ã¹ã±ã«ãã³é¢æ°ä¸è¦æé©åã®å ´åããã®é
-åã¯åç
-§ãããªã
-              # mikan ãã®ã±ã¼ã¹ããã¹ãããã¦ããªã
+#              スケルトン関数不要最適化の場合、この配列は参照されない
+              # mikan このケースがテストされていない
               f.printf( "const %s_IDX  %s_%s[] = {\n",
-#                        "#{j.get_celltype.get_global_name}",   # å³è¾º composite ã«å¯¾å¿ã§ããªã
+#                        "#{j.get_celltype.get_global_name}",   # 右辺 composite に対応できない
                         "#{j.get_rhs_cell.get_celltype.get_global_name}",
                         "#{c.get_global_name}",
@@ -2864,6 +2804,5 @@
 
               if j then
-                # åä¸ã»ã«ã¿ã¤ãã®çµåã®å ´åãVDES åã¸ã®ã­ã£ã¹ããå¿
-è¦
+                # 同一セルタイプの結合の場合、VDES 型へのキャストが必要
                 if j.get_rhs_cell.get_celltype == self then
                   definition = j.get_definition
@@ -2875,6 +2814,5 @@
                 
                 if j.get_rhs_subscript then
-                  # å³è¾ºé
-åã®å ´å(æé©åã¯ãªã)
+                  # 右辺配列の場合(最適化はない)
                   subscript = j.get_rhs_subscript
                   f.printf( "    %s%d,\n",
@@ -2885,6 +2823,5 @@
 
                 else
-                  # å³è¾ºéé
-åã®å ´å */
+                  # 右辺非配列の場合 */
                   if ! port.is_skelton_useless? then
                     f.printf( "    %s,\n",
@@ -2897,12 +2834,10 @@
                 end
               else
-                # optional ã§å¼ã³å£é
-åè¦ç´ ãåæåããã¦ããªã
+                # optional で呼び口配列要素が初期化されていない
                 f.printf( "    0,\n" )
               end
             # }
             end
-            # mikan   cell ã® namespace æªå¯¾å¿ãJoin ã§ Cell ãªãã¸ã§ã¯ããå¼å½ã¦ããå¿
-è¦ãã
+            # mikan   cell の namespace 未対応、Join で Cell オブジェクトを引当ておく必要あり
             f.print "};\n"
           end
@@ -2914,5 +2849,5 @@
   end
 
-  #=== CB ãåæåãããã­ã°ã©ã ã®çæ
+  #=== CB を初期化するプログラムの生成
   def gen_cell_cb_initialize_code f
     if ! need_CB_initializer?
@@ -2946,8 +2881,8 @@
   end
 
-  # === CB/INIB ã®å¤ã§åæåãããå¤æ°ã®åºå
+  # === CB/INIB の外で初期化される変数の出力
   def gen_cell_cb_out_init fs
 
-    # ã»ã«ããªããã°ãåºåããªã
+    # セルがなければ、出力しない
     if @n_cell_gen == 0 then
       return
@@ -2956,7 +2891,5 @@
     fs.each{ |r, f| f.printf( TECSMsg.get( :AVAI_comment ), "#_AVAI_#" ) }
 
-    # attribute, var ã®ãã¤ã³ã¿åã®åç
-§ããé
-åãçæ
+    # attribute, var のポインタ型の参照する配列を生成
     @ordered_cell_list.each{ |c|
       next if  ! c.is_generate?
@@ -2968,7 +2901,5 @@
       jl = c.get_join_list
 
-      # attribute, var ã®ãã¤ã³ã¿å¤æ°ãé
-åã«ããåæåãããå ´åã®ãé
-åãåºå
+      # attribute, var のポインタ変数が配列により初期化される場合の、配列を出力
       av_list = ct.get_attribute_list + ct.get_var_list
       if av_list.length != 0 then
@@ -2986,9 +2917,7 @@
 
             if size then
-              # å¼ãè©ä¾¡ãã(attribute, var ã«å«ã¾ããå¤æ°ãåç
-§å¯è½)
+              # 式を評価する(attribute, var に含まれる変数を参照可能)
               sz = size.eval_const( c.get_join_list, c.get_celltype.get_name_list )
-              # å¼ãçæããªãã (å¤æ°ãå«ã¾ãªãå½¢ã«ãã)  ä¸å®å
-¨ãªå½¢ã§ Token ãçæ (ã¨ã©ã¼çºçããªããã)
+              # 式を生成しなおす (変数を含まない形にする)  不完全な形で Token を生成 (エラー発生しないから)
               size = Expression.new( [:INTEGER_CONSTANT, Token.new(sz, nil, 0, 0)] )
               array_type = ArrayType.new( size )
@@ -3004,5 +2933,5 @@
 								# name_array[3]: cell_CB_INIT
               if !( $ram_initializer && a.get_kind == :VAR ) then
-                # -R (ram initializer ä½¿ç¨) ã®å ´å var ã¯åæåã³ã¼ããåºåããªã
+                # -R (ram initializer 使用) の場合 var は初期化コードを出力しない
                 if( init )then
                   str = " = #{gen_cell_cb_init( f, c, name_array, array_type, init, a.get_identifier, 1, true )}"
@@ -3022,7 +2951,7 @@
   end
 
-  #=== var ã®åæå¤ã® ROM é¨ã¸ã®
+  #=== var の初期値の ROM 部への
   def gen_cell_var_init f
-    # var ã®{ }ã§å²ã¾ããåæå¤æå®ããããèª¿ã¹ã
+    # var の{ }で囲まれた初期値指定があるか調べる
     n_init = 0
     @var.each { |v|
@@ -3041,7 +2970,7 @@
 
           if( type.kind_of? PtrType )then
-            # PtrType ã¯ ArrayType ã«ããæ¿ãã
-
-            # åæåå­ã®è¦ç´ æ°ã ãã¨ããï¼å¾ã¯ 0)
+            # PtrType は ArrayType にすり替える
+
+            # 初期化子の要素数だけとする（後は 0)
             t2 = ArrayType.new( Expression.create_integer_constant( init.length, nil ) )
             t2.set_type( type.get_type )
@@ -3049,16 +2978,15 @@
           end
 
-          c = @ordered_cell_list[0]   # ä»®ã® cell (å®éã«ã¯ä½¿ãããªã)
+          c = @ordered_cell_list[0]   # 仮の cell (実際には使われない)
           name_array = get_name_array( c )
           # f.print "const #{type0.get_type_str}\t#{@global_name}_#{v.get_name}_VAR_INIT#{type0.get_type_str_post} = "
           f.print "const #{type.get_type_str}\t#{@global_name}_#{v.get_name}_VAR_INIT#{type.get_type_str_post} = "
           if type.kind_of? StructType then
-            # celltype ã® default ã®åæå¤ãã
+            # celltype の default の初期値あり
             str = gen_cell_cb_init( f, c, name_array, type, init, v.get_identifier, 1, true )
           elsif( type.kind_of?( PtrType ) || type.kind_of?( ArrayType ) ) then
             str = "{ "
             type = type.get_type
-            # mikan ãã¤ã³ã¿ã§ã¯ãªããé
-ååã¨ããªãã¨ããã¤ã³ã¿å¤æ°ã®é åã®åãæãã
+            # mikan ポインタではなく、配列型としないと、ポインタ変数の領域の分、損する
             init.each { |i|
               str += gen_cell_cb_init( f, c, name_array, type, i, v.get_identifier, 1, true )
@@ -3117,5 +3045,5 @@
 
         unless @singleton then
-          # 1 ã¤ã® cell INIB ã®çµãã
+          # 1 つの cell INIB の終わり
           if @idx_is_id_act then
             f.print( "};\n\n" )
@@ -3135,5 +3063,5 @@
       end
 
-      # RAM initializer ãä½¿ç¨ããªããã¾ãã¯ ROM åããªã
+      # RAM initializer を使用しない、または ROM 化しない
       if $ram_initializer == false || $rom == false then
         if @singleton then
@@ -3177,5 +3105,5 @@
 
           unless @singleton then
-            # 1 ã¤ã® cell CB ã®çµãã
+            # 1 つの cell CB の終わり
             if @idx_is_id_act then
               f.print( "};\n\n" )
@@ -3215,5 +3143,5 @@
         f.print "/* ID to INIB table #_INTAB_# */\n"
         @ordered_cell_list.each{ |c|
-          if c.is_generate? && ( c.get_region.get_domain_root != Region.get_root ) then # çæå¯¾è±¡ãã¤ãã«ã¼ãä»¥å¤ã
+          if c.is_generate? && ( c.get_region.get_domain_root != Region.get_root ) then # 生成対象かつ、ルート以外か
             name_array = get_name_array( c )
             print_indent( f, indent + 1 )
@@ -3224,5 +3152,5 @@
         f.print "#{@global_name}_INIB *#{@global_name}_INIB_tab[] ={\n"
         @ordered_cell_list.each{ |c|
-          if c.is_generate? then                           # çæå¯¾è±¡ãï¼
+          if c.is_generate? then                           # 生成対象か？
             name_array = get_name_array( c )
             print_indent( f, indent + 1 )
@@ -3235,5 +3163,5 @@
         f.print "/* ID to CB table #_CBTAB_# */\n"
         @ordered_cell_list.each{ |c|
-          if c.is_generate? && ( c.get_region.get_domain_root != Region.get_root ) then # çæå¯¾è±¡ãã¤ãã«ã¼ãä»¥å¤ã
+          if c.is_generate? && ( c.get_region.get_domain_root != Region.get_root ) then # 生成対象かつ、ルート以外か
             name_array = get_name_array( c )
             print_indent( f, indent + 1 )
@@ -3244,5 +3172,5 @@
         f.print "#{@global_name}_CB *#{@global_name}_CB_tab[] ={\n"
         @ordered_cell_list.each{ |c|
-          if c.is_generate? then                           # çæå¯¾è±¡ãï¼
+          if c.is_generate? then                           # 生成対象か？
             name_array = get_name_array( c )
             print_indent( f, indent + 1 )
@@ -3256,15 +3184,12 @@
 
 
-  #=== name_array ãçæ
+  #=== name_array を生成
   # IN:   cell  : Cell
-  #       index : CB, INIB é
-åã®æ·»æ°
+  #       index : CB, INIB 配列の添数
   # RETURN: name_array
   #   name_array[0] = @name           # celltype name
   #   name_array[1] = cell.get_name   # cell name
   #   name_array[2] = cell_CB_name    # cell_CB_name
-  #   name_array[3] = cell_CB_INIT    # cell_CB_INIT # CB ã®å¤å´ã§åæåãå¿
-è¦ãªé
-åã®åå
+  #   name_array[3] = cell_CB_INIT    # cell_CB_INIT # CB の外側で初期化が必要な配列の名前
   #   name_array[4] = cell_CB_proto   # CB name for prototype
   #   name_array[5] = cell_INIB       # INIB name
@@ -3305,5 +3230,5 @@
 
     if ! has_CB? && ! has_INIB? then
-      cell_CBP = "NULL"    # CB ã INIB ããªããã° NULL ã«ç½®æ
+      cell_CBP = "NULL"    # CB も INIB もなければ NULL に置換
     else
       cell_CBP = "&#{cell_CB_name}"
@@ -3326,8 +3251,7 @@
   end
 
-  #=== attribute ã¨ size_is æå®ããã var (ãã¤ã³ã¿)ã®åæåãã¼ã¿ãåºå
+  #=== attribute と size_is 指定された var (ポインタ)の初期化データを出力
   #
-  # ROM åãµãã¼ãã®æç¡ãããã³åºåå¯¾è±¡ã CB ã INIB ãã«ããåºåãããå
-å®¹ãç°ãªã
+  # ROM 化サポートの有無、および出力対象が CB か INIB かにより出力される内容が異なる
   def gen_cell_cb_attribute( cell, indent, f, name_array, cb_inib )
     ct = self
@@ -3339,11 +3263,10 @@
       f.print "/* attribute(RO) */ \n"
     elsif $rom then  # && cb_inib == CB
-      # CB ã§ rw ã¨ var
+      # CB で rw と var
       return if @n_attribute_rw == 0
       print_indent( f, indent + 1 )
       f.print "/* attribute(RW) */ \n"
     else  # cb_inib == CB && $rom == false
-      # CB ã«å
-¨é¨
+      # CB に全部
       return if @n_attribute_rw == 0 && @n_attribute_ro == 0 && @n_var_size_is == 0
       print_indent( f, indent + 1 )
@@ -3355,5 +3278,5 @@
       next if a.is_omit?
       if cb_inib == :INIB && a.is_rw? == true then
-        # $rom == true ã§ãããããã¸æ¥ãªã
+        # $rom == true でしか、ここへ来ない
         next
       elsif cb_inib == :CB && $rom && ! a.is_rw? then
@@ -3363,11 +3286,11 @@
       j = jl.get_item( a.get_identifier )
       if j then
-        # cell ã®åæå¤æå®ãã
+        # cell の初期値指定あり
         gen_cell_cb_init( f, cell, name_array, a.get_type, j.get_rhs, a.get_identifier, indent + 1 )
       elsif a.get_initializer then
-        # celltype ã® default ã®åæå¤ãã
+        # celltype の default の初期値あり
         gen_cell_cb_init( f, cell, name_array, a.get_type, a.get_initializer, a.get_identifier, indent + 1 )
       else
-        # åæå¤æªæå®
+        # 初期値未指定
         gen_cell_cb_init( f, cell, name_array, a.get_type, nil, a.get_identifier, indent + 1 )
       end
@@ -3375,10 +3298,10 @@
     @var.each{ |v|
       next if v.is_omit?
-      next if v.get_size_is == nil   # size_is æå®ãããå ´å attribute ã®ä¸é¨ã¨ãã¦åºå
+      next if v.get_size_is == nil   # size_is 指定がある場合 attribute の一部として出力
 
       if v.get_initializer && $ram_initializer == false then
         gen_cell_cb_init( f, cell, name_array, v.get_type, v.get_initializer, v.get_identifier, indent + 1 )
       else
-        # åæå¤æªæå® ã¾ãã¯ RAM initializer ä½¿ç¨
+        # 初期値未指定 または RAM initializer 使用
         gen_cell_cb_init( f, cell, name_array, v.get_type, nil, v.get_identifier, indent + 1 )
       end
@@ -3386,5 +3309,5 @@
   end
 
-  #=== var ã®åæåãã¼ã¿ãåºå
+  #=== var の初期化データを出力
   def gen_cell_cb_var( cell, indent, f, name_array )
     jl = cell.get_join_list
@@ -3396,10 +3319,10 @@
 
         next if v.is_omit?
-        next if v.get_size_is      # size_is æå®ãããå ´å attribute ã®ä¸é¨ã¨ãã¦åºå
+        next if v.get_size_is      # size_is 指定がある場合 attribute の一部として出力
 
         if v.get_initializer && $ram_initializer == false then
           gen_cell_cb_init( f, cell, name_array, v.get_type, v.get_initializer, v.get_identifier, indent + 1 )
         else
-          # åæå¤æªæå® ã¾ãã¯ RAM initializer ä½¿ç¨
+          # 初期値未指定 または RAM initializer 使用
           gen_cell_cb_init( f, cell, name_array, v.get_type, nil, v.get_identifier, indent + 1 )
         end
@@ -3413,5 +3336,5 @@
   end
 
-  #=== å¼ã³å£ã®åæåã³ã¼ãã®çæ
+  #=== 呼び口の初期化コードの生成
   def gen_cell_cb_call_port( cell, indent, f, name_array )
     jl = cell.get_join_list
@@ -3424,5 +3347,5 @@
         next if p.get_port_type != :CALL
         next if p.is_omit?
-        next if p.is_cell_unique?        # æé©åï¼åä¸ã»ã«ã§å¼ã³å£ãã¯ã­ã«åãè¾¼ã¾ããï¼
+        next if p.is_cell_unique?        # 最適化（単一セルで呼び口マクロに埋め込まれる）
 
         j = jl.get_item( p.get_name )
@@ -3431,11 +3354,10 @@
         # debug
         if j == nil then
-          # optional å¼ã³å£
+          # optional 呼び口
           # cdl_error( "H1003 internal error: cell \'$1\' port \'$2\': initializer not found\n" , cell.get_name, p.get_name )
           # exit( 1 )
           f.printf( "%-40s /* #_CCP5_# */\n",  "0," )
           if p.get_array_size == "[]" then
-            # æ·»æ°çç¥ã®å¼ã³å£é
-å
+            # 添数省略の呼び口配列
             print_indent( f, indent + 1 )
             f.printf( "%-40s /* %s #_CCP6_# */\n", "0,", "length of #{p.get_name} (n_#{p.get_name})" )
@@ -3446,16 +3368,13 @@
         am = j.get_array_member2
         if am then
-          # å¼ã³å£é
-åã®å ´å
+          # 呼び口配列の場合
           f.printf( "%-40s /* #_CCP3_# */\n",  "#{cell.get_global_name}_#{j.get_name}," )
           if p.get_array_size == "[]" then
-            # æ·»æ°çç¥ã®å¼ã³å£é
-å
+            # 添数省略の呼び口配列
             print_indent( f, indent + 1 )
             f.printf( "%-40s /* %s #_CCP4_# */\n", "#{am.length},", "length of #{p.get_name} (n_#{p.get_name})" )
           end
         else
-          # åä¸ã»ã«ã¿ã¤ãã®çµåã®å ´åãVDES åã¸ã®ã­ã£ã¹ããå¿
-è¦
+          # 同一セルタイプの結合の場合、VDES 型へのキャストが必要
           #print "CCP0/CCP1 #{p.get_name}, #{j.get_rhs_cell.get_celltype.get_name}, #{@name}\n"
           if j.get_rhs_cell.get_celltype == self then
@@ -3467,6 +3386,5 @@
 
           if j.get_rhs_subscript then
-            # åãå£é
-åã®å ´å
+            # 受け口配列の場合
             subscript = j.get_rhs_subscript
             f.printf( "%-40s /* %s #_CCP0_# */\n",
@@ -3475,7 +3393,5 @@
                       p.get_name )
           else
-            # å¼ã³å£é
-åã§ããåãå£é
-åã§ããªã
+            # 呼び口配列でも、受け口配列でもない
             if ! p.is_skelton_useless? then
               f.printf( "%-40s /* %s #_CCP1_# */\n",
@@ -3483,16 +3399,12 @@
                         p.get_name )
             else
-              # ã¹ã±ã«ãã³ä¸è¦æé©åï¼CB (INIB) ã¸ã®ãã¤ã³ã¿ãåãè¾¼ãï¼
-              c = j.get_rhs_cell                    # å¼ã³å
-ã»ã«
-              ct = c.get_celltype                   # å¼ã³å
-ã»ã«ã¿ã¤ã
+              # スケルトン不要最適化（CB (INIB) へのポインタを埋め込む）
+              c = j.get_rhs_cell                    # 呼び先セル
+              ct = c.get_celltype                   # 呼び先セルタイプ
               if ct.has_INIB? || ct.has_CB? then
-                name_array = ct.get_name_array( c )   # å¼ã³å
-ã»ã«ã¿ã¤ãã§ name_array ãå¾ã
+                name_array = ct.get_name_array( c )   # 呼び先セルタイプで name_array を得る
                 f.printf( "%-40s /* %s #_CCP2_# */\n", "#{name_array[7]},", p.get_name )
               else
-                # å¼ã³å
-ã¯ CB ã INIB ãæããªãï¼NULL ã«åæåï¼
+                # 呼び先は CB も INIB も持たない（NULL に初期化）
                 f.printf( "%-40s /* %s #_CCP2_# */\n", "0,", p.get_name )
               end
@@ -3505,5 +3417,5 @@
   end
 
-  #=== åãå£ã®åæåã³ã¼ãã®çæ
+  #=== 受け口の初期化コードの生成
   def gen_cell_cb_entry_port( cell, indent, f, name_array )
     jl = cell.get_join_list
@@ -3514,6 +3426,5 @@
       f.print "/* entry port #_EP_# */ \n"
       @port.each{ |p|
-        # next if p.is_omit?  # åãå£é
-åã®åæ°ã¯çç¥ããªã
+        # next if p.is_omit?  # 受け口配列の個数は省略しない
         if p.get_port_type == :ENTRY && p.get_array_size == "[]"
           print_indent( f, indent + 1 )
@@ -3524,11 +3435,10 @@
   end
 
-  #=== ã»ã«ã® attribute ã®åæå¤ãåºå
+  #=== セルの attribute の初期値を出力
   #
-  #f_get_str:: true ã®å ´åãæå­åãè¿ããfalse ã®å ´åããã¡ã¤ã« f ã«åºåããï¼
-  # æå­åãè¿ãã¨ããæ«å°¾ã« ',' ã¯å«ã¾ããªãï¼
-  # ãã¡ã¤ã«ã¸åºåããã¨ããæ«å°¾ã« ',' ãåºåãããï¼æ§é ä½è¦ç´ ãé
-åè¦ç´ ã®åæå¤ãåºåããã¨ ',' ãäºéã«åºåãããï¼
-  # ãã ãç¾ç¶ã§ã¯ããã¡ã¤ã«ã¸åºåãããã¨ã¯ãªã
+  #f_get_str:: true の場合、文字列を返す、false の場合、ファイル f に出力する．
+  # 文字列を返すとき、末尾に ',' は含まれない．
+  # ファイルへ出力するとき、末尾に ',' が出力される．構造体要素、配列要素の初期値を出力すると ',' が二重に出力される．
+  # ただし現状では、ファイルへ出力することはない
   #
   def gen_cell_cb_init( f, cell, name_array, type, init, identifier, indent, f_get_str = false )
@@ -3544,5 +3454,5 @@
 
       if f_get_str then
-        # åæå¤æªæå®
+        # 初期値未指定
         if type.kind_of?( BoolType ) then
           str = "false"   # formerly tecs_false
@@ -3568,5 +3478,5 @@
         return str
       else
-        # åæå¤æªæå®
+        # 初期値未指定
         if type.kind_of?( BoolType ) then
           f.print "    " * indent
@@ -3602,7 +3512,6 @@
     end    
 
-    # ãã®ã¡ã½ããã¯ Celltype ã®ãã®ã§ããå¿
-è¦ã¯ç¡ãï¼ä¸ã«ç¶ãã®ã§ããã«ç½®ãï¼
-    # åæå¤æå®ãã
+    # このメソッドは Celltype のものである必要は無い（上に続くのでここに置く）
+    # 初期値指定あり
     if type.kind_of?( BoolType ) then
       if init.instance_of?( C_EXP ) then
@@ -3670,5 +3579,5 @@
 
       len.times {
-        next if ! init[i]        # mikan ãã®å¦ç½®ã¯é©åï¼
+        next if ! init[i]        # mikan この処置は適切？
         if f_get_str then
           str += gen_cell_cb_init( f, cell, name_array, at, init[i], "#{identifier}[#{i}]", indent + 1, f_get_str )
@@ -3752,6 +3661,5 @@
   end
 
-  #== é¢æ°ãã¼ãã«ã®å¤é¨åç
-§
+  #== 関数テーブルの外部参照
   def gen_cell_extern_mt fs
     fs.each{ |r, f|
@@ -3768,5 +3676,5 @@
   end
 
-  #=== åãå£ãã£ã¹ã¯ãªãã¿ã®å®ç¾©ãçæ
+  #=== 受け口ディスクリプタの定義を生成
   def gen_cell_ep_des fs
     if @n_cell_gen >0 then
@@ -3789,5 +3697,5 @@
           next if p.get_port_type != :ENTRY
           next if p.is_omit?
-          if p.is_skelton_useless?       # åãå£æé©ån ep_opt
+          if p.is_skelton_useless?       # 受け口最適化n ep_opt
             f.print( "/* #{p.get_name} : omitted by entry port optimize */\n" )
             next
@@ -3800,6 +3708,5 @@
 
           if len != nil then
-            # åãå£é
-åã®å ´å
+            # 受け口配列の場合
             i = 0
             while i < len
@@ -3882,14 +3789,12 @@
     return if @b_reuse && ! $generate_all_template
     if ! ( @plugin && @plugin.gen_ep_func? ) then
-      return if $generate_no_template     # $generate_all_template ããåªå
-ããã
-
-      # åèã¨ãã¦åºåãããã³ãã¬ã¼ããã¡ã¤ã«ã§ãããã¨ãç¤ºãããã« "_templ" ãä»å ãã
+      return if $generate_no_template     # $generate_all_template より優先される
+
+      # 参考として出力するテンプレートファイルであることを示すために "_templ" を付加する
       fname = "#{$gen}/#{@global_name}_templ.#{$c_suffix}"
     else
-      # Plugin ã«ããçæãããã»ã«ã¿ã¤ãã«ã¤ãã¦ã¯ãååçã«ãã³ãã¬ã¼ãã§ã¯ãªãã
-      # ä¿®æ­£ä¸è¦ãªã»ã«ã¿ã¤ãã®å®è£
-ã³ã¼ããçæããï¼
-      # ãã®ããããã¡ã¤ã«åã« _temp ãä»å ããªã
+      # Plugin により生成されたセルタイプについては、原則的にテンプレートではなく、
+      # 修正不要なセルタイプの実装コードを生成する．
+      # このため、ファイル名に _temp を付加しない
       fname = "#{$gen}/#{@global_name}.#{$c_suffix}"
     end
@@ -3906,5 +3811,5 @@
     gen_template_attr_access f
     gen_template_cp_fun f
-    # gen_template_types f     # 0805503 è¿½å ãã¦ã¿ããããã£ã±ãããã
+    # gen_template_types f     # 0805503 追加してみたが、やっぱりやめる
     f.print( " *\n * #[</PREAMBLE>]# */\n\n" )
     f.printf TECSMsg.get( :PAC_comment ), "#_PAC_#"
@@ -3912,5 +3817,5 @@
     gen_template_private_header f
     if ( @plugin ) then
-      # ãã®ã¡ã½ããã®å¼æ°ã¯ plugin.rb ã®èª¬æãè¦ã
+      # このメソッドの引数は plugin.rb の説明を見よ
       @plugin.gen_preamble( f, @singleton, @name, @global_name )
     end
@@ -3921,5 +3826,5 @@
 
     if ( @plugin ) then
-      # ãã®ã¡ã½ããã®å¼æ°ã¯ plugin.rb ã®èª¬æãè¦ã
+      # このメソッドの引数は plugin.rb の説明を見よ
       @plugin.gen_postamble( f, @singleton, @name, @global_name )
     end
@@ -4075,6 +3980,6 @@
       next if p.get_port_type != :ENTRY
       next if p.is_omit?
-      next if b_inline && ! p.is_inline?  # inline ãã¼ã
-      next if ! b_inline && p.is_inline?  # é inline ãã¼ã
+      next if b_inline && ! p.is_inline?  # inline ポート
+      next if ! b_inline && p.is_inline?  # 非 inline ポート
 
       inline_prefix = ""
@@ -4133,5 +4038,5 @@
           len = items.length
         else
-          # ããã§ nil ã«ãªãã®ã¯ãå¼æ°ãªãã®æã« void ããªãã£ãå ´å
+          # ここで nil になるのは、引数なしの時に void がなかった場合
           items = []
           len = 0
@@ -4153,5 +4058,5 @@
 
         if ( @plugin && @plugin.gen_ep_func? ) then
-          # ãã®ã¡ã½ããã®å¼æ°ã¯ plugin.rb ã®èª¬æãè¦ã
+          # このメソッドの引数は plugin.rb の説明を見よ
           @plugin.gen_ep_func_body( f, @singleton, @name, @global_name, p.get_signature.get_global_name, p.get_name, fun.get_name, "#{@global_name}_#{p.get_name}_#{fun.get_name}", functype, items )
 
@@ -4200,14 +4105,12 @@
     if ! ( @plugin && @plugin.gen_ep_func? ) then
       return if @b_reuse && ! $generate_all_template
-      return if $generate_no_template     # $generate_all_template ããåªå
-ããã
-
-      # åèã¨ãã¦åºåãããã³ãã¬ã¼ããã¡ã¤ã«ã§ãããã¨ãç¤ºãããã« "_templ" ãä»å ãã
+      return if $generate_no_template     # $generate_all_template より優先される
+
+      # 参考として出力するテンプレートファイルであることを示すために "_templ" を付加する
       fname = "#{$gen}/#{@global_name}_inline_templ.#{$h_suffix}"
     else
-      # Plugin ã«ããçæãããã»ã«ã¿ã¤ãã«ã¤ãã¦ã¯ãååçã«ãã³ãã¬ã¼ãã§ã¯ãªãã
-      # ä¿®æ­£ä¸è¦ãªã»ã«ã¿ã¤ãã®å®è£
-ã³ã¼ããçæããï¼
-      # ãã®ããããã¡ã¤ã«åã« _temp ãä»å ããªã
+      # Plugin により生成されたセルタイプについては、原則的にテンプレートではなく、
+      # 修正不要なセルタイプの実装コードを生成する．
+      # このため、ファイル名に _temp を付加しない
       fname = "#{$gen}/#{@global_name}_inline.#{$h_suffix}"
     end
@@ -4232,5 +4135,5 @@
 
     if ( @plugin ) then
-      # ãã®ã¡ã½ããã®å¼æ°ã¯ plugin.rb ã®èª¬æãè¦ã
+      # このメソッドの引数は plugin.rb の説明を見よ
       @plugin.gen_postamble( f, @singleton, @name, @global_name )
     end
@@ -4249,19 +4152,19 @@
       if fa.get_name == :write then
 
-        # åå¾ã® " ãåãé¤ã
+        # 前後の " を取り除く
         # file_name = fa.get_file_name.sub( /^\"(.*)\"$/, "\\1" )
         file_name = CDLString.remove_dquote fa.get_file_name
         format = CDLString.remove_dquote fa.get_format
-        # format    = fa.get_format.sub( /^\"(.*)/, "\\1" )        # åã® " ãåãé¤ã
-        # format    = format.sub( /(.*)\"\z/, "\\1" )              # å¾ã® " ãåãé¤ã
+        # format    = fa.get_format.sub( /^\"(.*)/, "\\1" )        # 前の " を取り除く
+        # format    = format.sub( /(.*)\"\z/, "\\1" )              # 後の " を取り除く
         format    = format.gsub( /\\\n/, "\n" )                  # \\\n => \n
 
 
-        # mikan ä»¥ä¸ã¯ subst_name ã§ç½®æããããã«å¤æ´ãã¹ã
-        file_name = file_name.gsub( /(^|[^\$])\$ct\$/, "\\1#{@name}" )   # $ct$ ãã»ã«ã¿ã¤ãåã«ç½®æ
-        file_name = file_name.gsub( /(^|[^\$])\$ct_global\$/, "\\1#{@global_name}" )   # $ct$ ãã»ã«ã¿ã¤ãåã«ç½®æ
-        format    = format.gsub( /(^|[^\$])\$ct\$/, "\\1#{@name}" )   # $ct$ ãã»ã«ã¿ã¤ãåã«ç½®æ
-        format    = format.gsub( /(^|[^\$])\$ct_global\$/, "\\1#{@global_name}" )   # $ct$ ãã»ã«ã¿ã¤ãåã«ç½®æ
-        format    = format.gsub( /\$\$/, "\$" )                # $$ ã $ ã«ç½®æ
+        # mikan 以下は subst_name で置換するように変更すべき
+        file_name = file_name.gsub( /(^|[^\$])\$ct\$/, "\\1#{@name}" )   # $ct$ をセルタイプ名に置換
+        file_name = file_name.gsub( /(^|[^\$])\$ct_global\$/, "\\1#{@global_name}" )   # $ct$ をセルタイプ名に置換
+        format    = format.gsub( /(^|[^\$])\$ct\$/, "\\1#{@name}" )   # $ct$ をセルタイプ名に置換
+        format    = format.gsub( /(^|[^\$])\$ct_global\$/, "\\1#{@global_name}" )   # $ct$ をセルタイプ名に置換
+        format    = format.gsub( /\$\$/, "\$" )                # $$ を $ に置換
 
         if file_name[0] != ?/ then
@@ -4275,5 +4178,5 @@
             puts( format )
           end
-          # format ä¸­ã® \n, \r, \t, \f ã¨ \" ãªã©ãç½®æ
+          # format 中の \n, \r, \t, \f と \" などを置換
           fmt = CDLString.escape format
           cfg_file.print( fmt )
@@ -4292,5 +4195,5 @@
     @ordered_cell_list.each{ |c|
 
-      # cell ã®ãã­ãã¿ã¤ãå®£è¨ãªãç¡è¦
+      # cell のプロトタイプ宣言なら無視
       next if ! c.is_generate?
 
@@ -4301,12 +4204,12 @@
         if fa.get_name == :write then
 
-          # åå¾ã® " ãåãé¤ã
+          # 前後の " を取り除く
           # file_name = fa.get_file_name.sub( /^\"(.*)\"$/, "\\1" )
           file_name = CDLString.remove_dquote fa.get_file_name
           file_name = subst_name( file_name, name_array )
-          # format    = fa.get_format.sub( /^\"(.*)\"$/, "\\1" )        # åå¾ã® "" ãåãé¤ã
+          # format    = fa.get_format.sub( /^\"(.*)\"$/, "\\1" )        # 前後の "" を取り除く
           format    = CDLString.remove_dquote fa.get_format
-          # format    = fa.get_format.sub( /^\"(.*)/, "\\1" )        # åã® " ãåãé¤ã
-          # format    = format.sub( /(.*)\"\z/, "\\1" )              # å¾ã® " ãåãé¤ã
+          # format    = fa.get_format.sub( /^\"(.*)/, "\\1" )        # 前の " を取り除く
+          # format    = format.sub( /(.*)\"\z/, "\\1" )              # 後の " を取り除く
           format    = format.gsub( /\\\n/, "\n" )                  # \\\n => \n
 
@@ -4319,10 +4222,10 @@
           end
 
-          na = []     # ã·ã³ãã«ã attribute ã®å¤ã«ç½®ãæããå¾ã®å¼æ°
+          na = []     # シンボルを attribute の値に置き換えた後の引数
           if arg_list then
             arg_list.each { |a|
               case a[0]
-              when :STRING_LITERAL   # æå­åå®æ°
-                # s = a[1].sub( /^\"(.*)\"$/, "\\1" )            # åå¾ã® "" ãåãé¤ã
+              when :STRING_LITERAL   # 文字列定数
+                # s = a[1].sub( /^\"(.*)\"$/, "\\1" )            # 前後の "" を取り除く
                 s = CDLString.remove_dquote a[1]
                 s = subst_name( s, name_array )
@@ -4331,13 +4234,12 @@
                 na << s
               when :IDENTIFIER
-                param_name = a[1]    # è­å¥å­ï¼å±æ§ã®ååï¼
+                param_name = a[1]    # 識別子（属性の名前）
                 attr = self.find( param_name )
-                init = attr.get_initializer      # celltype ã§æå®ãããåæå¤
-
-                # cell ã® join ã®ãªã¹ãããååãæ¢ã
+                init = attr.get_initializer      # celltype で指定された初期値
+
+                # cell の join のリストから名前を探す
                 j = c.get_join_list.get_item( param_name )
-                if j then    # param_name ã® cell ã®ã¸ã§ã¤ã³ãããã
-                  init = j.get_rhs                    # cell ã§æå®ãããåæå¤ãåªå
-
+                if j then    # param_name の cell のジョインがあるか
+                  init = j.get_rhs                    # cell で指定された初期値を優先
                 end
 
@@ -4345,5 +4247,5 @@
                                       # file,cell, name_array, type,          init, identifier,       indent, f_get_str
 
-                # str = str.sub( /^\"(.*)\"$/, "\\1" )            # åå¾ã® "" ãåãé¤ã mikan ããã§ç½®æã§ããï¼
+                # str = str.sub( /^\"(.*)\"$/, "\\1" )            # 前後の "" を取り除く mikan ここで置換でよい？
                 str = CDLString.remove_dquote str
                 na << str
@@ -4363,5 +4265,5 @@
             end
 
-            # format ä¸­ã® \n, \r, \t, \f ã¨ \" ãªã©ãç½®æ
+            # format 中の \n, \r, \t, \f と \" などを置換
             fmt = CDLString.escape format
             cfg_file.printf( fmt, *na )
@@ -4387,5 +4289,5 @@
     return if $generate_no_template
 
-    # Makefile.templ ã®çæï¼è¿½è¨ï¼
+    # Makefile.templ の生成（追記）
 
     f = AppFile.open( "#{$gen}/Makefile.templ" )
@@ -4395,7 +4297,7 @@
  
 EOT
-# ãã®çæè¦åã¯2ç¹ã§æå³ããªã
-#  ã»$(GEN_DIR) ã« .o ãçæããã«ã¼ã«ããªã
-#  ã»ãã³ãã¬ã¼ãã³ã¼ãããã®ã¾ã¾ãã«ãããã®ã¯ç´ãããã
+# この生成規則は2点で意味がない
+#  ・$(GEN_DIR) に .o を生成するルールがない
+#  ・テンプレートコードをそのままビルドするのは紛らわしい
 # # Celltype: #{@name}
 # $(GEN_DIR)/#{@global_name}_tecsgen.o : $(GEN_DIR)/#{@global_name}_tecsgen.#{$c_suffix}
@@ -4414,10 +4316,10 @@
     headers = [ "$(GEN_DIR)/#{@global_name}_tecsgen.#{$h_suffix}", "$(GEN_DIR)/#{@global_name}_factory.#{$h_suffix}", "$(GEN_DIR)/global_tecsgen.#{$h_suffix}" ]
 
-    # inline åãå£ãæã¤ãï¼
+    # inline 受け口を持つか？
     if @n_entry_port_inline > 0 then
       headers << "#{@global_name}_inline.#{$h_suffix}"
     end
 
-    # å¼ã³å£ã¾ãã¯åãå£ã®ã·ã°ããã£ã®ããã
+    # 呼び口または受け口のシグニチャのヘッダ
     @port.each { |p|
       next if p.is_omit?
@@ -4444,9 +4346,8 @@
   end
 
-  #=== decl ç¨ã® dealloc ã³ã¼ããçæ
-  #b_reset:: Bool:  ãªã»ããç¨ã® dealloc ã³ã¼ãã®çæ (NULL ãã¤ã³ã¿ã®å ´å dealloc ããªã)
-  # mikan string ä¿®é£¾ããããã¤ã³ã¿ã®å
-ã«ãã¤ã³ã¿ãæ¥ãªãã¨ä»®å®ããã¤ã³ã¿åãæã¤æ§é ä½ã®å¯è½æ§ãæé¤ãã¦ããªã
-  # ãã®ã¡ã½ããã§ã¯ãè¡ãåºåããç´åã« " \\\n" ãåºåããè¡æ«ã§æ¹è¡æå­ãåºåããªã
+  #=== decl 用の dealloc コードを生成
+  #b_reset:: Bool:  リセット用の dealloc コードの生成 (NULL ポインタの場合 dealloc しない)
+  # mikan string 修飾されたポインタの先にポインタが来ないと仮定。ポインタ型を持つ構造体の可能性を排除していない
+  # このメソッドでは、行を出力する直前に " \\\n" を出力し、行末で改行文字を出力しない
   def gen_dealloc_code_for_type( f, type, dealloc_func_name, pre, name, post, level, b_reset, count_str = nil )
     type = type.get_original_type
@@ -4477,5 +4378,5 @@
         post2 = ""
         type2 = md.get_type.get_original_type
-        if type2.kind_of? PtrType then   # mikan typedef ãããå
+        if type2.kind_of? PtrType then   # mikan typedef された型
           if type2.get_count then
             count_str = type2.get_count.to_str( members_decl, pre2, post2 )
@@ -4550,8 +4451,6 @@
     end
 
-    # å¼ã³å£ã®çµåå
-ã®ã»ã«ã¿ã¤ãã®ãããï¼æé©åã®å ´åã®ã¿ï¼
-    # çµåå
-ã®åãå£ã inline ã®å ´åãinline ãããã
+    # 呼び口の結合先のセルタイプのヘッダ（最適化の場合のみ）
+    # 結合先の受け口が inline の場合、inline ヘッダも
     @port.each { |p|
       next if p.get_port_type != :CALL
@@ -4559,5 +4458,5 @@
 
       if p.is_skelton_useless? || p.is_cell_unique? || p.is_VMT_useless? then
-        # æé©åã³ã¼ã (optimize) # ã¹ã±ã«ãã³ä¸è¦ãªã©
+        # 最適化コード (optimize) # スケルトン不要など
         p2 = p.get_real_callee_port
         if p2 then
@@ -4569,5 +4468,5 @@
           headers += ct.get_depend_header_list_( celltype_list )
         #else
-        #  optional ã§æªçµå  
+        #  optional で未結合  
         end
       end
@@ -4577,23 +4476,23 @@
 
 
-  #=== $id$, $ct$, $cb$, $idx$ ç½®æ
+  #=== $id$, $ct$, $cb$, $idx$ 置換
   #
-  #  str ã«ä»¥ä¸ã®ç½®æãè¡ã
-  #-   $ct$ â ã»ã«ã¿ã¤ãå(ct)
-  #-   $cell$ â ã»ã«å(cell)   cell ã nil ãªãã°3ã¤ã®ç½®æã¯è¡ãããªã
-  #-   $cb$ â CB ã® C è¨èªå(cb)
-  #-   $cbp$ â CB ã¸ã®ãã¤ã³ã¿(cbp)
-  #-   $cb_proto$ â CB ã® C è¨èªåãã­ãã¿ã¤ãå®£è¨ç¨(cb_proto)
-  #-   $id$ â ct_cell
-  #-   $idx$ â idx
-  #-   $ID$ â id (æ´æ°ã®çªå·)
-  #-   $ct_global$ â ã»ã«ã¿ã¤ãå(ct)
-  #-   $cell_global$ â ã»ã«å(cell)   cell ã nil ãªãã°3ã¤ã®ç½®æã¯è¡ãããªã
-  #-   $$   â $
+  #  str に以下の置換を行う
+  #-   $ct$ ⇒ セルタイプ名(ct)
+  #-   $cell$ ⇒ セル名(cell)   cell が nil ならば3つの置換は行われない
+  #-   $cb$ ⇒ CB の C 言語名(cb)
+  #-   $cbp$ ⇒ CB へのポインタ(cbp)
+  #-   $cb_proto$ ⇒ CB の C 言語名プロトタイプ宣言用(cb_proto)
+  #-   $id$ ⇒ ct_cell
+  #-   $idx$ ⇒ idx
+  #-   $ID$ ⇒ id (整数の番号)
+  #-   $ct_global$ ⇒ セルタイプ名(ct)
+  #-   $cell_global$ ⇒ セル名(cell)   cell が nil ならば3つの置換は行われない
+  #-   $$   ⇒ $
   def subst_name( str, name_array )
     ct   = name_array[0]    # celltype name
     cell = name_array[1]    # cell name
     cb   = name_array[2]    # cell CB name
-    cb_init = name_array[3] # cell CB INIT, ããã¯ç½®æã«ä½¿ãããªã
+    cb_init = name_array[3] # cell CB INIT, これは置換に使われない
     cb_proto = name_array[4] # cell CB name for prototype
     id   = name_array[6]    # cell ID
@@ -4615,5 +4514,5 @@
       str = str.gsub( /(^|[^\$])\$cell_global\$/, "\\1#{cell_global}" )
     end
-    str = str.gsub( /\$\$/, "\$" )                       # $$ ã $ ã«ç½®æ
+    str = str.gsub( /\$\$/, "\$" )                       # $$ を $ に置換
 
     return str
@@ -4622,7 +4521,7 @@
 end
 
-# Appendable Fileï¼è¿½è¨å¯è½ãã¡ã¤ã«ï¼
+# Appendable File（追記可能ファイル）
 class AppFile
-  # éãããã¡ã¤ã«ã®ãªã¹ã
+  # 開いたファイルのリスト
   @@file_name_list = {}
 
@@ -4641,18 +4540,18 @@
     end
 
-    # æ¢ã«éãã¦ãããï¼
+    # 既に開いているか？
     if @@file_name_list[ name ] then
 #2.0
       mode = "a" + mode
-      # è¿½è¨ã¢ã¼ãã§éã
+      # 追記モードで開く
       file = File.open( real_name, mode )
     else
 #2.0
       mode = "w" + mode
-      # æ°è¦ã¢ã¼ãã§éãï¼æ¢ã«ããã°ããµã¤ãºãï¼ã«ããï¼
+      # 新規モードで開く（既にあれば、サイズを０にする）
       file = File.open( real_name, mode )
       @@file_name_list[ name ] = true
     end
-    # File ã¯ã©ã¹ã®ãªãã¸ã§ã¯ããè¿ã
+    # File クラスのオブジェクトを返す
     return file
   end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/location.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/location.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/location.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: location.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -77,6 +62,5 @@
 
 #==  Cell_location
-  # tecscde ã®ä½ç½®æ
-å ±
+  # tecscde の位置情報
   class  Cell_location
 
@@ -105,6 +89,5 @@
 
   #==  Join_location
-  # tecscde ã®ä½ç½®æ
-å ±
+  # tecscde の位置情報
   class  Join_location
     @@join_location_list = []
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/messages.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/messages.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/messages.rb	(revision 321)
@@ -6,59 +6,43 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: messages.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== TECS ã®çæããåå½èªåå¿
-è¦ãªæå­å
-# ç¾ç¶ãã¨ã©ã¼ã¡ãã»ã¼ã¸ã¯è±èªã®ã¿
-# çæãã¡ã¤ã«ã®ã³ã¡ã³ãã¨ãã¦åºåãããæå­å
+#== TECS の生成する各国語化必要な文字列
+# 現状、エラーメッセージは英語のみ
+# 生成ファイルのコメントとして出力される文字列
 class TECSMsg
 
-  #=== TECSMsg#çæãããããããã³ãã¬ã¼ããªã©ã«å«ããã³ã¡ã³ãã®åå¾
-  # CDL ã®æå­ã³ã¼ãã«åããã¦ãæå­ã³ã¼ãå¤æãè¡ã
+  #=== TECSMsg#生成するヘッダやテンプレートなどに含めるコメントの取得
+  # CDL の文字コードに合わせて、文字コード変換を行う
   def self.get( msg )
     str = @@comment[ msg ]
@@ -71,10 +55,10 @@
   end
 
- #=== TECSMsg#ã­ã¼ã«ã©ã¤ãºãããã¨ã©ã¼ã¡ãã»ã¼ã¸ãå¾ã
- #body::String   : "S0001 error message body"  ã®å½¢å¼
- # S0001 ã®é¨åãä½¿ç¨ããã
- # Generator.error2 ããå¼ã³åºããã
+ #=== TECSMsg#ローカライズされたエラーメッセージを得る
+ #body::String   : "S0001 error message body"  の形式
+ # S0001 の部分が使用される
+ # Generator.error2 から呼び出される
  def self.get_error_message( body )
-   body =~ /^[A-Z0-9]+/    # ã¨ã©ã¼çªå·ãåãåºã
+   body =~ /^[A-Z0-9]+/    # エラー番号を取り出す
    num = $&
    if num then
@@ -91,8 +75,8 @@
  end
 
- #=== TECSMsg#ã­ã¼ã«ã©ã¤ãºãããã¦ã©ã¼ãã³ã°ã¡ãã»ã¼ã¸ãå¾ã
- # Generator.warning2 ããå¼ã³åºããã
+ #=== TECSMsg#ローカライズされたウォーニングメッセージを得る
+ # Generator.warning2 から呼び出される
  def self.get_warning_message( body )
-   body =~ /^[A-Z0-9]+/    # ã¦ã©ã¼ãã³ã°çªå·ãåãåºã
+   body =~ /^[A-Z0-9]+/    # ウォーニング番号を取り出す
    num = $&
    msg = @@warning_message[ num.to_sym ]
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/optimize.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/optimize.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/optimize.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: optimize.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -58,20 +43,20 @@
 Other processes are setting ID for each cell and setting domain information
 
-ãã®ãã¡ã¤ã«ã«ã¯ãæå³è§£æããã³ã¼ãçæã®éã§è¡ãã¹ãå¦çãå«ã¾ããï¼
-æé©åããã®ä¸ã¤ã§ããï¼
-ãã®ä»ã«ãã»ã«æ¯ã® ID ä»ãããã¡ã¤ã³ãããè¡ãï¼
-ã³ã¼ãçæå¯¾è±¡ã¨ãªãã»ã«ãå¯¾è±¡ã«å¦çãè¡ããã®ãå«ã¾ããï¼
+このファイルには、意味解析からコード生成の間で行うべき処理が含まれる．
+最適化もその一つである．
+その他に、セル毎の ID 付け、ドメインわけを行う．
+コード生成対象となるセルを対象に処理を行うものが含まれる．
 =end
 
 class Namespace
 
-  #===  åã»ã«ã« ID ï¼æ´æ°å¤ï¼ãå²ä»ãã
+  #===  各セルに ID （整数値）を割付ける
   def set_cell_id_and_domain
-    # celltype ã®åã»ã«ã« ID ãå²ä»ãã
+    # celltype の各セルに ID を割付ける
     @celltype_list.each { |t|
       t.set_cell_id_and_domain
     }
 
-    # ãµããã¼ã ã¹ãã¼ã¹ã®åã»ã«ã« ID ãå²ä»ãã
+    # サブネームスペースの各セルに ID を割付ける
     @namespace_list.each { |n|
       n.set_cell_id_and_domain
@@ -80,10 +65,10 @@
 
   def optimize
-    # celltype ã®æé©å
+    # celltype の最適化
     @celltype_list.each { |t|
       t.optimize
     }
 
-    # ãµããã¼ã ã¹ãã¼ã¹ã®æé©å
+    # サブネームスペースの最適化
     @namespace_list.each { |n|
       n.optimize
@@ -92,10 +77,10 @@
 
   def reset_optimize
-    # celltype ã®æé©å
+    # celltype の最適化
     @celltype_list.each { |t|
       t.reset_optimize
     }
 
-    # ãµããã¼ã ã¹ãã¼ã¹ã®æé©å
+    # サブネームスペースの最適化
     @namespace_list.each { |n|
       n.reset_optimize
@@ -106,5 +91,5 @@
 class Celltype
 
-  ID_BASE = 1               # reset_optimize ã§ãªã»ãããã
+  ID_BASE = 1               # reset_optimize でリセットする
   @@ID_BASE = ID_BASE
 
@@ -114,5 +99,5 @@
   end
 
-  #=== åã»ã«ã« ID ï¼æ´æ°å¤ï¼ãå²ä»ãã
+  #=== 各セルに ID （整数値）を割付ける
   def set_cell_id
 
@@ -122,8 +107,7 @@
 
     if $unique_id then
-      @id_base = @@ID_BASE   # id ãã·ã¹ãã å
-¨ä½ã§é£çªã«ãã
+      @id_base = @@ID_BASE   # id をシステム全体で連番にする
     else
-      @id_base = 1           # base ãå¸¸ã« 1 ããå§ãã
+      @id_base = 1           # base を常に 1 から始める
     end
 
@@ -131,5 +115,5 @@
     no_id_specified_cells = []
 
-    # ãã­ãã¿ã¤ããé¤ããæ°ãæ±ãã
+    # プロトタイプを除いた数を求める
     @cell_list.each{ |c|
       if c.is_generate? then
@@ -148,6 +132,6 @@
     }
 
-    @ordered_cell_list = []   # id = 1 ãæ·»æ° 0 ã«æ ¼ç´ããã
-    # ID æå®ããã¦ããã»ã«ã« id çªå·ãä¸ãã
+    @ordered_cell_list = []   # id = 1 が添数 0 に格納される
+    # ID 指定されているセルに id 番号を与える
     id_specified_cells.each{ |c|
       id = c.get_specified_id
@@ -169,5 +153,5 @@
       end
       @ordered_cell_list[ id - 1 ] = c
-      # éãçªå·ã¨ããå ´åã®ãã @id_base ãå ãã
+      # 通し番号とする場合のため @id_base を加える
       c.set_id( @id_base - 1 + id )
       if $verbose then
@@ -176,5 +160,5 @@
     }
 
-    # ID æå®ããã¦ããªãã»ã«ã« id çªå·ãä¸ãã
+    # ID 指定されていないセルに id 番号を与える
     i = 0
     no_id_specified_cells.each{ |c|
@@ -226,5 +210,5 @@
 
     @domain_roots.each{ |dn, regions|
-      # domain_type ã¯ä¸ã¤ã®ãã¼ãã«ä¸ã¤ãããªãã®ã§ãä¸ã¤ã®è¦ç´ ãç¡æ¡ä»¶ã§åãåºã
+      # domain_type は一つのノードに一つしかないので、一つの要素を無条件で取り出す
       if regions.length > 1 then
         cdl_info( "celltype:#{@name} has cells in multi domain.\n" )
@@ -239,6 +223,5 @@
   def optimize
 
-    # port ã®åç
-§ããã»ã«ã¿ã¤ãã®æ°ãã»ã«ã®æ°ãæ±ãã
+    # port の参照するセルタイプの数、セルの数を求める
     if $verbose then
       print "=== optimizing celltype #{get_namespace_path.to_s} ===\n"
@@ -248,9 +231,9 @@
       next if port.get_port_type != :CALL
       if port.is_omit? then
-        # å¼ã³å£æé©åå®æ½
+        # 呼び口最適化実施
         @b_cp_optimized = true
-        @n_call_port_omitted_in_CB += 1               # CB ã§çç¥ããå¼ã³å£
-        port.set_skelton_useless                      # ã¹ã±ã«ãã³é¢æ°ä¸è¦æé©å
-        port.set_VMT_useless                          # VMT ä¸è¦æé©å (ç´æ¥åãå£é¢æ°ãå¼åºã)
+        @n_call_port_omitted_in_CB += 1               # CB で省略する呼び口
+        port.set_skelton_useless                      # スケルトン関数不要最適化
+        port.set_VMT_useless                          # VMT 不要最適化 (直接受け口関数を呼出す)
         if $verbose then
           print "optimized by omit: port: #{port.get_name} : o\n"
@@ -263,11 +246,8 @@
       end
 
-      port_cells = []    # å¼ã³å
-ã»ã«
-      port_ports = []    # å¼ã³å
-ã®ãã¼ã
-
-      # ã»ã«ã®åç
-§ããã»ã«ãéããï¼ãã¼ããä¸ç·ã«éããï¼
+      port_cells = []    # 呼び先セル
+      port_ports = []    # 呼び先のポート
+
+      # セルの参照するセルを集める（ポートも一緒に集める）
       @cell_list.each{ |cell|
 
@@ -281,14 +261,11 @@
         if j then
           if j.get_array_member2 then
-            # å¼ã³å£é
-åã®å ´åãå
-¨é¨ã®çµåå
-ãéãã
+            # 呼び口配列の場合、全部の結合先を集める
             j.get_array_member2.each { |j2|
               if j2 then
                 port_cells << j2.get_rhs_cell
-                port_ports << j2.get_rhs_port   # å³è¾ºã®ãã¼ã
+                port_ports << j2.get_rhs_port   # 右辺のポート
               else
-                # optional ã§ãããæ·»æ°ã®ã¿åæåããã¦ããªãï¼ãã¹ã¦åæåãããªãå ´åã¯ãä¸ï¼
+                # optional で、ある添数のみ初期化されていない（すべて初期化されない場合は、下）
                 port_cells << nil
                 port_ports << nil
@@ -296,51 +273,41 @@
             }
           else
-            # å
-¨ã¦ã®çµåå
-ãéãã
+            # 全ての結合先を集める
             port_cells << j.get_rhs_cell
-            port_ports << j.get_rhs_port   # å³è¾ºã®ãã¼ã
+            port_ports << j.get_rhs_port   # 右辺のポート
           end
         else
-          # optional ã§åæåããã¦ããªãï¼nil ãè¦ç´ ã«å ãã¦ããï¼
+          # optional で初期化されていない（nil を要素に加えておく）
           port_cells << nil
-          port_ports << nil   # å³è¾ºã®ãã¼ã
+          port_ports << nil   # 右辺のポート
         end
       }
 
-      # éè¤è¦ç´ ãåãé¤ã
+      # 重複要素を取り除く
       port_cells.uniq!
       port_ports.uniq!
 
-      # å¼ã³å£ã®å¼ã³å
-ãä¸ã¤ã®ãã¼ãã ããï¼
+      # 呼び口の呼び先が一つのポートだけか？
       if port_ports.length == 1 then
 
-        # å¼ã³å£é
-åãå¯å¤é·ã®å ´åãæé©åããªã
-             # mikan å¼ã³å£é
-åè¦ç´ æ°ãã¯ã­ä¸å
-·åæ«å®å¯¾ç­
-             # ããæã¾ããä¿®æ­£ã¯ãåãå£ã¸ã®ãã¤ã³ã¿ã¯çç¥ããããé
-ååæ°ã¯åºåãã(#_CP_#, #_TCP_#)
-             # ããã«é
-ååæ°ãå®æ°åã§ããã®ã§ããã°ãå®æ°ãã¯ã­ãåºå (#_NCPA_#)
+        # 呼び口配列が可変長の場合、最適化しない
+             # mikan 呼び口配列要素数マクロ不具合暫定対策
+             # より望ましい修正は、受け口へのポインタは省略するが、配列個数は出力する(#_CP_#, #_TCP_#)
+             # さらに配列個数が定数化できるのであれば、定数マクロを出力 (#_NCPA_#)
         next if port.get_array_size == "[]"
 
-        # å¼ã³å£æé©åå®æ½
+        # 呼び口最適化実施
         @b_cp_optimized = true
 
-        # å¼ã³å
-ãä¸ã¤ã®ã»ã«ã ããï¼
+        # 呼び先が一つのセルだけか？
         if port_cells.length == 1 then
 
-          # å¼ã³å£ã¯ optional ã§åæåããã¦ããªããã¾ãã¯åãå£ã¯é
-åã§ã¯ãªããï¼
+          # 呼び口は optional で初期化されていない、または受け口は配列ではないか？
           if port_ports[0] == nil || port_ports[0].get_array_size == nil then
 
-            @n_call_port_omitted_in_CB += 1               # CB ã§çç¥ããå¼ã³å£
-            port.set_cell_unique                          # ã»ã«ä¸ã¤ã ãæé©å
-            port.set_skelton_useless                      # ã¹ã±ã«ãã³é¢æ°ä¸è¦æé©å
-            port.set_VMT_useless                          # VMT ä¸è¦æé©å (ç´æ¥åãå£é¢æ°ãå¼åºã)
+            @n_call_port_omitted_in_CB += 1               # CB で省略する呼び口
+            port.set_cell_unique                          # セル一つだけ最適化
+            port.set_skelton_useless                      # スケルトン関数不要最適化
+            port.set_VMT_useless                          # VMT 不要最適化 (直接受け口関数を呼出す)
 
             if $verbose then
@@ -348,5 +315,5 @@
             end
           else
-            port.set_VMT_useless                          # VMT ä¸è¦æé©å (ã¹ã±ã«ãã³é¢æ°ãå¼åºã)
+            port.set_VMT_useless                          # VMT 不要最適化 (スケルトン関数を呼出す)
 
             if $verbose then
@@ -355,13 +322,11 @@
           end
 
-        else  # å¼ã³å
-ãè¤æ°ã®ã»ã«ï¼åä¸ã®ãã¼ãï¼
-
-          # å¼ã³å£ã¯ optional ã§åæåããã¦ããªããã¾ãã¯åãå£ã¯é
-åã§ã¯ãªããï¼
+        else  # 呼び先が複数のセル（単一のポート）
+
+          # 呼び口は optional で初期化されていない、または受け口は配列ではないか？
           if port_ports[0] == nil || port_ports[0].get_array_size == nil then
             if ! @singleton then
-              port.set_skelton_useless                    # ã¹ã±ã«ãã³é¢æ°ä¸è¦æé©å
-              port.set_VMT_useless                        # VMT ä¸è¦æé©å (ã¹ã±ã«ãã³é¢æ° or åãå£é¢æ°ãå¼åºã)
+              port.set_skelton_useless                    # スケルトン関数不要最適化
+              port.set_VMT_useless                        # VMT 不要最適化 (スケルトン関数 or 受け口関数を呼出す)
 
               if $verbose then
@@ -369,5 +334,5 @@
               end
             else
-              port.set_VMT_useless                           # VMT ä¸è¦æé©å (ã¹ã±ã«ãã³é¢æ° or åãå£é¢æ°ãå¼åºã)
+              port.set_VMT_useless                           # VMT 不要最適化 (スケルトン関数 or 受け口関数を呼出す)
 
               if $verbose then
@@ -379,5 +344,5 @@
 
         port.set_only_callee( port_ports[0], port_cells[0] )
-           # set_cell_unique ã§ãªãå ´å cell ã¯æå³ããªã
+           # set_cell_unique でない場合 cell は意味がない
 
       end
@@ -387,15 +352,13 @@
     }
 
-    # åãå£æé©åã®è¨­å®
+    # 受け口最適化の設定
     @port.each{ |port|
       next if port.get_port_type != :CALL
 
-      # å¼ã³å£å´ã®æé©åç¶æ
-
+      # 呼び口側の最適化状態
       b_VMT_useless     = port.is_VMT_useless?
       b_skelton_useless = port.is_skelton_useless?
 
-      # ã»ã«ã®åç
-§ããã»ã«ãéããï¼ãã¼ããä¸ç·ã«éããï¼
+      # セルの参照するセルを集める（ポートも一緒に集める）
       @cell_list.each{ |cell|
 
@@ -407,21 +370,19 @@
         j = jl.get_item( port.get_name )
 
-        if j then    # optional ã§çµåããã¦ããªãå ´å nil
+        if j then    # optional で結合されていない場合 nil
           if j.get_array_member2 then
-            # å¼ã³å£é
-å
+            # 呼び口配列
             j.get_array_member2.each { |j2|
               if j2 then
-                port2 = j2.get_rhs_port   # å³è¾ºã®ãã¼ã
-                # åãå£å´ã®æé©åå¯è½æ§ãè¨­å®
+                port2 = j2.get_rhs_port   # 右辺のポート
+                # 受け口側の最適化可能性を設定
                 port2.set_entry_VMT_skelton_useless( b_VMT_useless, b_skelton_useless )
               #else
-              #  optional ã§å¼ã³å£é
-åè¦ç´ ãåæåããã¦ããªã
+              #  optional で呼び口配列要素が初期化されていない
               end
             }
           else
-            port2 = j.get_rhs_port      # å³è¾ºã®ãã¼ã
-            # åãå£å´ã®æé©åå¯è½æ§ãè¨­å®
+            port2 = j.get_rhs_port      # 右辺のポート
+            # 受け口側の最適化可能性を設定
             port2.set_entry_VMT_skelton_useless( b_VMT_useless, b_skelton_useless )
           end
@@ -431,12 +392,12 @@
   end
 
-  #Celltype# ãªã»ãããã
+  #Celltype# リセットする
   def reset_optimize
-    @@ID_BASE = ID_BASE      # æ¬å½ã¯ä¸åã ãã§ãã
-    @id_base = 1             # set_cell_id ã§ãªã»ãããããã®ã§ä¸è¦
-
-    @b_cp_optimized = false  # å¼ã³å£æé©å
-    @n_call_port_omitted_in_CB = 0 # å¼ã³å£æé©åã«ããä¸çæã¨ãªã£ããã¼ãã®æ°
-    @n_cell_gen = 0          # çæã»ã«åæ°
+    @@ID_BASE = ID_BASE      # 本当は一回だけでよい
+    @id_base = 1             # set_cell_id でリセットされるので不要
+
+    @b_cp_optimized = false  # 呼び口最適化
+    @n_call_port_omitted_in_CB = 0 # 呼び口最適化により不生成となったポートの数
+    @n_cell_gen = 0          # 生成セル個数
     @port.each{ |p|
       p.reset_optimize
@@ -446,9 +407,9 @@
   end
 
-  #Celltype# ãããã¯ include ããã¦ããã
-  #hname::Symbol : ãããå
-  #RETURN:: bool_t: false ã¤ã³ã¯ã«ã¼ãããã¦ããªããtrue ã¤ã³ã¯ã«ã¼ãããã¦ãã
-  # #_ISH_#, #_ICT_# ã§ããããåãè¾¼ã¾ãã¦ããããã§ãã¯ãã
-  # false ãè¿ã£ãå ´åãhname ã¯ç»é²ããã¦ãæ¬¡åã®å¼ã³åºãã§ã¯ true ãè¿ã
+  #Celltype# ヘッダは include されているか
+  #hname::Symbol : ヘッダ名
+  #RETURN:: bool_t: false インクルードされていない、true インクルードされている
+  # #_ISH_#, #_ICT_# でヘッダが取り込まれているかチェックする
+  # false が返った場合、hname は登録されて、次回の呼び出しでは true が返る
   def header_included?( hname )
     if @included_header[ hname ] == nil then
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/plugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/plugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/plugin.rb	(revision 321)
@@ -6,55 +6,40 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: plugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== class ã¢ã¸ã¥ã¼ã«
-# ThroughPlugin, SignaturePlugin, CelltypePlugin ã« include ãã
+#== class モジュール
+# ThroughPlugin, SignaturePlugin, CelltypePlugin に include する
 class Plugin < Node
-#@error_backlog:: [msg1, msg2, ... ]   @locale ãè¨­å®ãããåã«çºçããã¨ã©ã¼
+#@error_backlog:: [msg1, msg2, ... ]   @locale が設定される前に発生したエラー
 
   PluginArgProc = {
@@ -65,10 +50,10 @@
     super
     @b_silent = false
-    @locale = nil       # set_locale ãå¼ã³åºãããã¾ã§ nil ã¨ãªã
+    @locale = nil       # set_locale が呼び出されるまで nil となる
     @error_backlog = []
   end
 
   #=== Plugin#cdl_error
-  # set_locale ãå¼ã³åºãããã¾ã§ @error_backlog ã«ä¿å­ãä¿çãã
+  # set_locale が呼び出されるまで @error_backlog に保存し保留する
   def cdl_error *arg
     if @locale then
@@ -79,8 +64,8 @@
   end
 
-  #=== locale ãè¨­å®ãã
-  # Node ã¯ initialize ã§ locale ãè¨­å®ããããplugin ã¯ parse ã¨ã¯
-  # ç°ãªãã¿ã¤ãã³ã° new ããããããlocale ãåè¨­å®ãã
-  # ãã®ã¡ã½ããã2åº¦å¼ã³åºãã¨ @error_backlog ã®ã¨ã©ã¼ã2åº¦åºåããã¦ãã¾ã
+  #=== locale を設定する
+  # Node は initialize で locale を設定するが、plugin は parse とは
+  # 異なるタイミング new されるため、locale を再設定する
+  # このメソッドを2度呼び出すと @error_backlog のエラーが2度出力されてしまう
   def set_locale locale
     @locale = locale
@@ -90,30 +75,28 @@
   end
 
-### æå³è§£ææ®µéã§å¼ã³åºãããã¡ã½ãã ###
-  #===  CDL ãã¡ã¤ã«ã®çæ
-  #      typedef, signature, celltype, cell ã®ã³ã¼ããçæ
-  #      éè¤ãã¦çæãã¦ã¯ãªããªã
-  #      ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ã
-  #      ãããã¯ååã® import ã«ãããéè¤ãé¿ãããã¨ã
-  #file::        FILE       çæãããã¡ã¤ã«
+### 意味解析段階で呼び出されるメソッド ###
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell のコードを生成
+  #      重複して生成してはならない
+  #      すでに生成されている場合は出力しないこと。
+  #      もしくは同名の import により、重複を避けること。
+  #file::        FILE       生成するファイル
   def gen_cdl_file file
   end
 
 
-### ã³ã¼ãçæ®µéã§å¼ã³åºãããã¡ã½ãã ###
-  #=== ãã©ã°ã¤ã³ã¯ gen_ep_func ãæä¾ããã
-  # gen_ep_func å®ç¾©   â ãã³ãã¬ã¼ãã§ã¯ãªããã»ã«ã¿ã¤ãã³ã¼ã(tCelltype.c)ãçæ 
-  # gen_ep_func æªå®ç¾© â ãã³ãã¬ã¼ã(tCelltype_templ.c)ãçæ
+### コード生段階で呼び出されるメソッド ###
+  #=== プラグインは gen_ep_func を提供するか
+  # gen_ep_func 定義   ⇒ テンプレートではない、セルタイプコード(tCelltype.c)を生成 
+  # gen_ep_func 未定義 ⇒ テンプレート(tCelltype_templ.c)を生成
   def gen_ep_func?
     self.class.method_defined?( :gen_ep_func_body )
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     ãã©ã°ã¤ã³ã®å ´åãå¤æ´ããå¿
-è¦ã®ãªãã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #     ãã®ã¡ã½ãããæªå®ç¾©ã§ããã°ããã©ã°ã¤ã³ã¯ã»ã«ã¿ã¤ãã³ã¼ããçæããªã (éå¸¸éããã³ãã¬ã¼ããçæãã)
-  #      gen_cdl_file ã®ä¸­ã§çæãããã»ã«ã¿ã¤ãã«å¯¾ãã¦å¼ã³åºããã
-  #file::           FILE        åºåå
-ãã¡ã¤ã« (tCelltype.c)
+  #===  受け口関数の本体(C言語)を生成する
+  #     プラグインの場合、変更する必要のないセルタイプコードを生成する
+  #     このメソッドが未定義であれば、プラグインはセルタイプコードを生成しない (通常通りテンプレートを生成する)
+  #      gen_cdl_file の中で生成されたセルタイプに対して呼び出される
+  #file::           FILE        出力先ファイル (tCelltype.c)
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -127,55 +110,50 @@
 #  end
 
-  #===  åãå£é¢æ°ã® preamble (Cè¨èª)ãçæãã
-  #     å¿
-è¦ãªã preamble é¨ã«åºåãã
-  #      gen_cdl_file ã®ä¸­ã§ã§çæãããã»ã«ã¿ã¤ãã«å¯¾ãã¦å¼ã³åºããã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の preamble (C言語)を生成する
+  #     必要なら preamble 部に出力する
+  #      gen_cdl_file の中でで生成されたセルタイプに対して呼び出される
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
   #global_ct_name:: string
   def gen_preamble( file, b_singleton, ct_name, global_ct_name )
-    # ããã©ã«ãã§ã¯ä½ãåºåããªã
-  end
-
-  #===  åãå£é¢æ°ã® postamble (Cè¨èª)ãçæãã
-  #     å¿
-è¦ãªã postamble é¨ã«åºåãã
-  #      gen_cdl_file ã®ä¸­ã§çæãããã»ã«ã¿ã¤ãã«å¯¾ãã¦å¼ã³åºããã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+    # デフォルトでは何も出力しない
+  end
+
+  #===  受け口関数の postamble (C言語)を生成する
+  #     必要なら postamble 部に出力する
+  #      gen_cdl_file の中で生成されたセルタイプに対して呼び出される
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
   #global_ct_name:: string
   def gen_postamble( file, b_singleton, ct_name, global_ct_name )
-    # ããã©ã«ãã§ã¯ä½ãåºåããªã
-  end
-
-  #=== gen_cdl_file ã®ä¸­ã§çæãããã»ã«ã¿ã¤ãã«æ°ããã»ã«ãçæããã
-  # ã©ã®ã»ã«ã¿ã¤ããã¯ cell.get_celltype ã§åãã
+    # デフォルトでは何も出力しない
+  end
+
+  #=== gen_cdl_file の中で生成されたセルタイプに新しいセルが生成された
+  # どのセルタイプかは cell.get_celltype で分かる
   #
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
   #global_ct_name:: string
   def new_cell cell
-    # ããã©ã«ãã§ã¯ä½ãããªã
-  end
-
-### ãã©ã°ã¤ã³å¼æ°ã®è§£é ###
+    # デフォルトでは何もしない
+  end
+
+### プラグイン引数の解釈 ###
   def parse_plugin_arg
     arg = @plugin_arg_str.dup
 
-    # æ¹è¡ãæ¶ã
+    # 改行を消す
     arg.gsub!( /\\\n/, "" )
 
     while arg != ""
 
-      # åã®ç©ºç½èª­ã¿é£ã°ã
+      # 前の空白読み飛ばす
       arg.sub!( /\A\s*(?:\\\n)*\s*(.*)/, '\1')
 
-      #  è­å¥å­åå¾
+      #  識別子取得
       if arg =~ /\A[a-zA-Z_]\w*/ then
         ident = $~
@@ -186,5 +164,5 @@
       end
       
-      # åã®ç©ºç½èª­ã¿é£ã°ã
+      # 前の空白読み飛ばす
       arg.sub!( /\A\s*(?:\\\n)*\s*(.*)/, '\1')
 
@@ -196,37 +174,37 @@
       end
 
-      # åã®ç©ºç½èª­ã¿é£ã°ã
+      # 前の空白読み飛ばす
       arg.sub!( /\A\s*(?:\\\n)*\s*(.*)/, '\1')
 
-      # å³è¾ºæå­å
-      if arg =~ /\A\\"(.*?)\\"\s*,/ then      # \"  \" ã§å²ã¾ãã¦ããå ´å
-        rhs = $1
-        remain = $'
-      elsif arg =~ /\A%(.*?)%\s*,/ then      # %   % ã§å²ã¾ãã¦ããå ´å
-        rhs = $1
-        remain = $'
-      elsif arg =~ /\A!(.*?)!\s*,/ then    # $   $ ã§å²ã¾ãã¦ããå ´å
-        rhs = $1
-        remain = $'
-      elsif arg =~ /\A'(.*?)'\s*,/ then    # $   $ ã§å²ã¾ãã¦ããå ´å
-        rhs = $1
-        remain = $'
-      elsif  arg =~ /\A\\"(.*?)\\"\s*,/ then  # || ã«ã [,$] ã«ãã§ããªãã£ã
+      # 右辺文字列
+      if arg =~ /\A\\"(.*?)\\"\s*,/ then      # \"  \" で囲まれている場合
+        rhs = $1
+        remain = $'
+      elsif arg =~ /\A%(.*?)%\s*,/ then      # %   % で囲まれている場合
+        rhs = $1
+        remain = $'
+      elsif arg =~ /\A!(.*?)!\s*,/ then    # $   $ で囲まれている場合
+        rhs = $1
+        remain = $'
+      elsif arg =~ /\A'(.*?)'\s*,/ then    # $   $ で囲まれている場合
+        rhs = $1
+        remain = $'
+      elsif  arg =~ /\A\\"(.*?)\\"\s*,/ then  # || にも [,$] にもできなかった
         rhs = $1
         remain = $'
       # elsif arg =~ /\A(.*?)\s*$/ then
-      elsif arg =~ /\A\\"(.*?)\\"\s*\z/ then      # \"  \" ã§å²ã¾ãã¦ããå ´å
-        rhs = $1
-        remain = $'
-      elsif arg =~ /\A%(.*?)%\s*\z/ then      # %   % ã§å²ã¾ãã¦ããå ´å
-        rhs = $1
-        remain = $'
-      elsif arg =~ /\A!(.*?)!\s*\z/ then    # $   $ ã§å²ã¾ãã¦ããå ´å
-        rhs = $1
-        remain = $'
-      elsif arg =~ /\A'(.*?)'\s*\z/ then    # $   $ ã§å²ã¾ãã¦ããå ´å
-        rhs = $1
-        remain = $'
-      elsif  arg =~ /\A\\"(.*?)\\"\s*\z/ then  # || ã«ã [,$] ã«ãã§ããªãã£ã
+      elsif arg =~ /\A\\"(.*?)\\"\s*\z/ then      # \"  \" で囲まれている場合
+        rhs = $1
+        remain = $'
+      elsif arg =~ /\A%(.*?)%\s*\z/ then      # %   % で囲まれている場合
+        rhs = $1
+        remain = $'
+      elsif arg =~ /\A!(.*?)!\s*\z/ then    # $   $ で囲まれている場合
+        rhs = $1
+        remain = $'
+      elsif arg =~ /\A'(.*?)'\s*\z/ then    # $   $ で囲まれている場合
+        rhs = $1
+        remain = $'
+      elsif  arg =~ /\A\\"(.*?)\\"\s*\z/ then  # || にも [,$] にもできなかった
         rhs = $1
         remain = $'
@@ -234,5 +212,5 @@
         rhs = $1
         remain = $'
-        # åã®ç©ºç½èª­ã¿é£ã°ã
+        # 前の空白読み飛ばす
         rhs.sub!( /\A\s*(.*)\s*\z/, '\1')
       elsif arg =~ /\A(.*?)\s*\z/ then
@@ -244,14 +222,14 @@
       end
 
-      # 0æå­ã®æå­åã to_sym ããã¨ä¾å¤çºçããã®ã§ç©ºç½æå­ã¨ãã
+      # 0文字の文字列を to_sym すると例外発生するので空白文字とする
       if rhs == "" then
         rhs = " "
       end
 
-      arg = remain         # arg ã®æ®ãã®é¨å
-      arg.sub!( /\A\s*(?:\\\n)*\s*(.*)/, '\1')      # åã®ç©ºç½èª­ã¿é£ã°ã
-
-      # \ ãå¤ã
-      rhs = rhs.gsub( /\\(.)/, "\\1" )   # ããã§ $' ãå¤ãããã¨ã«æ³¨æï¼
+      arg = remain         # arg の残りの部分
+      arg.sub!( /\A\s*(?:\\\n)*\s*(.*)/, '\1')      # 前の空白読み飛ばす
+
+      # \ を外す
+      rhs = rhs.gsub( /\\(.)/, "\\1" )   # ここで $' が変わることに注意！
       # print "parse_plugin_arg:  #{ident} #{rhs}\n"
       @plugin_arg_list[ ident ] = rhs
@@ -262,9 +240,9 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ°ããã§ãã¯ãã
-  # @plugin_arg_check_proc_tab ã«å¾ã£ã¦ãã©ã°ã¤ã³å¼æ°ããã§ãã¯ããã
-  # å¤ãç¨æ³ï¼å­ã¯ã©ã¹ã§ãªã¼ãã¼ã©ã¤ãããå¼æ°è­å¥å­ãæ­£ããããã§ãã¯ãã
-  #ident:: string: å¼æ°è­å¥å­
-  #rhs:: string: å³è¾ºæå­å
+  #=== プラグイン引数をチェックする
+  # @plugin_arg_check_proc_tab に従ってプラグイン引数をチェックすする
+  # 古い用法：子クラスでオーバーライドし、引数識別子が正しいかチェックする
+  #ident:: string: 引数識別子
+  #rhs:: string: 右辺文字列
   def check_plugin_arg( ident, rhs )
 
@@ -291,5 +269,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³ã®ã¡ãã»ã¼ã¸åºå
+  #=== プラグインのメッセージ出力
   def print_msg( msg )
     if @b_silent == true then
@@ -299,5 +277,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° silent
+  #=== プラグイン引数 silent
   def set_silent rhs
     if rhs == "true" || rhs == nil then
@@ -307,11 +285,11 @@
 end
 
-#== åºåæå­åã EUC ããåºåãã¡ã¤ã«ã« convert ãã
-# tecsgen ã®ã½ã¼ã¹ã³ã¼ãã¯ EUC ã§è¨è¿°ããã¦ãã
-# ããããåºåãã¡ã¤ã«ã®æå­ã³ã¼ãã«å¤æãã¦åºåãã
+#== 出力文字列を EUC から出力ファイルに convert する
+# tecsgen のソースコードは EUC で記述されている
+# これを、出力ファイルの文字コードに変換して出力する
 #
-# generate.rb ã§åºåãããã®ã¯ message.rb ã§å¤æãã¦ãã
-# generate.rb ã§åºåãããã®ã¯ APPFile ã¯ã©ã¹ãä½¿ç¨ãã¦ãã
-# mikan: CFile ã§åºåãããã®ã« factory ã§è¿½è¨ã§ããªã (cdl ãã¡ã¤ã«ã®å ´åãè¿½è¨ã§ãã¦ãæå³ããªã)
+# generate.rb で出力するものは message.rb で変換している
+# generate.rb で出力するものは APPFile クラスを使用している
+# mikan: CFile で出力したものに factory で追記できない (cdl ファイルの場合、追記できても意味がない)
 class CFile
   def self.open( path, mode )
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/pluginModule.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/pluginModule.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/pluginModule.rb	(revision 321)
@@ -6,52 +6,37 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: pluginModule.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== ãã©ã°ã¤ã³ãã­ã¼ãããå´ã®ã¢ã¸ã¥ã¼ã«
+#== プラグインをロードする側のモジュール
 # @@loaded_plugin_list:: {Symbol=>Integer}
 module PluginModule
@@ -59,9 +44,9 @@
   @@loaded_plugin_list = {}
 
-  #=== ãã©ã°ã¤ã³ãã­ã¼ããã
-  #return:: true : æåã false : å¤±æ
+  #=== プラグインをロードする
+  #return:: true : 成功、 false : 失敗
   #
-  # ãã§ã«ã­ã¼ãããã¦ãããã®ã¯ãéè¤ãã¦ã­ã¼ãããªã
-  # load æã®ä¾å¤ã¯ãã®ã¡ã½ããã®ä¸­ã§ã­ã£ããããã¦ false ãè¿ããã
+  # すでにロードされているものは、重複してロードしない
+  # load 時の例外はこのメソッドの中でキャッチされて false が返される
   def load_plugin( plugin_name, superClass )
 
@@ -73,5 +58,5 @@
           print( "load '#{plugin_name}.rb'\n" )
         end
-        # "#{plugin_name}.rb" ãã­ã¼ãï¼ã·ã¹ãã ç¨ã§ã¯ãªãã®ã§ãfatal ã¨ã©ã¼ã«ããªãï¼
+        # "#{plugin_name}.rb" をロード（システム用ではないので、fatal エラーにしない）
         if require_tecsgen_lib( "#{plugin_name}.rb", false ) == false
           cdl_error( "P2001 $1.rb : fail to load plugin" , plugin_name )
@@ -101,7 +86,7 @@
   end
 
-  #=== ãã©ã°ã¤ã³ã® gen_cdl_file ãå¼ã³ãã¦ cdl ãã¡ã¤ã«ãçæãããè§£éãè¡ã
+  #=== プラグインの gen_cdl_file を呼びして cdl ファイルを生成させ、解釈を行う
   def generate_and_parse plugin_object
-    if plugin_object == nil     # ãã©ã°ã¤ã³ã®ã­ã¼ãã«å¤±æãã¦ããï¼æ¢ã«ã¨ã©ã¼ï¼
+    if plugin_object == nil     # プラグインのロードに失敗している（既にエラー）
       return
     end
@@ -109,5 +94,5 @@
     if @@loaded_plugin_list[ plugin_name ] == nil
       raise "#{plugin_name} might have different name "
-      # ãã©ã°ã¤ã³ã®ãã¡ã¤ã«åã¨ããã©ã°ã¤ã³ã®ã¯ã©ã¹åãç¸éããå ´å
+      # プラグインのファイル名と、プラグインのクラス名が相違する場合
     end
     count = @@loaded_plugin_list[ plugin_name ]
@@ -141,6 +126,6 @@
   end
 
-  #=== ãã©ã°ã¤ã³ã CDL ã® POST ã³ã¼ããçæ
-  # tmp_plugin_post_code.cdl ã¸ã®åºå
+  #=== プラグインが CDL の POST コードを生成
+  # tmp_plugin_post_code.cdl への出力
   def self.gen_plugin_post_code file
     dbgPrint "PluginModule #{@@loaded_plugin_list}\n"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/syntaxobj.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/syntaxobj.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/syntaxobj.rb	(revision 321)
@@ -6,63 +6,45 @@
 #   Copyright (C) 2008-2016 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: syntaxobj.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-# mikan ruby ã® symbol ã¨æå­åã®ä½¿ãåããã©ããã¦ããã¾ããããªããã¨ãæã
-ããã®ã§ name.to_sym ãå
-¥ãããã¨ã«ãã
+# mikan ruby の symbol と文字列の使い分けがどうしてもうまくいかないことが時々あるので name.to_sym を入れることにした
 
 #== Node
 #
-# Node ã®ç´æ¥ã®å­ã¯ã©ã¹ï¼ C_EXP, Type, BaseVal, BDNode(ã»ã¨ãã©ã®ãã®ã¯ BDNode ã®å­ã¯ã©ã¹)
-# Node ã« (BDNodeã«ã) å
-¥ããªããã®: Token, Import, Import_C, Generate
+# Node の直接の子クラス： C_EXP, Type, BaseVal, BDNode(ほとんどのものは BDNode の子クラス)
+# Node に (BDNodeにも) 入らないもの: Token, Import, Import_C, Generate
 #
-# owner ãæããªããã®ã Node ã¨ãªã
-# ã¨ã©ã¼ã¯ãcdl_error ãéãã¦å ±åãã (æå³è§£æãæ§æè§£æå¾ã«è¡ãããå ´åã«ã¯ãè¡çªå·ãæ­£ããåºåã§ãã
+# owner を持たないものが Node となる
+# エラーは、cdl_error を通じて報告する (意味解析が構文解析後に行われる場合には、行番号が正しく出力できる
 # 
 
@@ -74,18 +56,18 @@
   end
 
-  #=== ã¨ã©ã¼ãåºåãã
+  #=== エラーを出力する
   def cdl_error( message, *arg )
     Generator.error2( @locale, message, *arg )
   end
 
-  #=== ã¨ã©ã¼ãåºåãã
-  #locale:: Array(locale info) : æ§æè§£æä¸­ã¯ç¡è¦ããã
+  #=== エラーを出力する
+  #locale:: Array(locale info) : 構文解析中は無視される
   def cdl_error2( locale, message, *arg )
     Generator.error2( locale, message, *arg )
   end
 
-  #=== ã¨ã©ã¼ãåºåãã
+  #=== エラーを出力する
   #locale:: Array(locale info)
-  # æ§æè§£æä¸­ cdl_error2 ã§ã¯ locale ãç¡è¦ããããããå¥ã« locale ãåºåãã
+  # 構文解析中 cdl_error2 では locale が無視されるため、別に locale を出力する
   def cdl_error3( locale, message, *arg )
     Generator.error(  message, *arg )
@@ -93,16 +75,15 @@
   end
 
-  #=== ã¦ã©ã¼ãã³ã°åºåãã
+  #=== ウォーニング出力する
   def cdl_warning( message, *arg )
     Generator.warning2( @locale, message, *arg )
   end
 
-  #=== ã¦ã©ã¼ãã³ã°åºåãã
+  #=== ウォーニング出力する
   def cdl_warning2( locale, message, *arg )
     Generator.warning2( locale, message, *arg )
   end
 
-  #=== æ
-å ±ãè¡¨ç¤ºãã
+  #=== 情報を表示する
   def cdl_info( message )
     Console.puts "info: #{message}"
@@ -122,11 +103,10 @@
 end
 
-#== åæ¹å Node (Bi Direction Node)
+#== 双方向 Node (Bi Direction Node)
 #
-#  Node ã®å­ã¯ã©ã¹
-#  owner Node ããåç
-§ããã¦ãããã® (owner ã¸ã®ãªã³ã¯ãåãåºãã)
+#  Node の子クラス
+#  owner Node から参照されているもの (owner へのリンクも取り出せる)
 #
-#  get_owner ã§å¾ããããã®
+#  get_owner で得られるもの
 #    FuncHead => Signature
 #    Decl => Namespace(const), Typedef(typedef),
@@ -134,5 +114,5 @@
 #            Struct(member), ParamDecl(parameter), FuncHead(funchead)
 #    Signature, Celltype, CompositeCelltype, Typedef => Namespace
-#,   Namespace => Namespace, Generator.class (root Namespace ã®å ´å)
+#,   Namespace => Namespace, Generator.class (root Namespace の場合)
 #    Cell => Region, CompositeCelltype(in_composite)
 #    Port => Celltype, Composite
@@ -144,12 +124,12 @@
 #    ParamList => FuncHead
 #    Expression => Namespace
-#    å¤§åã®ãã®ã¯ new_* ã¡ã½ããã§ owner Node ã«ä¼éããã
-#    ãã®ã¡ã½ãããå¼ã³åºãããã¨ãã« owner Node ãè¨é²ããã
-#    new_* ããªããã®ï¼
+#    大半のものは new_* メソッドで owner Node に伝達される
+#    そのメソッドが呼び出されたときに owner Node が記録される
+#    new_* がないもの：
 #            Decl(parameter), ParamDecl, ParamList, FuncHead, Expression 
 #
-#    Expression ã¯ãowner Node ã¨ãªããã®ãå¤ãããããæ¹é ãå°é£ã§ãããã
-#    Expression ãå®ç¾©ãããã¨ãã® Namespace ã owner Node ã¨ãã
-#    StructType ã¯ Type ã®ä¸ç¨®ãªã®ã§ owner ãæããªã
+#    Expression は、owner Node となるものが多くあるが、改造が困難であるため
+#    Expression が定義されたときの Namespace を owner Node とする
+#    StructType は Type の一種なので owner を持たない
 #
 class BDNode < Node
@@ -167,5 +147,5 @@
   end
 
-  #=== owner ãè¨­å®ãã
+  #=== owner を設定する
   def set_owner owner
     dbgPrint "set_owner: #{owner.class.name}\n"
@@ -173,7 +153,6 @@
   end
 
-  #=== owner ãå¾ã
-  # class ã®èª¬æãåç
-§
+  #=== owner を得る
+  # class の説明を参照
   def get_owner
     if @owner == nil
@@ -184,5 +163,5 @@
 end
 
-#== Namespace åãæã¤ BDNode
+#== Namespace 名を持つ BDNode
 # Namespace(Region), Signature, Celltype, CompositeCelltype, Cell
 class NSBDNode < BDNode
@@ -192,6 +171,6 @@
   end
 
-  #=== å±ãã namespace ãå¾ã
-  # owner ã namespace ã«ãã©ãçãã¾ã§ä¸ã«ãã©ã
+  #=== 属する namespace を得る
+  # owner を namespace にたどり着くまで上にたどる
   def get_namespace
     if @owner.kind_of? Namespace
@@ -200,5 +179,5 @@
       return @owner.get_namespace
     else
-      # @owner == nil ãªã "::"
+      # @owner == nil なら "::"
       if @name != "::" then
         raise "non-root namespace has no owner #{self.class.name}##{@name} #{self}"
@@ -217,5 +196,5 @@
   end
 
-  #=== NamespacePath ãå¾ã
+  #=== NamespacePath を得る
   def get_namespace_path
     return @NamespacePath
@@ -226,5 +205,5 @@
       return @import.is_imported?
     else
-      return false    # mikan: ä»® @import ã nil ã«ãªãã±ã¼ã¹ãè¿½æ±ã§ãã¦ããªã
+      return false    # mikan: 仮 @import が nil になるケースが追求できていない
     end
   end
@@ -233,8 +212,7 @@
 class NamedList
 #  @names:: {} of items
-#  @items:: [] of items : item ã® CLASS ã¯ get_name ã¡ã½ãããæã¤ãã¨ get_name ã®æ»ãå¤ã¯ Symbol ã§ãªãã¦ã¯ãªããªã
-#                         NamedList ã clone_for_composite ããå ´åã¯ãitem ã«ãã¡ã½ãããå¿
-è¦
-#  @type:: string	ã¨ã©ã¼ã¡ãã»ã¼ã¸
+#  @items:: [] of items : item の CLASS は get_name メソッドを持つこと get_name の戻り値は Symbol でなくてはならない
+#                         NamedList を clone_for_composite する場合は、item にもメソッドが必要
+#  @type:: string	エラーメッセージ
 
   def initialize( item, type )
@@ -245,6 +223,6 @@
   end
 
-  #=== è¦ç´ ãå ãã
-  # parse ããæç¹ã§å ãããã¨(å ´æãè¨æ¶ãã)
+  #=== 要素を加える
+  # parse した時点で加えること(場所を記憶する)
   def add_item( item )
 
@@ -305,7 +283,7 @@
   end
 
-  #=== composite cell ã clone ããæã«è¦ç´ (JOIN) ã® clone ãã
+  #=== composite cell を clone した時に要素(JOIN) の clone する
   #
-  # mikan ãã®ã¡ã½ããã¯ Join ã«ç¹åããã¦ããã®ã§ NamedList ããåé¢ãã¹ã
+  # mikan このメソッドは Join に特化されているので NamedList から分離すべき
   def clone_for_composite( ct_name, cell_name, locale )
     cl = self.clone
@@ -314,8 +292,7 @@
   end
 
-  #=== clone ããã NamedList ã¤ã³ã¹ã¿ã³ã¹ã®åç
-§ãããã®(item)ã clone
+  #=== clone された NamedList インスタンスの参照するもの(item)を clone
   #
-  # mikan ãã®ã¡ã½ããã¯ Join ã«ç¹åããã¦ããã®ã§ NamedList ããåé¢ãã¹ã
+  # mikan このメソッドは Join に特化されているので NamedList から分離すべき
   def set_cloned( ct_name, cell_name, locale )
     items = []
@@ -379,6 +356,6 @@
 end
 
-#== é¢æ°é ­é¨
-# signature ã«ç»é²ãããé¢æ°
+#== 関数頭部
+# signature に登録される関数
 class FuncHead <BDNode
 #  @declarator:: Decl
@@ -425,13 +402,12 @@
   end
 
-  #=== FuncHead# é¢æ°ã®ååãè¿ã
+  #=== FuncHead# 関数の名前を返す
   def get_name
     return @declarator.get_name
   end
 
-  #=== FuncHead# é¢æ°ã®æ»ãå¤ã®åãè¿ã
-  # types.rb ã«å®ç¾©ããã¦ããå
-  # é¢æ°ãããã®å®ç¾©ã¨ãã¦ä¸å®å
-¨ãªå ´å nil ãè¿ã
+  #=== FuncHead# 関数の戻り値の型を返す
+  # types.rb に定義されている型
+  # 関数ヘッダの定義として不完全な場合 nil を返す
   def get_return_type
     if is_function? then
@@ -440,8 +416,7 @@
   end
 
-  #=== FuncHead# é¢æ°ã®å¼æ°ã®ãªã¹ããè¿ã
-  # ParamList ãè¿ã
-  # é¢æ°ãããã®å®ç¾©ã¨ãã¦ä¸å®å
-¨ãªå ´å nil ãè¿ã
+  #=== FuncHead# 関数の引数のリストを返す
+  # ParamList を返す
+  # 関数ヘッダの定義として不完全な場合 nil を返す
   def get_paramlist
     if is_function? then
@@ -457,30 +432,29 @@
 end
 
-#=== å®£è¨
-# @kind ã§ç¤ºãããåç¨®ã®å®£è¨
+#=== 宣言
+# @kind で示される各種の宣言
 class Decl < BDNode
 
 # @identifer:: String
-# @global_name:: String | nil : String(@kind=TYPEDEF||:CONSTANT), nil(@kind=ãã®ä»)
-#                set_kind ã«ã¦è¨­å®ããã
+# @global_name:: String | nil : String(@kind=TYPEDEF||:CONSTANT), nil(@kind=その他)
+#                set_kind にて設定される
 # @type:: ArrayType, FuncType, PtrType, IntType, StructType
 #         VoidType, FloatType, DefinedType, BoolType
 # @initializer:: constant_expression, mikan { initlist }
-# @kind:: :VAR, :ATTRIBUTE, :PARAMETER, :TYPEDEF, :CONSTANT, :MEMBER, :FUNCHEAD(signatureã®é¢æ°å®ç¾©)
+# @kind:: :VAR, :ATTRIBUTE, :PARAMETER, :TYPEDEF, :CONSTANT, :MEMBER, :FUNCHEAD(signatureの関数定義)
 # @b_referenced:: bool
 #
-# ä»¥ä¸ã¯ã@kind ã :VAR, :ATTRIBUTE ã®ã¨ãã«æå¹
-# @rw:: bool     # å¤ãææ³ã§ã¯ attr ã«æå®å¯è½ã ã£ãï¼æ¶ãã«ã¯ generate ã®ä¿®æ­£ãå¿
-è¦ï¼
+# 以下は、@kind が :VAR, :ATTRIBUTE のときに有効
+# @rw:: bool     # 古い文法では attr に指定可能だった（消すには generate の修正も必要）
 # @omit:: bool
-# @choice_list:: [String]  attr åæå¤ã®é¸æè¢
-# ä»¥ä¸ã¯ã@kind ã :VAR, :ATTRIBUTE, :MEMBER ã®ã¨ãã«æå¹
+# @choice_list:: [String]  attr 初期値の選択肢
+# 以下は、@kind が :VAR, :ATTRIBUTE, :MEMBER のときに有効
 # @size_is:: Expression or nil unless specified
-# ä»¥ä¸ã¯ã@kind ã :MEMBER ã®ã¨ãã«æå¹
+# 以下は、@kind が :MEMBER のときに有効
 # @count_is:: Expression or nil unless specified
-#             attr, var ã®å ´åãcount_is ã¯æå®ã§ããªã
+#             attr, var の場合、count_is は指定できない
 # @string:: Expression, -1 (length not specified) or nil (not specified)
 #
-# mikan  ParamDecl ã ãå¥ã«è¨­ããããMemberDecl, AttrDecl ãªã©ãåããã¹ãã(ï¼)
+# mikan  ParamDecl だけ別に設けたが、MemberDecl, AttrDecl なども分けるべきか(？)
 
   def initialize( identifier )
@@ -512,13 +486,12 @@
   end
 
-  #== Decl ã®æå³çèª¤ãããã§ãã¯ãã
+  #== Decl の意味的誤りをチェックする
   def check
     # return nil if @type == nil
 
-    # æ§é ä½ã¿ã°ãã§ãã¯ï¼ãã¤ã³ã¿åããæ§é ä½ãåç
-§ããã¦ããå ´åã¯ãã¿ã°ã®å­å¨ããã§ãã¯ããªãï¼
+    # 構造体タグチェック（ポインタ型から構造体が参照されている場合は、タグの存在をチェックしない）
     @type.check_struct_tag @kind
 
-    # åã®ãã§ãã¯ãè¡ã
+    # 型のチェックを行う
     res = @type.check
     if res then
@@ -526,5 +499,5 @@
     end
 
-    # ä¸è¦ã®åæåå­ããã§ãã¯ãã
+    # 不要の初期化子をチェックする
     if @initializer then
       case @kind
@@ -532,7 +505,6 @@
         cdl_error( "S2003 $1: $2 cannot have initializer" , @identifier, @kind.to_s.downcase )
       when :VAR, :ATTRIBUTE, :CONSTANT
-        # p @initializer  ããã§ã¯ä»£å
-¥å¯è½ãã©ããããã§ãã¯ããªã
-        # :VAR, :ATTRIBUTE, :CONSTANT ã¯ããããã§ãã§ãã¯ãã
+        # p @initializer  ここでは代入可能かどうか、チェックしない
+        # :VAR, :ATTRIBUTE, :CONSTANT はそれぞれでチェックする
         # return @type.check_init( @identifier, @initializer, @kind )
       else
@@ -552,9 +524,9 @@
   end
 
-  #== ãã¤ã³ã¿ã¬ãã«ãå¾ã
-  # æ»ãå¤ï¼
-  #   éãã¤ã³ã¿å¤æ°   = 0
-  #   ãã¤ã³ã¿å¤æ°     = 1
-  #   äºéãã¤ã³ã¿å¤æ° = 2
+  #== ポインタレベルを得る
+  # 戻り値：
+  #   非ポインタ変数   = 0
+  #   ポインタ変数     = 1
+  #   二重ポインタ変数 = 2
   def get_ptr_level
     level = 0
@@ -564,6 +536,5 @@
         level += 1
         type = type.get_referto
-#      elsif type.kind_of?( ArrayType ) then  # æ·»æ°ãªãé
-åã¯ãã¤ã³ã¿ã¨ã¿ãªã
+#      elsif type.kind_of?( ArrayType ) then  # 添数なし配列はポインタとみなす
 #        if type.get_subscript == nil then
 #          level += 1
@@ -572,6 +543,5 @@
 #          break
 #        end
-        # mikan ãã¤ã³ã¿ã®æ·»æ°ããé
-åã®ãã¤ã³ã¿ã¬ãã«ã¯ï¼ã§ããï¼
+        # mikan ポインタの添数あり配列のポインタレベルは０でよい？
       elsif type.kind_of?( DefinedType ) then
         type = type.get_type
@@ -596,5 +566,5 @@
       @type = type
     else
-      @type.set_type( type )             # èã«è¨­å®
+      @type.set_type( type )             # 葉に設定
     end
   end
@@ -731,25 +701,21 @@
 end
 
-# é¢æ°ãã©ã¡ã¼ã¿ã®å®£è¨
+# 関数パラメータの宣言
 class ParamDecl < BDNode
 
 # @declarator:: Decl:  Token, ArrayType, FuncType, PtrType
 # @direction:: :IN, :OUT, :INOUT, :SEND, :RECEIVE
-# @size:: Expr   (size_is å¼æ°)
-# @count:: Expr   (count_is å¼æ°)
-# @max:: Expr (size_is ã®ç¬¬äºå¼æ°)
+# @size:: Expr   (size_is 引数)
+# @count:: Expr   (count_is 引数)
+# @max:: Expr (size_is の第二引数)
 # @b_nullable:: Bool : nullable 
-# @string:: Expr or -1(if size not specified) ï¼string å¼æ°ï¼
+# @string:: Expr or -1(if size not specified) （string 引数）
 # @allocator:: Signature of allocator
-# @b_ref:: bool : size_is, count_is, string_is å¼æ°ã¨ãã¦åç
-§ããã¦ãã
+# @b_ref:: bool : size_is, count_is, string_is 引数として参照されている
 #
-# 1. é¢æ°åã§ãªããã¨
-# 2. ï¼æ¬¡å
-ä»¥ä¸ã®é
-åã§ãã£ã¦æãå
-å´ä»¥å¤ã®æ·»æ°ããããã¨
-# 3. in, out, ..., size_is, count_is, ... ã®éè¤æå®ããªããã¨
-# 4. ãã¤ã³ã¿ã¬ãã«ãé©åãªãã¨
+# 1. 関数型でないこと
+# 2. ２次元以上の配列であって最も内側以外の添数があること
+# 3. in, out, ..., size_is, count_is, ... の重複指定がないこと
+# 4. ポインタレベルが適切なこと
 
   def initialize( declarator, specifier, param_specifier )
@@ -818,8 +784,6 @@
         end
       when :MAX_IS
-        # max_is ã¯ãå
-é¨çãªãã® bnf.y.rb åç
-§
-        # size_is ã§éè¤ãã§ãã¯ããã
+        # max_is は、内部的なもの bnf.y.rb 参照
+        # size_is で重複チェックされる
         @max = i[1]
       when :NULLABLE
@@ -841,6 +805,5 @@
     end
 
-    # mikan ãã¤ã³ã¿ã®é
-åï¼æ·»æ°æï¼ã®ã¬ãã«ãï¼
+    # mikan ポインタの配列（添数有）のレベルが０
     ptr_level = @declarator.get_ptr_level
 
@@ -885,5 +848,5 @@
       cdl_error( "S2014 $1 need pointer or more pointer" , @declarator.get_identifier )
     elsif ptr_level > max_level then
-      # note: æ§æè§£ææ®µéã§å®è¡ã®ãã get_current å¯
+      # note: 構文解析段階で実行のため get_current 可
       if Signature.get_current == nil || Signature.get_current.is_deviate? == false then
         cdl_warning( "W3003 $1 pointer level mismatch" , @declarator.get_identifier )
@@ -897,5 +860,5 @@
 
     if ptr_level > 0 then
-      # size_is, count_is, string ãã»ãã
+      # size_is, count_is, string をセット
       if @direction == :RECEIVE && ptr_level > 1 then
         type.get_type.set_scs( @size, @count, @string, @max, @b_nullable )
@@ -907,6 +870,5 @@
 #type.show_tree 1
 
-      # ãã¤ã³ã¿ãæãã¦ããå
-ã®ãã¼ã¿åãå¾ã
+      # ポインタが指している先のデータ型を得る
       i = 0
       t2 = type
@@ -923,5 +885,5 @@
 # p t2.is_const?
 
-      # const ä¿®é£¾ãé©åããã§ãã¯
+      # const 修飾が適切かチェック
       if @direction == :IN then
         if ! t2.is_const? then
@@ -934,5 +896,5 @@
       end
     else
-      # éãã¤ã³ã¿ã¿ã¤ã
+      # 非ポインタタイプ
       if @size != nil || @count != nil || @string != nil || @max != nil || @b_nullable then
         type.set_scs( @size, @count, @string, @max, @b_nullable )
@@ -1006,12 +968,8 @@
   end
 
-  #=== PPAllocator ãå¿
-è¦ã
-  # Transparent RPC ã®å ´å in ã§ size_is, count_is, string ã®ãããããæå®ããã¦ããå ´å oneway ã§ã¯ PPAllocator ãå¿
-è¦
-  # Transparent PC ã§ oneway ãã©ããã¯ãããã§ã¯å¤æ­ããªãã®ã§å¥éå¤æ­ãå¿
-è¦
-  # Opaque RPC ã®å ´å size_is, count_is, string ã®ãããããæå®ããã¦ããå ´åãPPAllocator ãå¿
-è¦
+  #=== PPAllocator が必要か
+  # Transparent RPC の場合 in で size_is, count_is, string のいずれかが指定されている場合 oneway では PPAllocator が必要
+  # Transparent PC で oneway かどうかは、ここでは判断しないので別途判断が必要
+  # Opaque RPC の場合 size_is, count_is, string のいずれかが指定されている場合、PPAllocator が必要
   def need_PPAllocator?( b_opaque = false )
     if ! b_opaque then
@@ -1060,5 +1018,5 @@
 end
 
-# é¢æ°ãã©ã¡ã¼ã¿ãªã¹ã
+# 関数パラメータリスト
 class ParamList < BDNode
 # @param_list:: NamedList : item: ParamDecl
@@ -1073,5 +1031,5 @@
 
   def add_param( paramdecl )
-    return if paramdecl == nil    # æ¢ã«ã¨ã©ã¼
+    return if paramdecl == nil    # 既にエラー
 
     @param_list.add_item( paramdecl )
@@ -1083,13 +1041,12 @@
   end
 
-  #=== size_is, count_is, string ã®å¼æ°ã®å¼ããã§ãã¯
-  # å¤æ°ã¯åæ¹åç
-§å¯è½ãªãããé¢æ°é ­é¨ã®æ§æè§£éãçµãã£ãå¾ã«ãã§ãã¯ãã
+  #=== size_is, count_is, string の引数の式をチェック
+  # 変数は前方参照可能なため、関数頭部の構文解釈が終わった後にチェックする
   def check_param
     @param_list.get_items.each { |i|
-      next if i == nil                      # i == nil : ã¨ã©ã¼æ
+      next if i == nil                      # i == nil : エラー時
 
       if i.get_type.class == VoidType then
-        # åä¸ã® void åã¯ããã«ã¯ããªã
+        # 単一の void 型はここにはこない
         cdl_error( "S2027 '$1' parameter cannot be void type", i.get_name )
       end
@@ -1098,6 +1055,6 @@
       if size then
         val = size.eval_const( @param_list )
-        if val == nil then			# å®æ°å¼ã§ãªããï¼
-          # mikan å¤æ°ãå«ãå¼ï¼åä¸ã®å¤æ°ã®ã¿ OK
+        if val == nil then			# 定数式でないか？
+          # mikan 変数を含む式：単一の変数のみ OK
           type = size.get_type( @param_list )
           unless type.kind_of?( IntType ) then
@@ -1137,6 +1094,6 @@
       if count then
         val = count.eval_const( @param_list )
-        if val == nil then			# å®æ°å¼ã§ãªããï¼
-          # mikan å¤æ°ãå«ãå¼ï¼åä¸ã®å¤æ°ã®ã¿ OK
+        if val == nil then			# 定数式でないか？
+          # mikan 変数を含む式：単一の変数のみ OK
           type = count.get_type( @param_list )
           unless type.kind_of?( IntType ) then
@@ -1157,6 +1114,6 @@
       if string != -1 && string then
         val = string.eval_const( @param_list )
-        if val == nil then			# å®æ°å¼ã§ãªããï¼
-          # mikan å¤æ°ãå«ãå¼ï¼åä¸ã®å¤æ°ã®ã¿ OK
+        if val == nil then			# 定数式でないか？
+          # mikan 変数を含む式：単一の変数のみ OK
           type = string.get_type( @param_list )
           unless type.kind_of?( IntType ) then
@@ -1182,8 +1139,6 @@
   end
 
-  #=== Push Pop Allocator ãå¿
-è¦ãï¼
-  # Transparent RPC ã®å ´å (oneway ãã¤) in ã®é
-å(size_is, count_is, string ã®ããããã§ä¿®é£¾ï¼ããã
+  #=== Push Pop Allocator が必要か？
+  # Transparent RPC の場合 (oneway かつ) in の配列(size_is, count_is, string のいずれかで修飾）がある
   def need_PPAllocator?( b_opaque = false )
     @param_list.get_items.each { |i|
@@ -1199,6 +1154,6 @@
   end
 
-  #== ParamList# æå­åå
-  #b_name:: Bool: ãã©ã¡ã¼ã¿åãå«ãã
+  #== ParamList# 文字列化
+  #b_name:: Bool: パラメータ名を含める
   def to_str( b_name )
     str = "("
@@ -1223,8 +1178,8 @@
 end
 
-#== CDL ã®æå­åãªãã©ã«ãæ±ãããã®ã¯ã©ã¹
-# CDL ã®æå­åãªãã©ã«ãã®ãã®ã§ã¯ãªã
+#== CDL の文字列リテラルを扱うためのクラス
+# CDL の文字列リテラルそのものではない
 class CDLString
-  # ã¨ã¹ã±ã¼ãæå­ãå¤æ
+  # エスケープ文字を変換
   def self.escape str
     str = str.dup
@@ -1238,9 +1193,9 @@
     str.gsub!( /(\\[Xx][0-9A-Fa-f]{1,2})/, '{printf \"\\1\"}' )
     str.gsub!( /(\\[0-7]{1,3})/, '{printf \"\\1\"}' )
-    str.gsub!( /\\(.)/, "\\1" )   # mikan æªå®ç¾©ã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ãå¤æãã¦ãã¾ã (gcc V3.4.4 ã§ã¯è­¦åãåºããã)
+    str.gsub!( /\\(.)/, "\\1" )   # mikan 未定義のエスケープシーケンスを変換してしまう (gcc V3.4.4 では警告が出される)
     return str
   end
 
-  #=== CDLString#åå¾ã® " ãåãé¤ã
+  #=== CDLString#前後の " を取り除く
   def self.remove_dquote str
     s = str.sub( /\A"/, "" )
@@ -1250,12 +1205,12 @@
 end
 
-#== CDL ã®åæåå­ãæ±ãããã®ã¯ã©ã¹
-# CDL ã®åæåå­ãã®ãã®ã§ã¯ãªã
+#== CDL の初期化子を扱うためのクラス
+# CDL の初期化子そのものではない
 class CDLInitializer
-  #=== åæåå­ã®ã¯ã­ã¼ã³
-  # åæåå­ã¯ Expression, C_EXP, Array ã®ãããã
+  #=== 初期化子のクローン
+  # 初期化子は Expression, C_EXP, Array のいずれか
   def self.clone_for_composite( rhs, ct_name, cell_name, locale )
     if rhs.instance_of? C_EXP then
-      # C_EXP ã® clone ãä½ãã¨ã¨ãã«ç½®æ
+      # C_EXP の clone を作るとともに置換
       rhs = rhs.clone_for_composite( ct_name, cell_name, locale )
     elsif rhs.instance_of? Expression then
@@ -1269,9 +1224,8 @@
   end
 
-  #=== åæåå­ï¼é
-åï¼ã®ã¯ã­ã¼ã³
-  # è¦ç´ ã¯ clone_for_composite ãæã¤ãã®ã ã
+  #=== 初期化子（配列）のクローン
+  # 要素は clone_for_composite を持つものだけ
   def self.clone_for_compoiste_array( array, ct_name, cell_name, locale )
-    # "compoiste.identifier" ã®å ´å (CDL ã¨ãã¦ã¯èª¤ã)
+    # "compoiste.identifier" の場合 (CDL としては誤り)
     if array[0] == :COMPOSITE then
       return array.clone
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecs_lang.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecs_lang.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecs_lang.rb	(revision 321)
@@ -6,59 +6,44 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: tecs_lang.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== è¨èªã«é¢ããå¤æ°ãè¨­å®
-# ã¡ãã»ã¼ã¸ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿ãè¡ã (èª­ã¿è¾¼ã¿ã«å¤±æããå ´åãããã©ã«ãã®æå­ã³ã¼ãã«å¤æ´ãã)
+#== 言語に関する変数を設定
+# メッセージファイルの読み込みも行う (読み込みに失敗した場合、デフォルトの文字コードに変更する)
 class TECS_LANG
-  # ããã·ã¥ã®ã¿ã°ã¯ case insensitive ã®ãããå¤§æå­ã®æå­åã¨ãã
+  # ハッシュのタグは case insensitive のため、大文字の文字列とする
   CHARSET_ALIAS = {
     "UJIS" => :eucJP,
     "UTF-8" => :utf8,
-    "EUCJP" => :eucJP,   # ä»¥ä¸ case insensitive ã«ãããã
+    "EUCJP" => :eucJP,   # 以下 case insensitive にするため
     "SJIS" => :sjis,
     "UTF8" => :utf8,
@@ -67,5 +52,5 @@
   LANG_ALIAS = {
     "C" => :en_US,
-    "EN_US" => :en_US,   # ä»¥ä¸ case insensitive ã«ãããã
+    "EN_US" => :en_US,   # 以下 case insensitive にするため
     "JA_JP" => :ja_JP
   }
@@ -75,6 +60,6 @@
   }
 
-  #=== LANG ã®ãã¼ã¹
-  #lang::String  "ja_JP.eucJP@cjknarrow", "C" ãªã©
+  #=== LANG のパース
+  #lang::String  "ja_JP.eucJP@cjknarrow", "C" など
   #RETURN:: [ :ja_JP, :eucJP, :cjknarrow ]
   def self.parse_lang( lang )
@@ -82,7 +67,6 @@
 
     lang_terri = $1.to_sym if $1 != nil && $1 != ""
-    # set_kcode_binary ã«ãããC.UTF-8 ã®ã¿ãç¹å¥æ±ãããå¿
-è¦ããªããªã£ã
-    # if lang_terri == :C then    # LANG=C.* ã¯ããã¹ã¦ 1 byte æå­ã³ã¼ãã¨ãã¦æ±ã
+    # set_kcode_binary により、C.UTF-8 のみを特別扱いする必要がなくなった
+    # if lang_terri == :C then    # LANG=C.* は、すべて 1 byte 文字コードとして扱う
     #  codeset = nil
     #  modifier = nil
@@ -94,9 +78,9 @@
   end
 
-  #=== lang, charset ã®å¥æè§£æ±ºããã³å¦¥å½æ§ã®ãã§ãã¯
-  #lang::Symbol    : :en_US, :ja_JP ãªã©
-  #charset::Symbol : :eucJP, :utf8 ãªã©
+  #=== lang, charset の別明解決および妥当性のチェック
+  #lang::Symbol    : :en_US, :ja_JP など
+  #charset::Symbol : :eucJP, :utf8 など
   #RETURN:
-  #  [ lang, charset, result ]::ããresult = false ã®å ´å lang, charset ã¯ä¸é©å
+  #  [ lang, charset, result ]::　　result = false の場合 lang, charset は不適切
   def self.resolve_alias_and_check( lang, charset )
     if LANG_ALIAS[ lang.to_s.upcase ] then
@@ -122,6 +106,6 @@
   end
 
-  #=== codepage ãåãåºã
-  #codepage ã¯3ï½5æ¡ã®æ´æ°ã¨ãã¦ä»®å®
+  #=== codepage を取り出す
+  #codepage は3～5桁の整数として仮定
   def self.get_win_codepage
     cmd_pipe = IO.popen('cmd /c chcp','r')
@@ -132,5 +116,5 @@
   end
 
-  #=== codepage ãã LANG ã®è¨­å®æå­åã«å¤æ
+  #=== codepage から LANG の設定文字列に変換
   def self.codepage_to_lang cp
     if cp == "932" then
@@ -141,16 +125,16 @@
   end
 
-  #=== è¨èªãæå­ã³ã¼ãã«é¢ããå¤æ°ãè¨­å®
-  # ä»¥ä¸ã®é ã«ãã§ãã¯ãããä¸çªæå¾ã«è¨­å®ãããå¤ãæ¡ç¨ããã
-  #   ã»ããã©ã«ã
-  #   ã»codepage  (exerb çã§ TERM æªè¨­å®ã¾ãã¯ TERM=cygwin ã®å ´åã®ã¿)
-  #   ã»LANG ç°å¢å¤æ°
-  #   ã»TECSGEN_LANG ç°å¢å¤æ°
-  #   ã»TECSGEN_FILE_LANG ç°å¢å¤æ° (ãã¡ã¤ã«ã®æå­ã³ã¼ãã®ã¿)
-  #   ã»-k ãªãã·ã§ã³ (ãã¡ã¤ã«ã®æå­ã³ã¼ãã®ã¿)
+  #=== 言語、文字コードに関する変数を設定
+  # 以下の順にチェックされ、一番最後に設定された値が採用される
+  #   ・デフォルト
+  #   ・codepage  (exerb 版で TERM 未設定または TERM=cygwin の場合のみ)
+  #   ・LANG 環境変数
+  #   ・TECSGEN_LANG 環境変数
+  #   ・TECSGEN_FILE_LANG 環境変数 (ファイルの文字コードのみ)
+  #   ・-k オプション (ファイルの文字コードのみ)
   def self.set_lang_var
 
     if $IN_EXERB && ( ENV[ 'TERM' ] == nil || ENV[ 'TERM' ] == "cygwin" ) then
-      # exerb çã§ç«¯æ« cygwin ã®æã¯ codepage ã®ã¿ãè¦ã
+      # exerb 版で端末 cygwin の時は codepage のみを見る
       cp = get_win_codepage
       lang = codepage_to_lang cp
@@ -160,6 +144,6 @@
 
     elsif ENV[ 'LANG' ]then
-      # é exerb çã§ã¯ LANG ç°å¢å¤æ°ãè¦ã
-      # cygwin console ã§ã¯ codepage ã«å¾ã£ã¦åºåããæ¹ãå¹³åãªãã
+      # 非 exerb 版では LANG 環境変数を見る
+      # cygwin console では codepage に従って出力した方が平和なため
 
       $LANG_FILE, $CHARSET_FILE, *dum = self.parse_lang( ENV[ 'LANG' ] )
@@ -181,5 +165,5 @@
   end
 
-  #=== -k ãªãã·ã§ã³ãããã¡ã¤ã«ç¨ã®è¨èªãæå­ã³ã¼ãå¤æ°ãè¨­å®
+  #=== -k オプションからファイル用の言語、文字コード変数を設定
   def self.set_lang_by_option
     if $kcode == nil
@@ -211,10 +195,9 @@
   end
 
-  #=== Kconv ã¯ã©ã¹ç¨ã®å¤æ°ãè¨­å®
-  # è¨èªæ
-å ±ãã Kconv ã«é¢ããå¤æ°ãè¨­å®
+  #=== Kconv クラス用の変数を設定
+  # 言語情報から Kconv に関する変数を設定
   def self.set_kconv_var
 
-    # æå­ã³ã¼ãã®è¨­å®
+    # 文字コードの設定
     case $CHARSET_FILE           # string: "EUC" | "SJIS" | "NONE" | "UTF8"
     when :eucJP
@@ -251,13 +234,13 @@
     end
 
-    $KCODE_TECSGEN = "UTF8"      # string: "EUC"  ãã®ãã¡ã¤ã«ã®æå­ã³ã¼ãï¼ãªãã·ã§ã³ã§ã¯ãªãå®æ°ï¼
+    $KCODE_TECSGEN = "UTF8"      # string: "EUC"  このファイルの文字コード（オプションではなく定数）
     $KCONV_TECSGEN = Kconv::UTF8 # const: 
-    set_kcode $KCODE_TECSGEN     # ãã®ãã¡ã¤ã«ã®æå­ã³ã¼ããè¨­å®
-  end
-
-  #=== ä¸æçã« KCODE ã BINARY ã«å¤æ´ãã
-  # EUC ã UTF8 ã§èª­ã¿è¾¼ãã å ´åã«æå­åºåããèª¤ãåé¡ã®å¯¾å¿
-  # ã³ã¡ã³ãã®èª­ã¿é£ã°ããèª¤ãç¹ãåé¡
-  # ãã ããSJIS ã®å ´åã¯ãã¨ã¹ã±ã¼ãæå­ã®åé¡ããããããå¤æ´ããªã
+    set_kcode $KCODE_TECSGEN     # このファイルの文字コードを設定
+  end
+
+  #=== 一時的に KCODE を BINARY に変更する
+  # EUC を UTF8 で読み込んだ場合に文字区切りを誤る問題の対応
+  # コメントの読み飛ばしを誤る点が問題
+  # ただし、SJIS の場合は、エスケープ文字の問題があるため、変更しない
   def self.set_kcode_binary
 
@@ -273,6 +256,5 @@
   end
 
-  #=== ä¸æçãªã KCODE ã®å¤æ´ãå
-ã«æ»ã
+  #=== 一時的なあ KCODE の変更を元に戻す
   def self.reset_kcode
     set_kcode $KCODE_BACK
@@ -280,10 +262,10 @@
 
   #####
-  # $LANG_FILE        è¨èª (C ã¯ en_US ã«å¤æããã)
-  # $LANG_CONSOLE     è¨èª (C ã¯ en_US ã«å¤æããã)
-  # $CHARSET_FILE     ãã¡ã¤ã«ã®æå­ã³ã¼ã
-  # $CHARSET_CONSOLE  ã³ã³ã½ã¼ã«æå­ã³ã¼ã
-
-  # ããã©ã«ãã®è¨­å®ï¼æ­£è¦åæ¸ã¿ã®ãã¨ï¼
+  # $LANG_FILE        言語 (C は en_US に変換される)
+  # $LANG_CONSOLE     言語 (C は en_US に変換される)
+  # $CHARSET_FILE     ファイルの文字コード
+  # $CHARSET_CONSOLE  コンソール文字コード
+
+  # デフォルトの設定（正規化済みのこと）
   $LANG_FILE_DEFAULT  = :en_US
   $CHARSET_FILE_DEFAULT = nil
@@ -296,11 +278,11 @@
   $CHARSET_CONSOLE = $CHARSET_CONSOLE_DEFAULT
 
-  # -k ã§æå®å¯è½ãªã³ã¼ã
+  # -k で指定可能なコード
   $CODE_TYPE_ARRAY = [ "euc", "sjis", "none", "utf8" ]
 
-  # è¨èªãæ±ºå®ãã
+  # 言語を決定する
   self.set_lang_var
 
-  # è¨èªãã³ã¼ãã®ãã§ãã¯ã¨æ­£è¦å
+  # 言語、コードのチェックと正規化
   lang_file, charset_file, res =
     self.resolve_alias_and_check( $LANG_FILE, $CHARSET_FILE )
@@ -316,5 +298,5 @@
   end
 
-  # ã¡ãã»ã¼ã¸ã¢ã¸ã¥ã¼ã«ãã­ã¼ã
+  # メッセージモジュールをロード
   if require_tecsgen_lib( "tecslib/messages/messages_console_#{lang_console}.rb", false ) == false then
     require_tecsgen_lib( "tecslib/messages/messages_console_#{$LANG_CONSOLE_DEFAULT}.rb" )
@@ -330,5 +312,5 @@
   end
 
-  # Kconv ã¯ã©ã¹ã®ããã®å¤æ°ãè¨­å®
+  # Kconv クラスのための変数を設定
   self.set_kconv_var 
 
@@ -337,5 +319,5 @@
   dbgPrint "Ruby19_File_Encode=#{$Ruby19_File_Encode}\n"
 
-  #=== åä½ãã¹ãå®è¡
+  #=== 単体テスト実行
   if $unit_test then
     print "unit test: set_lang_var\n"
@@ -350,6 +332,6 @@
 end
 
-#= Console ã¯ã©ã¹
-# æå­ã³ã¼ããå¤æãã
+#= Console クラス
+# 文字コードを変換する
 class Console
   def self.print str
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecsgen.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecsgen.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecsgen.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: tecsgen.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -56,6 +41,6 @@
 class TECSGEN
 
-  #=== import ãã¹ (-I) ãæ«å°¾ã«è¿½å 
-  # æ¢ã«ç»é²æ¸ã¿ã§ããã°ãè¿½å ããªã
+  #=== import パス (-I) を末尾に追加
+  # 既に登録済みであれば、追加しない
   def self.add_import_path path
     if $import_path.index( path ) == nil then
@@ -65,7 +50,7 @@
   end
 
-  #=== EXEB çã®ãã¹ã®èª¿æ´
-  # ç°å¢å¤æ° TECSPATH ã cygwin ã¹ã¿ã¤ã«ã ã¨ãexerb çã§ã¯æ±ããªã
-  # $import_path ã¨ $TECSPATH ãèª¿æ´ãã
+  #=== EXEB 版のパスの調整
+  # 環境変数 TECSPATH が cygwin スタイルだと、exerb 版では扱えない
+  # $import_path と $TECSPATH を調整する
   def self.adjust_exerb_path
     if $IN_EXERB then
@@ -74,5 +59,5 @@
       paths = []
       $import_path.each{ |path|
-        # cygpath ã¯ '..' ãç°¡ç´ãã¦ãã¾ãã®ã§ãnew_tecspath ã§ç½®æãã
+        # cygpath は '..' を簡約してしまうので、new_tecspath で置換する
         # paths << cygpath( path, path )
         paths << path.sub( pattern, new_tecspath )
@@ -85,7 +70,7 @@
   end
 
-  #=== $(TECSPATH) ã¸ã®ç½®æ
-  #path::String   : ENV[ 'TECSPATH' ] ã«ä¸è´ããé¨åãããã°ã "$(TECSPATH)" ã«ç½®æ
-  #b_global::Bool : true ãªã gsub ã§ç½®æãfalse ãªã sub ã§ç½®æ
+  #=== $(TECSPATH) への置換
+  #path::String   : ENV[ 'TECSPATH' ] に一致する部分があれば、 "$(TECSPATH)" に置換
+  #b_global::Bool : true なら gsub で置換。false なら sub で置換
   def self.subst_tecspath( path, b_global = false )
     tp = $tecspath.dup
@@ -102,7 +87,7 @@
   end
 
-  #=== path ã¯çµ¶å¯¾ãã¹ã?
+  #=== path は絶対パスか?
   #path:: String   :
-  # '/' ã¾ãã¯ '$' ã§å§ã¾ãå ´åãçµ¶å¯¾ãã¹ã¨å¤å®ãã
+  # '/' または '$' で始まる場合、絶対パスと判定する
   def self.is_absolute_path?( path )
     pa = path[0..0]; pa2 = path[0..1]
@@ -116,5 +101,5 @@
   end
 
-  #=== tecsgen ã®ããã©ã«ããè¨­å®
+  #=== tecsgen のデフォルトを設定
   def self.set_default_config
     Makefile::set_default_config
@@ -122,8 +107,7 @@
 
   ###
-  #== Makefile.templ ã®åºåå
-å®¹ãè¿½å ãå¤æ´ããããã®æä½
+  #== Makefile.templ の出力内容を追加、変更するための操作
   module Makefile
-    # åºå®ããã¦ããå¤æ°(add_var ã§å¤æ´ã§ããªã)
+    # 固定されている変数(add_var で変更できない)
     @@fixed_vars = { :INCLUDES => nil, :DEFINES => nil, :TARGET_BASE => nil, :BASE_DIR => nil }
     @@config_mode = false
@@ -140,11 +124,11 @@
     @@lines = []
 
-    #=== OTHER_OBJS ã«è¿½å ãã
+    #=== OTHER_OBJS に追加する
     def self.add_obj obj
       @@objs << obj
     end
-    #=== è¿½å ããå¤æ°
-    # ãã©ã°ã¤ã³ããã¯ãããã©ã«ãå¤ãå¤æ´ã§ãã
-    # config ã«ãã
+    #=== 追加する変数
+    # プラグインからは、デフォルト値を変更できる
+    # config により
     def self.add_var( var, val, comment = nil )
       if @@fixed_vars[ var ]
@@ -159,36 +143,36 @@
       end
     end
-    #=== LDFLAGS ã«è¿½å ãã
+    #=== LDFLAGS に追加する
     def self.add_ldflag ldflag
       @@ldflags += " " + ldflag
     end
-    #=== ãµã¼ããã¹ãè¿½å ãã
-    # CFLAGS, vpath ã«è¿½å ãã
+    #=== サーチパスを追加する
+    # CFLAGS, vpath に追加する
     def self.add_search_path path
       @@search_path << path
     end
-    #=== PRE_TECSGEN_TARGET ã«è¿½å ãã
-    # PRE_TECSGEN_TARGET ã« target ãè¿½å ãã
+    #=== PRE_TECSGEN_TARGET に追加する
+    # PRE_TECSGEN_TARGET に target を追加する
     def self.add_pre_tecsgen_target target
       @@pre_tecsgen_target << pre_tecsgen_target
     end
-    #=== POST_TECSGEN_TARGET ã«è¿½å ãã
-    # POST_TECSGEN_TARGET ã« target ãè¿½å ãã
+    #=== POST_TECSGEN_TARGET に追加する
+    # POST_TECSGEN_TARGET に target を追加する
     def self.add_post_tecsgen_target target
       @@post_tecsgen_target << pre_tecsgen_target
     end
-    #=== è¿½å ããå¤æ°
+    #=== 追加する変数
     def self.add_line( line )
       @@lines << line.to_s + "\n"
     end
 
-    def self.get_objs  # Array ãè¿ã
+    def self.get_objs  # Array を返す
       return @@objs.uniq
     end
-    def self.get_vars  # Array ãè¿ã
+    def self.get_vars  # Array を返す
       if RUBY_VERSION >= '1.9' then
         return (@@vars.keys + @@vars_default.keys).sort.uniq
       else
-        # V1.8 ã§ã¯ãSymbol ã® sort ãã§ããªãã®ã§ãä¸æ¦ String ã«ç½®æãã
+        # V1.8 では、Symbol の sort ができないので、一旦 String に置換する
         return (@@vars.keys + @@vars_default.keys).map{|s| s.to_s }.sort.uniq.map!{|s| s.to_sym }
       end
@@ -200,23 +184,23 @@
       return @@var_comments[ var ]
     end
-    def self.get_ldflags  # String ãè¿ã
+    def self.get_ldflags  # String を返す
       return @@ldflags
     end
-    def self.get_search_path  # Array ãè¿ã
+    def self.get_search_path  # Array を返す
       return @@search_path.uniq
     end
-    def self.get_pre_tecsgen_target  # Array ãè¿ã
+    def self.get_pre_tecsgen_target  # Array を返す
       return @@pre_tecsgen_target.uniq
     end
-    def self.get_post_tecsgen_target  # Array ãè¿ã
+    def self.get_post_tecsgen_target  # Array を返す
       return @@post_tecsgen_target.uniq
     end
-    def self.get_lines  # ä»å ããè¡ãå¾ã
+    def self.get_lines  # 付加する行を得る
       return @@lines.uniq
     end
 
-    #=== TECSGEN ã®ããã©ã«ãè¨­å®ãè¡ã
+    #=== TECSGEN のデフォルト設定を行う
     # Makefile 
-    # @@fixed_vars ã§å®ç¾©ããã¦ããå¤æ°ã¯ãå¤æ´ã§ãããå®æ°å®ç¾©ããã¦ãã
+    # @@fixed_vars で定義されている変数は、変更できず、定数定義されている
     def self.set_default_config
       add_var( "TARGET", "$(TARGET_BASE).exe", "default target name"  )
@@ -235,9 +219,9 @@
 
   def syntax_analisys argv
-    # ã«ã¼ã namespace (region) ãçæ
+    # ルート namespace (region) を生成
     @root_namespace = Region.new("::")
 
-    ####  æ§æè§£æ (post ã³ã¼ããé¤ã) ####
-    # ãã¹ã¦ã® cdl ã import ãã
+    ####  構文解析 (post コードを除く) ####
+    # すべての cdl を import する
     argv.each{ |f|
       dbgPrint( "## Import: #{f}\n")
@@ -245,7 +229,7 @@
     }
 
-    # ãã¹ã¦ã®æ§æè§£éãå®äºãããã¨ã®å ±å
-    #   å®éã«ã¯ãå¾ãããã©ã°ã¤ã³ã®çæãã CDL ã®ãã¼ã¹ãè¡ããã
-    #   ã¨ã©ã¼è¡æ°ã®æ±ºå®æ¹æ³ã®å¤æ´ã®ããã«è¡ã
+    # すべての構文解釈が完了したことの報告
+    #   実際には、後からプラグインの生成する CDL のパースが行われる
+    #   エラー行数の決定方法の変更のために行う
     Generator.end_all_parse
     dbgPrint( "## End all parse (except Post Code)\n")
@@ -253,19 +237,19 @@
 
   def semantics_analisys_1
-    ####  æå³è§£æï¼ (post ã³ã¼ããé¤ã) ####
+    ####  意味解析１ (post コードを除く) ####
     dbgPrint( "## Creating reverse join \n")
     Cell.create_reverse_join
 
-    #0 set_definition_join ã¯2åå¼ã³åºãããï¼1åç®ï¼
+    #0 set_definition_join は2回呼び出される（1回目）
     dbgPrint( "## Checking all join\n")
     @root_namespace.set_definition_join
-    # @root_namespace.set_require_join                   ### ãã£ããè¦åãããéè¤ã¨ã©ã¼ãè¦éã
-    # through ãã©ã°ã¤ã³ã§çæãããã»ã«ã«ã require ãçæã§ãã (set_definition_join ã®å¾ãã§å®æ½)
-
-    ####  post ã³ã¼ãã®çæã¨æ§æè§£æ ####
-    # å¼æ°ããªããã°ããã©ã°ã¤ã³ã®ãã¹ãã³ã¼ããåºåããªã
+    # @root_namespace.set_require_join                   ### いったん見合わせ。重複エラーを見逃す
+    # through プラグインで生成されたセルにも require も生成できる (set_definition_join の後ろで実施)
+
+    ####  post コードの生成と構文解析 ####
+    # 引数がなければ、プラグインのポストコードを出力しない
     if ARGV.length > 0 then
       dbgPrint( "## Generating Post Code\n")
-      # ãã©ã°ã¤ã³ã®ãã¹ãã³ã¼ãã®åºåã¨ import
+      # プラグインのポストコードの出力と import
       tmp_file_name = "#{$gen}/tmp_plugin_post_code.cdl"
       file = nil
@@ -277,5 +261,5 @@
 
       if file then
-        # through ãã©ã°ã¤ã³ã®ãã¹ãã³ã¼ãçæ
+        # through プラグインのポストコード生成
         PluginModule.gen_plugin_post_code file
 
@@ -290,33 +274,29 @@
     end
 
-    ####  æå³è§£æï¼ (post ã³ã¼ã) ####
+    ####  意味解析１ (post コード) ####
     dbgPrint( "## Creating reverse join (for post code) \n")
     Cell.create_reverse_join
 
-    # Join ã®å®ç¾©ã®è¨­å®ã¨ãã§ãã¯
-    #0 # åæ¹åç
-§å¯¾å¿
-    #0 set_definition_join ã¯2åå¼ã³åºãããï¼2åç®ï¼  post_code ã§çæããã
+    # Join の定義の設定とチェック
+    #0 # 前方参照対応
+    #0 set_definition_join は2回呼び出される（2回目）  post_code で生成された
     dbgPrint( "## Checking all join (for cells generated by Post Code\n")
     @root_namespace.set_definition_join
 
     dbgPrint( "## Set require join\n")
-    @root_namespace.set_require_join   # mikan post ã®åã«ã
-    # ãã¹ãã³ã¼ãã§çæãããã»ã«ã® require ã®join ãçæ
-    # mikan require ã§ through ãé©ç¨ããã¦ããã¹ãã³ã¼ããå¿
-è¦ã¨ãªã£ã¦ãåºåãããªã
+    @root_namespace.set_require_join   # mikan post の前にも
+    # ポストコードで生成されたセルの require のjoin を生成
+    # mikan require で through が適用されて、ポストコードが必要となっても出力されない
   end # semantics_analisys_1
 
   def semantics_analisys_2
-    ####  æå³è§£æï¼ ####
+    ####  意味解析２ ####
     Cell.make_cell_list2
     dbgPrint( "## Set fixed join\n")
     Cell.create_reverse_require_join
-    # create_reverse_require_join ã¯ set_detinition_join ã«åãè¾¼ããã¨ãã§ããªã
-        # namespace ã«ä¾å­ããªãåºç¾é ã§è¡ã
-        # mikan through ãã©ã°ã¤ã³ãé©ç¨ãããã¹ãã³ã¼ãã«å½±é¿ãä¸ããå ´åãèæ
-®ã§ãã¦ããªã
-        # mikan post code ã«å½±é¿ã®ãããã®ã§ããã°ãæ©ãã« reverse_require_join ã®çµåãå¿
-è¦
+    # create_reverse_require_join は set_detinition_join に埋め込むことができない
+        # namespace に依存しない出現順で行う
+        # mikan through プラグインが適用されポストコードに影響を与える場合が考慮できていない
+        # mikan post code に影響のあるものであれば、早くに reverse_require_join の結合が必要
     dbgPrint( "## Setting port reference count\n")
     @root_namespace.set_port_reference_count
@@ -325,5 +305,5 @@
     @root_namespace.check_join
 
-    # mikan ãã©ã°ã¤ã³ã§çæãããã³ã³ãã¼ãã³ãã® set_def_and_check_join
+    # mikan プラグインで生成されたコンポーネントの set_def_and_check_join
 
     dbgPrint( "## Checking referenced but undefined cell\n")
@@ -332,5 +312,5 @@
 
   def optimize_and_generate
-    #### Region link root ãã¨ã«ãªããã£ãã¤ãºããã³çæ ####
+    #### Region link root ごとにオプティマイズおよび生成 ####
     Region.get_link_roots.each { |region|
 
@@ -354,6 +334,6 @@
       end
 
-      # ã»ã«ãä¸ã¤ããªããã°çæããªã
-      # ã»ã«ã®çæããªãå ´å
+      # セルが一つもなければ生成しない
+      # セルの生成がない場合
       if region.get_n_cells == 0 then
         if $region_list.length > 0 then
@@ -385,13 +365,12 @@
 
       dbgPrint( "## Unset optimize variables\n")
-      @root_namespace.reset_optimize   # æé©åããªã»ãããã
+      @root_namespace.reset_optimize   # 最適化をリセットする
 
       if Generator.get_n_error == 0 then
-        # ã¨ã©ã¼ãçºçãã¦ããããè¨­å®ããªã
+        # エラーが発生していたら、設定しない
         dbgPrint( "## Set cell id\n")
-        @root_namespace.set_cell_id_and_domain      # ã»ã«ã® ID ã¨ãã¡ã¤ã³æ
-å ±ãè¨­å®ï¼linkunit æ¯ã«0ããã¤ããï¼
-
-        # ã¨ã©ã¼ãçºçãã¦ããããæé©åã¯å®æ½ããªã
+        @root_namespace.set_cell_id_and_domain      # セルの ID とドメイン情報を設定（linkunit 毎に0からつける）
+
+        # エラーが発生していたら、最適化は実施しない
         if ! $unopt then
           dbgPrint( "## Optimizing: Link Region=#{@root_namespace.get_name}\n")
@@ -401,5 +380,5 @@
 
       if $show_tree then
-        # ã¨ã©ã¼ãçºçãã¦ãã¦ãè¡¨ç¤ºï¼ã¨ã©ã¼çºçæã¯æé©åããã¦ããªãã®ã§æ³¨æï¼
+        # エラーが発生していても表示（エラー発生時は最適化されていないので注意）
         print "##### show_tree LinkRegion=#{region.get_name} #####\n"
         @root_namespace.show_tree(0)
@@ -407,5 +386,5 @@
       end
 
-      # æ§æè§£éãæå³è§£æã§ã¨ã©ã¼çºçãã¦ããããã³ã¼ãçæãããªã
+      # 構文解釈、意味解析でエラー発生していたら、コード生成をしない
       if Generator.get_n_error != 0 then
         print_report
@@ -413,5 +392,5 @@
       end
 
-      #### ã³ã¼ãçæ ####
+      #### コード生成 ####
       begin
         dbgPrint( "## Generating: Link Region=#{@root_namespace.get_name}\n")
@@ -420,5 +399,5 @@
         @root_namespace.generate_post
       rescue
-        # éå¸¸ããã¸ã¯æ¥ãªã (generate, generate_post ã§å¦ç½®ããã)
+        # 通常ここへは来ない (generate, generate_post で処置される)
         Generator.error( "G9999 fail to generate" )
       end
@@ -438,8 +417,8 @@
     }
 
-    # update ãã
-    # APPFile ã§çæããããã¡ã¤ã«ã¯ãããå¤åãããã°ãããã§æ´æ°ãã
-    # ã³ã¼ãçææ®µéã§ã¨ã©ã¼ãçºçããã°ãæ´æ°ããªã
-    # CFile ã§çæããããã®ã¯ãæ´æ°ããã¦ãã
+    # update する
+    # APPFile で生成されたファイルは、もし変化があれば、ここで更新する
+    # コード生成段階でエラーが発生すれば、更新しない
+    # CFile で生成されたものは、更新されている
     if Generator.get_n_error == 0 then
       begin
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/types.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/types.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/types.rb	(revision 321)
@@ -6,63 +6,45 @@
 #   Copyright (C) 2008-2015 by TOPPERS Project
 #--  
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: types.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#= HasType: @type ãå
-é¨ã«æã¤åã®ããã®ã¢ã¸ã¥ã¼ã«
+#= HasType: @type を内部に持つ型のためのモジュール
 #  @b_cloned::Bool  : true if @type is cloned
 #
-# ãã®ã¢ã¸ã¥ã¼ã«ã¯ DefinedType, PtrType, ArrayType ã« include ããã
-# æ¬å½ã¯ typedef ãããæã® Decl ã®è¦ç´ ã®ã¿ clone ããã°ããã®ã ããget_type, get_original_type ã§
-# åãåºãããã¨ããset_scs, set_qualifier ãããã¨ãã«ç¡æ¡ä»¶ã§ clone ãã (ç¡é§ã«ã¡ã¢ãªãä½¿ç¨ãã)
-# ãã ããclone ããã®ã¯ä¸åã®ã¿ã§ãã (äºå clone ããã¨å¥ã®åãåç
-§ãã¦ãã¾ã)
+# このモジュールは DefinedType, PtrType, ArrayType に include される
+# 本当は typedef された時の Decl の要素のみ clone すればよいのだが、get_type, get_original_type で
+# 取り出されたとき、set_scs, set_qualifier されたときに無条件で clone する (無駄にメモリを使用する)
+# ただし、clone するのは一回のみである (二回 clone すると別の型を参照してしまう)
 #
-# initialize ã§ clone ãã¦ããå
-±æããã¦ããã¨ãã« clone ãããªã
+# initialize で clone しても、共有されているときに clone されない
 #
 module HasType
@@ -71,5 +53,5 @@
   end
 
-  #=== HasType# @type ãã¯ã­ã¼ã³ãã
+  #=== HasType# @type をクローンする
   def clone_type
 #    if @b_cloned == false then
@@ -131,6 +113,6 @@
   end
 
-  #=== size_is, count_is, string ãè¨­å®
-  # æ´¾çã¯ã©ã¹ã§ãªã¼ãã¼ã©ã¤ãããï¼ããã©ã«ãã§ã¯ã¨ã©ã¼ï¼
+  #=== size_is, count_is, string を設定
+  # 派生クラスでオーバーライドする（デフォルトではエラー）
   def set_scs( size, count, string, max = nil, b_nullable = false )
     str = ""
@@ -170,38 +152,31 @@
   end
 
-  #=== åããã§ãã¯
-  #    æ­£å½ãªåå®ç¾©ãã©ããããã§ãã¯ãã
+  #=== 型をチェック
+  #    正当な型定義かどうか、チェックする
   def check
-    # åã«èª¤ããããã°ãã¨ã©ã¼æå­åãè¿ã
-  end
-
-  #=== struct ã® tag ããã§ãã¯
-  #    æ­£å½ãªåå®ç¾©ãã©ããããã§ãã¯ãã
-  #kind:: Decl ã® @kind ãåç
-§
+    # 型に誤りがあれば、エラー文字列を返す
+  end
+
+  #=== struct の tag をチェック
+  #    正当な型定義かどうか、チェックする
+  #kind:: Decl の @kind を参照
   def check_struct_tag kind
-    # tag ãå­å¨ããªããã°ã¨ã©ã¼ãåºåãã
-    # é
-ååã§ã¯ãè¦ç´ ã®åãåå¸°çã«ãã§ãã¯
-    # ãã¤ã³ã¿åã§ã¯ãæãå
-ã® tag ãã§ãã¯ã¯ããªã
-    # é¢æ°åã§ã¯ãã©ã¡ã¼ã¿ãªã¹ãã®ãã¹ã¦ã«ã¤ãã¦è¡ã
-  end
-
-  #===  åæåå¯è½ããã§ãã¯
-  #     attribute ãªã©åæåå¯è½ããã§ãã¯ããï¼åã«å¯¾ãæ­£å½ãªåæåå­ãä¸ãããã¦ãããï¼
-  #ident::        string                è¢«ä»£å
-¥å¤æ°å½
+    # tag が存在しなければエラーを出力する
+    # 配列型では、要素の型を再帰的にチェック
+    # ポインタ型では、指す先の tag チェックはしない
+    # 関数型ではパラメータリストのすべてについて行う
+  end
+
+  #===  初期化可能かチェック
+  #     attribute など初期化可能かチェックする（型に対し正当な初期化子が与えられているか）
+  #ident::        string                被代入変数命
   #initialize::   Expression, Array of initializer or C_EXP
-  #               ä»£å
-¥å¤ãC_EXP ãä¸ããããã®ã¯ IntType ã®å ´åã®ã¿
+  #               代入値、C_EXP が与えられるのは IntType の場合のみ
   #kind::         symbol (:ATTRIBUTE, :VAR, :CONSTNAT )
-  #attribute::    NameList              kind == :VAR ã®ã¨ãåç
-§ã§ãã attribute
+  #attribute::    NameList              kind == :VAR のとき参照できる attribute
   #
-  #     locale ãç¬¬ä¸å¼æ°ã¨ãã¦åãã®ã¯ãä»¥ä¸ã®çç±ã«ããã
-  #     ãã®ã¡ã½ããã¯ãå¤æ°ã¸ã®ä»£å
-¥ãè¡ããããè¡ãã«å¯¾ãã¦å¼ã³åºããããã
-  #     Type ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ãå¤æ°ãå®ç¾©ããããè¡ããè¨æ¶ãã¦ããã
+  #     locale を第一引数として取るのは、以下の理由による。
+  #     このメソッドは、変数への代入が行われる「行」に対して呼び出されるが、
+  #     Type クラスのインスタンスは、変数が定義された「行」を記憶している。
   #
   # STAGE: S
@@ -210,52 +185,45 @@
   end
 
-  #=== const_val ãæå®ã®åã«ã­ã£ã¹ããã
-  # æ´¾çã¯ã©ã¹ã§ãªã¼ãã¼ã©ã¤ããã¦ããªãã¨ã¨ã©ã¼
+  #=== const_val を指定の型にキャストする
+  # 派生クラスでオーバーライドしていないとエラー
   def cast( const_val )
     cdl_error( "T1004 cannot cast to $1" , self.class )
   end
 
-  #=== åãä¸è´ãããã®ãã§ãã¯
-  # ååã®å­é¢ã§ãã§ãã¯ï¼
-  # typedef ãããåãå­é¢ã§ä¸è´ãè¦ããããå
-ã®åãåãã§ãååãç°ãªãã°ä¸ä¸è´ã¨ãªã
+  #=== 型が一致するかのチェック
+  # 型名の字面でチェック．
+  # typedef された型も字面で一致を見るため、元の型が同じでも型名が異なれば不一致となる
   def equal? type2
     return ( get_type_str == type2.get_type_str ) && ( get_type_str_post == type2.get_type_str_post )
   end
 
-  #=== bit size ãå¾ã
-  # IntType, FloatType ä»¥å¤ã¯0
+  #=== bit size を得る
+  # IntType, FloatType 以外は0
   def get_bit_size
     return 0
   end
 
-  #=== å
-ã®åãå¾ã
-  # typedef ãããåã®å ´åããã®å
-ã®åãè¿ã.
-  # ããä»¥å¤ã¯ãèªåèªèº«ãè¿ãï¼
-  # (DefinedType ã§ã¯æ¬ã¡ã½ããããªã¼ãã¼ã©ã¤ãããã)
+  #=== 元の型を得る
+  # typedef された型の場合、その元の型を返す.
+  # それ以外は、自分自身を返す．
+  # (DefinedType では本メソッドがオーバーライドされる)
   def get_original_type
     return self
   end
 
-  #=== å
-é¨ã«ãã¤ã³ã¿åãæã¤
-  # ãã¤ã³ã¿åãã¾ãã¯ãã¤ã³ã¿åã¡ã³ããæã¤æ§é ä½ãã¾ãã¯è¦ç´ ããã¤ã³ã¿åãæã¤é
-å
+  #=== 内部にポインタ型を持つ
+  # ポインタ型、またはポインタ型メンバを持つ構造体、または要素がポインタ型を持つ配列
   def has_pointer?
     false
   end
 
-  #=== size_is, count_is, string æå®ããããã¤ã³ã¿ãæã¤ã
-  # size_is, count_is, string æå®ããããã¤ã³ã¿åãã¾ãã¯ãããã¡ã³ãã«æã¤æ§é ä½ãã¾ãã¯ããããè¦ç´ ã«æã¤é
-å
+  #=== size_is, count_is, string 指定されたポインタを持つか
+  # size_is, count_is, string 指定されたポインタ型、またはそれをメンバに持つ構造体、またはそれをを要素に持つ配列
   def has_sized_pointer?
     false
   end
   
-  #=== é·ãæå®ã®ãªã string ãæã¤
-  # ãªãæå®ã®ãªã string æå®ããããã¤ã³ã¿åãã¾ãã¯ãããã¡ã³ãã«æã¤æ§é ä½ãã¾ãã¯ãããè¦ç´ ã«æã¤é
-å
+  #=== 長さ指定のない string を持つ
+  # なさ指定のない string 指定されたポインタ型、またはそれをメンバに持つ構造体、またはそれを要素に持つ配列
   def has_unsized_string?
     false
@@ -281,5 +249,5 @@
     @type_name = type_name
 
-    # mikan type_name ã path ã«ãªã£ã¦ããªãããæ«å®
+    # mikan type_name が path になっていないため暫定
     @typedef = Namespace.find( [ type_name ] )  #1
 
@@ -317,5 +285,5 @@
   end
 
-  #=== qualifier(const, volatile) ã®è¨­å®
+  #=== qualifier(const, volatile) の設定
   def set_qualifier( qualifier )
     clone_type
@@ -338,6 +306,6 @@
   end
 
-  def check	# æå³çèª¤ããããã°ãæå­åãè¿ã
-    nil    # typedef ã®æ®µéã§æå³ãã§ãã¯ããã¦ãã
+  def check	# 意味的誤りがあれば、文字列を返す
+    nil    # typedef の段階で意味チェックされている
   end
 
@@ -346,22 +314,18 @@
   end
 
-  #=== å
-é¨ã«ãã¤ã³ã¿åãæã¤
-  # ãã¤ã³ã¿åãã¾ãã¯ãã¤ã³ã¿åã¡ã³ããæã¤æ§é ä½ãã¾ãã¯è¦ç´ ããã¤ã³ã¿åãæã¤é
-å
+  #=== 内部にポインタ型を持つ
+  # ポインタ型、またはポインタ型メンバを持つ構造体、または要素がポインタ型を持つ配列
   def has_pointer?
     @type.has_pointer?
   end
 
-  #=== size_is, count_is, string æå®ããããã¤ã³ã¿ãæã¤ã
-  # size_is, count_is, string æå®ããããã¤ã³ã¿åãã¾ãã¯ãããã¡ã³ãã«æã¤æ§é ä½ãã¾ãã¯ããããè¦ç´ ã«æã¤é
-å
+  #=== size_is, count_is, string 指定されたポインタを持つか
+  # size_is, count_is, string 指定されたポインタ型、またはそれをメンバに持つ構造体、またはそれをを要素に持つ配列
   def has_sized_pointer?
     @type.has_sized_pointer?
   end
   
-  #=== é·ãæå®ã®ãªã string ãæã¤
-  # ãªãæå®ã®ãªã string æå®ããããã¤ã³ã¿åãã¾ãã¯ãããã¡ã³ãã«æã¤æ§é ä½ãã¾ãã¯ãããè¦ç´ ã«æã¤é
-å
+  #=== 長さ指定のない string を持つ
+  # なさ指定のない string 指定されたポインタ型、またはそれをメンバに持つ構造体、またはそれを要素に持つ配列
   def has_unsized_string?
     @type.has_unsized_string?
@@ -383,5 +347,5 @@
 class VoidType < Type
 
-  def check	# æå³çèª¤ããããã°ãæå­åãè¿ã
+  def check	# 意味的誤りがあれば、文字列を返す
     nil
   end
@@ -408,5 +372,5 @@
 class BoolType < Type
 
-  def check	# æå³çèª¤ããããã°ãæå­åãè¿ã
+  def check	# 意味的誤りがあれば、文字列を返す
     nil
   end
@@ -458,5 +422,5 @@
   end
 
-  def check	# æå³çèª¤ããããã°ãæå­åãè¿ã
+  def check	# 意味的誤りがあれば、文字列を返す
     nil
   end
@@ -466,16 +430,14 @@
     if val.instance_of?( Expression ) then
       val = val.eval_const2( nil, attribute )
-      # è©ä¾¡ã®çµæ C_EXP ã Array ã¨ãªãå¯è½æ§ããã
-    end
-
-    if val.instance_of? Token then    # StringVal å°å
-¥ã«ããããã¯ã Token ã¯æ¥ãªãã¯ã
-      # val ã Token ã®å ´å == ã®å³è¾ºã String ã ã¨ã¨ã©ã¼ãèµ·ãã (#198)
+      # 評価の結果 C_EXP や Array となる可能性がある
+    end
+
+    if val.instance_of? Token then    # StringVal 導入により、もはや Token は来ないはず
+      # val が Token の場合 == の右辺が String だとエラーを起こす (#198)
       cdl_error2( locale, "T1009 $1: $2: not integer" , ident, val )
       return
     elsif val.is_a? C_EXP then
-      # #192 var ã attribute ãåç
-§ããattribute ã®å³è¾ºã C_EXP ã®å ´å
-      # const ã®å³è¾ºã C_EXP ã®å ´åã
+      # #192 var が attribute を参照し、attribute の右辺が C_EXP の場合
+      # const の右辺が C_EXP の場合も
       return
     elsif val.kind_of? FloatVal then
@@ -521,8 +483,8 @@
   end
 
-  #=== IntType# æå¤§å¤ãæå°å¤ããã§ãã¯ãã¦ã¯ãªãããã
-  # ã­ã£ã¹ãæ¼ç®ãè¡ã
-  #in_val:: IntegerVal, FloatVal:  ãã®åã«ã­ã£ã¹ãããå¤
-  #from_type:: Symbol:  :IntType, :FloatType  IntType ã®å ´åã¯ãããæ°ã§ã¯ãªãããFloatType ã®å ´åã¯æå¤§å¤ã§ã¯ãªãã
+  #=== IntType# 最大値、最小値をチェックしてクリップする
+  # キャスト演算を行う
+  #in_val:: IntegerVal, FloatVal:  この型にキャストする値
+  #from_type:: Symbol:  :IntType, :FloatType  IntType の場合はビット数でクリップ、FloatType の場合は最大値でクリップ
   def check_and_clip( in_val, from_type = :IntType )
     bit_size = get_bit_size
@@ -533,7 +495,7 @@
     if get_max && val > get_max then
       if from_type == :IntType then
-        rval = ((1 << bit_size)-1) & val   # bit æ°ã§ã¯ãªãã
+        rval = ((1 << bit_size)-1) & val   # bit 数でクリップ
       else
-        rval = get_max                         # æå¤§å¤ã§ã¯ãªãã (FloatType)
+        rval = get_max                         # 最大値でクリップ (FloatType)
       end
       cdl_warning( "W2003 $1: too large to cast to $2, clipped($3)" , in_val, get_type_str, rval )
@@ -546,5 +508,5 @@
       if @sign == :SIGNED || @sign == nil then
         cdl_warning( "W2004 $1: too small to cast to $2, clipped($3)" , in_val, get_type_str, rval )
-      else    # @sign == :UNSIGNED || @sign == nil (char ã®å ´å)
+      else    # @sign == :UNSIGNED || @sign == nil (char の場合)
         cdl_warning( "W2005 $1: negative value for unsigned: convert to $2" , in_val, rval )
       end
@@ -558,5 +520,5 @@
     if @sign == :SIGNED || @sign == nil then
       if @bit_size == -1 then
-        bit_sz = 8   # char_t ã¯ãæç¬¦å·ã«æ±ã
+        bit_sz = 8   # char_t は、有符号に扱う
       else
         bit_sz = @bit_size
@@ -576,5 +538,5 @@
     if @bit_size == -1 then
       if @sign == nil then
-        return 255   # char_t ã¯ãç¡ç¬¦å·ã«æ±ã
+        return 255   # char_t は、無符号に扱う
       else
         bit_sz = 8
@@ -600,5 +562,5 @@
   end
 
-  #=== IntType# C è¨èªã«ãããååï¼ä¿®é£¾å­ä»ãï¼
+  #=== IntType# C 言語における型名（修飾子付き）
   def get_type_str
     str = super
@@ -620,20 +582,20 @@
 
     case @bit_size
-    when -1      # char_t å
+    when -1      # char_t 型
       if @sign == :SIGNED then
         sign = "s"
       end
       str = "#{str}#{sign}char_t"
-    when -11     # char å(obsolete)
+    when -11     # char 型(obsolete)
       str = "#{str}#{signL}char"
-    when -2      # short å
+    when -2      # short 型
       str = "#{str}#{signL}short"
-    when -3      # int å
+    when -3      # int 型
       str = "#{str}#{signL}int"
-    when -4      # long å
+    when -4      # long 型
       str = "#{str}#{signL}long"
-    when -5      # long long å
+    when -5      # long long 型
       str = "#{str}#{signL}long long"
-    when 8, 16, 32, 64, 128     # int16, int32, int64, int128 å
+    when 8, 16, 32, 64, 128     # int16, int32, int64, int128 型
       str = "#{str}#{sign}int#{@bit_size}_t"
     end
@@ -642,19 +604,17 @@
   end
 
-  #=== IntType# C è¨èªã«ãããååï¼å¾ç½®æå­åï¼
+  #=== IntType# C 言語における型名（後置文字列）
   def get_type_str_post
     ""
   end
 
-  #=== IntType#bit_size ãå¾ã
-  #    è¿ãããå¤ã¯ @bit_size ã®ä»æ§ãåç
-§
+  #=== IntType#bit_size を得る
+  #    返される値は @bit_size の仕様を参照
   def get_bit_size
     return @bit_size
   end
 
-  #=== IntType# sign ãå¾ã
-  # @sign ã®èª¬æãåç
-§
+  #=== IntType# sign を得る
+  # @sign の説明を参照
   def get_sign
     @sign
@@ -676,20 +636,19 @@
   end
 
-  def check	# æå³çèª¤ããããã°ãæå­åãè¿ã
+  def check	# 意味的誤りがあれば、文字列を返す
     nil
   end
 
-  # mikan Float åã® C_EXP å¯¾å¿ (generate.rb ã«ãå¤æ´å¿
-è¦)
+  # mikan Float 型の C_EXP 対応 (generate.rb にも変更必要)
   def check_init( locale, ident, initializer, kind, attribute = nil )
-    # åã«å¯¾ããåæå¤ã«èª¤ããããã°ãã¨ã©ã¼æå­åãè¿ã
+    # 型に対する初期値に誤りがあれば、エラー文字列を返す
     val = initializer
     if val.instance_of?( Expression ) then
       val = val.eval_const2( nil, attribute )
-      # è©ä¾¡ã®çµæ C_EXP ã Array ã¨ãªãå¯è½æ§ããã
+      # 評価の結果 C_EXP や Array となる可能性がある
     end
 
     if val.instance_of? Token then
-      # val ã Token ã®å ´å == ã®å³è¾ºã String ã ã¨ã¨ã©ã¼ãèµ·ãã
+      # val が Token の場合 == の右辺が String だとエラーを起こす
       cdl_error2( locale, "T1018 $1: $2: not number" , ident, val )
       return
@@ -772,13 +731,13 @@
 #  @members_decl:: NamedList
 #  @definition:: StructType
-#  @b_has_pointer_member:: bool : ã¡ã³ãã«ãã¤ã³ã¿åããã
-#  @b_has_sized_pointer_member:: bool : ã¡ã³ãã«ãã¤ã³ã¿åããã
-#  @b_has_unsized_string_member:: bool : ã¡ã³ãã«ãã¤ã³ã¿åããã
-#  @member_types_symbol:: Symbol : tag ãç¡ãæã®ã¿è¨­å® (ããä»¥å¤ã§ã¯ nil)
+#  @b_has_pointer_member:: bool : メンバにポインタ型がある
+#  @b_has_sized_pointer_member:: bool : メンバにポインタ型がある
+#  @b_has_unsized_string_member:: bool : メンバにポインタ型がある
+#  @member_types_symbol:: Symbol : tag が無い時のみ設定 (それ以外では nil)
 
   @@structtype_current_stack = []
   @@structtype_current_sp = -1
 
-  # tag ãªã struct
+  # tag なし struct
   @@no_struct_tag_num = 0
   @@no_tag_struct_list = {}
@@ -803,10 +762,10 @@
     if @b_define then
       @members_decl = NamedList.new( nil, "in struct #{@tag}" )
-      # if @tag then    ç»é²ã¿ã¤ãã³ã°ãçµããã«å¤æ´ V1.0.2.19
+      # if @tag then    登録タイミングを終わりに変更 V1.0.2.19
       #  Namespace.new_structtype( self )
       # end
     else
       @definition = Namespace.find_tag( @tag )
-      # check_struct_tag ã«ç§»ã V1.0.2.19
+      # check_struct_tag に移す V1.0.2.19
       # if @definition == nil then
       #  cdl_error( "T1021 \'$1\': struct not defined" , @tag )
@@ -833,12 +792,11 @@
   end
 
-  def check	# æå³çèª¤ããããã°ãæå­åãè¿ã
+  def check	# 意味的誤りがあれば、文字列を返す
     nil
   end
 
-  #=== æ§é ä½ã®ã¿ã°ããã§ãã¯
-  #  declarator ã®æç¹ã§ãã§ãã¯ãã
-  #kind:: Decl ã® @kind ãåç
-§
+  #=== 構造体のタグをチェック
+  #  declarator の時点でチェックする
+  #kind:: Decl の @kind を参照
   def check_struct_tag kind
     if @tag == nil
@@ -852,6 +810,5 @@
   end
 
-  # mikan Float åã® C_EXP å¯¾å¿ (generate.rb ã«ãå¤æ´å¿
-è¦)
+  # mikan Float 型の C_EXP 対応 (generate.rb にも変更必要)
   def check_init( locale, ident, initializer, kind, attribute = nil )
 
@@ -862,5 +819,5 @@
     end
 
-    # åæåå­ãå¼ã®å ´åãåï¼ã¿ã°ï¼ãä¸è´ããããã§ãã¯
+    # 初期化子が式の場合、型（タグ）が一致するかチェック
     if initializer.instance_of?( Expression ) then
       t = initializer.get_type( attribute )
@@ -898,5 +855,5 @@
 
   def end_of_parse()
-    if @members_decl == nil   # @b_define = false ã¾ãã¯ã¡ã³ãã¼ã®ãªãæ§é ä½ï¼ã¨ã©ã¼ï¼
+    if @members_decl == nil   # @b_define = false またはメンバーのない構造体（エラー）
       return
     end
@@ -924,5 +881,5 @@
       string = md.get_string
       if string == -1 then
-        # é·ãæå®ãªã
+        # 長さ指定なし
       elsif string then
         val = string.eval_const( @members_decl )
@@ -962,10 +919,10 @@
 
     if @tag then
-      # typedef struct tag StructType; ã®å½¢å¼ã®å ´å
-      # struct ã®æ¬ä½ã¯ãå¥ã«çæããã
+      # typedef struct tag StructType; の形式の場合
+      # struct の本体は、別に生成される
       return "#{str}struct #{@tag} "
 
     else
-      # typedef struct { int a; } StructType; ã®å½¢å¼ã®å ´å
+      # typedef struct { int a; } StructType; の形式の場合
       str += "struct {\n"
       @members_decl.get_items.each{ |i|
@@ -1018,7 +975,7 @@
   end
 
-  #=== åãæ§é ä½ãã©ãããã§ãã¯ãã
-  # tag ã®ãã§ãã¯ã¯è¡ããªã
-  # ãã¹ã¦ã®ã¡ã³ãã®ååã¨åãä¸è´ãããã¨ãç¢ºèªãã
+  #=== 同じ構造体かどうかチェックする
+  # tag のチェックは行わない
+  # すべてのメンバの名前と型が一致することを確認する
   def same? another
     md = another.get_members_decl
@@ -1110,19 +1067,18 @@
   end
 
-  def check	# æå³çèª¤ããããã°ãæå­åãè¿ã
-    if @type.class == ArrayType then	# é
-åãè¿ãé¢æ°
+  def check	# 意味的誤りがあれば、文字列を返す
+    if @type.class == ArrayType then	# 配列を返す関数
       return "function returning array"
-    elsif @type.class == FuncType then	# é¢æ°ãè¿ãé¢æ°
+    elsif @type.class == FuncType then	# 関数を返す関数
       return "function returning function"
     end
-    return @type.check   # é¢æ°ã® return ããåã®ãã§ãã¯
-
-    # ãã©ã¡ã¼ã¿ã®åã®ãã§ãã¯ã¯ ParamList#check_param ã§è¡ã
+    return @type.check   # 関数の return する型のチェック
+
+    # パラメータの型のチェックは ParamList#check_param で行う
   end
 
   def check_struct_tag kind
     @type.check_struct_tag kind
-    # ParamDecl ã§ããã§ãã¯ãããã®ã§ãããã§ã¯ãã§ãã¯ããªã
+    # ParamDecl でもチェックされるので、ここではチェックしない
     # @paramlist.check_struct_tag kind
   end
@@ -1141,8 +1097,8 @@
   end
 
-  #=== return type ãè¿ã
+  #=== return type を返す
   #
-  # return type ãè¿ã
-  # get_return_type ã¨ãã¹ãã ã£ã
+  # return type を返す
+  # get_return_type とすべきだった
   def get_type
     @type
@@ -1154,5 +1110,5 @@
 
   def get_type_str_post
-    # åã ããè¿ã (ä»®å¼æ°ã®ååãå«ããªã)
+    # 型だけを返す (仮引数の名前を含めない)
     @paramlist.to_str( false )
   end
@@ -1182,8 +1138,6 @@
   end
 
-  #=== Push Pop Allocator ãå¿
-è¦ãï¼
-  # Transparent RPC ã®å ´å oneway ãã¤ in ã®é
-å(size_is, count_is, string ã®ããããã§ä¿®é£¾ï¼ããã
+  #=== Push Pop Allocator が必要か？
+  # Transparent RPC の場合 oneway かつ in の配列(size_is, count_is, string のいずれかで修飾）がある
   def need_PPAllocator?( b_opaque = false )
     if @b_oneway || b_opaque then
@@ -1194,5 +1148,5 @@
   end
 
-  #=== ãã©ã¡ã¼ã¿ã in, inout, out, send, receive ãæã¤ã
+  #=== パラメータが in, inout, out, send, receive を持つか
   def has_in?
     @has_in
@@ -1211,10 +1165,9 @@
   end
 
-  #=== å
-¥åæ¹åã®ãã©ã¡ã¼ã¿ãæã¤ã
+  #=== 入力方向のパラメータを持つか
   def has_inward?
     @has_in || @has_inout || @has_send
   end
-  #=== åºåæ¹åã®ãã©ã¡ã¼ã¿ãæã¤ã
+  #=== 出力方向のパラメータを持つか
   def has_outward?
     @has_inout || @has_out || @has_receive
@@ -1258,5 +1211,5 @@
   end
 
-  #=== Array#qualifier(const, volatile) ã®è¨­å®
+  #=== Array#qualifier(const, volatile) の設定
   def set_qualifier( qualifier )
     clone_type
@@ -1265,12 +1218,10 @@
   end
 
-  # é
-åè¦ç´ ã const ãªã const
+  # 配列要素が const なら const
   def is_const?
     @type.is_const?
   end
 
-  # é
-åè¦ç´ ã volatile ãªã volatile
+  # 配列要素が volatile なら volatile
   def is_volatile?
     @type.is_volatile?
@@ -1298,11 +1249,8 @@
   end
 
-  def check	# æå³çèª¤ããããã°ãæå­åãè¿ã
-    if @type.class == FuncType then		# é¢æ°ã®é
-å
+  def check	# 意味的誤りがあれば、文字列を返す
+    if @type.class == FuncType then		# 関数の配列
       return "array of function"
-    elsif @type.class == ArrayType then	# æ·»æ°ãªãé
-åã®é
-å
+    elsif @type.class == ArrayType then	# 添数なし配列の配列
       unless @type.get_subscript then
         return "subscript not specified"
@@ -1310,6 +1258,5 @@
     end
 
-    return @type.check    # é
-åè¦ç´ ã®åããã§ãã¯
+    return @type.check    # 配列要素の型をチェック
   end
 
@@ -1364,5 +1311,5 @@
 #  @size:: Expr, or nil if not specified
 #  @count:: Expr, or nil if not specified
-#  @string:: Expr or -1(if size not specified) ï¼string å¼æ°ï¼, or nil if not specified
+#  @string:: Expr or -1(if size not specified) （string 引数）, or nil if not specified
 
   include HasType
@@ -1381,6 +1328,5 @@
       @type = type
     else
-      @type.set_type( type )	# æå
-ã® type ãè¨­å®
+      @type.set_type( type )	# 枝先の type を設定
     end
   end
@@ -1404,5 +1350,5 @@
   end
 
-  def check	# æå³çèª¤ããããã°ãæå­åãè¿ã
+  def check	# 意味的誤りがあれば、文字列を返す
     return nil if @type == nil
     @type.check
@@ -1410,6 +1356,5 @@
 
   def check_struct_tag kind
-    if kind != :MEMBER  # æ§é ä½ã¡ã³ãã¼ã®å ´åããã¤ã³ã¿ã®å
-ã®æ§é ä½ã¿ã°ããã§ãã¯ããªã
+    if kind != :MEMBER  # 構造体メンバーの場合、ポインタの先の構造体タグをチェックしない
       @type.check_struct_tag kind
     end
@@ -1428,5 +1373,5 @@
           if ( t1.class == t2.class ) && ( t1.get_bit_size == t2.get_bit_size ) then
           elsif ( t1.kind_of?( CDefinedType) || t2.kind_of?( CDefinedType ) )&& t1.get_type_str == t2.get_type_str && t1.get_type_str_post && t2.get_type_str_post then
-            # int8_t ãªã©ããä¸æ¹ã¯ .h ã«å®ç¾©ããã¦ããã±ã¼ã¹
+            # int8_t などが、一方は .h に定義されているケース
           else
             cdl_error2( locale, "T1032 $1: incompatible pointer type" , ident )
@@ -1439,5 +1384,5 @@
         end
       elsif val.kind_of? StringVal then
-        # æå­åå®æ°
+        # 文字列定数
         # mikan L"wide string"
         if @type.get_bit_size != -1 && @type.get_bit_size != -11 then  # -1: char_t
@@ -1483,7 +1428,7 @@
     @b_nullable = b_nullable
 
-    # string ã¯æãå·¦å´ã® ptr ã«ä½ç¨ãã
+    # string は最も左側の ptr に作用する
     if @type.kind_of?( PtrType ) then
-      # ptr_level ã 2 ä»¥ä¸ã§ãããã¨ã¯ ParamDecl#initializer ã§ãã§ãã¯ããã
+      # ptr_level が 2 以上であることは ParamDecl#initializer でチェックされる
       clone_type
       @type.set_scs( nil, nil, string, nil, false )
@@ -1532,5 +1477,5 @@
   end
 
-  #=== PtrType# size_is ã®æå¤§å¤
+  #=== PtrType# size_is の最大値
   def get_max
     @max
@@ -1595,6 +1540,6 @@
 end
 
-#==  DescriptorType ã¯ã©ã¹
-# åççµåã§æ¸¡ããã¹ã¯ãªãã¿å
+#==  DescriptorType クラス
+# 動的結合で渡すデスクリプタ型
 class DescriptorType < Type
 # @sinagure_nsp::NamespacePath
@@ -1630,5 +1575,5 @@
     case kind
     when :PARAMETER
-      # å¼æ°ã¯åæåã§ããªã
+      # 引数は初期化できない
     else
       cdl_error2( locale, "T9999 Descriptor cannot be used for $1", kind)
@@ -1637,5 +1582,5 @@
 
   #== DescriptorType#
-  # æå³è§£ææ®µéã§ã¯ nil ãè¿ãããå¯è½æ§ã«æ³¨æ
+  # 意味解析段階では nil が返される可能性に注意
   def get_signature
     Namespace.find @signature_nsp
@@ -1643,5 +1588,5 @@
 end
 
-# ä»¥ä¸åä½ãã¹ãã³ã¼ã
+# 以下単体テストコード
 if $unit_test then
   puts( "===== Unit Test: IntType ===== (types.rb)")
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/value.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/value.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/value.rb	(revision 321)
@@ -6,63 +6,47 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: value.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#= BaseVal æ´æ°ãæµ®åå°æ°ãªã©ã®å¤ãæ±ãã¯ã©ã¹ã®åºåºã¯ã©ã¹
+#= BaseVal 整数、浮動小数などの値を扱うクラスの基底クラス
 #
-# TECS ã® CDL ã§æ±ãå¤ã¯ãä»¥ä¸ã«åé¡ããã
-# ã»æ´æ°
-# ã»æµ®åå°æ°
-# ã»æå­å
-# ã»ãã¼ã«å¤
-# éæåï¼æ§é ä½ãé
-åï¼ã¨ C_EXP ã¯ããã§ã¯æ±ããªã
+# TECS の CDL で扱う値は、以下に分類される
+# ・整数
+# ・浮動小数
+# ・文字列
+# ・ブール値
+# 集成型（構造体、配列）と C_EXP はここでは扱わない
 #
-# ãã®ã¯ã©ã¹ã§å®ç¾©æ¸ã¿ã®æ¼ç®å­ã¯ãã¨ã©ã¼ã¨ãªã
-# åã«ããæ¼ç®å¯è½ãªå ´åãæ¼ç®å­ããªã¼ãã¼ã©ã¤ããã
+# このクラスで定義済みの演算子は、エラーとなる
+# 型により演算可能な場合、演算子をオーバーライドする
 #
 class BaseVal < Node
@@ -160,12 +144,11 @@
 end
 
-#= Pointer å¤ (IntegerVal ã® Pointer ç)
+#= Pointer 値 (IntegerVal の Pointer 版)
 #
-# ãã¤ã³ã¿å¤ã¯ãCDL ã§ç´æ¥çæããããã¨ã¯ãªã
-# æ´æ°å¤ã®ã­ã£ã¹ãæ¼ç®ã«ããçæããã
+# ポインタ値は、CDL で直接生成されることはない
+# 整数値のキャスト演算により生成される
 class PointerVal < BaseVal
-#@int_val:: IntegerVal: IntegerVal ã§ãªãã¦ã¯ãªããªã
-#@ptr_type:: PtrType: ãã¤ã³ã¿ã®æãå
-ã®å
+#@int_val:: IntegerVal: IntegerVal でなくてはならない
+#@ptr_type:: PtrType: ポインタの指す先の型
 
   def initialize( int_val, ptr_type )
@@ -175,7 +158,6 @@
   end
 
-  #=== ãã¤ã³ã¿ã®æãå
-ã®åãå¾ã
-  # PointerVal å°ç¨ã®ã¡ã½ãã
+  #=== ポインタの指す先の型を得る
+  # PointerVal 専用のメソッド
   def get_type
     @ptr_type
@@ -183,6 +165,5 @@
 
   def cast type
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if t.kind_of? IntType then
       val = t.check_and_clip( @int_val, :IntType )
@@ -213,5 +194,5 @@
 end
 
-#= IntegerVal: æ´æ°å¤ãæ±ãã¯ã©ã¹
+#= IntegerVal: 整数値を扱うクラス
 class IntegerVal < BaseVal
 #@val:: Integer: value
@@ -250,5 +231,5 @@
   def / val
     if val.kind_of? FloatVal then
-      v2 = val.to_f   # to_f ã2åè©ä¾¡ããªã
+      v2 = val.to_f   # to_f を2回評価しない
       if v2 == 0.0 then
         cdl_error( "V1009 / : divieded by zero"  )
@@ -257,5 +238,5 @@
       return FloatVal.new( @val.to_f / v2 )
     else
-      v2 = val.to_i   # to_i ã2åè©ä¾¡ããªã
+      v2 = val.to_i   # to_i を2回評価しない
       if v2 == 0 then
         cdl_error( "V1010 / : divieded by zero"  )
@@ -267,5 +248,5 @@
   def % val
     if val.kind_of? FloatVal then
-      v2 = val.to_f   # to_f ã2åè©ä¾¡ããªã
+      v2 = val.to_f   # to_f を2回評価しない
       if v2 == 0.0 then
         cdl_error( "V1011 % : divieded by zero"  )
@@ -274,5 +255,5 @@
       return FloatVal.new( @val.to_f % v2 )
     else
-      v2 = val.to_i   # to_i ã2åè©ä¾¡ããªã
+      v2 = val.to_i   # to_i を2回評価しない
       if v2 == 0 then
         cdl_error( "V1012 % : divieded by zero"  )
@@ -360,6 +341,5 @@
   end
   def cast( type )
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if t.kind_of? IntType then
       val = t.check_and_clip( @val, :IntType )
@@ -395,5 +375,5 @@
 end
 
-#= BoolVal: bool å¤ãæ±ãã¯ã©ã¹
+#= BoolVal: bool 値を扱うクラス
 class BoolVal < BaseVal
 #@val:: bool: true, false
@@ -437,6 +417,5 @@
   end
   def cast( type )
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if @val then
       val = 1
@@ -478,5 +457,5 @@
 end
 
-#= FloatVal: å®æ°å¤ãæ±ãã¯ã©ã¹
+#= FloatVal: 実数値を扱うクラス
 class FloatVal < BaseVal
 #@val:: Float
@@ -496,5 +475,5 @@
   end
   def / val
-    v2 = val.to_f   # to_f ã2åè©ä¾¡ããªã
+    v2 = val.to_f   # to_f を2回評価しない
     if v2 == 0.0 then
       cdl_error( "V1017 / : divieded by zero"  )
@@ -504,5 +483,5 @@
   end
   def % val
-    v2 = val.to_f   # to_f ã2åè©ä¾¡ããªã
+    v2 = val.to_f   # to_f を2回評価しない
     if v2 == 0.0 then
       cdl_error( "V1018 % : divieded by zero"  )
@@ -536,6 +515,5 @@
   end
   def cast( type )
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if t.kind_of? IntType then
       val = t.check_and_clip( @val, :FloatType )
@@ -565,5 +543,5 @@
 end
 
-#= æå­åãªãã©ã«ãæ±ãã¯ã©ã¹
+#= 文字列リテラルを扱うクラス
 class StringVal < BaseVal
 #@str:: Token:
@@ -573,13 +551,12 @@
     super()
     @str = str
-    @specifier = spec   # mikan L"str" wide æå­åæªå¯¾å¿
+    @specifier = spec   # mikan L"str" wide 文字列未対応
   end
 
   #===
   #
-  # string ã® cast ã¯ã§ããªã mikan ãã¤ã³ã¿åã¸ã® cast ã¯ã§ããã¹ã
+  # string の cast はできない mikan ポインタ型への cast はできるべき
   def cast type
-    t = type.get_original_type   # typedef ã®å
-ãå¾ã
+    t = type.get_original_type   # typedef の元を得る
     if t.kind_of? IntType then
       cdl_error( "V1022 string cannot cast to integer"  )
@@ -598,5 +575,5 @@
 
   def val
-    @str.to_s   # Token ã§æ±ããã¦ããåæ® (val ãåãåºã)
+    @str.to_s   # Token で扱われていた名残 (val を取り出す)
   end
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_en_US.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_en_US.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_en_US.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: messages_console_en_US.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -58,5 +43,5 @@
 
 ###
-# ã¨ã©ã¼ã¡ãã»ã¼ã¸
+# エラーメッセージ
 @@error_message = {}
 
@@ -1073,5 +1058,5 @@
 
 ###
-# warning ã¡ãã»ã¼ã¸
+# warning メッセージ
 @@warning_message = {}
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_ja_JP.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_ja_JP.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_ja_JP.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: messages_console_ja_JP.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -58,791 +43,717 @@
 
 ###
-# ã¨ã©ã¼ã¡ãã»ã¼ã¸
+# エラーメッセージ
 @@error_message = {}
 
 ### C_parser.y.rb
 # B1001 need parameter name"
-@@error_message[ :"B1001" ] = "ãã©ã¡ã¼ã¿åãå¿
-è¦ã§ã" 
+@@error_message[ :"B1001" ] = "パラメータ名が必要です" 
 
 # B1002 while open or reading \'$1\'"
-@@error_message[ :"B1002" ] = "\'$1\' ã®ãªã¼ãã³ã¾ãã¯èª­ã¿è¾¼ã¿ã«å¤±æãã¾ãã" 
+@@error_message[ :"B1002" ] = "\'$1\' のオープンまたは読み込みに失敗しました" 
 
 # B1003 Unexpected EOF"
-@@error_message[ :"B1003" ] = "äºæããªã EOF ã§ã"
+@@error_message[ :"B1003" ] = "予期しない EOF です"
 
 # B1004 syntax error near \'$1\'"
-@@error_message[ :"B1004" ] = "\'$1\' ä»è¿ã®æ§æã¨ã©ã¼ã§ã"
+@@error_message[ :"B1004" ] = "\'$1\' 付近の構文エラーです"
 
 ### ctypes.rb
 # C1001 $1: mismatch, suitable for integer types"
-@@error_message[ :"C1001" ] = "$1: æ´åãã¦ãã¾ãã, ããã¯æ´æ°åã«é©ãã¦ãã¾ã"
+@@error_message[ :"C1001" ] = "$1: 整合していません, それは整数型に適しています"
 
 # C1002 $1 not compatible with previous one $2"
-@@error_message[ :"C1002" ] = "$1 ã¯ããä»¥åã®ãã®ã§ãã $2 ã¨ä¸¡ç«ãã¾ãã"
+@@error_message[ :"C1002" ] = "$1 はそれ以前のものである $2 と両立しません"
 
 # C1003 $1 & $2 incompatible  (\'long double\' not support)"
-@@error_message[ :"C1003" ] = "$1 åã³ $2 ã¯ä¸¡ç«ãã¾ãã (\'long double\' ã¯æªãµãã¼ã)"
+@@error_message[ :"C1003" ] = "$1 及び $2 は両立しません (\'long double\' は未サポート)"
 
 # C1004 $1: qualifier respecified. previous one: $2"
-@@error_message[ :"C1004" ] = "$1: ä¿®é£¾å­ãååº¦æå®ããã¾ãã. ãã®åã®ä¿®é£¾å­: $2"
+@@error_message[ :"C1004" ] = "$1: 修飾子が再度指定されました. その前の修飾子: $2"
 
 ### expression.rb
 # E1001 $1: not found"
-@@error_message[ :"E1001" ] = "$1: è¦ã¤ããã¾ãã"
+@@error_message[ :"E1001" ] = "$1: 見つかりません"
 
 # E1002 $1: not constant (port)"
-@@error_message[ :"E1002" ] = "$1: å®æ°ã§ã¯ããã¾ãã (port)"
+@@error_message[ :"E1002" ] = "$1: 定数ではありません (port)"
 
 # E1003 $1: not constant"
-@@error_message[ :"E1003" ] = "$1: å®æ°ã§ã¯ããã¾ãã"
+@@error_message[ :"E1003" ] = "$1: 定数ではありません"
 
 # E1004 cannot evaluate \'[]\' operator"
-@@error_message[ :"E1004" ] = "\'[]\' æ¼ç®å­ãè©ä¾¡ã§ãã¾ãã"
+@@error_message[ :"E1004" ] = "\'[]\' 演算子を評価できません"
 
 # E1005 cannot evaluate \'.\' operator"
-@@error_message[ :"E1005" ] = "\'.\' æ¼ç®å­ãè©ä¾¡ã§ãã¾ãã"
+@@error_message[ :"E1005" ] = "\'.\' 演算子を評価できません"
 
 # E1006 cannot evaluate \'->\' operator"
-@@error_message[ :"E1006" ] = "\'->\' æ¼ç®å­ãè©ä¾¡ã§ãã¾ãã"
+@@error_message[ :"E1006" ] = "\'->\' 演算子を評価できません"
 
 # E1007 cannot evaluate \'sizeof\' operator"
-@@error_message[ :"E1007" ] = "\'sizeof\' æ¼ç®å­ãè©ä¾¡ã§ãã¾ãã"
+@@error_message[ :"E1007" ] = "\'sizeof\' 演算子を評価できません"
 
 # E1008 cannot evaluate \'sizeof\' operator"
-@@error_message[ :"E1008" ] = "\'sizeof\' æ¼ç®å­ãè©ä¾¡ã§ãã¾ãã"
+@@error_message[ :"E1008" ] = "\'sizeof\' 演算子を評価できません"
 
 # E1009 cannot evaluate \'&\' operator"
-@@error_message[ :"E1009" ] = "\'&\' æ¼ç®å­ãè©ä¾¡ã§ãã¾ãã"
+@@error_message[ :"E1009" ] = "\'&\' 演算子を評価できません"
 
 # E1010 cannot evaluate \'*\' operator"
-@@error_message[ :"E1010" ] = "\'*\' æ¼ç®å­ãè©ä¾¡ã§ãã¾ãã"
+@@error_message[ :"E1010" ] = "\'*\' 演算子を評価できません"
 
 # E1011 cannot evaluate unary + for $1"
-@@error_message[ :"E1011" ] = "$1 ã«å¯¾ããåé 
-ã® + ãè©ä¾¡ã§ãã¾ãã"
+@@error_message[ :"E1011" ] = "$1 に対する単項の + を評価できません"
 
 # E1012 $1: not found in parameter list"
-@@error_message[ :"E1012" ] = "$1: ãã©ã¡ã¼ã¿ãªã¹ãã®ä¸­ã«è¦ã¤ããã¾ãã"
+@@error_message[ :"E1012" ] = "$1: パラメータリストの中に見つかりません"
 
 # E1013 \'*\': operand is not pointer value"
-@@error_message[ :"E1013" ] = "\'*\': ãªãã©ã³ãã¯ãã¤ã³ã¿å¤ã§ã¯ããã¾ãã"
+@@error_message[ :"E1013" ] = "\'*\': オペランドはポインタ値ではありません"
 
 # E1014 $1: elements_get_type: sorry not supported"
-@@error_message[ :"E1014" ] = "$1: elements_get_type: ç³ãè¨³ããã¾ããï¼ãµãã¼ãããã¦ãã¾ãã"
+@@error_message[ :"E1014" ] = "$1: elements_get_type: 申し訳ありません．サポートされていません"
 
 # E1015 \'$1\': direction mismatch for $2, $3 required"
-@@error_message[ :"E1015" ] = "\'$1\': $2 ã«å¯¾ããæ¹åãæ´åãã¦ãã¾ããï¼$3 ãå¿
-è¦ã§ã"
+@@error_message[ :"E1015" ] = "\'$1\': $2 に対する方向が整合していません．$3 が必要です"
 
 # E1016 $1: elements_check_dir_for_param: sorry not supported"
-@@error_message[ :"E1016" ] = "$1: elements_check_dir_for_param: ç³ãè¨³ããã¾ããï¼ãµãã¼ãããã¦ãã¾ãã"
+@@error_message[ :"E1016" ] = "$1: elements_check_dir_for_param: 申し訳ありません．サポートされていません"
 
 # E1017 $1: rhs not \'Cell.ePort\' form"
-@@error_message[ :"E1017" ] = "$1: å³è¾ºã \'Cell.ePort\' å½¢å¼ã§ã¯ããã¾ãã"
+@@error_message[ :"E1017" ] = "$1: 右辺が \'Cell.ePort\' 形式ではありません"
 
 # E1018 $1: namespace cannot be specified"
-@@error_message[ :"E1018" ] = "$1: namespace ãæå®ã§ãã¾ãã"
+@@error_message[ :"E1018" ] = "$1: namespace を指定できません"
 
 # E1019 $1: rhs not in 'allocator_entry_port' form"
-@@error_message[ :"E1019" ] = "$1: å³è¾ºã 'allocator_entry_port' å½¢å¼ã§ã¯ããã¾ãã"
+@@error_message[ :"E1019" ] = "$1: 右辺が 'allocator_entry_port' 形式ではありません"
 
 # E1020 rhs not in 'call_port.func.param' form for $1_$2"
-@@error_message[ :"E1020" ] = "å³è¾ºã 'call_port.func.param' å½¢å¼ã§ããã¾ãã ($1_$2)"
+@@error_message[ :"E1020" ] = "右辺が 'call_port.func.param' 形式でありません ($1_$2)"
 
 ### bnf.y.rb
 # G1001 need specifier for \'$1\'"
-@@error_message[ :"G1001" ] = "\'$1\' ã«å¯¾ããæå®å­ãå¿
-è¦ã§ã"
+@@error_message[ :"G1001" ] = "\'$1\' に対する指定子が必要です"
 
 # G1002 need parameter name"
-@@error_message[ :"G1002" ] = "ãã©ã¡ã¼ã¿åãå¿
-è¦ã§ã"
+@@error_message[ :"G1002" ] = "パラメータ名が必要です"
 
 # G1003 need parameter name"
-@@error_message[ :"G1003" ] = "ãã©ã¡ã¼ã¿åãå¿
-è¦ã§ã"
+@@error_message[ :"G1003" ] = "パラメータ名が必要です"
 
 # G1004 impossible array type 0"
-@@error_message[ :"G1004" ] = "ããå¾ãªãé
-åå 0 ã§ã"
+@@error_message[ :"G1004" ] = "あり得ない配列型 0 です"
 
 # G1005 impossible array type 1"
-@@error_message[ :"G1005" ] = "ããå¾ãªãé
-åå 1 ã§ã"
+@@error_message[ :"G1005" ] = "あり得ない配列型 1 です"
 
 # G1006 impossible array type 2"
-@@error_message[ :"G1006" ] = "ããå¾ãªãé
-åå 2 ã§ã"
+@@error_message[ :"G1006" ] = "あり得ない配列型 2 です"
 
 # G1007 impossible array type 3"
-@@error_message[ :"G1007" ] = "ããå¾ãªãé
-åå 3 ã§ã"
+@@error_message[ :"G1007" ] = "あり得ない配列型 3 です"
 
 # G1008 impossible function type"
-@@error_message[ :"G1008" ] = "ããå¾ãªãé¢æ°åã§ã"
+@@error_message[ :"G1008" ] = "あり得ない関数型です"
 
 # G1009 unexpected specifier"
-@@error_message[ :"G1009" ] = "äºæããªãæå®å­ã§ã"
+@@error_message[ :"G1009" ] = "予期しない指定子です"
 
 # G1010 Not function"
-@@error_message[ :"G1010" ] = "é¢æ°ã§ã¯ããã¾ãã"
+@@error_message[ :"G1010" ] = "関数ではありません"
 
 # G1011 Not function"
-@@error_message[ :"G1011" ] = "é¢æ°ã§ã¯ããã¾ãã"
+@@error_message[ :"G1011" ] = "関数ではありません"
 
 # G1012 $1 : cannot put specifier here"
-@@error_message[ :"G1012" ] = "$1 : ããã«æå®å­ãç½®ããã¨ã¯ã§ãã¾ãã"
+@@error_message[ :"G1012" ] = "$1 : ここに指定子を置くことはできません"
 
 # G1013 unexpected specifier"
-@@error_message[ :"G1013" ] = "äºæããªãæå®å­ã§ã"
+@@error_message[ :"G1013" ] = "予期しない指定子です"
 
 # G1014 while open or reading \'$1\'"
-@@error_message[ :"G1014" ] = "\'$1\' ã®ãªã¼ãã³ã¾ãã¯èª­ã¿è¾¼ã¿ã«å¤±æãã¾ãã"
+@@error_message[ :"G1014" ] = "\'$1\' のオープンまたは読み込みに失敗しました"
 
 # G1015 Unexpected EOF"
-@@error_message[ :"G1015" ] = "äºæããªã EOF ã§ã"
+@@error_message[ :"G1015" ] = "予期しない EOF です"
 
 # G1016 syntax error near \'$1\'"
-@@error_message[ :"G1016" ] = "\'$1\' ä»è¿ã®æ§æã¨ã©ã¼ã§ã"
+@@error_message[ :"G1016" ] = "\'$1\' 付近の構文エラーです"
 
 ### plugin.rb
 # P1001 plugin arg: cannot find identifier in $1"
-@@error_message[ :"P1001" ] = "plugin arg: $1 ã®ä¸­ã«è­å¥å­ãè¦ã¤ãããã¨ãã§ãã¾ãã"
+@@error_message[ :"P1001" ] = "plugin arg: $1 の中に識別子を見つけることができません"
 
 # P1002 plugin arg: expecting \'=\' not \'$1\'"
-@@error_message[ :"P1002" ] = "plugin arg: \'$1\' ã§ã¯ãªã \'=\' ãå¿
-è¦ã§ã"
+@@error_message[ :"P1002" ] = "plugin arg: \'$1\' ではなく \'=\' が必要です"
 
 # P1003 plugin arg: unexpected $1"
-@@error_message[ :"P1003" ] = "plugin arg: äºæããªã $1 ã§ã"
+@@error_message[ :"P1003" ] = "plugin arg: 予期しない $1 です"
 
 # P1004 $1: unknown plugin argument\'s identifier\n  $2 are acceptable for RPCPlugin."
-@@error_message[ :"P1004" ] = "$1: ä¸æãªãã©ã°ã¤ã³å¼æ°ã®è­å¥å­\n  $2 ã RPC ãã©ã°ã¤ã³ã«å¯¾ãã¦åãå
-¥ãå¯è½ã§ã"
+@@error_message[ :"P1004" ] = "$1: 不明なプラグイン引数の識別子\n  $2 が RPC プラグインに対して受け入れ可能です"
 
 ### pluginModule.rb
 # P2001 $1.rb : fail to load plugin"
-@@error_message[ :"P2001" ] = "$1.rb : ãã©ã°ã¤ã³ã®èª­ã¿è¾¼ã¿ã«å¤±æãã¾ãã"
+@@error_message[ :"P2001" ] = "$1.rb : プラグインの読み込みに失敗しました"
 
 # P2002 $1: not kind of $2"
-@@error_message[ :"P2002" ] = "$1: $2 ã®ä¸ç¨®ã§ã¯ããã¾ãã"
+@@error_message[ :"P2002" ] = "$1: $2 の一種ではありません"
 
 # P2003 $1: load failed"
-@@error_message[ :"P2003" ] = "$1: èª­ã¿è¾¼ã¿ã«å¤±æãã¾ãã"
+@@error_message[ :"P2003" ] = "$1: 読み込みに失敗しました"
 
 # P2004 $1: open error \'$2\'"
-@@error_message[ :"P2004" ] = "$1: ãªã¼ãã³ã¨ã©ã¼ \'$2\' ãçºçãã¾ãã"
+@@error_message[ :"P2004" ] = "$1: オープンエラー \'$2\' が発生しました"
 
 # P2005 $1: plugin error in gen_through_cell_code "
-@@error_message[ :"P2005" ] = "$1: gen_through_cell_code å
-ã®ãã©ã°ã¤ã³ã¨ã©ã¼ãçºçãã¾ãã"
+@@error_message[ :"P2005" ] = "$1: gen_through_cell_code 内のプラグインエラーが発生しました"
 
 # P2006 $1: close error \'$2\'"
-@@error_message[ :"P2006" ] = "$1: \'$2\' ã®ã¯ã­ã¼ãºã¨ã©ã¼ãçºçãã¾ãã"
+@@error_message[ :"P2006" ] = "$1: \'$2\' のクローズエラーが発生しました"
 
 # P2007 $1: fail to generate post code"
-@@error_message[ :"P2007" ] = "$1: ãã¹ãã³ã¼ãã®çæã«å¤±æãã¾ãã"
+@@error_message[ :"P2007" ] = "$1: ポストコードの生成に失敗しました"
 
 ### componentobj.rb
 # S1001 context specifier duplicate"
-@@error_message[ :"S1001" ] = "ã³ã³ãã­ã¹ãæå®å­ãéè¤ãã¦ãã¾ã"
+@@error_message[ :"S1001" ] = "コンテキスト指定子が重複しています"
 
 # S1002 \'$1\': unknown specifier for signature"
-@@error_message[ :"S1002" ] = "\'$1\': ã·ã°ããã£ã«å¯¾ããä¸æãªæå®å­ã§ã"
+@@error_message[ :"S1002" ] = "\'$1\': シグニチャに対する不明な指定子です"
 
 # S1003 $1: \'alloc\' 1st parameter neither [in] integer type nor [out] double pointer type
-@@error_message[ :"S1003" ] = "$1: \'alloc\' é¢æ°ã®ç¬¬1ãã©ã¡ã¼ã¿ã in ã®æ´æ°åã§ã out ã®äºéãã¤ã³ã¿åã§ãããã¾ããï¼"
+@@error_message[ :"S1003" ] = "$1: \'alloc\' 関数の第1パラメータが in の整数型でも out の二重ポインタ型でもありません．"
 
 # S1004 $1: \'alloc\' 2nd parameter not [in] double pointer"
-@@error_message[ :"S1004" ] = "$1: \'alloc\' é¢æ°ã®ç¬¬2ãã©ã¡ã¼ã¿ã in ã®ãã¤ã³ã¿ã¸ã®ãã¤ã³ã¿ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1004" ] = "$1: \'alloc\' 関数の第2パラメータが in のポインタへのポインタではありません．"
 
 # S1005 $1: \'alloc\' has no parameter, unsuitable for allocator signature"
-@@error_message[ :"S1005" ] = "$1: \'alloc\' é¢æ°ããã©ã¡ã¼ã¿ãæã£ã¦ãã¾ããï¼ã¢ã­ã±ã¼ã¿ã·ã°ããã£ã«å¯¾ãã¦ä¸é©å½ã§ãï¼"
+@@error_message[ :"S1005" ] = "$1: \'alloc\' 関数がパラメータを持っていません．アロケータシグニチャに対して不適当です．"
 
 # S1006 $1: \'dealloc\' 1st parameter not [in] pointer type"
-@@error_message[ :"S1006" ] = "$1: \'dealloc\' é¢æ°ã®ç¬¬1ãã©ã¡ã¼ã¿ã in ã®ãã¤ã³ã¿åã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1006" ] = "$1: \'dealloc\' 関数の第1パラメータが in のポインタ型ではありません．"
 
 # S1007 "
      # S1007 $1: \'dealloc\' cannot has 2nd parameter"
-# @@error_message[ :"S1007" ] = "$1: \'dealloc\' é¢æ°ã¯ç¬¬2ãã©ã¡ã¼ã¿ãæã¤ãã¨ãã§ãã¾ããï¼"
+# @@error_message[ :"S1007" ] = "$1: \'dealloc\' 関数は第2パラメータを持つことができません．"
 
 # S1008 $1: \'dealloc\' has no parameter, unsuitable for allocator signature"
-@@error_message[ :"S1008" ] = "$1: \'dealloc\' é¢æ°ããã©ã¡ã¼ã¿ãæã£ã¦ãã¾ããï¼ã¢ã­ã±ã¼ã¿ã·ã°ããã£ã«å¯¾ãã¦ä¸é©å½ã§ãï¼"
+@@error_message[ :"S1008" ] = "$1: \'dealloc\' 関数がパラメータを持っていません．アロケータシグニチャに対して不適当です．"
 
 # S1009 $1: \'alloc\' function not found, unsuitable for allocator signature"
-@@error_message[ :"S1009" ] = "$1: \'alloc\' é¢æ°ãè¦ã¤ããã¾ããï¼ã¢ã­ã±ã¼ã¿ã·ã°ããã£ã«å¯¾ãã¦ä¸é©å½ã§ãï¼"
+@@error_message[ :"S1009" ] = "$1: \'alloc\' 関数が見つかりません．アロケータシグニチャに対して不適当です．"
 
 # S1010 $1: \'dealloc\' function not found, unsuitable for allocator signature"
-@@error_message[ :"S1010" ] = "$1: \'dealloc\' é¢æ°ãè¦ã¤ããã¾ããï¼ã¢ã­ã±ã¼ã¿ã·ã°ããã£ã«å¯¾ãã¦ä¸é©å½ã§ãï¼"
+@@error_message[ :"S1010" ] = "$1: \'dealloc\' 関数が見つかりません．アロケータシグニチャに対して不適当です．"
 
 # S1011 $1: size_is specified for non-pointer type"
-@@error_message[ :"S1011" ] = "$1: éãã¤ã³ã¿åã«å¯¾ãã¦ size_is ãæå®ããã¾ãã"
+@@error_message[ :"S1011" ] = "$1: 非ポインタ型に対して size_is が指定されました"
 
 # S1012 $1: unsuitable initializer, need array initializer"
-@@error_message[ :"S1012" ] = "$1: ä¸é©å½ãªåæåå­ã§ãï¼é
-åã®åæåå­ãå¿
-è¦ã§ãï¼"
+@@error_message[ :"S1012" ] = "$1: 不適当な初期化子です．配列の初期化子が必要です．"
 
 # S1013 $1: too many initializer, $2 for $3"
-@@error_message[ :"S1013" ] = "$1: åæåå­ãå¤ããã¾ãï¼$3 ã¨ããã¨ããã $2 ã¨ãã¾ããï¼"
+@@error_message[ :"S1013" ] = "$1: 初期化子が多すぎます．$3 とするところを $2 としました．"
 
 # S1014 generate specifier duplicate"
-@@error_message[ :"S1014" ] = "generate æå®å­ãéè¤ãã¾ããï¼"
+@@error_message[ :"S1014" ] = "generate 指定子が重複しました．"
 
 # S1015 $1 cannot be specified for composite"
-@@error_message[ :"S1015" ] = "$1 ã¯è¤åã»ã«ã«å¯¾ãã¦æå®ã§ãã¾ããï¼"
+@@error_message[ :"S1015" ] = "$1 は複合セルに対して指定できません．"
 
 # S1016 $1 not found"
-@@error_message[ :"S1016" ] = "$1 ãè¦ã¤ããã¾ãã"
+@@error_message[ :"S1016" ] = "$1 が見つかりません"
 
 # S1017 $1 : neither celltype nor cell"
-@@error_message[ :"S1017" ] = "$1 : ã»ã«ã¿ã¤ãã§ãã»ã«ã§ãããã¾ãã"
+@@error_message[ :"S1017" ] = "$1 : セルタイプでもセルでもありません"
 
 # S1018 $1 : not singleton cell"
-@@error_message[ :"S1018" ] = "$1 : ã·ã³ã°ã«ãã³ã»ã«ã§ã¯ããã¾ãã"
+@@error_message[ :"S1018" ] = "$1 : シングルトンセルではありません"
 
 # S1019 \'$1\' : not entry port"
-@@error_message[ :"S1019" ] = "\'$1\' : åãå£ã§ã¯ããã¾ãã"
+@@error_message[ :"S1019" ] = "\'$1\' : 受け口ではありません"
 
 # S1020 \'$1\' : required port cannot be array"
-@@error_message[ :"S1020" ] = "\'$1\' : è¦æ±ãããå£(port)ã¯é
-åã«åºæ¥ã¾ããï¼"
+@@error_message[ :"S1020" ] = "\'$1\' : 要求された口(port)は配列に出来ません．"
 
 # S1021 $1 : require cannot have same signature with \'$2\'"
-@@error_message[ :"S1021" ] = "$1 : ãªã¯ã¯ã¤ã¢ã¯ \'$2\' ã¨åãã·ã°ããã£ãæã¤ãã¨ãåºæ¥ã¾ããï¼"
+@@error_message[ :"S1021" ] = "$1 : リクワイアは \'$2\' と同じシグニチャを持つことが出来ません．"
 
 # S1022 $1.$2 : \'$3\' conflict function name in $4.$5"
-@@error_message[ :"S1022" ] = "$1.$2 : \'$3\' ã¯ $4.$5 ã«ãããé¢æ°åã¨è¡çªãã¦ãã¾ãï¼"
+@@error_message[ :"S1022" ] = "$1.$2 : \'$3\' は $4.$5 における関数名と衝突しています．"
 
 # S1023 $1: fail to new"
-@@error_message[ :"S1023" ] = "$1: new ã«å¤±æãã¾ããï¼"
+@@error_message[ :"S1023" ] = "$1: new に失敗しました．"
 
 # S1024 $1: multiple cell for singleton celltype"
-@@error_message[ :"S1024" ] = "$1: ã·ã³ã°ã«ãã³ã»ã«ã¿ã¤ãã«å¯¾ãè¤æ°ã®ã»ã«ãå­å¨ãã¾ãï¼"
+@@error_message[ :"S1024" ] = "$1: シングルトンセルタイプに対し複数のセルが存在します．"
 
 # S1025 not found reachable cell for require \'$1\' in celltype \'$2\'"
-@@error_message[ :"S1025" ] = "ã»ã«ã¿ã¤ã \'$2\' å
-ã®ãªã¯ã¯ã¤ã¢ \'$1\' ã¸å°éå¯è½ãªã»ã«ãè¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1025" ] = "セルタイプ \'$2\' 内のリクワイア \'$1\' へ到達可能なセルが見つかりません．"
 
 # S1026 required cell \'$1\' not reachable"
-@@error_message[ :"S1026" ] = "å¿
-è¦ã¨ãããã»ã« \'$1\' ã¯å°éå¯è½ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1026" ] = "必要とされるセル \'$1\' は到達可能ではありません．"
 
 # S1027 \'$1\' celltype not found"
-@@error_message[ :"S1027" ] = "ã»ã«ã¿ã¤ã \'$1\' ãè¦ã¤ããã¾ãã"
+@@error_message[ :"S1027" ] = "セルタイプ \'$1\' が見つかりません"
 
 # S1028 \'$1\' not celltype"
-@@error_message[ :"S1028" ] = "\'$1\' ã¯ã»ã«ã¿ã¤ãã§ã¯ããã¾ãã"
+@@error_message[ :"S1028" ] = "\'$1\' はセルタイプではありません"
 
 # S1029 $1 mismatch with previous one"
-@@error_message[ :"S1029" ] = "$1 ãããä»¥åã®ãã®ã¨æ´åãã¦ãã¾ãã"
+@@error_message[ :"S1029" ] = "$1 がそれ以前のものと整合していません"
 
 # S1030 $1: celltype mismatch with previous one"
-@@error_message[ :"S1030" ] = "$1: ã»ã«ã¿ã¤ããããä»¥åã®ãã®ã¨æ´åãã¦ãã¾ãã"
+@@error_message[ :"S1030" ] = "$1: セルタイプがそれ以前のものと整合していません"
 
 # S1031 $1 region \'$2\' mismatch  with previous one \'$3\'"
-@@error_message[ :"S1031" ] = "ã»ã« $1 ã®ãªã¼ã¸ã§ã³ \'$2\' ã¯ããä»¥åã®ãªã¼ã¸ã§ã³ \'$3\' ã¨æ´åãã¦ãã¾ããï¼"
+@@error_message[ :"S1031" ] = "セル $1 のリージョン \'$2\' はそれ以前のリージョン \'$3\' と整合していません．"
 
 # S1032 $1: duplicate cell"
-@@error_message[ :"S1032" ] = "$1: ã»ã«ãéè¤ãã¦ãã¾ã"
+@@error_message[ :"S1032" ] = "$1: セルが重複しています"
 
 # S1033 rhs expression is not supported. Only attribute is permitted on current version."
-@@error_message[ :"S1033" ] = "å³è¾ºå¼ã¯ãµãã¼ãããã¦ãã¾ããï¼å±æ§ã®ã¿ãç¾å¨ã®ãã¼ã¸ã§ã³ã§ä½¿ç¨ã§ãã¾ãï¼"
+@@error_message[ :"S1033" ] = "右辺式はサポートされていません．属性のみが現在のバージョンで使用できます．"
 
 # S1034 $1 : cannot refer to $2\'s attribute here. Use \'composite.$3\' to refer to composite celltype\'s"
-@@error_message[ :"S1034" ] = "$1 : ããã§ã¯ $2 ã®å±æ§ãåç
-§ã§ãã¾ãã. è¤åã»ã«ã¿ã¤ãã®å±æ§ãåç
-§ãããã \'composite.$3\' ããä½¿ããã ããï¼"
+@@error_message[ :"S1034" ] = "$1 : ここでは $2 の属性を参照できません. 複合セルタイプの属性を参照するため \'composite.$3\' をお使いください．"
 
 # S1035 composite : cannot specify out of composite celltype definition"
-@@error_message[ :"S1035" ] = "composite : è¤åã»ã«ã¿ã¤ãå®ç¾©ã®å¤å´ã§ã¯æå®ã§ãã¾ããï¼"
+@@error_message[ :"S1035" ] = "composite : 複合セルタイプ定義の外側では指定できません．"
 
 # S1036 $1 : cannot refer to $2\'s here. Use \'composite.$3\' to refer to composite celltype\'s"
-@@error_message[ :"S1036" ] = "$1 : ããã§ã¯$2ã®ãã®ãåç
-§ã§ãã¾ããï¼è¤åã»ã«ã¿ã¤ãã®ãã®ãåç
-§ãããã \'composite.$3\' ããä½¿ããã ããï¼"
+@@error_message[ :"S1036" ] = "$1 : ここでは$2のものを参照できません．複合セルタイプのものを参照するため \'composite.$3\' をお使いください．"
 
 # S1037 $1: celltype plugin fail to new_cell"
-@@error_message[ :"S1037" ] = "$1: ã»ã«ã¿ã¤ããã©ã°ã¤ã³ã new_cell ã«å¤±æãã¾ããï¼"
+@@error_message[ :"S1037" ] = "$1: セルタイププラグインが new_cell に失敗しました．"
 
 # S1038 $1.$2: self allocator not supported for array entry port"
-@@error_message[ :"S1038" ] = "$1.$2: ã»ã«ãã¢ã­ã±ã¼ã¿ã¯åãå£é
-åã«å¯¾ãã¦ãµãã¼ãããã¦ãã¾ããï¼"
+@@error_message[ :"S1038" ] = "$1.$2: セルフアロケータは受け口配列に対してサポートされていません．"
 
 # S1039 \'$1\': unknown specifier for cell"
-@@error_message[ :"S1039" ] = "\'$1\': ã»ã«ã«å¯¾ããä¸æãªæå®å­ã§ãï¼"
+@@error_message[ :"S1039" ] = "\'$1\': セルに対する不明な指定子です．"
 
 # S1040 array not supported for relay allocator"
-@@error_message[ :"S1040" ] = "é
-åã¯ãªã¬ã¼ã¢ã­ã±ã¼ã¿ã«å¯¾ãã¦ãµãã¼ãããã¦ãã¾ããï¼"
+@@error_message[ :"S1040" ] = "配列はリレーアロケータに対してサポートされていません．"
 
 # S1041 \'$1_$2_$3\': not joined. cannot create internal join for relay allocator"
-@@error_message[ :"S1041" ] = "\'$1_$2_$3\': çµåããã¾ãã. ãªã¬ã¼ã¢ã­ã±ã¼ã¿ã«å¯¾ãã¦å
-é¨çµåãçæã§ãã¾ããï¼"
+@@error_message[ :"S1041" ] = "\'$1_$2_$3\': 結合されません. リレーアロケータに対して内部結合を生成できません．"
 
 # S1042 call port \'$1\' not initialized in cell \'$2\'"
-@@error_message[ :"S1042" ] = "å¼ã³å£ \'$1\' ã¯ã»ã« \'$2\' ã®ä¸­ã§åæåããã¾ããï¼"
+@@error_message[ :"S1042" ] = "呼び口 \'$1\' はセル \'$2\' の中で初期化されません．"
 
 # S1043 call port \'$1\' not initialized in cell \'$2\'. this call port is created by tecsgen. check allocator specifier"
-@@error_message[ :"S1043" ] = "å¼ã³å£ \'$1\' ã¯ã»ã« \'$2\' ã®ä¸­ã§åæåããã¾ããï¼ãã®å¼ã³å£ã¯ tecsgen ã«ããçæããã¾ãï¼ã¢ã­ã±ã¼ã¿æå®å­ãç¢ºèªãã¦ãã ããï¼"
+@@error_message[ :"S1043" ] = "呼び口 \'$1\' はセル \'$2\' の中で初期化されません．この呼び口は tecsgen により生成されます．アロケータ指定子を確認してください．"
 
 # S1044 $1: array initializer too many or few, $2 for $3"
-@@error_message[ :"S1044" ] = "$1: é
-åã®åæåå­ãå¤ããããã¾ãã¯å°ãªããã¾ãï¼$3 ã¨ããã¨ããã $2 ã«ãã¾ããï¼"
+@@error_message[ :"S1044" ] = "$1: 配列の初期化子が多すぎるかまたは少なすぎます．$3 とするところを $2 にしました．"
 
 # S1045 $1[$2]: not initialized"
-@@error_message[ :"S1045" ] = "$1[$2]: åæåããã¾ããï¼"
+@@error_message[ :"S1045" ] = "$1[$2]: 初期化されません．"
 
 # S1046 $1[$2]: not initialized"
-@@error_message[ :"S1046" ] = "$1[$2]: åæåããã¾ãã"
+@@error_message[ :"S1046" ] = "$1[$2]: 初期化されません"
 
 # S1047 size_is pointer cannot be exposed for composite attribute"
-@@error_message[ :"S1047" ] = "size_is ãæå®ããããã¤ã³ã¿å¤æ°ã¯ï¼è¤åã»ã«ã¿ã¤ãã®å±æ§åã«é¢ãã¦ã¯ï¼å¤é¨ã¸å
-¬éãããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"S1047" ] = "size_is を指定されたポインタ変数は，複合セルタイプの属性名に関しては，外部へ公開することができません．"
 
 # S1048 $1: size_is specified for non-pointer type"
-@@error_message[ :"S1048" ] = "$1: size_is ãéãã¤ã³ã¿åã«å¯¾ãã¦æå®ããã¾ããï¼"
+@@error_message[ :"S1048" ] = "$1: size_is が非ポインタ型に対して指定されました．"
 
 # S1049 $1: size_is arg not constant"
-@@error_message[ :"S1049" ] = "$1: size_is å¼æ°ãå®æ°ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1049" ] = "$1: size_is 引数が定数ではありません．"
 
 # S1050 unsuitable initializer, need array initializer"
-@@error_message[ :"S1050" ] = "ä¸é©å½ãªåæåå­ã§ãï¼é
-åã®åæåå­ãå¿
-è¦ã§ãï¼"
+@@error_message[ :"S1050" ] = "不適当な初期化子です．配列の初期化子が必要です．"
 
 # S1051 too many initializer for array, $1 for $2"
-@@error_message[ :"S1051" ] = "é
-åã«å¯¾ããåæåå­ãå¤ããã¾ãï¼$2 ã¨ããã¨ããã $1 ã«ãã¾ããï¼"
+@@error_message[ :"S1051" ] = "配列に対する初期化子が多すぎます．$2 とするところを $1 にしました．"
 
 # S1052 attribute \'$1\' not initialized in cell \'$2\'"
-@@error_message[ :"S1052" ] = "å±æ§ \'$1\' ã¯ã»ã« \'$2\' ã®ä¸­ã§åæåããã¾ããï¼"
+@@error_message[ :"S1052" ] = "属性 \'$1\' はセル \'$2\' の中で初期化されません．"
 
 # S1053 $1 must be singleton. inner cell \'$2\' is singleton"
-@@error_message[ :"S1053" ] = "$1 ã¯ã·ã³ã°ã«ãã³ã§ããå¿
-è¦ãããã¾ãï¼å
-é¨ã»ã« \'$2\' ã¯ã·ã³ã°ã«ãã³ã§ãï¼"
+@@error_message[ :"S1053" ] = "$1 はシングルトンである必要があります．内部セル \'$2\' はシングルトンです．"
 
 # S1054 $1 : specified active but has no active in this celltype"
-@@error_message[ :"S1054" ] = "$1 : ã¢ã¯ãã£ãã«æå®ããã¾ãããï¼ãã®ã»ã«ã¿ã¤ãã®ä¸­ã«ã¯ã¢ã¯ãã£ããªã»ã«ãããã¾ããï¼"
+@@error_message[ :"S1054" ] = "$1 : アクティブに指定されましたが，このセルタイプの中にはアクティブなセルがありません．"
 
 # S1055 $1 must be active. inner cell \'$2\' is active"
-@@error_message[ :"S1055" ] = "$1 ã¯ active ã§ããå¿
-è¦ãããã¾ã. å
-é¨ã»ã« \'$2\' ãã¢ã¯ãã£ãã§ãï¼"
+@@error_message[ :"S1055" ] = "$1 は active である必要があります. 内部セル \'$2\' がアクティブです．"
 
 # S1056 $1 : cannot export, nothing designated"
-@@error_message[ :"S1056" ] = "$1 : å¤é¨ã«å
-¬éãããã¨ãã§ãã¾ããï¼ä½ãæå®ããã¦ãã¾ããï¼"
+@@error_message[ :"S1056" ] = "$1 : 外部に公開することができません．何も指定されていません．"
 
 # S1057 $1 not found in $2"
-@@error_message[ :"S1057" ] = "$1 ã $2 ã®ä¸­ã«è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1057" ] = "$1 が $2 の中に見つかりません．"
 
 # S1058 \'$1\' : cannot export var"
-@@error_message[ :"S1058" ] = "\'$1\' : å¤æ°ãå¤é¨ã«å
-¬éãããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"S1058" ] = "\'$1\' : 変数を外部に公開することができません．"
 
 # S1059 \'$1\' : exporting attribute. write in cell or use \'=\' to export attribute"
-@@error_message[ :"S1059" ] = "\'$1\' : å±æ§ãå
-¬éãã¦ãã¾ã. ã»ã«ã®ä¸­ã«è¨è¿°ãããã¾ãã¯å±æ§ã®å
-¬éã®ããã« \'=\' ãä½¿ã£ã¦ä¸ããï¼"
+@@error_message[ :"S1059" ] = "\'$1\' : 属性を公開しています. セルの中に記述するかまたは属性の公開のために \'=\' を使って下さい．"
 
 # S1060 \'$1\' : port type mismatch. $2 type is allowed here."
-@@error_message[ :"S1060" ] = "\'$1\' : å£(port)ã®åãæ´åãã¦ãã¾ãã. ããã§ã¯ $2 åãä½¿ç¨ã§ãã¾ãï¼"
+@@error_message[ :"S1060" ] = "\'$1\' : 口(port)の型が整合していません. ここでは $2 型が使用できます．"
 
 # S1061 \'$1\' : not defined"
-@@error_message[ :"S1061" ] = "\'$1\' : å®ç¾©ããã¦ãã¾ããï¼"
+@@error_message[ :"S1061" ] = "\'$1\' : 定義されていません．"
 
 # S1062 $1 has no export definition"
-@@error_message[ :"S1062" ] = "$1 ã«ã¯å¤é¨å®ç¾©ãããã¾ããï¼"
+@@error_message[ :"S1062" ] = "$1 には外部定義がありません．"
 
 # S1063 $1 is port but previously defined as an attribute"
-@@error_message[ :"S1063" ] = "$1 ã¯å£(port)ã§ããããããåã«å±æ§ã¨ãã¦å®ç¾©ããã¾ããï¼"
+@@error_message[ :"S1063" ] = "$1 は口(port)ですがそれより前に属性として定義されました．"
 
 # S1064 $1 : type \'$2$3\' mismatch with pprevious definition\'$4$5\'"
-@@error_message[ :"S1064" ] = "$1 : å \'$2$3\' ã¯ããä»¥åã®å®ç¾© \'$4$5\' ã¨æ´åãã¦ã¾ããï¼"
+@@error_message[ :"S1064" ] = "$1 : 型 \'$2$3\' はそれ以前の定義 \'$4$5\' と整合してません．"
 
 # S1065 $1 : port type $2 mismatch with previous definition $3"
-@@error_message[ :"S1065" ] = "$1 : å£(port)å $2 ã¯ããä»¥åã®å®ç¾© $3 ã¨æ´åãã¦ãã¾ããï¼"
+@@error_message[ :"S1065" ] = "$1 : 口(port)型 $2 はそれ以前の定義 $3 と整合していません．"
 
 # S1066 $1 : signature \'$2\' mismatch with previous definition \'$3\'"
-@@error_message[ :"S1066" ] = "$1 : ã·ã°ããã£ \'$2\' ã¯ããä»¥åã®å®ç¾© \'$3\' ã¨æ´åãã¦ãã¾ããï¼"
+@@error_message[ :"S1066" ] = "$1 : シグニチャ \'$2\' はそれ以前の定義 \'$3\' と整合していません．"
 
 # S1067 $1 : array size mismatch with previous definition"
-@@error_message[ :"S1067" ] = "$1 : é
-åã®ãµã¤ãºãããä»¥åã®å®ç¾©ã¨æ´åãã¦ãã¾ããï¼"
+@@error_message[ :"S1067" ] = "$1 : 配列のサイズがそれ以前の定義と整合していません．"
 
 # S1068 $1 : optional specifier mismatch with previous definition"
-@@error_message[ :"S1068" ] = "$1 : ãªãã·ã§ãã«ãªæå®å­ãããä»¥åã®å®ç¾©ã¨æ´åãã¦ãã¾ããï¼"
+@@error_message[ :"S1068" ] = "$1 : オプショナルな指定子がそれ以前の定義と整合していません．"
 
 # S1069 $1 is an attribute but previously defined as a port"
-@@error_message[ :"S1069" ] = "$1 ã¯å±æ§ã§ããããããåã«å£(port)ã¨ãã¦å®ç¾©ããã¾ããï¼"
+@@error_message[ :"S1069" ] = "$1 は属性ですがそれより前に口(port)として定義されました．"
 
 # S1070 $1: size_is pointer cannot be exposed for composite attribute"
-@@error_message[ :"S1070" ] = "$1: size_is ãæå®ããããã¤ã³ã¿å¤æ°ã¯ï¼è¤åã»ã«ã¿ã¤ãã®å±æ§åã«é¢ãã¦ã¯ï¼å
-¬éãããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"S1070" ] = "$1: size_is を指定されたポインタ変数は，複合セルタイプの属性名に関しては，公開することができません．"
 
 # S1071 $1 cannot be specified for composite"
-@@error_message[ :"S1071" ] = "$1 ã¯è¤åã»ã«ã«å¯¾ãã¦æå®ã§ãã¾ããï¼"
+@@error_message[ :"S1071" ] = "$1 は複合セルに対して指定できません．"
 
 # S1072 $1: entry port: sizeless array not supported in current version"
-@@error_message[ :"S1072" ] = "$1: åãå£: ç¾å¨ã®çã§ã¯ãµã¤ãºæªæå®ã®é
-åã¯ãµãã¼ãããã¦ãã¾ããï¼"
+@@error_message[ :"S1072" ] = "$1: 受け口: 現在の版ではサイズ未指定の配列はサポートされていません．"
 
 # S1073 Not constant expression $1"
-@@error_message[ :"S1073" ] = "$1 ã¯å®æ°å¼ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1073" ] = "$1 は定数式ではありません．"
 
 # S1074 Not Integer $1"
-@@error_message[ :"S1074" ] = "$1 ã¯æ´æ°ã§ã¯ããã¾ãã"
+@@error_message[ :"S1074" ] = "$1 は整数ではありません"
 
 # S1075 \'$1\' signature not found"
-@@error_message[ :"S1075" ] = "\'$1\' ã·ã°ããã£ãè¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1075" ] = "\'$1\' シグニチャが見つかりません．"
 
 # S1076 \'$1\' not signature"
-@@error_message[ :"S1076" ] = "\'$1\' ã¯ã·ã°ããã£ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1076" ] = "\'$1\' はシグニチャではありません．"
 
 # S1077 inline: cannot be specified for call port"
-@@error_message[ :"S1077" ] = "inline: å¼ã³å£ã«å¯¾ãã¦æå®ã§ãã¾ããï¼"
+@@error_message[ :"S1077" ] = "inline: 呼び口に対して指定できません．"
 
 # S1078 optional: cannot be specified for entry port"
-@@error_message[ :"S1078" ] = "optional: åãå£ã«å¯¾ãã¦æå®ã§ãã¾ããï¼"
+@@error_message[ :"S1078" ] = "optional: 受け口に対して指定できません．"
 
 # S1079 allocator: cannot be specified for call port"
-@@error_message[ :"S1079" ] = "allocator: å¼ã³å£ã«å¯¾ãã¦æå®ã§ãã¾ããï¼"
+@@error_message[ :"S1079" ] = "allocator: 呼び口に対して指定できません．"
 
 # S1080 duplicate allocator specifier"
-@@error_message[ :"S1080" ] = "ã¢ã­ã±ã¼ã¿æå®å­ãéè¤ãã¦ãã¾ãï¼"
+@@error_message[ :"S1080" ] = "アロケータ指定子が重複しています．"
 
 # S1081 self allocator not supported yet"
-@@error_message[ :"S1081" ] = "ã»ã«ãã¢ã­ã±ã¼ã¿ã¯ã¾ã ãµãã¼ãããã¦ãã¾ãã"
+@@error_message[ :"S1081" ] = "セルフアロケータはまだサポートされていません"
 
 # S1082 function \'$1\' not found in signature"
-@@error_message[ :"S1082" ] = "é¢æ° \'$1\' ãã·ã°ããã£ã§è¦ã¤ããã¾ãã"
+@@error_message[ :"S1082" ] = "関数 \'$1\' がシグニチャで見つかりません"
 
 # S1083 \'$1\' not found in function \'$2\'"
-@@error_message[ :"S1083" ] = "\'$1\' ãé¢æ° \'$2\' ã§è¦ã¤ããã¾ãã"
+@@error_message[ :"S1083" ] = "\'$1\' が関数 \'$2\' で見つかりません"
 
 # S1084 \'$1\' in function \'$2\' is not send or receive"
-@@error_message[ :"S1084" ] = "\'$2\' å
-ã® \'$1\' ãåºæ¬æå®å­ send ã¾ãã¯ receive ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1084" ] = "\'$2\' 内の \'$1\' が基本指定子 send または receive ではありません．"
 
 # S1085 duplicate allocator specifier for \'$1_$2\'"
-@@error_message[ :"S1085" ] = "\'$1_$2\' ã«å¯¾ããéè¤ããã¢ã­ã±ã¼ã¿æå®å­ã§ãï¼"
+@@error_message[ :"S1085" ] = "\'$1_$2\' に対する重複したアロケータ指定子です．"
 
 # S1086 rhs not call_port.func.param for $1_$2"
-@@error_message[ :"S1086" ] = "$1_$2 ã«å¯¾ãã¦ not call_port.func.param ã®å½¢å¼ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1086" ] = "$1_$2 に対して not call_port.func.param の形式ではありません．"
 
 # S1087 function \'$1\' not found in signature \'$2\'"
-@@error_message[ :"S1087" ] = "é¢æ° \'$1\' ãã·ã°ããã£ \'$2\' ã®ä¸­ã«è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1087" ] = "関数 \'$1\' がシグニチャ \'$2\' の中に見つかりません．"
 
 # S1088 \'$1\' not found in function \'$2\'"
-@@error_message[ :"S1088" ] = "\'$1\' ãé¢æ° \'$2\' ã®ä¸­ã«è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1088" ] = "\'$1\' が関数 \'$2\' の中に見つかりません．"
 
 # S1089 relay allocator send/receive mismatch between $1.$2 and $3_$4.$5"
-@@error_message[ :"S1089" ] = "ãªã¬ã¼ã¢ã­ã±ã¼ã¿ send/receive ã¯ $1.$2 åã³ $3_$4.$5 ã®éã§æ´åãã¦ãã¾ããï¼"
+@@error_message[ :"S1089" ] = "リレーアロケータ send/receive は $1.$2 及び $3_$4.$5 の間で整合していません．"
 
 # S1090 \'$1\' in function \'$2\' is not send or receive"
-@@error_message[ :"S1090" ] = "é¢æ° \'$2\' å
-ã® \'$1\' ã send ã¾ãã¯ receive ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1090" ] = "関数 \'$2\' 内の \'$1\' が send または receive ではありません．"
 
 # S1091 call port \'$1\' not found in celltype $2"
-@@error_message[ :"S1091" ] = "å¼ã³å£ \'$1\' ãã»ã«ã¿ã¤ã $2 ã®ä¸­ã«è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1091" ] = "呼び口 \'$1\' がセルタイプ $2 の中に見つかりません．"
 
 # S1092 \'$1\' not namespace"
-@@error_message[ :"S1092" ] = "\'$1\' ã¯ãã¼ã ã¹ãã¼ã¹ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1092" ] = "\'$1\' はネームスペースではありません．"
 
 # S1093 $1 : undefined cell"
-@@error_message[ :"S1093" ] = "$1 : æªå®ç¾©ã®ã»ã«ã§ã"
+@@error_message[ :"S1093" ] = "$1 : 未定義のセルです"
 
 # S1094 $1: pointer is not constant. check \'const\'"
-@@error_message[ :"S1094" ] = "$1: ãã¤ã³ã¿ãå®æ°ã§ã¯ããã¾ããï¼\'const\' ãç¢ºèªãã¦ãã ãã"
+@@error_message[ :"S1094" ] = "$1: ポインタが定数ではありません．\'const\' を確認してください"
 
 # S1095 $1: not constant"
-@@error_message[ :"S1095" ] = "$1: å®æ°ã§ã¯ããã¾ãã"
+@@error_message[ :"S1095" ] = "$1: 定数ではありません"
 
 # S1096 $1: should be int, float, bool or pointer type"
-@@error_message[ :"S1096" ] = "$1: int, float, bool ã¾ãã¯ãã¤ã³ã¿åã§ããå¿
-è¦ãããã¾ã"
+@@error_message[ :"S1096" ] = "$1: int, float, bool またはポインタ型である必要があります"
 
 # S1097 $1: has no initializer"
-@@error_message[ :"S1097" ] = "$1: åæåå­ãæã£ã¦ãã¾ãã"
+@@error_message[ :"S1097" ] = "$1: 初期化子を持っていません"
 
 # S1098 $1: has unsuitable initializer"
-@@error_message[ :"S1098" ] = "$1: ä¸é©å½ãªåæåå­ãããã¾ãï¼"
+@@error_message[ :"S1098" ] = "$1: 不適当な初期化子があります．"
 
 # S1099 array subscript not constant"
-@@error_message[ :"S1099" ] = "é
-åæ·»æ°ãå®æ°ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1099" ] = "配列添数が定数ではありません．"
 
 # S1100 $1: cannot initialize var"
-@@error_message[ :"S1100" ] = "$1: å¤æ°ãåæåã§ãã¾ããï¼"
+@@error_message[ :"S1100" ] = "$1: 変数を初期化できません．"
 
 # S1101 \'$1\' cannot initialize entry port"
-@@error_message[ :"S1101" ] = "\'$1\' åãå£ãåæåã§ãã¾ããï¼"
+@@error_message[ :"S1101" ] = "\'$1\' 受け口を初期化できません．"
 
 # S1102 $1: must specify array subscript here"
-@@error_message[ :"S1102" ] = "$1: ããã§ã¯é
-åæ·»æ°ãæå®ããå¿
-è¦ãããã¾ãï¼"
+@@error_message[ :"S1102" ] = "$1: ここでは配列添数を指定する必要があります．"
 
 # S1103 $1: need array subscript"
-@@error_message[ :"S1103" ] = "$1: é
-åæ·»æ°ãå¿
-è¦ã§ãï¼"
+@@error_message[ :"S1103" ] = "$1: 配列添数が必要です．"
 
 # S1104 $1: need array subscript number. ex. \'[0]\'"
-@@error_message[ :"S1104" ] = "$1: é
-åæ·»æ°ã®æ°å¤ãå¿
-è¦ã§ãï¼(ä¾) \'[0]\'"
+@@error_message[ :"S1104" ] = "$1: 配列添数の数値が必要です．(例) \'[0]\'"
 
 # S1105 $1: cannot specify array subscript here"
-@@error_message[ :"S1105" ] = "$1: ããã§ã¯é
-åæ·»æ°ãæå®ãããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"S1105" ] = "$1: ここでは配列添数を指定することができません．"
 
 # S1106 $1: cannot specify array subscript number. use \'[]\'"
-@@error_message[ :"S1106" ] = "$1: é
-åæ·»æ°ã®æ°å¤ãæå®ãããã¨ãåºæ¥ã¾ããï¼\'[]\' ããä½¿ããã ããï¼"
+@@error_message[ :"S1106" ] = "$1: 配列添数の数値を指定することが出来ません．\'[]\' をお使いください．"
 
 # S1107 to export port, use \'cCall => composite.cCall\'"
-@@error_message[ :"S1107" ] = "å£(port)ãå¤é¨ã«å
-¬éãããã, \'cCall => composite.cCall\' ããä½¿ããã ããï¼"
+@@error_message[ :"S1107" ] = "口(port)を外部に公開するため, \'cCall => composite.cCall\' をお使いください．"
 
 # S1108 $1: rhs not \'Cell.ePort\' form"
-@@error_message[ :"S1108" ] = "$1: å³è¾ºã \'Cell.ePort\' ã®å½¢å¼ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1108" ] = "$1: 右辺が \'Cell.ePort\' の形式ではありません．"
 
 # S1109 \'$1\' not found"
-@@error_message[ :"S1109" ] = "\'$1\' ãè¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1109" ] = "\'$1\' が見つかりません．"
 
 # S1110 \'$1\' not cell"
-@@error_message[ :"S1110" ] = "\'$1\' ã»ã«ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1110" ] = "\'$1\' セルではありません．"
 
 # S1111 \'$1\' not found"
-@@error_message[ :"S1111" ] = "\'$1\' ãè¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1111" ] = "\'$1\' が見つかりません．"
 
 # S1112 \'$1\' not entry port"
-@@error_message[ :"S1112" ] = "\'$1\' åãå£ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1112" ] = "\'$1\' 受け口ではありません．"
 
 # S1113 \'$1\' signature mismatch"
-@@error_message[ :"S1113" ] = "\'$1\' ã·ã°ããã£ãæ´åãã¦ãã¾ããï¼"
+@@error_message[ :"S1113" ] = "\'$1\' シグニチャが整合していません．"
 
 # S1114 \'$1\' should be array"
-@@error_message[ :"S1114" ] = "\'$1\' é
-åã§ããå¿
-è¦ãããã¾ãï¼"
+@@error_message[ :"S1114" ] = "\'$1\' 配列である必要があります．"
 
 # S1115 $1[$2]: subscript out of range (< $3)"
-@@error_message[ :"S1115" ] = "$1[$2]: é
-åã®æ·»æ°ãç¯å²å¤ã®å¤ã§ãï¼(< $3)"
+@@error_message[ :"S1115" ] = "$1[$2]: 配列の添数が範囲外の値です．(< $3)"
 
 # S1116 \'$1\' entry port is not array"
-@@error_message[ :"S1116" ] = "\'$1\' åãå£ãé
-åã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1116" ] = "\'$1\' 受け口が配列ではありません．"
 
 # S1117 \'$1\' not in celltype"
-@@error_message[ :"S1117" ] = "\'$1\' ã¯ã»ã«ã¿ã¤ãå
-ã«ããã¾ããï¼"
+@@error_message[ :"S1117" ] = "\'$1\' はセルタイプ内にありません．"
 
 # S1118 $1: going out from region \'$2\' not permitted"
-@@error_message[ :"S1118" ] = "$1: ãªã¼ã¸ã§ã³ $2 ãã out ãããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"S1118" ] = "$1: リージョン $2 から out することができません．"
 
 # S1119 $1: going from region \'$2\' to \'$3\' not permitted"
-@@error_message[ :"S1119" ] = "$1: ãªã¼ã¸ã§ã³ $2 ãããªã¼ã¸ã§ã³ $3ã¸çµåã§ãã¾ããï¼"
+@@error_message[ :"S1119" ] = "$1: リージョン $2 からリージョン $3へ結合できません．"
 
 # S1120 $1: going in to region \'$2\' not permitted"
-@@error_message[ :"S1120" ] = "$1: ãªã¼ã¸ã§ã³ \'$2\' ã¸ in ãããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"S1120" ] = "$1: リージョン \'$2\' へ in することができません．"
 
 # S1121 \'$1\' in region \'$2\' cannot be directly joined $3 in  $4"
-@@error_message[ :"S1121" ] = "ãªã¼ã¸ã§ã³ \'$2\' å
-ã® \'$1\' ã¯ç´æ¥ $4 å
-ã® $3 ã«çµåã§ãã¾ããï¼"
+@@error_message[ :"S1121" ] = "リージョン \'$2\' 内の \'$1\' は直接 $4 内の $3 に結合できません．"
 
 # S1122 $1 : not port: \'through\' can be specified only for port"
-@@error_message[ :"S1122" ] = "$1 :å£(port) ã§ã¯ããã¾ãã: \'through\' ã¯å£(port)ã«å¯¾ãã¦ã®ã¿æå®ã§ãã¾ãï¼"
+@@error_message[ :"S1122" ] = "$1 :口(port) ではありません: \'through\' は口(port)に対してのみ指定できます．"
 
 # S1123 $1 : not port: \'through\' can be specified only for port"
-@@error_message[ :"S1123" ] = "$1 :å£(port) ã§ã¯ããã¾ãã: \'through\' ã¯å£(port)ã«å¯¾ãã¦ã®ã¿æå®ã§ãã¾ãï¼"
+@@error_message[ :"S1123" ] = "$1 :口(port) ではありません: \'through\' は口(port)に対してのみ指定できます．"
 
 # S1124 $1: plugin function failed: \'get_through_entry_port_name\'"
-@@error_message[ :"S1124" ] = "$1: ãã©ã°ã¤ã³é¢æ°ãå¤±æãã¾ããï¼: \'get_through_entry_port_name\'"
+@@error_message[ :"S1124" ] = "$1: プラグイン関数が失敗しました．: \'get_through_entry_port_name\'"
 
 # S1125 $1: not generated cell \'$2\'"
-@@error_message[ :"S1125" ] = "$1: çæãããã»ã« \'$2\' ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1125" ] = "$1: 生成されたセル \'$2\' ではありません．"
 
 # S1126 $1: fail to new"
-@@error_message[ :"S1126" ] = "$1: new ã«å¤±æãã¾ããï¼"
+@@error_message[ :"S1126" ] = "$1: new に失敗しました．"
 
 # S1127 \'$1\' duplicate"
-@@error_message[ :"S1127" ] = "\'$1\' ãéè¤ãã¦ãã¾ãï¼"
+@@error_message[ :"S1127" ] = "\'$1\' が重複しています．"
 
 # S1128 \'$1\' inconsistent array definition"
-@@error_message[ :"S1128" ] = "\'$1\' ã¯ä¸è²«ããªãé
-åå®ç¾©ã§ãï¼"
+@@error_message[ :"S1128" ] = "\'$1\' は一貫しない配列定義です．"
 
 # S1129 \'$1\' redefinition of subscript $1"
-@@error_message[ :"S1129" ] = "\'$1\' ã¯é
-åæ·»æ° $1 ã®åå®ç¾©ã§ãï¼"
+@@error_message[ :"S1129" ] = "\'$1\' は配列添数 $1 の再定義です．"
 
 # S1130 \'$1\' inconsistent array definition"
-@@error_message[ :"S1130" ] = "\'$1\' ã¯ä¸è²«ããªãé
-åå®ç¾©ã§ãï¼"
+@@error_message[ :"S1130" ] = "\'$1\' は一貫しない配列定義です．"
 
 # S1131 \'$1.$2\' has duplicate initializer"
-@@error_message[ :"S1131" ] = "\'$1.$2\' ã«ã¯éè¤ããåæåå­ãããã¾ãï¼"
+@@error_message[ :"S1131" ] = "\'$1.$2\' には重複した初期化子があります．"
 
 # S1132 $1: 1st parameter is not string(file name)"
-@@error_message[ :"S1132" ] = "$1: ç¬¬1ãã©ã¡ã¼ã¿ã string(ãã¡ã¤ã«å) ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1132" ] = "$1: 第1パラメータが string(ファイル名) ではありません．"
 
 # S1133 $1: 2nd parameter is not string(fromat)"
-@@error_message[ :"S1133" ] = "$1: ç¬¬2ãã©ã¡ã¼ã¿ã string(ãã¡ã¤ã«å) ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1133" ] = "$1: 第2パラメータが string(ファイル名) ではありません．"
 
 # S1134 $1: unknown factory function"
-@@error_message[ :"S1134" ] = "$1: ä¸æãªãã¡ã¯ããªé¢æ°ã§ãï¼"
+@@error_message[ :"S1134" ] = "$1: 不明なファクトリ関数です．"
 
 # S1135 celltype factory can\'t have parameter(s)"
-@@error_message[ :"S1135" ] = "ã»ã«ã¿ã¤ããã¡ã¯ããªã¯ãã©ã¡ã¼ã¿ãæã¤ãã¨ãã§ãã¾ããï¼"
+@@error_message[ :"S1135" ] = "セルタイプファクトリはパラメータを持つことができません．"
 
 # S1136 \'$1\': not found"
-@@error_message[ :"S1136" ] = "\'$1\': è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1136" ] = "\'$1\': 見つかりません．"
 
 # S1137 \'$1\': not attribute"
-@@error_message[ :"S1137" ] = "\'$1\': å±æ§ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1137" ] = "\'$1\': 属性ではありません．"
 
 # S1138 internal error Factory.check_arg()"
-@@error_message[ :"S1138" ] = "Factory.check_arg() ã®å
-é¨ã¨ã©ã¼ã§ãï¼"
+@@error_message[ :"S1138" ] = "Factory.check_arg() の内部エラーです．"
 
 # S1139 $1: region path mismatch. previous path: $2"
-@@error_message[ :"S1139" ] = "$1: ãªã¼ã¸ã§ã³ãã¹ãæ´åãã¦ãã¾ããï¼ä»¥åã®ãã¹: $2"
+@@error_message[ :"S1139" ] = "$1: リージョンパスが整合していません．以前のパス: $2"
 
 # S1140 $1: region specifier must place at first appearence"
-@@error_message[ :"S1140" ] = "$1: ãªã¼ã¸ã§ã³æå®å­ã¯æåã«é
-ç½®ããå¿
-è¦ãããã¾ãï¼"
+@@error_message[ :"S1140" ] = "$1: リージョン指定子は最初に配置する必要があります．"
 
 # S1141 $1 duplication, previous one : $2"
-@@error_message[ :"S1141" ] = "$1 ãéè¤ãã¦ãã¾ã, ä»¥åã®å¤ : $2"
+@@error_message[ :"S1141" ] = "$1 が重複しています, 以前の値 : $2"
 
 # S1142 $1 not found in search path"
-@@error_message[ :"S1142" ] = "$1 ãæ¤ç´¢ãã¹ã®ä¸­ã«è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1142" ] = "$1 が検索パスの中に見つかりません．"
 
 # S1143 import_C: arg2: mismatch with previous one"
-@@error_message[ :"S1143" ] = "import_C: arg2: ä»¥åã®ãã®ã¨æ´åãã¦ãã¾ããï¼"
+@@error_message[ :"S1143" ] = "import_C: arg2: 以前のものと整合していません．"
 
 # S1144 $1: temporary C source: open error"
-@@error_message[ :"S1144" ] = "$1: ä¸æçãª C ã½ã¼ã¹: ãªã¼ãã³ã¨ã©ã¼ã§ãï¼"
+@@error_message[ :"S1144" ] = "$1: 一時的な C ソース: オープンエラーです．"
 
 # S1145 $1: temporary C source: writing error"
-@@error_message[ :"S1145" ] = "$1: ä¸æçãª C ã½ã¼ã¹: æ¸è¾¼ã¿ã¨ã©ã¼ã§ãï¼"
+@@error_message[ :"S1145" ] = "$1: 一時的な C ソース: 書込みエラーです．"
 
 # S1146 $1: error occured while CPP"
-@@error_message[ :"S1146" ] = "$1: CPP å®è¡ä¸­ã«ã¨ã©ã¼ãçºçãã¾ããï¼"
+@@error_message[ :"S1146" ] = "$1: CPP 実行中にエラーが発生しました．"
 
 # S1147 $1: popen for CPP failed"
-@@error_message[ :"S1147" ] = "$1: CPPã«å¯¾ãã popen ãå¤±æãã¾ããï¼"
+@@error_message[ :"S1147" ] = "$1: CPPに対する popen が失敗しました．"
 
 # S1148 $1 not found in search path"
-@@error_message[ :"S1148" ] = "$1 ãæ¤ç´¢ãã¹ã®ä¸­ã«è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1148" ] = "$1 が検索パスの中に見つかりません．"
 
 # S1149 $1 not signature"
-@@error_message[ :"S1149" ] = "$1 ã·ã°ããã£ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1149" ] = "$1 シグニチャではありません．"
 
 # S1150 $1: fail to new"
-@@error_message[ :"S1150" ] = "$1: new ã«å¤±æãã¾ããï¼"
+@@error_message[ :"S1150" ] = "$1: new に失敗しました．"
 
 # S1151 $1: not namespace"
-@@error_message[ :"S1151" ] = "$1: ãã¼ã ã¹ãã¼ã¹ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1151" ] = "$1: ネームスペースではありません．"
 
 # S1152 $1: call port cannot have fixed join"
-@@error_message[ :"S1152" ] = "$1: å¼ã³å£ã¯åºå®çµåãæã¤ãã¨ãã§ãã¾ããï¼"
+@@error_message[ :"S1152" ] = "$1: 呼び口は固定結合を持つことができません．"
 
 # "S1153 $1: cannot be entry port array for fixed join port"
-@@error_message[ :"S1153" ] = "$1: åºå®çµåã®å£ã«å¯¾ããåãå£é
-åã¯ããå¾ã¾ããï¼"
+@@error_message[ :"S1153" ] = "$1: 固定結合の口に対する受け口配列はあり得ません．"
 
 # "S1154 $1: must be singleton celltype for fixed join"
-@@error_message[ :"S1154" ] = "$1: åºå®çµåã«å¯¾ããã·ã³ã°ã«ãã³ã»ã«ã¿ã¤ãã§ããå¿
-è¦ãããã¾ãï¼"
+@@error_message[ :"S1154" ] = "$1: 固定結合に対するシングルトンセルタイプである必要があります．"
 
 # "S1155 $1: not celltype or not found"
-@@error_message[ :"S1155" ] = "$1: ã»ã«ã¿ã¤ãã§ã¯ãªããã¾ãã¯è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1155" ] = "$1: セルタイプではないかまたは見つかりません．"
 
 # "S1156 $1: not call port or not found"
-@@error_message[ :"S1156" ] = "$1: å¼ã³å£ã§ã¯ãªããã¾ãã¯è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1156" ] = "$1: 呼び口ではないかまたは見つかりません．"
 
 # "S1157 $1: sized array or not array"
-@@error_message[ :"S1157" ] = "$1: ãµã¤ãºæå®ãããé
-åãã¾ãã¯é
-åã§ã¯ããã¾ããï¼"
+@@error_message[ :"S1157" ] = "$1: サイズ指定された配列かまたは配列ではありません．"
 
 # "S1158 $1: singleton cell not found for fixed join"
-@@error_message[ :"S1158" ] = "$1: ã·ã³ã°ã«ãã³ã»ã«ãåºå®çµåã«å¯¾ãã¦è¦ã¤ããã¾ããï¼"
+@@error_message[ :"S1158" ] = "$1: シングルトンセルが固定結合に対して見つかりません．"
 
 # S1159 $1: non-size_is pointer cannot be initialized with array initializer"
-@@error_message[ :"S1159" ] = "$1: size_is æå®ããã¦ããªããã¤ã³ã¿ã¯ãé
-ååæåå­ã§åæåã§ãã¾ãã"
+@@error_message[ :"S1159" ] = "$1: size_is 指定されていないポインタは、配列初期化子で初期化できません"
 
 # S1160 $1 must be constant for id"
-@@error_message[ :"S1160" ] = "$1 id ã¯å®æ°ã§ãªããã°ãªãã¾ãã"
+@@error_message[ :"S1160" ] = "$1 id は定数でなければなりません"
 
 # S1161 $1 must be constant for id"
-@@error_message[ :"S1161" ] = "$1 id ã¯å®æ°ã§ãªããã°ãªãã¾ãã"
+@@error_message[ :"S1161" ] = "$1 id は定数でなければなりません"
 
 # S1162 $1: id cannot be 0"
-@@error_message[ :"S1162" ] = "$1: id ã« 0 ãæå®ã§ãã¾ãã"
+@@error_message[ :"S1162" ] = "$1: id に 0 を指定できません"
 
 # S1163 generate specifier duplicate"
-@@error_message[ :"S1163" ] = "generate æå®å­ãéè¤ãã¦ãã¾ã"
+@@error_message[ :"S1163" ] = "generate 指定子が重複しています"
 
 # S1164 '$1' set_specified_id: id not positive integer '$2'"
-@@error_message[ :"S1164" ] = "'$1' id ãæ­£æ´æ°ã§ããã¾ãã '$2'"
+@@error_message[ :"S1164" ] = "'$1' id が正整数でありません '$2'"
 
 # S1165 '$1' set_specified_id: id duplicate"
-@@error_message[ :"S1165" ] = "'$1' id æå®å­ãéè¤ãã¦ãã¾ã"
+@@error_message[ :"S1165" ] = "'$1' id 指定子が重複しています"
 
 # S1166 $1: fail to new"
-@@error_message[ :"S1166" ] = "$1: ãã©ã°ã¤ã³ã®çæã«å¤±æãã¾ãã"
+@@error_message[ :"S1166" ] = "$1: プラグインの生成に失敗しました"
 
 # S1167 \'$1\': relay mismatch \'$2\'"
-@@error_message[ :"S1167" ] = "\'$1\': ãªã¬ã¼ã«ããããã¾ãã \'$2\'"
+@@error_message[ :"S1167" ] = "\'$1\': リレーにマッチしません \'$2\'"
 
 # S1168 too many initializer for array, $1 for $2"
-@@error_message[ :"S1168" ] = "é
-ååæåå­ãå¤ããã¾ã $1 for $2"
+@@error_message[ :"S1168" ] = "配列初期化子が多すぎます $1 for $2"
 
 # S1169 $1: non-size_is pointer cannot be initialized with array initializer"
-@@error_message[ :"S1169" ] = "$1: size_is æå®ããã¦ããªããã¤ã³ã¿ã«é
-ååæåå­ãæå®ã§ãã¾ãã"
+@@error_message[ :"S1169" ] = "$1: size_is 指定されていないポインタに配列初期化子を指定できません"
 
 # S1170 \'$1\' has size_is but export attr \'$2\' doesn't have"
-@@error_message[ :"S1170" ] = "\'$1\' ã« size_is æå®ããã¦ãã¾ããã¨ã¯ã¹ãã¼ããã \'$2\' ã«æå®ããã¦ãã¾ãã"
+@@error_message[ :"S1170" ] = "\'$1\' に size_is 指定されていますがエクスポートする \'$2\' に指定されていません"
 
 # S1171 \'$1\' size_is argument of \'$2\' not exported"
-@@error_message[ :"S1171" ] = "\'$1\' \'$2\' size_is å¼æ°ãã¨ã¯ã¹ãã¼ãããã¦ãã¾ãã"
+@@error_message[ :"S1171" ] = "\'$1\' \'$2\' size_is 引数がエクスポートされていません"
 
 # S1172 \'$1\' size_is argument mismatch with exporting one \'$2\'"
-@@error_message[ :"S1172" ] = "\'$1\' size_is å¼æ°ãã¨ã¯ã¹ãã¼ãããã¦ãã \'$2\' ã¨ä¸è´ãã¾ãã"
+@@error_message[ :"S1172" ] = "\'$1\' size_is 引数がエクスポートされている \'$2\' と一致しません"
 
 # S1173 $1: allocator mismatch from $2's allocator"
-@@error_message[ :"S1173" ] = "$1: ã¢ã­ã±ã¼ã¿ã $2' ã®ã¢ã­ã±ã¼ã¿ã¨ä¸è´ãã¾ãã"
+@@error_message[ :"S1173" ] = "$1: アロケータが $2' のアロケータと一致しません"
 
 # S1174 $1 not suitable for lhs, suitable lhs: 'func.param'"
-@@error_message[ :"S1174" ] = "$1 å·¦è¾ºãä¸é©åã§ããé©åãªå·¦è¾ºã¯ 'func.param' ã®å½¢å¼ã§ã"
+@@error_message[ :"S1174" ] = "$1 左辺が不適切です。適切な左辺は 'func.param' の形式です"
 
 # S1175 $1 not found or not allocator entry port for $2"
-@@error_message[ :"S1175" ] = "$1  $2 ã®ã¢ã­ã±ã¼ã¿åãå£ãè¦å½ãããªãããã¢ã­ã±ã¼ã¿åãå£ã§ã¯ããã¾ãã"
+@@error_message[ :"S1175" ] = "$1  $2 のアロケータ受け口が見当たらないか、アロケータ受け口ではありません"
 
 # S1176 rhs not in 'call_port.func.param' form for $1_$2"
-@@error_message[ :"S1176" ] = "å³è¾ºã 'call_port.func.param' å½¢å¼ã§ããã¾ãã ($1_$2)"
+@@error_message[ :"S1176" ] = "右辺が 'call_port.func.param' 形式でありません ($1_$2)"
 
 # S1177 cannot specify 'through' in composite in current version"
-@@error_message[ :"S1177" ] = "ç¾å¨ã®ãã¼ã¸ã§ã³ã§ã¯ãã³ã³ãã¸ããã»ã«ã« 'through'ãæå®ã§ãã¾ãã"
+@@error_message[ :"S1177" ] = "現在のバージョンでは、コンポジットセルに 'through'を指定できません"
 
 # S1178 $1 region type specifier duplicate, previous $2"
-@@error_message[ :"S1178" ] = "$1 ãªã¼ã¸ã§ã³ã¿ã¤ãæå®å­ãéè¤ãã¦ãã¾ããä»¥åã¯ $2 ã§ãã"
+@@error_message[ :"S1178" ] = "$1 リージョンタイプ指定子が重複しています。以前は $2 でした"
 
 ### syntaxobj.rb
 # S2001 \'$1\' duplicate $2"
-@@error_message[ :"S2001" ] = "\'$1\': éè¤ãã¦ãã¾ã ($2)"
+@@error_message[ :"S2001" ] = "\'$1\': 重複しています ($2)"
 
 # S2002 $1: $2"
@@ -850,18 +761,14 @@
 
 # S2003 $1: $2 cannot have initializer"
-@@error_message[ :"S2003" ] = "$1: $2 ã¯åæåå­ããã¤ãã¨ãã§ãã¾ããï¼"
+@@error_message[ :"S2003" ] = "$1: $2 は初期化子をもつことができません．"
 
 # S2004 $1: array subscript must be specified or omit"
-@@error_message[ :"S2004" ] = "$1: é
-åæ·»æ°ã¯æå®ããããã¾ãã¯çç¥ãããå¿
-è¦ãããã¾ãï¼"
+@@error_message[ :"S2004" ] = "$1: 配列添数は指定されるかまたは省略される必要があります．"
 
 # S2005 $1: array subscript must be specified"
-@@error_message[ :"S2005" ] = "$1: é
-åæ·»æ°ã¯æå®ãããå¿
-è¦ãããã¾ãï¼"
+@@error_message[ :"S2005" ] = "$1: 配列添数は指定される必要があります．"
 
 # S2006 \'$1\' function"
-@@error_message[ :"S2006" ] = "\'$1\' é¢æ°ã§ãï¼"
+@@error_message[ :"S2006" ] = "\'$1\' 関数です．"
 
 # S2007 \'$1\' $2"
@@ -869,78 +776,75 @@
 
 # S2008 $1: inconsitent with previous one"
-@@error_message[ :"S2008" ] = "$1: ä»¥åã®ãã®ã¨ä¸è²«ãã¦ãã¾ããï¼"
+@@error_message[ :"S2008" ] = "$1: 以前のものと一貫していません．"
 
 # S2009 $1: not found or not signature"
-@@error_message[ :"S2009" ] = "$1: è¦ã¤ãããªããã¾ãã¯ã·ã°ããã£ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S2009" ] = "$1: 見つからないかまたはシグニチャではありません．"
 
 # S2010 $1: not allocator signature"
-@@error_message[ :"S2010" ] = "$1: ã¢ã­ã±ã¼ã¿ã·ã°ããã£ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S2010" ] = "$1: アロケータシグニチャではありません．"
 
 # S2011 size_is duplicate"
-@@error_message[ :"S2011" ] = "size_is ãéè¤ãã¦ãã¾ãï¼"
+@@error_message[ :"S2011" ] = "size_is が重複しています．"
 
 # S2012 count_is duplicate"
-@@error_message[ :"S2012" ] = "count_is ãéè¤ãã¦ãã¾ãï¼"
+@@error_message[ :"S2012" ] = "count_is が重複しています．"
 
 # S2013 string duplicate"
-@@error_message[ :"S2013" ] = "string ãéè¤ãã¦ãã¾ãï¼"
+@@error_message[ :"S2013" ] = "string が重複しています．"
 
 # S2014 $1 need pointer or more pointer"
-@@error_message[ :"S2014" ] = "$1 ã¯ä¸ã¤ä»¥ä¸ã®ãã¤ã³ã¿ãå¿
-è¦ã§ãï¼"
+@@error_message[ :"S2014" ] = "$1 は一つ以上のポインタが必要です．"
 
 # S2015 $1 must be const for \'in\' parameter $2"
-@@error_message[ :"S2015" ] = "'$1' ã¯ \'in\' ãã©ã¡ã¼ã¿ $2 ã«å¯¾ãã¦å®æ°ã§ããå¿
-è¦ãããã¾ãï¼"
+@@error_message[ :"S2015" ] = "'$1' は \'in\' パラメータ $2 に対して定数である必要があります．"
 
 # S2016 $1 can not be const for $2 parameter"
-@@error_message[ :"S2016" ] = "'$1' ã¯ $2 ãã©ã¡ã¼ã¿ã«å¯¾ãã¦å®æ°æå®ã§ãã¾ããï¼ "
+@@error_message[ :"S2016" ] = "'$1' は $2 パラメータに対して定数指定できません． "
 
 # S2017 size_is argument is not integer type"
-@@error_message[ :"S2017" ] = "size_is å¼æ°ãæ´æ°åã§ã¯ããã¾ããï¼"
+@@error_message[ :"S2017" ] = "size_is 引数が整数型ではありません．"
 
 # S2018 \'$1\' size_is parameter not integer"
-@@error_message[ :"S2018" ] = "\'$1\' size_is ãã©ã¡ã¼ã¿ã¯æ´æ°ã§ã¯ããã¾ããï¼"
+@@error_message[ :"S2018" ] = "\'$1\' size_is パラメータは整数ではありません．"
 
 # S2019 \'$1\' size_is parameter negative or zero"
-@@error_message[ :"S2019" ] = "\'$1\' size_is ãã©ã¡ã¼ã¿ãè² æ°ã¾ãã¯ã¼ã­ã§ãï¼"
+@@error_message[ :"S2019" ] = "\'$1\' size_is パラメータが負数またはゼロです．"
 
 # S2020 count_is argument is not integer type"
-@@error_message[ :"S2020" ] = "count_is å¼æ°ã¯æ´æ°åã§ã¯ããã¾ããï¼"
+@@error_message[ :"S2020" ] = "count_is 引数は整数型ではありません．"
 
 # S2021 \'$1\' count_is parameter not integer"
-@@error_message[ :"S2021" ] = "\'$1\' count_is ãã©ã¡ã¼ã¿ã¯æ´æ°åã§ã¯ããã¾ããï¼"
+@@error_message[ :"S2021" ] = "\'$1\' count_is パラメータは整数型ではありません．"
 
 # S2022 \'$1\' count_is parameter negative or zero"
-@@error_message[ :"S2022" ] = "\'$1\' count_is ãã©ã¡ã¼ã¿ã¯è² æ°ã¾ãã¯ã¼ã­ã§ãï¼"
+@@error_message[ :"S2022" ] = "\'$1\' count_is パラメータは負数またはゼロです．"
 
 # S2023 string argument is not integer type"
-@@error_message[ :"S2023" ] = "string å¼æ°ã¯æ´æ°åã§ã¯ããã¾ããï¼"
+@@error_message[ :"S2023" ] = "string 引数は整数型ではありません．"
 
 # S2024 \'$1\' string parameter not integer"
-@@error_message[ :"S2024" ] = "\'$1\' string ãã©ã¡ã¼ã¿ã¯æ´æ°åã§ã¯ããã¾ããï¼"
+@@error_message[ :"S2024" ] = "\'$1\' string パラメータは整数型ではありません．"
 
 # S2025 \'$1\' string parameter negative or zero"
-@@error_message[ :"S2025" ] = "\'$1\' string ãã©ã¡ã¼ã¿ã¯è² æ°ã¾ãã¯ã¼ã­ã§ãï¼"
+@@error_message[ :"S2025" ] = "\'$1\' string パラメータは負数またはゼロです．"
 
 # S2026 '$1' nullable specified for non-pointer type"
-@@error_message[ :"S2026" ] = "'$1' ãã¤ã³ã¿åä»¥å¤ã« nullable ãæå®ããã¾ãã"
+@@error_message[ :"S2026" ] = "'$1' ポインタ型以外に nullable が指定されました"
 
 # S2027 '$1' parameter cannot be void type"
-@@error_message[ :"S2027" ] = "'$1' å¼æ°ã void åã«ã§ãã¾ãã"
+@@error_message[ :"S2027" ] = "'$1' 引数を void 型にできません"
 
 # S2028 '$1' max (size_is 2nd parameter) not constant"
-@@error_message[ :"S2028" ] = "'$1' max (size_is ã®ç¬¬äºå¼æ°)ãå®æ°ã§ããã¾ãã"
+@@error_message[ :"S2028" ] = "'$1' max (size_is の第二引数)が定数でありません"
 
 # S2029 '$1' max (size_is 2nd parameter) negative or zero, or not integer"
-@@error_message[ :"S2029" ] = "'$1' max (size_is ã®ç¬¬äºå¼æ°) ãè² ãã¼ã­ã¾ãã¯æ´æ°ã§ã¯ããã¾ãã"
+@@error_message[ :"S2029" ] = "'$1' max (size_is の第二引数) が負、ゼロまたは整数ではありません"
 
 # S2030 '$1' both size_is and max are const. size_is larger than max"
-@@error_message[ :"S2030" ] = "'$1' size_is max ã®ä¸¡æ¹ãå®æ°ã§. size_is ã®æ¹ã max ãè¶
-ãã¦ãã¾ã"
+@@error_message[ :"S2030" ] = "'$1' size_is max の両方が定数で. size_is の方が max を超えています"
 
 ### optimize.rb
 # S3001 $1: id too large $2 (max=$3)"
-@@error_message[ :"S3001" ] = "$1: id ã« $2 ã¯å¤§ãããã¾ã (æå¤§å¤ã¯$3)"
+@@error_message[ :"S3001" ] = "$1: id に $2 は大きすぎます (最大値は$3)"
 
 # S3002 $1: id too large $2 (max=$3)"
@@ -948,138 +852,133 @@
 
 # S3003 $1: id number '$2' conflict with $3"
-@@error_message[ :"S3003" ] = "$1: id çªå· '$2' ã¯ $3 ã¨è¡çªãã¦ãã¾ã"
+@@error_message[ :"S3003" ] = "$1: id 番号 '$2' は $3 と衝突しています"
 
 ### types.rb
 # T1001 const duplicate"
-@@error_message[ :"T1001" ] = "const ãéè¤ãã¦ãã¾ãï¼"
+@@error_message[ :"T1001" ] = "const が重複しています．"
 
 # T1002 volatile duplicate"
-@@error_message[ :"T1002" ] = "volatile ãéè¤ãã¦ãã¾ãï¼"
+@@error_message[ :"T1002" ] = "volatile が重複しています．"
 
 # T1003 $1: unsuitable specifier for $2"
-@@error_message[ :"T1003" ] = "$1: $2 ã«å¯¾ããä¸é©åãªæå®å­ã§ãï¼"
+@@error_message[ :"T1003" ] = "$1: $2 に対する不適切な指定子です．"
 
 # T1004 cannot cast to $1"
-@@error_message[ :"T1004" ] = "$1 ã¸ã­ã£ã¹ãã§ãã¾ããï¼"
+@@error_message[ :"T1004" ] = "$1 へキャストできません．"
 
 # T1005 \'$1\' not defined"
-@@error_message[ :"T1005" ] = "\'$1\' ã¯å®ç¾©ããã¦ãã¾ããï¼"
+@@error_message[ :"T1005" ] = "\'$1\' は定義されていません．"
 
 # T1006 \'$1\' not type name. expecting type name here"
-@@error_message[ :"T1006" ] = "\'$1\' ã¯ååã§ã¯ããã¾ããï¼ããã¯ååãå¿
-è¦ã§ãï¼"
+@@error_message[ :"T1006" ] = "\'$1\' は型名ではありません．ここは型名が必要です．"
 
 # T1007 $1: void type variable cannot have initializer"
-@@error_message[ :"T1007" ] = "$1: void åå¤æ°ã¯åæåå­ããã¤ãã¨ãã§ãã¾ããï¼"
+@@error_message[ :"T1007" ] = "$1: void 型変数は初期化子をもつことができません．"
 
 # T1008 ambigous signed or unsigned"
-@@error_message[ :"T1008" ] = "ç¬¦å·ä»ãã§ãããã¾ãã¯ç¬¦å·ç¡ãã§ããããææ§ã§ãï¼"
+@@error_message[ :"T1008" ] = "符号付きであるかまたは符号無しであるかが曖昧です．"
 
 # T1009 $1: $2: not integer"
-@@error_message[ :"T1009" ] = "$1: $2: æ´æ°ã§ã¯ããã¾ããï¼"
+@@error_message[ :"T1009" ] = "$1: $2: 整数ではありません．"
 
 # T1010 $1: initializer is not constant"
-@@error_message[ :"T1010" ] = "$1: åæåå­ã¯å®æ°ã§ã¯ããã¾ããï¼"
+@@error_message[ :"T1010" ] = "$1: 初期化子は定数ではありません．"
 
 # T1011 $1: need cast to assign float to integer"
-@@error_message[ :"T1011" ] = "$1: æµ®åå°æ°ç¹åããæ´æ°åã¸å²ãå½ã¦ã®ããã«ã­ã£ã¹ããå¿
-è¦ã§ãï¼"
+@@error_message[ :"T1011" ] = "$1: 浮動小数点型から整数型へ割り当てのためにキャストが必要です．"
 
 # T1012 $1: $2: not integer"
-@@error_message[ :"T1012" ] = "$1: $2: æ´æ°ã§ã¯ããã¾ããï¼"
+@@error_message[ :"T1012" ] = "$1: $2: 整数ではありません．"
 
 # T1013 $1: too large (max=$2)"
-@@error_message[ :"T1013" ] = "$1: å¤ãå¤§ãããã¾ã (max=$2)"
+@@error_message[ :"T1013" ] = "$1: 値が大きすぎます (max=$2)"
 
 # T1014 $1: too large negative value (min=-$2)"
-@@error_message[ :"T1014" ] = "$1: è² æ°ã®çµ¶å¯¾å¤ãå¤§ãããã¾ãï¼(min=-$2)"
+@@error_message[ :"T1014" ] = "$1: 負数の絶対値が大きすぎます．(min=-$2)"
 
 # T1015 $1: negative value for unsigned"
-@@error_message[ :"T1015" ] = "$1: ç¬¦å·ç¡ãæ´æ°åã«å¯¾ãè² æ°å¤ãä½¿ç¨ããã¦ãã¾ãï¼"
+@@error_message[ :"T1015" ] = "$1: 符号無し整数型に対し負数値が使用されています．"
 
 # T1016 $1: too large (max=$2)"
-@@error_message[ :"T1016" ] = "$1: å¤ãå¤§ãããã¾ãï¼(max=$2)"
+@@error_message[ :"T1016" ] = "$1: 値が大きすぎます．(max=$2)"
 
 # T1017 $1: unsuitable initializer for scalar type"
-@@error_message[ :"T1017" ] = "$1: ã¹ã«ã©ã¼åã«å¯¾ããä¸é©å½ãªåæåå­ã§ãï¼"
+@@error_message[ :"T1017" ] = "$1: スカラー型に対する不適当な初期化子です．"
 
 # T1018 $1: $2: not number"
-@@error_message[ :"T1018" ] = "$1: $2: æ°å¤ã§ã¯ããã¾ããï¼"
+@@error_message[ :"T1018" ] = "$1: $2: 数値ではありません．"
 
 # T1019 $1: initializer is not constant"
-@@error_message[ :"T1019" ] = "$1: åæåå­ã¯å®æ°ã§ã¯ããã¾ããï¼"
+@@error_message[ :"T1019" ] = "$1: 初期化子は定数ではありません．"
 
 # T1020 $1: unsuitable initializer for scalar type"
-@@error_message[ :"T1020" ] = "$1: ã¹ã«ã©ã¼åã«å¯¾ããä¸é©å½ãªåæåå­ã§ãï¼"
+@@error_message[ :"T1020" ] = "$1: スカラー型に対する不適当な初期化子です．"
 
 # T1021 \'$1\': struct not defined"
-@@error_message[ :"T1021" ] = "\'$1\': æ§é ä½ãå®ç¾©ããã¦ãã¾ããï¼"
+@@error_message[ :"T1021" ] = "\'$1\': 構造体が定義されていません．"
 
 # T1022 struct $1: not defined"
-@@error_message[ :"T1022" ] = "æ§é ä½ $1: å®ç¾©ããã¦ãã¾ããï¼"
+@@error_message[ :"T1022" ] = "構造体 $1: 定義されていません．"
 
 # T1023 struct $1: not defined"
-@@error_message[ :"T1023" ] = "æ§é ä½ $1: å®ç¾©ããã¦ãã¾ããï¼"
+@@error_message[ :"T1023" ] = "構造体 $1: 定義されていません．"
 
 # T1024 $1: unsuitable initializer for struct"
-@@error_message[ :"T1024" ] = "$1: æ§é ä½ã«å¯¾ããä¸é©å½ãªåæåå­ã§ãï¼"
+@@error_message[ :"T1024" ] = "$1: 構造体に対する不適当な初期化子です．"
 
 # T1025 size_is argument is not integer type"
-@@error_message[ :"T1025" ] = "size_is å¼æ° ã¯æ´æ°åã§ã¯ããã¾ããï¼"
+@@error_message[ :"T1025" ] = "size_is 引数 は整数型ではありません．"
 
 # T1026 count_is argument is not integer type"
-@@error_message[ :"T1026" ] = "count_is å¼æ° ã¯æ´æ°åã§ã¯ããã¾ããï¼"
+@@error_message[ :"T1026" ] = "count_is 引数 は整数型ではありません．"
 
 # T1027 string argument is not integer type"
-@@error_message[ :"T1027" ] = "string å¼æ°ã¯æ´æ°åã§ã¯ããã¾ããï¼"
+@@error_message[ :"T1027" ] = "string 引数は整数型ではありません．"
 
 # T1028 $1: cannot initialize function pointer"
-@@error_message[ :"T1028" ] = "$1: é¢æ°ãã¤ã³ã¿ãåæåãããã¨ã¯ã§ãã¾ããï¼"
+@@error_message[ :"T1028" ] = "$1: 関数ポインタを初期化することはできません．"
 
 # T1029 oneway function cannot return type \'$1$2\', \'void\' or \'ER\' is permitted"
-@@error_message[ :"T1029" ] = "ä¸æ¹åé¢æ°ã¯å \'$1$2\' ãè¿ããã¨ãã§ãã¾ããï¼\'void\' ã¾ãã¯ \'ER\' ãä½¿ç¨ã§ãã¾ãï¼"
+@@error_message[ :"T1029" ] = "一方向関数は型 \'$1$2\' を返すことができません．\'void\' または \'ER\' が使用できます．"
 
 # T1030 oneway function cannot have $1 parameter for \'$2\'"
-@@error_message[ :"T1030" ] = "ä¸æ¹åé¢æ°ã¯ \'$2\' ã®ããã« $1 ãã©ã¡ã¼ã¿ãæã¤ãã¨ãã§ãã¾ããï¼"
+@@error_message[ :"T1030" ] = "一方向関数は \'$2\' のために $1 パラメータを持つことができません．"
 
 # T1031 $1: unsuitable initializer for array"
-@@error_message[ :"T1031" ] = "$1: é
-åã«å¯¾ããä¸é©å½ãªåæåå­ã§ãï¼"
+@@error_message[ :"T1031" ] = "$1: 配列に対する不適当な初期化子です．"
 
 # T1032 $1: incompatible pointer type"
-@@error_message[ :"T1032" ] = "$1: äºææ§ã®ãªããã¤ã³ã¿åã§ãï¼"
+@@error_message[ :"T1032" ] = "$1: 互換性のないポインタ型です．"
 
 # T1033 $1: need cast to assign integer to pointer"
-@@error_message[ :"T1033" ] = "$1: æ´æ°åããã¤ã³ã¿ã¸å²ãå½ã¦ãããã«ã¯ã­ã£ã¹ããå¿
-è¦ã§ãï¼"
+@@error_message[ :"T1033" ] = "$1: 整数型をポインタへ割り当てるためにはキャストが必要です．"
 
 # T1034 $1: unsuitable string constant"
-@@error_message[ :"T1034" ] = "$1: ä¸é©å½ãªæå­åå®æ°ã§ãï¼"
+@@error_message[ :"T1034" ] = "$1: 不適当な文字列定数です．"
 
 # T1035 $1: unsuitable initializer for pointer"
-@@error_message[ :"T1035" ] = "$1: ãã¤ã³ã¿ã«å¯¾ããä¸é©å½ãªåæåå­ã§ãï¼"
+@@error_message[ :"T1035" ] = "$1: ポインタに対する不適当な初期化子です．"
 
 # T1036 $1: unsuitable initializer for pointer"
-@@error_message[ :"T1036" ] = "$1: ãã¤ã³ã¿ã«å¯¾ããä¸é©å½ãªåæåå­ã§ãï¼"
+@@error_message[ :"T1036" ] = "$1: ポインタに対する不適当な初期化子です．"
 
 # T1037 $1: not number"
-@@error_message[ :"T1037" ] = "$1: æ°å¤ã§ã¯ããã¾ãã"
+@@error_message[ :"T1037" ] = "$1: 数値ではありません"
 
 # T1038 $1: initializer type mismatch. '$2' & '$3'"
-@@error_message[ :"T1038" ] = "$1: åæåå­ã®åãä¸è´ãã¾ãã. '$2' ã¨ '$3'"
+@@error_message[ :"T1038" ] = "$1: 初期化子の型が一致しません. '$2' と '$3'"
 
 # T1039 $1: struct tag mismatch $2 and $3"
-@@error_message[ :"T1039" ] = "$1: æ§é ä½ã¿ã°ã $2 ã¨ $3 ã§ä¸è´ãã¾ãã"
+@@error_message[ :"T1039" ] = "$1: 構造体タグが $2 と $3 で一致しません"
 
 # T1040 $1 specified for void pointer type"
-@@error_message[ :"T1040" ] = "$1 void ãã¤ã³ã¿åã«æå®ããã¾ãã"
+@@error_message[ :"T1040" ] = "$1 void ポインタ型に指定されました"
 
 ### gen_xml.rb
 # T2001 fail to create XML file $1"
-@@error_message[ :"T2001" ] = "XML ãã¡ã¤ã« $1 ã®çæã«å¤±æãã¾ãã"
+@@error_message[ :"T2001" ] = "XML ファイル $1 の生成に失敗しました"
 
 # TEMPORAL set_definition_join: uninitialized array member"
-@@error_message[ :"TEMPORAL" ] = "set_definition_join: é
-åã¡ã³ããåæåããã¦ãã¾ããï¼"
+@@error_message[ :"TEMPORAL" ] = "set_definition_join: 配列メンバが初期化されていません．"
 
 # V1001 $1: unable for $2"
@@ -1087,88 +986,88 @@
 
 # V1002 $1: cannot cast to bool (implicitly)"
-@@error_message[ :"V1002" ] = "$1: ãã¼ã«åã¸ã®(æé»çãª)ã­ã£ã¹ããè¡ããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"V1002" ] = "$1: ブール型への(暗黙的な)キャストを行うことができません．"
 
 # V1003 $1: cannot cast to integer (implicitly)"
-@@error_message[ :"V1003" ] = "$1: æ´æ°åã¸ã®(æé»çãª)ã­ã£ã¹ããè¡ããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"V1003" ] = "$1: 整数型への(暗黙的な)キャストを行うことができません．"
 
 # V1004 $1: cannot cast to float (implicitly)"
-@@error_message[ :"V1004" ] = "$1: æµ®åå°æ°ç¹åã¸ã®(æé»çãª)ã­ã£ã¹ããè¡ããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"V1004" ] = "$1: 浮動小数点型への(暗黙的な)キャストを行うことができません．"
 
 # V1005 Cannot cast pointer to float"
-@@error_message[ :"V1005" ] = "ãã¤ã³ã¿åãæµ®åå°æ°ç¹åã¸ã­ã£ã¹ããè¡ããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"V1005" ] = "ポインタ型を浮動小数点型へキャストを行うことができません．"
 
 # V1006 pointer value cannot cast to $1"
-@@error_message[ :"V1006" ] = "ãã¤ã³ã¿å¤ã¯ $1 ã¸ã­ã£ã¹ããè¡ããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"V1006" ] = "ポインタ値は $1 へキャストを行うことができません．"
 
 # V1007 convert pointer value to bool"
-@@error_message[ :"V1007" ] = "ãã¤ã³ã¿å¤ããã¼ã«åã¸å¤æãã¾ããï¼"
+@@error_message[ :"V1007" ] = "ポインタ値をブール型へ変換しました．"
 
 # V1008 convert pointer value to integer without cast"
-@@error_message[ :"V1008" ] = "ãã¤ã³ã¿å¤ãã­ã£ã¹ãç¡ãã§æ´æ°åã¸å¤æãã¾ããï¼"
+@@error_message[ :"V1008" ] = "ポインタ値をキャスト無しで整数型へ変換しました．"
 
 # V1009 / : divieded by zero"
-@@error_message[ :"V1009" ] = "/ : ã¼ã­é¤ç®ã¨ã©ã¼ã§ãï¼"
+@@error_message[ :"V1009" ] = "/ : ゼロ除算エラーです．"
 
 # V1010 / : divieded by zero"
-@@error_message[ :"V1010" ] = "/ : ã¼ã­é¤ç®ã¨ã©ã¼ã§ãï¼"
+@@error_message[ :"V1010" ] = "/ : ゼロ除算エラーです．"
 
 # V1011 % : divieded by zero"
-@@error_message[ :"V1011" ] = "% : ã¼ã­é¤ç®ã¨ã©ã¼ã§ãï¼"
+@@error_message[ :"V1011" ] = "% : ゼロ除算エラーです．"
 
 # V1012 % : divieded by zero"
-@@error_message[ :"V1012" ] = "% : ã¼ã­é¤ç®ã¨ã©ã¼ã§ãï¼"
+@@error_message[ :"V1012" ] = "% : ゼロ除算エラーです．"
 
 # V1013 integer value cannot cast to $1"
-@@error_message[ :"V1013" ] = "æ´æ°å¤ã¯ $1 ã¸ã­ã£ã¹ããè¡ããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"V1013" ] = "整数値は $1 へキャストを行うことができません．"
 
 # V1014 comparing bool value with \'$1\'"
-@@error_message[ :"V1014" ] = "ãã¼ã«å¤ã \'$1\' ã¨æ¯è¼ãã¾ããï¼"
+@@error_message[ :"V1014" ] = "ブール値を \'$1\' と比較しました．"
 
 # V1015 comparing bool value with \'$1\'"
-@@error_message[ :"V1015" ] = "ãã¼ã«å¤ã \'$1\' ã¨æ¯è¼ãã¾ããï¼"
+@@error_message[ :"V1015" ] = "ブール値を \'$1\' と比較しました．"
 
 # V1016 bool value cannot cast to $1"
-@@error_message[ :"V1016" ] = "ãã¼ã«å¤ã¯ $1 ã¸ã­ã£ã¹ããè¡ããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"V1016" ] = "ブール値は $1 へキャストを行うことができません．"
 
 # V1017 / : divieded by zero"
-@@error_message[ :"V1017" ] = "/ : ã¼ã­é¤ç®ã¨ã©ã¼ã§ãï¼"
+@@error_message[ :"V1017" ] = "/ : ゼロ除算エラーです．"
 
 # V1018 % : divieded by zero"
-@@error_message[ :"V1018" ] = "% : ã¼ã­é¤ç®ã¨ã©ã¼ã§ãï¼"
+@@error_message[ :"V1018" ] = "% : ゼロ除算エラーです．"
 
 # V1019 floating value cannot cast to $1"
-@@error_message[ :"V1019" ] = "æµ®åå°æ°ç¹å¤ã¯ $1 ã¸ã®ã­ã£ã¹ããè¡ããã¨ãã§ãã¾ããï¼"
+@@error_message[ :"V1019" ] = "浮動小数点値は $1 へのキャストを行うことができません．"
 
 # V1020 convert floating value to bool without cast"
-@@error_message[ :"V1020" ] = "æµ®åå°æ°ç¹å¤ãã­ã£ã¹ãç¡ãã§ãã¼ã«åã¸å¤æãã¾ããï¼"
+@@error_message[ :"V1020" ] = "浮動小数点値をキャスト無しでブール型へ変換しました．"
 
 # V1021 convert floating value to integer without cast"
-@@error_message[ :"V1021" ] = "æµ®åå°æ°ç¹åãã­ã£ã¹ãç¡ãã§æ´æ°åã¸å¤æãã¾ããï¼"
+@@error_message[ :"V1021" ] = "浮動小数点型をキャスト無しで整数型へ変換しました．"
 
 # V1022 string cannot cast to integer"
-@@error_message[ :"V1022" ] = "æå­åã¯æ´æ°åã«ã­ã£ã¹ãã§ãã¾ãã"
+@@error_message[ :"V1022" ] = "文字列は整数型にキャストできません"
 
 # V1023 string cannot cast to float"
-@@error_message[ :"V1023" ] = "æå­åã¯æµ®åå°æ°ç¹åã«ã­ã£ã¹ãã§ãã¾ãã"
+@@error_message[ :"V1023" ] = "文字列は浮動小数点型にキャストできません"
 
 # V1024 string cannot cast to pointer"
-@@error_message[ :"V1024" ] = "æå­åã¯ãã¤ã³ã¿åã«ã­ã£ã¹ãã§ãã¾ãã"
+@@error_message[ :"V1024" ] = "文字列はポインタ型にキャストできません"
 
 # V1025 string cannot cast to $1"
-@@error_message[ :"V1025" ] = "æå­åã¯ $1 ã«ã­ã£ã¹ãã§ãã¾ãã"
+@@error_message[ :"V1025" ] = "文字列は $1 にキャストできません"
 
 ###
-# warning ã¡ãã»ã¼ã¸
+# warning メッセージ
 @@warning_message = {}
 
 ### componentobj.rb
 # W1001 \'$1\': unknown context type. usually specifiy task, non-task or any"
-@@warning_message[ :"W1001" ] = "\'$1\': ä¸æãªã³ã³ãã­ã¹ãåã§ãï¼éå¸¸ task, non-task ã¾ãã¯ any ãæå®ãã¦ä¸ããï¼"
+@@warning_message[ :"W1001" ] = "\'$1\': 不明なコンテキスト型です．通常 task, non-task または any を指定して下さい．"
 
 # W1002 $1: non-active celltype has no entry port & factory"
-@@warning_message[ :"W1002" ] = "$1: éã¢ã¯ãã£ããªã»ã«ã¿ã¤ããåãå£åã³ãã¡ã¯ããªãæã£ã¦ãã¾ããï¼"
+@@warning_message[ :"W1002" ] = "$1: 非アクティブなセルタイプが受け口及びファクトリを持っていません．"
 
 # W1003 $1 : require call port overridden in $2"
-@@warning_message[ :"W1003" ] = "$1 : ãªã¯ã¯ã¤ã¢å¼ã³å£ã $2 ã§ãªã¼ãã¼ã©ã¤ãããã¾ããï¼"
+@@warning_message[ :"W1003" ] = "$1 : リクワイア呼び口が $2 でオーバーライドされました．"
 
 # W1004 $1 : specified singleton but has no singleton in this celltype"
@@ -1176,102 +1075,96 @@
 
 # W1005 $1 : idx_is_id is ineffective for composite celltype"
-@@warning_message[ :"W1005" ] = "$1 : idx_is_id ã¯è¤åã»ã«ã¿ã¤ãã«å¯¾ãã¦ã¯ç¡å¹ã§ãï¼"
+@@warning_message[ :"W1005" ] = "$1 : idx_is_id は複合セルタイプに対しては無効です．"
 
 # W1006 $1 : only prototype, unused and undefined cell"
-@@warning_message[ :"W1006" ] = "$1 : ãã­ãã¿ã¤ãã®ã¿ï¼æªä½¿ç¨ï¼ãã¤æªå®ç¾©ã®ã»ã«ã§ãï¼"
+@@warning_message[ :"W1006" ] = "$1 : プロトタイプのみ，未使用，かつ未定義のセルです．"
 
 # W1007 $1 : non-active cell has no entry join and no factory"
-@@warning_message[ :"W1007" ] = "$1 : éã¢ã¯ãã£ãã»ã«ã«åãå£ã®çµååã³ãã¡ã¯ããªãããã¾ããï¼"
+@@warning_message[ :"W1007" ] = "$1 : 非アクティブセルに受け口の結合及びファクトリがありません．"
 
 # W1008 $1: reuse designation mismatch with previous import"
-@@warning_message[ :"W1008" ] = "$1: åä½¿ç¨ã®æç¤ºãä»¥åã®ã¤ã³ãã¼ãã®ã¨æ´åãã¾ããï¼"
+@@warning_message[ :"W1008" ] = "$1: 再使用の指示が以前のインポートのと整合しません．"
 
 # "W1009 $1: fixed join entry port has multi join"
-@@warning_message[ :"W1009" ] = "$1: åºå®çµååãå£ãè¤æ°ã®çµåãæã£ã¦ãã¾ãï¼"
+@@warning_message[ :"W1009" ] = "$1: 固定結合受け口が複数の結合を持っています．"
 
 ### types.rb
 # W2001 signed int$1_t: obsolete. use int$2_t"
-@@warning_message[ :"W2001" ] = "signed int$1_t: æ¨å¥¨ããã¾ããï¼int$2_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W2001" ] = "signed int$1_t: 推奨されません．int$2_t をお使いください．"
 
 # W2002 unsinged int$1_t: obsolete. use uint$2_t"
-@@warning_message[ :"W2002" ] = "unsinged int$1_t: æ¨å¥¨ããã¾ããï¼uint$2_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W2002" ] = "unsinged int$1_t: 推奨されません．uint$2_t をお使いください．"
 
 # W2003 $1: too large to cast to $2, clipped($3)"
-@@warning_message[ :"W2003" ] = "$1: $2 ã¸ã­ã£ã¹ãããã®ã«å¤§ãããã¾ãï¼åãè©°ãã¾ãã($3)"
+@@warning_message[ :"W2003" ] = "$1: $2 へキャストするのに大きすぎます．切り詰めました($3)"
 
 # W2004 $1: too small to cast to $2, clipped($3)"
-@@warning_message[ :"W2004" ] = "$1: $2 ã¸ã­ã£ã¹ãããã®ã«å°ãããã¾ãï¼åãè©°ãã¾ãã($3)"
+@@warning_message[ :"W2004" ] = "$1: $2 へキャストするのに小さすぎます．切り詰めました($3)"
 
 # W2005 $1: negative value for unsigned: convert to $2"
-@@warning_message[ :"W2005" ] = "$1: ç¬¦å·ç¡ãæ´æ°åã«å¯¾ãã¦è² æ°å¤ã§ã : $2 ã¸å¤æãã¾ããï¼"
+@@warning_message[ :"W2005" ] = "$1: 符号無し整数型に対して負数値です : $2 へ変換しました．"
 
 ### syntaxobj.rb
 # W3001 $1: duplicate"
-@@warning_message[ :"W3001" ] = "$1: éè¤ãã¦ãã¾ãï¼"
+@@warning_message[ :"W3001" ] = "$1: 重複しています．"
 
 # W3002 $1: this string might cause buffer over run"
-@@warning_message[ :"W3002" ] = "$1: ãã®æå­åã¯ãããã¡ã¼ãªã¼ãã¼ã©ã³ãå¼ãèµ·ããããããã¾ããï¼"
+@@warning_message[ :"W3002" ] = "$1: この文字列はバッファーオーバーランを引き起こすかもしれません．"
 
 # W3003 $1 pointer level mismatch"
-@@warning_message[ :"W3003" ] = "$1 ãã¤ã³ã¿ã¼ã¬ãã«ã®ä¸æ´åã§ãï¼"
+@@warning_message[ :"W3003" ] = "$1 ポインターレベルの不整合です．"
 
 # W3004 $1 pointer type has returned. specify deviate or stop return pointer"
-@@error_message[ :"W3004" ] = "$1 ãã¤ã³ã¿åãè¿ããã¾ãããdeviate ãæå®ããããã¤ã³ã¿ãè¿ãã®ãæ­¢ãã¦ãã ãã"
+@@error_message[ :"W3004" ] = "$1 ポインタ型が返されました。deviate を指定するかポインタを返すのを止めてください"
 
 # W3005 '$1' size_is always lower than max. max is ignored"
-@@error_message[ :"W3005" ] = "'$1' size_is ã¯å¸¸ã« max ããå°ãã. max ã¯ç¡è¦ããã¾ã"
+@@error_message[ :"W3005" ] = "'$1' size_is は常に max より小さい. max は無視されます"
 
 ### bnf.y.rb
 # W5001 bool: obsolete type. use bool_t"
-@@warning_message[ :"W5001" ] = "bool: æ¨å¥¨ãããªããã¼ã¿åã§ãï¼bool_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W5001" ] = "bool: 推奨されないデータ型です．bool_t をお使いください．"
 
 # W5002 float: obsolete type. use float32_t"
-@@warning_message[ :"W5002" ] = "float: æ¨å¥¨ãããªããã¼ã¿åã§ãï¼float32_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W5002" ] = "float: 推奨されないデータ型です．float32_t をお使いください．"
 
 # W5003 double: obsolete type. use double64_t"
-@@warning_message[ :"W5003" ] = "double: æ¨å¥¨ãããªããã¼ã¿åã§ãï¼double64_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W5003" ] = "double: 推奨されないデータ型です．double64_t をお使いください．"
 
 # W5004 char: obsolete type. use char_t"
-@@warning_message[ :"W5004" ] = "char: æ¨å¥¨ãããªããã¼ã¿åã§ãï¼char_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W5004" ] = "char: 推奨されないデータ型です．char_t をお使いください．"
 
 # W5005 int8: obsolete. use int8_t"
-@@warning_message[ :"W5005" ] = "int8: æ¨å¥¨ããã¾ããï¼int8_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W5005" ] = "int8: 推奨されません．int8_t をお使いください．"
 
 # W5006 int16: obsolete. use int16_t"
-@@warning_message[ :"W5006" ] = "int16: æ¨å¥¨ããã¾ããï¼int16_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W5006" ] = "int16: 推奨されません．int16_t をお使いください．"
 
 # W5007 int32: obsolete. use int32_t"
-@@warning_message[ :"W5007" ] = "int32: æ¨å¥¨ããã¾ããï¼int32_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W5007" ] = "int32: 推奨されません．int32_t をお使いください．"
 
 # W5008 int64: obsolete. use int64_t"
-@@warning_message[ :"W5008" ] = "int64: æ¨å¥¨ããã¾ããï¼int64_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W5008" ] = "int64: 推奨されません．int64_t をお使いください．"
 
 # W5009 int64: obsolete. use int64_t"
-@@warning_message[ :"W5009" ] = "int64: æ¨å¥¨ããã¾ããï¼int64_t ããä½¿ããã ããï¼"
+@@warning_message[ :"W5009" ] = "int64: 推奨されません．int64_t をお使いください．"
 
 # W5010 need 'void' for no parameter"
-@@warning_message[ :"W5010" ] = "ãã©ã¡ã¼ã¿ãå­å¨ããªãå ´å 'void' ãå¿
-è¦ã§ã"
+@@warning_message[ :"W5010" ] = "パラメータが存在しない場合 'void' が必要です"
 
 # W5011 need 'void' for no parameter"
-@@warning_message[ :"W5011" ] = "ãã©ã¡ã¼ã¿ãå­å¨ããªãå ´å 'void' ãå¿
-è¦ã§ã"
+@@warning_message[ :"W5011" ] = "パラメータが存在しない場合 'void' が必要です"
 
 ### C_parser.y.rb
 # W6001 need 'void' for no parameter"
-@@warning_message[ :"W6001" ] = "ãã©ã¡ã¼ã¿ãå­å¨ããªãå ´å 'void' ãå¿
-è¦ã§ã"
+@@warning_message[ :"W6001" ] = "パラメータが存在しない場合 'void' が必要です"
 
 # W6002 need 'void' for no parameter"
-@@warning_message[ :"W6002" ] = "ãã©ã¡ã¼ã¿ãå­å¨ããªãå ´å 'void' ãå¿
-è¦ã§ã"
+@@warning_message[ :"W6002" ] = "パラメータが存在しない場合 'void' が必要です"
 
 # W6003 need 'void' for no parameter"
-@@warning_message[ :"W6003" ] = "ãã©ã¡ã¼ã¿ãå­å¨ããªãå ´å 'void' ãå¿
-è¦ã§ã"
+@@warning_message[ :"W6003" ] = "パラメータが存在しない場合 'void' が必要です"
 
 # W6004 need 'void' for no parameter"
-@@warning_message[ :"W6004" ] = "ãã©ã¡ã¼ã¿ãå­å¨ããªãå ´å 'void' ãå¿
-è¦ã§ã"
+@@warning_message[ :"W6004" ] = "パラメータが存在しない場合 'void' が必要です"
 
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_en_US.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_en_US.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_en_US.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: messages_file_en_US.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -62,6 +47,6 @@
 
 # MSg.note
-# @@comment[ :note ] = " * ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ããèªåçæããã¾ãã
-#  * ãã®ãã¡ã¤ã«ãç·¨éãã¦ä½¿ç¨ãããã¨ã¯ãæå³ããã¦ãã¾ãã
+# @@comment[ :note ] = " * このファイルは tecsgen により自動生成されました
+#  * このファイルを編集して使用することは、意図されていません
 # "
 @@comment[ :note ] = " * This file was automatically generated by tecsgen.
@@ -70,6 +55,6 @@
 
 # @@comment[ :preamble_note ] = "/* #[<PREAMBLE>]#
-#  * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
-#  * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+#  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+#  * tecsmerge によるマージに使用されます
 # "
 @@comment[ :preamble_note ] = "/* #[<PREAMBLE>]#
@@ -79,5 +64,5 @@
 
 # @@comment[ :postamble_note ] = "/* #[<POSTAMBLE>]#
-#  *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+#  *   これより下に非受け口関数を書きます
 #  * #[</POSTAMBLE>]#*/
 # "
@@ -88,9 +73,9 @@
 
 # @@comment[ :template_note ] = "/*
-#  * ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ãããã³ãã¬ã¼ãã¨ãã¦èªåçæããã¾ãã
-#  * ãã®ãã¡ã¤ã«ãç·¨éãã¦ä½¿ç¨ãããã¨ãæå³ããã¦ãã¾ãã
-#  * tecsgen ã®åå®è¡ã«ããä¸æ¸ãããã¦ãã¾ããããéå¸¸
+#  * このファイルは tecsgen によりテンプレートとして自動生成されました
+#  * このファイルを編集して使用することが意図されていますが
+#  * tecsgen の再実行により上書きされてしまうため、通常
 #  *   gen/%s_template.c => src/%s.c
-#  * ã®ããã«åå, ãã©ã«ããå¤æ´ãã¦ããä¿®æ­£ãã¾ã
+#  * のように名前, フォルダを変更してから修正します
 #  */
 # "
@@ -104,9 +89,9 @@
 
 # @@comment[ :inline_template_note ] = "/*
-#  * ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ãããã³ãã¬ã¼ãã¨ãã¦èªåçæããã¾ãã
-#  * ãã®ãã¡ã¤ã«ãç·¨éãã¦ä½¿ç¨ãããã¨ãæå³ããã¦ãã¾ãã
-#  * tecsgen ã®åå®è¡ã«ããä¸æ¸ãããã¦ãã¾ããããéå¸¸
+#  * このファイルは tecsgen によりテンプレートとして自動生成されました
+#  * このファイルを編集して使用することが意図されていますが
+#  * tecsgen の再実行により上書きされてしまうため、通常
 #  *   gen/%s_inline_template.h => src/%s_inline.h
-#  * ã®ããã«åå, ãã©ã«ããå¤æ´ãã¦ããä¿®æ­£ãã¾ã
+#  * のように名前, フォルダを変更してから修正します
 #  */
 # "
@@ -119,9 +104,9 @@
 "
 
-# @@comment[ :Makefile_note ] = "# ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ããèªåçæããã¾ãã
-# # Makefile.temp ã¯ gen ã®ä¸ã¤ä¸ã®ãã£ã¬ã¯ããªã«ç§»ãã¦ä½¿ç¨ãã¾ã
+# @@comment[ :Makefile_note ] = "# このファイルは tecsgen により自動生成されました
+# # Makefile.temp は gen の一つ上のディレクトリに移して使用します
 # #  % mv Makefile.temp Makefile
 # # 
-# # clean ã®ããã©ã«ãåä½ã¯ $(GEN_DIR)/Makefile.* ãåé¤ãã¾ã
+# # clean のデフォルト動作は $(GEN_DIR)/Makefile.* を削除します
 # 
 # "
@@ -138,211 +123,202 @@
 "
 
-# @@comment[ :oneway_ercd_note ] = "/* oneway ã®å ´å E_OK ããè¿ãã¾ãã */"
+# @@comment[ :oneway_ercd_note ] = "/* oneway の場合 E_OK しか返せません */"
 @@comment[ :oneway_ercd_note ] = "/* Oneway function always returns E_OK. */"
 
-# @@comment[ :ercd_note ] = "/* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿°ãã¾ã */"
+# @@comment[ :ercd_note ] = "/* エラー処理コードをここに記述します */"
 @@comment[ :ercd_note ] = "/* Write error processing code here */"
 
-# @@comment[ :IMP_comment ] = "\n/* import_C ã«ãã import ãããããã %s */\n"
+# @@comment[ :IMP_comment ] = "\n/* import_C により import されるヘッダ %s */\n"
 @@comment[ :IMP_comment ] = "\n/* header imported by import_C %s */\n"
 
-# @@comment[ :MVAR_comment ] = "# å¤æ° %s\n"
+# @@comment[ :MVAR_comment ] = "# 変数 %s\n"
 @@comment[ :MVAR_comment ] = "# var %s\n"
 
-# @@comment[ :MRUL_comment ] = "# ã«ã¼ã« %s\n"
+# @@comment[ :MRUL_comment ] = "# ルール %s\n"
 @@comment[ :MRUL_comment ] = "# Rule %s\n"
 
-# @@comment[ :TCM_comment ] = "# ãã³ãã¬ã¼ãã³ã¼ãã§ã¡ã¼ã¯ãã¦ã¿ãå ´å %s\n"
+# @@comment[ :TCM_comment ] = "# テンプレートコードでメークしてみる場合 %s\n"
 @@comment[ :TCM_comment ] = "# in case build with template code %s\n"
 
-# @@comment[ :MDEP_comment ] = "\n# depend ã include %s\n"
+# @@comment[ :MDEP_comment ] = "\n# depend を include %s\n"
 @@comment[ :MDEP_comment ] = "\n# include dependcy %s\n"
 
-# @@comment[ :SDI_comment ] = "/* ã·ã°ããã£ãã£ã¹ã¯ãªãã¿åç
-§ããã %s */\n"
+# @@comment[ :SDI_comment ] = "/* シグニチャディスクリプタ参照ヘッダ %s */\n"
 @@comment[ :SDI_comment ] = "/* descriptor referencing signature header %s */\n"
 
-# @@comment[ :SD_comment ] = "/* ã·ã°ããã£ãã£ã¹ã¯ãªãã¿ %s */\n"
+# @@comment[ :SD_comment ] = "/* シグニチャディスクリプタ %s */\n"
 @@comment[ :SD_comment ] = "/* signature descriptor %s */\n"
 
-# @@comment[ :SFT_comment ] = "/* ã·ã°ããã£é¢æ°ãã¼ãã« %s */\n"
+# @@comment[ :SFT_comment ] = "/* シグニチャ関数テーブル %s */\n"
 @@comment[ :SFT_comment ] = "/* signature function table %s */\n"
 
-# @@comment[ :SDES_comment ] = "/* ã·ã°ããã£ãã£ã¹ã¯ãªãã¿(åççµåç¨) %s */\n"
+# @@comment[ :SDES_comment ] = "/* シグニチャディスクリプタ(動的結合用) %s */\n"
 @@comment[ :SDES_comment ] = "/* signature descriptor %s for dynamic join */\n"
 
-# @@comment[ :IRTH_comment ] = "/* ã©ã³ã¿ã¤ã ããã %s */\n"
-
-# @@comment[ :UDF_comment ] = "/* inline ã®ããã® undef %s */\n"
+# @@comment[ :IRTH_comment ] = "/* ランタイムヘッダ %s */\n"
+
+# @@comment[ :UDF_comment ] = "/* inline のための undef %s */\n"
 @@comment[ :UDF_comment ] = "/* undef for inline %s */\n"
 
-# @@comment[ :IGH_comment ] = "/* ã°ã­ã¼ãã«ããã %s */\n"
+# @@comment[ :IGH_comment ] = "/* グローバルヘッダ %s */\n"
 @@comment[ :IGH_comment ] = "/* global header %s */\n"
 
-# @@comment[ :ISH_comment ] = "/* ã·ã°ããã£ããã %s */\n"
+# @@comment[ :ISH_comment ] = "/* シグニチャヘッダ %s */\n"
 @@comment[ :ISH_comment ] = "/* signature header %s */\n"
 
-# @@comment[ :ICT_comment ] = "/* æé©åã®ããåç
-§ããã»ã«ã¿ã¤ãã® CB åã®å®ç¾©ãåè¾¼ã %s */\n"
+# @@comment[ :ICT_comment ] = "/* 最適化のため参照するセルタイプの CB 型の定義を取込む %s */\n"
 @@comment[ :ICT_comment ] = "/* to get the definition of CB type of referenced celltype for optimization %s */\n"
 
-# @@comment[ :NIDB_comment ] = "ID ã®ãã¼ã¹ "
+# @@comment[ :NIDB_comment ] = "ID のベース "
 @@comment[ :NIDB_comment ] = "ID Base "
 
-# @@comment[ :NCEL_comment ] = "ã»ã«ã®åæ°"
+# @@comment[ :NCEL_comment ] = "セルの個数"
 @@comment[ :NCEL_comment ] = " number of cells"
 
-# @@comment[ :CVI_comment ] = "/* IDXã®æ­£å½æ§ãã§ãã¯ãã¯ã­ %s */\n"
+# @@comment[ :CVI_comment ] = "/* IDXの正当性チェックマクロ %s */\n"
 @@comment[ :CVI_comment ] = "/* IDX validation macro %s */\n"
 
-# @@comment[ :CVIA_comment ] = "/* IDXã®æ­£å½æ§ãã§ãã¯ãã¯ã­ï¼ç­ç¸®å½¢ï¼ %s */\n"
+# @@comment[ :CVIA_comment ] = "/* IDXの正当性チェックマクロ（短縮形） %s */\n"
 @@comment[ :CVIA_comment ] = "/* IDX validation macro (abbrev.) %s */\n"
 
-# @@comment[ :NCPA_comment ] = "/* å¼ã³å£é
-åã®å¤§ãããå¾ããã¯ã­ %s */\n"
+# @@comment[ :NCPA_comment ] = "/* 呼び口配列の大きさを得るマクロ %s */\n"
 @@comment[ :NCPA_comment ] = "/* call port array size macro %s */\n"
 
-# @@comment[ :NEPA_comment ] = "/* åãå£é
-åã®å¤§ãããå¾ããã¯ã­ %s */\n"
+# @@comment[ :NEPA_comment ] = "/* 受け口配列の大きさを得るマクロ %s */\n"
 @@comment[ :NEPA_comment ] = "/* entry port array size macro %s */\n"
 
-# @@comment[ :TOCP_comment ] = "/* optional å¼ã³å£ããã¹ããããã¯ã­ %s */\n"
+# @@comment[ :TOCP_comment ] = "/* optional 呼び口をテストするマクロ %s */\n"
 @@comment[ :TOCP_comment ] = "/* optional call port test macro %s */\n"
 
-# @@comment[ :TOCPA_comment ] = "/* optional å¼ã³å£ããã¹ããããã¯ã­ï¼ç­ç¸®å½¢ï¼ %s */\n"
+# @@comment[ :TOCPA_comment ] = "/* optional 呼び口をテストするマクロ（短縮形） %s */\n"
 @@comment[ :TOCPA_comment ] = "/* optional call port test macro (abbrev) %s */\n"
 
-# @@comment[ :GCB_comment ] = "\n/* ã»ã«CBãå¾ããã¯ã­ %s */\n"
+# @@comment[ :GCB_comment ] = "\n/* セルCBを得るマクロ %s */\n"
 @@comment[ :GCB_comment ] = "\n/* celll CB macro %s */\n"
 
-# @@comment[ :GCBA_comment ] = "\n/* ã»ã«CBãå¾ããã¯ã­(ç­ç¸®å½¢) %s */\n"
+# @@comment[ :GCBA_comment ] = "\n/* セルCBを得るマクロ(短縮形) %s */\n"
 @@comment[ :GCBA_comment ] = "\n/* cell CB macro (abbrev) %s */\n"
 
-# @@comment[ :CCT_comment ] = "/* CELLCB å(ç­ç¸®å½¢) %s */\n"
+# @@comment[ :CCT_comment ] = "/* CELLCB 型(短縮形) %s */\n"
 @@comment[ :CCT_comment ] = "/* CELLCB type (abbrev) %s */\n"
 
-# @@comment[ :CTIXA_comment ] = "/* ã»ã«ã¿ã¤ãã®IDXå(ç­ç¸®å½¢) %s */\n"
+# @@comment[ :CTIXA_comment ] = "/* セルタイプのIDX型(短縮形) %s */\n"
 @@comment[ :CTIXA_comment ] = "/* celltype IDX type (abbrev) %s */\n"
 
-# @@comment[ :AAM_comment ] = "\n/* å±æ§ã¢ã¯ã»ã¹ãã¯ã­ %s */\n"
+# @@comment[ :AAM_comment ] = "\n/* 属性アクセスマクロ %s */\n"
 @@comment[ :AAM_comment ] = "\n/* attr access  %s */\n"
 
-# @@comment[ :VAM_comment ] = "\n/* var ã¢ã¯ã»ã¹ãã¯ã­ %s */\n"
+# @@comment[ :VAM_comment ] = "\n/* var アクセスマクロ %s */\n"
 @@comment[ :VAM_comment ] = "\n/* var access macro %s */\n"
 
-# @@comment[ :AAMA_comment ] = "\n/* å±æ§ã¢ã¯ã»ã¹ãã¯ã­(ç­ç¸®å½¢) %s */\n"
+# @@comment[ :AAMA_comment ] = "\n/* 属性アクセスマクロ(短縮形) %s */\n"
 @@comment[ :AAMA_comment ] = "\n/* attr access macro (abbrev) %s */\n"
 
-# @@comment[ :VAMA_comment ] = "\n/* var ã¢ã¯ã»ã¹ãã¯ã­(ç­ç¸®å½¢) %s */\n"
+# @@comment[ :VAMA_comment ] = "\n/* var アクセスマクロ(短縮形) %s */\n"
 @@comment[ :VAMA_comment ] = "\n/* var access macro (abbrev) %s */\n"
 
-# @@comment[ :CPM_comment ] = " /* å¼ã³å£é¢æ°ãã¯ã­ %s */\n"
+# @@comment[ :CPM_comment ] = " /* 呼び口関数マクロ %s */\n"
 @@comment[ :CPM_comment ] = " /* call port function macro %s */\n"
 
-# @@comment[ :CPMA_comment ] = "/* å¼ã³å£é¢æ°ãã¯ã­ï¼ç­ç¸®å½¢ï¼%s */\n"
+# @@comment[ :CPMA_comment ] = "/* 呼び口関数マクロ（短縮形）%s */\n"
 @@comment[ :CPMA_comment ] = "/* call port function macro (abbrev) %s */\n"
 
-# @@comment[ :EPM_comment ] = "\n/* åãå£é¢æ°ãã¯ã­ï¼ç­ç¸®å½¢ï¼ %s */\n"
+# @@comment[ :EPM_comment ] = "\n/* 受け口関数マクロ（短縮形） %s */\n"
 @@comment[ :EPM_comment ] = "\n/* entry port function macro (abbrev) %s */\n"
 
-# @@comment[ :CTIX_comment ] = "\n/* ã»ã«ã¿ã¤ãã®IDXå %s */\n"
+# @@comment[ :CTIX_comment ] = "\n/* セルタイプのIDX型 %s */\n"
 @@comment[ :CTIX_comment ] = "\n/* celltype IDX type %s */\n"
 
-# @@comment[ :EPP_comment ] = "\n/* åãå£é¢æ°ãã­ãã¿ã¤ãå®£è¨ %s */\n"
+# @@comment[ :EPP_comment ] = "\n/* 受け口関数プロトタイプ宣言 %s */\n"
 @@comment[ :EPP_comment ] = "\n/* prototype declaration of entry port function %s */\n"
 
-# @@comment[ :EPSP_comment ] = "\n/* åãå£ã¹ã±ã«ãã³é¢æ°ãã­ãã¿ã¤ãå®£è¨ï¼VMTä¸è¦æé©åã«ããåç
-§ãããã®ï¼ %s */\n"
+# @@comment[ :EPSP_comment ] = "\n/* 受け口スケルトン関数プロトタイプ宣言（VMT不要最適化により参照するもの） %s */\n"
 @@comment[ :EPSP_comment ] = "\n/* prototype declaration of entry port function (referenced when VMT useless optimise enabled) %s */\n"
 
-# @@comment[ :INL_comment ] = "/* inline ãããã® include %s */\n"
+# @@comment[ :INL_comment ] = "/* inline ヘッダの include %s */\n"
 @@comment[ :INL_comment ] = "/*  include inline header %s */\n"
 
-# @@comment[ :CIP_comment ] = "/* ã»ã« INIB åå®£è¨ %s */\n"
+# @@comment[ :CIP_comment ] = "/* セル INIB 型宣言 %s */\n"
 @@comment[ :CIP_comment ] = "/* cell INIB type definition %s */\n"
 
-# @@comment[ :CCTPA_comment ] = "/* ã»ã« CB åå®£è¨ %s */\n"
+# @@comment[ :CCTPA_comment ] = "/* セル CB 型宣言 %s */\n"
 @@comment[ :CCTPA_comment ] = "/* cell CB type definition %s */\n"
 
-# @@comment[ :CCDP_comment ] = "/* ã»ã« CB (ããã¼)åå®£è¨ %s */\n"
+# @@comment[ :CCDP_comment ] = "/* セル CB (ダミー)型宣言 %s */\n"
 @@comment[ :CCDP_comment ] = "/* cell CB (dummy) type definition %s */\n"
 
-# @@comment[ :CCTPO_comment ] = "/* ã»ã« CB åå®£è¨ %s */\n"
+# @@comment[ :CCTPO_comment ] = "/* セル CB 型宣言 %s */\n"
 @@comment[ :CCTPO_comment ] = "/* cell CB type definition %s */\n"
 
-# @@comment[ :SCP_comment ] = "/* ã·ã³ã°ã«ãã³ã»ã« CB ãã­ãã¿ã¤ãå®£è¨ %s */\n"
+# @@comment[ :SCP_comment ] = "/* シングルトンセル CB プロトタイプ宣言 %s */\n"
 @@comment[ :SCP_comment ] = "/* singleton cell CB prototype declaration %s */\n"
 
-# @@comment[ :DCI_comment ] = "\n/* CB ã¯å­å¨ããªããINIB ã CB ã®ä»£ããã«ä½¿ç¨ããããã® define %s */\n"
+# @@comment[ :DCI_comment ] = "\n/* CB は存在しない。INIB を CB の代わりに使用するための define %s */\n"
 @@comment[ :DCI_comment ] = "\n/* CB not exist. CB corresponding to INIB %s */\n"
 
-# @@comment[ :FEC_comment ] = "/* ã¤ãã¬ã¼ã¿ã³ã¼ã (FOREACH_CELL)ã®çæ %s */\n"
+# @@comment[ :FEC_comment ] = "/* イテレータコード (FOREACH_CELL)の生成 %s */\n"
 @@comment[ :FEC_comment ] = "/* iteration code (FOREACH_CELL) %s */\n"
 
-# @@comment[ :DAL_comment ] = "/* deallocate ãã¯ã­ %s */\n"
+# @@comment[ :DAL_comment ] = "/* deallocate マクロ %s */\n"
 @@comment[ :DAL_comment ] = "/* deallocate macro %s */\n"
 
-# @@comment[ :NFEC_comment ] = "/* ã¤ãã¬ã¼ã¿ã³ã¼ã (FOREACH_CELL)ã®çæ(CB,INIB ã¯å­å¨ããªã) %s */\n"
+# @@comment[ :NFEC_comment ] = "/* イテレータコード (FOREACH_CELL)の生成(CB,INIB は存在しない) %s */\n"
 @@comment[ :NFEC_comment ] = "/* iteration code (FOREACH_CELL) (niether CB, nor NIB exit) %s */\n"
 
-# @@comment[ :CIM_comment ] = "/* CB åæåãã¯ã­ %s */\n"
+# @@comment[ :CIM_comment ] = "/* CB 初期化マクロ %s */\n"
 @@comment[ :CIM_comment ] = "/* CB initialize macro %s */\n"
 
-# @@comment[ :EDT_comment ] = "/* åãå£ãã£ã¹ã¯ãªãã¿å %s */\n"
+# @@comment[ :EDT_comment ] = "/* 受け口ディスクリプタ型 %s */\n"
 @@comment[ :EDT_comment ] = "/* entry port descriptor type %s */\n"
 
-# @@comment[ :EPSF_comment ] = "/* åãå£ã¹ã±ã«ãã³é¢æ° %s */\n"
+# @@comment[ :EPSF_comment ] = "/* 受け口スケルトン関数 %s */\n"
 @@comment[ :EPSF_comment ] = "/* entry port skelton function %s */\n"
 
-# @@comment[ :EPSFT_comment ] = "/* åãå£ã¹ã±ã«ãã³é¢æ°ãã¼ãã« %s */\n"
+# @@comment[ :EPSFT_comment ] = "/* 受け口スケルトン関数テーブル %s */\n"
 @@comment[ :EPSFT_comment ] = "/* entry port skelton function table %s */\n"
 
-# @@comment[ :CPEPD_comment ] = "/* å¼ã³å£ã®åç
-§ããåãå£ãã£ã¹ã¯ãªãã¿(å®éã®åã¨ç¸éããå®ç¾©) %s */\n"
+# @@comment[ :CPEPD_comment ] = "/* 呼び口の参照する受け口ディスクリプタ(実際の型と相違した定義) %s */\n"
 @@comment[ :CPEPD_comment ] = "/* entry port descriptor referenced by call port (differ from actual definition) %s */\n"
 
-# @@comment[ :CPA_comment ] = "/* å¼ã³å£é
-å %s */\n"
+# @@comment[ :CPA_comment ] = "/* 呼び口配列 %s */\n"
 @@comment[ :CPA_comment ] = "/* call port array %s */\n"
 
-# @@comment[ :CIC_comment ] = "/* CB åæåã³ã¼ã %s */\n"
+# @@comment[ :CIC_comment ] = "/* CB 初期化コード %s */\n"
 @@comment[ :CIC_comment ] = "/* CB initialize code %s */\n"
 
-# @@comment[ :AVAI_comment ] = "/* å±æ§ã»å¤æ°ã®é
-å %s */\n"
+# @@comment[ :AVAI_comment ] = "/* 属性・変数の配列 %s */\n"
 @@comment[ :AVAI_comment ] = "/* array of attr/var %s */\n"
 
-# @@comment[ :AVI_comment ] = "/* å¤æ°(æ§é ä½ãé
-å)åæå¤ %s */\n"
+# @@comment[ :AVI_comment ] = "/* 変数(構造体、配列)初期値 %s */\n"
 @@comment[ :AVI_comment ] = "/* var (struct, array) initial value %s */\n"
 
-# @@comment[ :INIB_comment ] = "/* ã»ã« INIB %s */\n"
+# @@comment[ :INIB_comment ] = "/* セル INIB %s */\n"
 @@comment[ :INIB_comment ] = "/* cell INIB %s */\n"
 
-# @@comment[ :CB_comment ] = "/* ã»ã« CB %s */\n"
+# @@comment[ :CB_comment ] = "/* セル CB %s */\n"
 @@comment[ :CB_comment ] = "/* cell CB %s */\n"
 
-# @@comment[ :EPD_comment ] = "/* åãå£ãã£ã¹ã¯ãªãã¿ %s */\n"
+# @@comment[ :EPD_comment ] = "/* 受け口ディスクリプタ %s */\n"
 @@comment[ :EPD_comment ] = "/* entry port descriptor %s */\n"
 
-# @@comment[ :PAC_comment ] = "/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã %s */\n"
+# @@comment[ :PAC_comment ] = "/* プロトタイプ宣言や変数の定義をここに書きます %s */\n"
 @@comment[ :PAC_comment ] = "/* Put prototype declaration and/or variale definition here %s */\n"
 
-# @@comment[ :CAAM_comment ] = " *\n * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ %s\n"
+# @@comment[ :CAAM_comment ] = " *\n * 属性アクセスマクロ %s\n"
 @@comment[ :CAAM_comment ] = " *\n * attr access macro %s\n"
 
-# @@comment[ :CAAMI_comment ] = " *\n * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ %s\n"
+# @@comment[ :CAAMI_comment ] = " *\n * 属性アクセスマクロ %s\n"
 @@comment[ :CAAMI_comment ] = " *\n * attr access macro %s\n"
 
-# @@comment[ :TYP_comment ] = " *\n * å %s\n * CELLCB å  : %s\n * CELLIDX å : %s\n"
+# @@comment[ :TYP_comment ] = " *\n * 型 %s\n * CELLCB 型  : %s\n * CELLIDX 型 : %s\n"
 @@comment[ :TYP_comment ] = " *\n * type %s\n * CELLCB type  : %s\n * CELLIDX type : %s\n"
 
-# @@comment[ :TCPF_comment ] = " * å¼ã³å£é¢æ° %s\n"
+# @@comment[ :TCPF_comment ] = " * 呼び口関数 %s\n"
 @@comment[ :TCPF_comment ] = " * call port function %s\n"
 
-# @@comment[ :TEPF_comment ] = "/* åãå£é¢æ° %s */\n"
+# @@comment[ :TEPF_comment ] = "/* 受け口関数 %s */\n"
 @@comment[ :TEPF_comment ] = "/* entry port function %s */\n"
 
-# @@comment[ :TEFB_comment ] = "\t/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã %s */\n"
+# @@comment[ :TEFB_comment ] = "\t/* ここに処理本体を記述します %s */\n"
 @@comment[ :TEFB_comment ] = "\t/* Put statements here %s */\n"
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_ja_JP.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_ja_JP.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_ja_JP.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: messages_file_ja_JP.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -62,128 +47,116 @@
 
 # MSg.note
-@@comment[ :note ] = " * ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ããèªåçæããã¾ãã
- * ãã®ãã¡ã¤ã«ãç·¨éãã¦ä½¿ç¨ãããã¨ã¯ãæå³ããã¦ãã¾ãã
+@@comment[ :note ] = " * このファイルは tecsgen により自動生成されました
+ * このファイルを編集して使用することは、意図されていません
 "
 
 @@comment[ :preamble_note ] = "/* #[<PREAMBLE>]#
- * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
- * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
 "
 
 @@comment[ :postamble_note ] = "/* #[<POSTAMBLE>]#
- *   ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã
+ *   これより下に非受け口関数を書きます
  * #[</POSTAMBLE>]#*/
 "
 
 @@comment[ :template_note ] = "/*
- * ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ãããã³ãã¬ã¼ãã¨ãã¦èªåçæããã¾ãã
- * ãã®ãã¡ã¤ã«ãç·¨éãã¦ä½¿ç¨ãããã¨ãæå³ããã¦ãã¾ãã
- * tecsgen ã®åå®è¡ã«ããä¸æ¸ãããã¦ãã¾ããããéå¸¸
+ * このファイルは tecsgen によりテンプレートとして自動生成されました
+ * このファイルを編集して使用することが意図されていますが
+ * tecsgen の再実行により上書きされてしまうため、通常
  *   gen/%s_template.c => src/%s.c
- * ã®ããã«åå, ãã©ã«ããå¤æ´ãã¦ããä¿®æ­£ãã¾ã
+ * のように名前, フォルダを変更してから修正します
  */
 "
 
 @@comment[ :inline_template_note ] = "/*
- * ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ãããã³ãã¬ã¼ãã¨ãã¦èªåçæããã¾ãã
- * ãã®ãã¡ã¤ã«ãç·¨éãã¦ä½¿ç¨ãããã¨ãæå³ããã¦ãã¾ãã
- * tecsgen ã®åå®è¡ã«ããä¸æ¸ãããã¦ãã¾ããããéå¸¸
+ * このファイルは tecsgen によりテンプレートとして自動生成されました
+ * このファイルを編集して使用することが意図されていますが
+ * tecsgen の再実行により上書きされてしまうため、通常
  *   gen/%s_inline_template.h => src/%s_inline.h
- * ã®ããã«åå, ãã©ã«ããå¤æ´ãã¦ããä¿®æ­£ãã¾ã
+ * のように名前, フォルダを変更してから修正します
  */
 "
 
-@@comment[ :Makefile_note ] = "# ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ããèªåçæããã¾ãã
-# Makefile.temp ã¯ gen ã®ä¸ã¤ä¸ã®ãã£ã¬ã¯ããªã«ç§»ãã¦ä½¿ç¨ãã¾ã
+@@comment[ :Makefile_note ] = "# このファイルは tecsgen により自動生成されました
+# Makefile.temp は gen の一つ上のディレクトリに移して使用します
 #  % mv Makefile.temp Makefile
 # 
-# clean ã®ããã©ã«ãåä½ã¯ $(GEN_DIR)/Makefile.* ãåé¤ãã¾ã
+# clean のデフォルト動作は $(GEN_DIR)/Makefile.* を削除します
 #
-# ãã®ãã¡ã¤ã«ã¯ GNU make ã§ gcc ãç¨ã POSIX ç°å¢ã§åä½ããã¢ã¸ã¥ã¼ã«ããã«ãããã®ã«é©åãªããã«çæããã¦ãã¾ã
-# vpath, CFLAGS, OTHER_OBJS ãªã©ãèª¿æ´ããå¿
-è¦ãããããããã¾ãã
-# ä»ã®ç°å¢ãã¿ã¼ã²ããã®å ´åããã®ãã¡ã¤ã«ãå
-ã«å¤æ´ããå¿
-è¦ãããã¾ã
+# このファイルは GNU make で gcc を用い POSIX 環境で動作するモジュールをビルドするのに適切なように生成されています
+# vpath, CFLAGS, OTHER_OBJS などを調整する必要があるかもしれません
+# 他の環境やターゲットの場合、このファイルを元に変更する必要があります
 
 "
 
-@@comment[ :oneway_ercd_note ] = "/* oneway ã®å ´å E_OK ããè¿ãã¾ãã */"
-@@comment[ :ercd_note ] = "/* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿°ãã¾ã */"
+@@comment[ :oneway_ercd_note ] = "/* oneway の場合 E_OK しか返せません */"
+@@comment[ :ercd_note ] = "/* エラー処理コードをここに記述します */"
 
-@@comment[ :IMP_comment ] = "\n/* import_C ã«ãã import ãããããã %s */\n"
-@@comment[ :MVAR_comment ] = "# å¤æ° %s\n"
-@@comment[ :MRUL_comment ] = "# ã«ã¼ã« %s\n"
-@@comment[ :TCM_comment ] = "# ãã³ãã¬ã¼ãã³ã¼ãã§ã¡ã¼ã¯ãã¦ã¿ãå ´å %s \n"
-@@comment[ :MDEP_comment ] = "\n# depend ã include %s\n"
-@@comment[ :SDI_comment ] = "/* ã·ã°ããã£ãã£ã¹ã¯ãªãã¿åç
-§ããã %s */\n"
-@@comment[ :SD_comment ] = "/* ã·ã°ããã£ãã£ã¹ã¯ãªãã¿ %s */\n"
-@@comment[ :SFT_comment ] = "/* ã·ã°ããã£é¢æ°ãã¼ãã« %s */\n"
-@@comment[ :SDES_comment ] = "/* ã·ã°ããã£ãã£ã¹ã¯ãªãã¿(åççµåç¨) %s */\n"
-# @@comment[ :IRTH_comment ] = "/* ã©ã³ã¿ã¤ã ããã %s */\n"
-@@comment[ :UDF_comment ] = "/* inline ã®ããã® undef %s */\n"
-@@comment[ :IGH_comment ] = "/* ã°ã­ã¼ãã«ããã %s */\n"
-@@comment[ :ISH_comment ] = "/* ã·ã°ããã£ããã %s */\n"
-@@comment[ :ICT_comment ] = "/* æé©åã®ããåç
-§ããã»ã«ã¿ã¤ãã® CB åã®å®ç¾©ãåè¾¼ã %s */\n"
-@@comment[ :NIDB_comment ] = "ID ã®ãã¼ã¹ "
-@@comment[ :NCEL_comment ] = "ã»ã«ã®åæ°"
-@@comment[ :CVI_comment ] = "/* IDXã®æ­£å½æ§ãã§ãã¯ãã¯ã­ %s */\n"
-@@comment[ :CVIA_comment ] = "/* IDXã®æ­£å½æ§ãã§ãã¯ãã¯ã­ï¼ç­ç¸®å½¢ï¼ %s */\n"
-@@comment[ :NCPA_comment ] = "/* å¼ã³å£é
-åã®å¤§ãããå¾ããã¯ã­ %s */\n"
-@@comment[ :NEPA_comment ] = "/* åãå£é
-åã®å¤§ãããå¾ããã¯ã­ %s */\n"
-@@comment[ :TOCP_comment ] = "/* optional å¼ã³å£ããã¹ããããã¯ã­ %s */\n"
-@@comment[ :TOCPA_comment ] = "/* optional å¼ã³å£ããã¹ããããã¯ã­ï¼ç­ç¸®å½¢ï¼ %s */\n"
-@@comment[ :GCB_comment ] = "\n/* ã»ã«CBãå¾ããã¯ã­ %s */\n"
-@@comment[ :GCBA_comment ] = "\n/* ã»ã«CBãå¾ããã¯ã­(ç­ç¸®å½¢) %s */\n"
-@@comment[ :CCT_comment ] = "/* CELLCB å(ç­ç¸®å½¢) %s */\n"
-@@comment[ :CTIXA_comment ] = "/* ã»ã«ã¿ã¤ãã®IDXå(ç­ç¸®å½¢) %s */\n"
-@@comment[ :AAM_comment ] = "\n/* å±æ§ã¢ã¯ã»ã¹ãã¯ã­ %s */\n"
-@@comment[ :VAM_comment ] = "\n/* var ã¢ã¯ã»ã¹ãã¯ã­ %s */\n"
-@@comment[ :AAMA_comment ] = "\n/* å±æ§ã¢ã¯ã»ã¹ãã¯ã­(ç­ç¸®å½¢) %s */\n"
-@@comment[ :VAMA_comment ] = "\n/* var ã¢ã¯ã»ã¹ãã¯ã­(ç­ç¸®å½¢) %s */\n"
-@@comment[ :CPM_comment ] = " /* å¼ã³å£é¢æ°ãã¯ã­ %s */\n"
-@@comment[ :CPMA_comment ] = "/* å¼ã³å£é¢æ°ãã¯ã­ï¼ç­ç¸®å½¢ï¼%s */\n"
-@@comment[ :EPM_comment ] = "\n/* åãå£é¢æ°ãã¯ã­ï¼ç­ç¸®å½¢ï¼ %s */\n"
-@@comment[ :CTIX_comment ] = "\n/* ã»ã«ã¿ã¤ãã®IDXå %s */\n"
-@@comment[ :EPP_comment ] = "\n/* åãå£é¢æ°ãã­ãã¿ã¤ãå®£è¨ %s */\n"
-@@comment[ :EPSP_comment ] = "\n/* åãå£ã¹ã±ã«ãã³é¢æ°ãã­ãã¿ã¤ãå®£è¨ï¼VMTä¸è¦æé©åã«ããåç
-§ãããã®ï¼ %s */\n"
-@@comment[ :INL_comment ] = "/* inline ãããã® include %s */\n"
-@@comment[ :CIP_comment ] = "/* ã»ã« INIB åå®£è¨ %s */\n"
-@@comment[ :CCTPA_comment ] = "/* ã»ã« CB åå®£è¨ %s */\n"
-@@comment[ :CCDP_comment ] = "/* ã»ã« CB (ããã¼)åå®£è¨ %s */\n"
-@@comment[ :CCTPO_comment ] = "/* ã»ã« CB åå®£è¨ %s */\n"
-@@comment[ :SCP_comment ] = "/* ã·ã³ã°ã«ãã³ã»ã« CB ãã­ãã¿ã¤ãå®£è¨ %s */\n"
-@@comment[ :DCI_comment ] = "\n/* CB ã¯å­å¨ããªããINIB ã CB ã®ä»£ããã«ä½¿ç¨ããããã® define %s */\n"
-@@comment[ :FEC_comment ] = "/* ã¤ãã¬ã¼ã¿ã³ã¼ã (FOREACH_CELL)ã®çæ %s */\n"
-@@comment[ :DAL_comment ] = "/* deallocate ãã¯ã­ %s */\n"
-@@comment[ :NFEC_comment ] = "/* ã¤ãã¬ã¼ã¿ã³ã¼ã (FOREACH_CELL)ã®çæ(CB,INIB ã¯å­å¨ããªã) %s */\n"
-@@comment[ :CIM_comment ] = "/* CB åæåãã¯ã­ %s */\n"
-@@comment[ :EDT_comment ] = "/* åãå£ãã£ã¹ã¯ãªãã¿å %s */\n"
-@@comment[ :EPSF_comment ] = "/* åãå£ã¹ã±ã«ãã³é¢æ° %s */\n"
-@@comment[ :EPSFT_comment ] = "/* åãå£ã¹ã±ã«ãã³é¢æ°ãã¼ãã« %s */\n"
-@@comment[ :CPEPD_comment ] = "/* å¼ã³å£ã®åç
-§ããåãå£ãã£ã¹ã¯ãªãã¿(å®éã®åã¨ç¸éããå®ç¾©) %s */\n"
-@@comment[ :CPA_comment ] = "/* å¼ã³å£é
-å %s */\n"
-@@comment[ :CIC_comment ] = "/* CB åæåã³ã¼ã %s */\n"
-@@comment[ :AVAI_comment ] = "/* å±æ§ã»å¤æ°ã®é
-å %s */\n"
-@@comment[ :AVI_comment ] = "/* å¤æ°(æ§é ä½ãé
-å)åæå¤ %s */\n"
-@@comment[ :INIB_comment ] = "/* ã»ã« INIB %s */\n"
-@@comment[ :CB_comment ] = "/* ã»ã« CB %s */\n"
-@@comment[ :EPD_comment ] = "/* åãå£ãã£ã¹ã¯ãªãã¿ %s */\n"
-@@comment[ :PAC_comment ] = "/* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã %s */\n"
-@@comment[ :CAAM_comment ] = " *\n * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ %s\n"
-@@comment[ :CAAMI_comment ] = " *\n * å±æ§ã¢ã¯ã»ã¹ãã¯ã­ %s\n"
-@@comment[ :TYP_comment ] = " *\n * å %s\n * CELLCB å  : %s\n * CELLIDX å : %s\n"
-@@comment[ :TCPF_comment ] = " * å¼ã³å£é¢æ° %s\n"
-@@comment[ :TEPF_comment ] = "/* åãå£é¢æ° %s */\n"
-@@comment[ :TEFB_comment ] = "\t/* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã %s */\n"
+@@comment[ :IMP_comment ] = "\n/* import_C により import されるヘッダ %s */\n"
+@@comment[ :MVAR_comment ] = "# 変数 %s\n"
+@@comment[ :MRUL_comment ] = "# ルール %s\n"
+@@comment[ :TCM_comment ] = "# テンプレートコードでメークしてみる場合 %s \n"
+@@comment[ :MDEP_comment ] = "\n# depend を include %s\n"
+@@comment[ :SDI_comment ] = "/* シグニチャディスクリプタ参照ヘッダ %s */\n"
+@@comment[ :SD_comment ] = "/* シグニチャディスクリプタ %s */\n"
+@@comment[ :SFT_comment ] = "/* シグニチャ関数テーブル %s */\n"
+@@comment[ :SDES_comment ] = "/* シグニチャディスクリプタ(動的結合用) %s */\n"
+# @@comment[ :IRTH_comment ] = "/* ランタイムヘッダ %s */\n"
+@@comment[ :UDF_comment ] = "/* inline のための undef %s */\n"
+@@comment[ :IGH_comment ] = "/* グローバルヘッダ %s */\n"
+@@comment[ :ISH_comment ] = "/* シグニチャヘッダ %s */\n"
+@@comment[ :ICT_comment ] = "/* 最適化のため参照するセルタイプの CB 型の定義を取込む %s */\n"
+@@comment[ :NIDB_comment ] = "ID のベース "
+@@comment[ :NCEL_comment ] = "セルの個数"
+@@comment[ :CVI_comment ] = "/* IDXの正当性チェックマクロ %s */\n"
+@@comment[ :CVIA_comment ] = "/* IDXの正当性チェックマクロ（短縮形） %s */\n"
+@@comment[ :NCPA_comment ] = "/* 呼び口配列の大きさを得るマクロ %s */\n"
+@@comment[ :NEPA_comment ] = "/* 受け口配列の大きさを得るマクロ %s */\n"
+@@comment[ :TOCP_comment ] = "/* optional 呼び口をテストするマクロ %s */\n"
+@@comment[ :TOCPA_comment ] = "/* optional 呼び口をテストするマクロ（短縮形） %s */\n"
+@@comment[ :GCB_comment ] = "\n/* セルCBを得るマクロ %s */\n"
+@@comment[ :GCBA_comment ] = "\n/* セルCBを得るマクロ(短縮形) %s */\n"
+@@comment[ :CCT_comment ] = "/* CELLCB 型(短縮形) %s */\n"
+@@comment[ :CTIXA_comment ] = "/* セルタイプのIDX型(短縮形) %s */\n"
+@@comment[ :AAM_comment ] = "\n/* 属性アクセスマクロ %s */\n"
+@@comment[ :VAM_comment ] = "\n/* var アクセスマクロ %s */\n"
+@@comment[ :AAMA_comment ] = "\n/* 属性アクセスマクロ(短縮形) %s */\n"
+@@comment[ :VAMA_comment ] = "\n/* var アクセスマクロ(短縮形) %s */\n"
+@@comment[ :CPM_comment ] = " /* 呼び口関数マクロ %s */\n"
+@@comment[ :CPMA_comment ] = "/* 呼び口関数マクロ（短縮形）%s */\n"
+@@comment[ :EPM_comment ] = "\n/* 受け口関数マクロ（短縮形） %s */\n"
+@@comment[ :CTIX_comment ] = "\n/* セルタイプのIDX型 %s */\n"
+@@comment[ :EPP_comment ] = "\n/* 受け口関数プロトタイプ宣言 %s */\n"
+@@comment[ :EPSP_comment ] = "\n/* 受け口スケルトン関数プロトタイプ宣言（VMT不要最適化により参照するもの） %s */\n"
+@@comment[ :INL_comment ] = "/* inline ヘッダの include %s */\n"
+@@comment[ :CIP_comment ] = "/* セル INIB 型宣言 %s */\n"
+@@comment[ :CCTPA_comment ] = "/* セル CB 型宣言 %s */\n"
+@@comment[ :CCDP_comment ] = "/* セル CB (ダミー)型宣言 %s */\n"
+@@comment[ :CCTPO_comment ] = "/* セル CB 型宣言 %s */\n"
+@@comment[ :SCP_comment ] = "/* シングルトンセル CB プロトタイプ宣言 %s */\n"
+@@comment[ :DCI_comment ] = "\n/* CB は存在しない。INIB を CB の代わりに使用するための define %s */\n"
+@@comment[ :FEC_comment ] = "/* イテレータコード (FOREACH_CELL)の生成 %s */\n"
+@@comment[ :DAL_comment ] = "/* deallocate マクロ %s */\n"
+@@comment[ :NFEC_comment ] = "/* イテレータコード (FOREACH_CELL)の生成(CB,INIB は存在しない) %s */\n"
+@@comment[ :CIM_comment ] = "/* CB 初期化マクロ %s */\n"
+@@comment[ :EDT_comment ] = "/* 受け口ディスクリプタ型 %s */\n"
+@@comment[ :EPSF_comment ] = "/* 受け口スケルトン関数 %s */\n"
+@@comment[ :EPSFT_comment ] = "/* 受け口スケルトン関数テーブル %s */\n"
+@@comment[ :CPEPD_comment ] = "/* 呼び口の参照する受け口ディスクリプタ(実際の型と相違した定義) %s */\n"
+@@comment[ :CPA_comment ] = "/* 呼び口配列 %s */\n"
+@@comment[ :CIC_comment ] = "/* CB 初期化コード %s */\n"
+@@comment[ :AVAI_comment ] = "/* 属性・変数の配列 %s */\n"
+@@comment[ :AVI_comment ] = "/* 変数(構造体、配列)初期値 %s */\n"
+@@comment[ :INIB_comment ] = "/* セル INIB %s */\n"
+@@comment[ :CB_comment ] = "/* セル CB %s */\n"
+@@comment[ :EPD_comment ] = "/* 受け口ディスクリプタ %s */\n"
+@@comment[ :PAC_comment ] = "/* プロトタイプ宣言や変数の定義をここに書きます %s */\n"
+@@comment[ :CAAM_comment ] = " *\n * 属性アクセスマクロ %s\n"
+@@comment[ :CAAMI_comment ] = " *\n * 属性アクセスマクロ %s\n"
+@@comment[ :TYP_comment ] = " *\n * 型 %s\n * CELLCB 型  : %s\n * CELLIDX 型 : %s\n"
+@@comment[ :TCPF_comment ] = " * 呼び口関数 %s\n"
+@@comment[ :TEPF_comment ] = "/* 受け口関数 %s */\n"
+@@comment[ :TEFB_comment ] = "\t/* ここに処理本体を記述します %s */\n"
 
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1AlarmPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1AlarmPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1AlarmPlugin.rb	(revision 321)
@@ -6,68 +6,52 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project TECS-WG
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #   $Id
 #++
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class ATK1AlarmPlugin < CelltypePlugin
 #@celltype:: Celltype
-#@option:: String     :ãªãã·ã§ã³æå­å
-
-  #signature::     Celltype        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+#@option:: String     :オプション文字列
+
+  #signature::     Celltype        シグニチャ（インスタンス）
   def initialize( celltype, option )
     super
   end
 
-  #===  CDL ãã¡ã¤ã«ã®çæ
-  #      typedef, signature, celltype, cell ã®ã³ã¼ããçæ
-  #      éè¤ãã¦çæãã¦ã¯ãªããªã
-  #      ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ã
-  #      ãããã¯ååã® import ã«ãããéè¤ãé¿ãããã¨ã
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell のコードを生成
+  #      重複して生成してはならない
+  #      すでに生成されている場合は出力しないこと。
+  #      もしくは同名の import により、重複を避けること。
+  #file::        FILE       生成するファイル
 #  def gen_cdl_file file
 #  end
@@ -76,10 +60,8 @@
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     ãã®ã¡ã½ãããæªå®ç¾©ã®å ´åãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã®ã¡ã½ãããå®ç¾©æ¸ã¿ã®å ´åãï¼ãã³ãã¬ã¼ãã§ã¯ãªããå¤æ´ããå¿
-è¦ã®ãªãï¼ã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     このメソッドが未定義の場合、ジェネレータは受け口関数のテンプレートを生成する
+  #     このメソッドが定義済みの場合、（テンプレートではなく、変更する必要のない）セルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -190,5 +172,5 @@
   file2.close
 
-  # è¿½è¨ããããã« AppFile ãä½¿ãï¼æå­ã³ã¼ãå¤æãããªãï¼
+  # 追記するために AppFile を使う（文字コード変換されない）
   file = AppFile.open( "#{$gen}/tAlarm_tecsgen.#{$c_suffix}" )
   file.print "\n/* Generated by ATK1AlarmPlugin */\n"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1DelayTaskPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1DelayTaskPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1DelayTaskPlugin.rb	(revision 321)
@@ -6,68 +6,52 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project TECS-WG
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #   $Id
 #++
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class ATK1DelayTaskPlugin < CelltypePlugin
 #@celltype:: Celltype
-#@option:: String     :ãªãã·ã§ã³æå­å
+#@option:: String     :オプション文字列
 
-  #signature::     Celltype        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+  #signature::     Celltype        シグニチャ（インスタンス）
   def initialize( celltype, option )
     super
   end
 
-  #===  CDL ãã¡ã¤ã«ã®çæ
-  #      typedef, signature, celltype, cell ã®ã³ã¼ããçæ
-  #      éè¤ãã¦çæãã¦ã¯ãªããªã
-  #      ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ã
-  #      ãããã¯ååã® import ã«ãããéè¤ãé¿ãããã¨ã
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell のコードを生成
+  #      重複して生成してはならない
+  #      すでに生成されている場合は出力しないこと。
+  #      もしくは同名の import により、重複を避けること。
+  #file::        FILE       生成するファイル
 #  def gen_cdl_file file
 #  end
@@ -83,10 +67,8 @@
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     ãã®ã¡ã½ãããæªå®ç¾©ã®å ´åãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã®ã¡ã½ãããå®ç¾©æ¸ã¿ã®å ´åãï¼ãã³ãã¬ã¼ãã§ã¯ãªããå¤æ´ããå¿
-è¦ã®ãªãï¼ã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     このメソッドが未定義の場合、ジェネレータは受け口関数のテンプレートを生成する
+  #     このメソッドが定義済みの場合、（テンプレートではなく、変更する必要のない）セルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -102,5 +84,5 @@
   def gen_factory file
 
-    # è¿½è¨ããããã« AppFile ãä½¿ãï¼æå­ã³ã¼ãå¤æãããªãï¼
+    # 追記するために AppFile を使う（文字コード変換されない）
     file2 = AppFile.open( "#{$gen}/tDelayTaskBody_factory.#{$h_suffix}" )
     file2.print "\n/* Generated by ATK1DelayTaskPlugin */\n\n"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1EventPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1EventPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1EventPlugin.rb	(revision 321)
@@ -6,63 +6,45 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project TECS-WG
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #   $Id
 #++
 
-#== ATK1 Event celltype ãã©ã°ã¤ã³ã¯ã©ã¹
+#== ATK1 Event celltype プラグインクラス
 class ATK1EventPlugin < CelltypePlugin
-#@@instancies:: []     :ã»ã«å®ä½ç¾¤
+#@@instancies:: []     :セル実体群
 @@instancies = []
 
-  #===  åæå
-  #      å
-¨ã¦ã®ã»ã«ã®å®ä½ãæå³è§£æå¾ã«åç
-§ããå¿
-è¦ãããããã«
-  #      åæåæã« singleton ã® instancies ã«æ ¼ç´ãã
-  #signature::     Celltype        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+  #===  初期化
+  #      全てのセルの実体を意味解析後に参照する必要があるために
+  #      初期化時に singleton の instancies に格納する
+  #signature::     Celltype        シグニチャ（インスタンス）
   def initialize( celltype, option )
     super
@@ -70,9 +52,9 @@
   end
 
-  #===  cellã®çæ
+  #===  cellの生成
   def new_cell cell
   end
 
-  #===  æå³è§£æå®è¡å¾ã®ã³ã¼ãçæ
+  #===  意味解析実行後のコード生成
   def self.gen_post_code file
 
@@ -83,5 +65,5 @@
   end
 
-  #===  OILãã¡ã¤ã«åºå
+  #===  OILファイル出力
   def gen_oil_code file
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1ISRPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1ISRPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1ISRPlugin.rb	(revision 321)
@@ -6,68 +6,52 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project TECS-WG
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #   $Id
 #++
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class ATK1ISRPlugin < CelltypePlugin
 #@celltype:: Celltype
-#@option:: String     :ãªãã·ã§ã³æå­å
+#@option:: String     :オプション文字列
 
-  #signature::     Celltype        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+  #signature::     Celltype        シグニチャ（インスタンス）
   def initialize( celltype, option )
     super
   end
 
-  #===  CDL ãã¡ã¤ã«ã®çæ
-  #      typedef, signature, celltype, cell ã®ã³ã¼ããçæ
-  #      éè¤ãã¦çæãã¦ã¯ãªããªã
-  #      ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ã
-  #      ãããã¯ååã® import ã«ãããéè¤ãé¿ãããã¨ã
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell のコードを生成
+  #      重複して生成してはならない
+  #      すでに生成されている場合は出力しないこと。
+  #      もしくは同名の import により、重複を避けること。
+  #file::        FILE       生成するファイル
 #  def gen_cdl_file file
 #  end
@@ -76,10 +60,8 @@
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     ãã®ã¡ã½ãããæªå®ç¾©ã®å ´åãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã®ã¡ã½ãããå®ç¾©æ¸ã¿ã®å ´åãï¼ãã³ãã¬ã¼ãã§ã¯ãªããå¤æ´ããå¿
-è¦ã®ãªãï¼ã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     このメソッドが未定義の場合、ジェネレータは受け口関数のテンプレートを生成する
+  #     このメソッドが定義済みの場合、（テンプレートではなく、変更する必要のない）セルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -116,5 +98,5 @@
       end
 
-      # ENTRY (entryã¯tecsgenã®äºç´èªã®ããNumberãä»å )
+      # ENTRY (entryはtecsgenの予約語のためNumberを付加)
       join = cell.get_join_list.get_item( :entryNumber )
       if join then
@@ -152,5 +134,5 @@
   file2.close
 
-  # è¿½è¨ããããã« AppFile ãä½¿ãï¼æå­ã³ã¼ãå¤æãããªãï¼
+  # 追記するために AppFile を使う（文字コード変換されない）
   file = AppFile.open( "#{$gen}/tISR_tecsgen.#{$c_suffix}" )
   file.print "\n/* Generated by ATK1ISRPlugin */\n"
@@ -165,6 +147,5 @@
 #if defined( OMIT_ISR1_ENTRY )
 EOT
-          file.print "/* ISR1å
-¥ãå£æªçææã¯æ¬é¢æ°ãå²è¾¼ã¿é¢æ°æå®ãã  */\n"
+          file.print "/* ISR1入り口未生成時は本関数を割込み関数指定する  */\n"
           file.print <<EOT
 #pragma INTERRUPT  #{cell.get_name}
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1KernelPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1KernelPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1KernelPlugin.rb	(revision 321)
@@ -6,69 +6,53 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project TECS-WG
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #   $Id
 #++
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class ATK1KernelPlugin < CelltypePlugin
 #@celltype:: Celltype
-#@option:: String     :ãªãã·ã§ã³æå­å
+#@option:: String     :オプション文字列
   @@cell_list = []
 
-  #signature::     Celltype        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+  #signature::     Celltype        シグニチャ（インスタンス）
   def initialize( celltype, option )
     super
   end
 
-  #===  CDL ãã¡ã¤ã«ã®çæ
-  #      typedef, signature, celltype, cell ã®ã³ã¼ããçæ
-  #      éè¤ãã¦çæãã¦ã¯ãªããªã
-  #      ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ã
-  #      ãããã¯ååã® import ã«ãããéè¤ãé¿ãããã¨ã
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell のコードを生成
+  #      重複して生成してはならない
+  #      すでに生成されている場合は出力しないこと。
+  #      もしくは同名の import により、重複を避けること。
+  #file::        FILE       生成するファイル
 #  def gen_cdl_file file
 #  end
@@ -85,10 +69,8 @@
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     ãã®ã¡ã½ãããæªå®ç¾©ã®å ´åãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã®ã¡ã½ãããå®ç¾©æ¸ã¿ã®å ´åãï¼ãã³ãã¬ã¼ãã§ã¯ãªããå¤æ´ããå¿
-è¦ã®ãªãï¼ã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     このメソッドが未定義の場合、ジェネレータは受け口関数のテンプレートを生成する
+  #     このメソッドが定義済みの場合、（テンプレートではなく、変更する必要のない）セルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -184,5 +166,5 @@
     file2.close
 
-    # è¿½è¨ããããã« AppFile ãä½¿ãï¼æå­ã³ã¼ãå¤æãããªãï¼
+    # 追記するために AppFile を使う（文字コード変換されない）
     file2 = AppFile.open( "#{$gen}/tKernel_tecsgen.#{$c_suffix}" )
     file2.print "\n/* Generated by ATK1KernelPlugin */\n\n"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1ResourcePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1ResourcePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1ResourcePlugin.rb	(revision 321)
@@ -6,68 +6,52 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project TECS-WG
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #   $Id
 #++
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class ATK1ResourcePlugin < CelltypePlugin
 #@celltype:: Celltype
-#@option:: String     :ãªãã·ã§ã³æå­å
+#@option:: String     :オプション文字列
 
-  #signature::     Celltype        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+  #signature::     Celltype        シグニチャ（インスタンス）
   def initialize( celltype, option )
     super
   end
 
-  #===  CDL ãã¡ã¤ã«ã®çæ
-  #      typedef, signature, celltype, cell ã®ã³ã¼ããçæ
-  #      éè¤ãã¦çæãã¦ã¯ãªããªã
-  #      ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ã
-  #      ãããã¯ååã® import ã«ãããéè¤ãé¿ãããã¨ã
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell のコードを生成
+  #      重複して生成してはならない
+  #      すでに生成されている場合は出力しないこと。
+  #      もしくは同名の import により、重複を避けること。
+  #file::        FILE       生成するファイル
 #  def gen_cdl_file file
 #  end
@@ -76,10 +60,8 @@
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     ãã®ã¡ã½ãããæªå®ç¾©ã®å ´åãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã®ã¡ã½ãããå®ç¾©æ¸ã¿ã®å ´åãï¼ãã³ãã¬ã¼ãã§ã¯ãªããå¤æ´ããå¿
-è¦ã®ãªãï¼ã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     このメソッドが未定義の場合、ジェネレータは受け口関数のテンプレートを生成する
+  #     このメソッドが定義済みの場合、（テンプレートではなく、変更する必要のない）セルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1TaskPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1TaskPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ATK1TaskPlugin.rb	(revision 321)
@@ -6,68 +6,52 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project TECS-WG
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #   $Id
 #++
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class ATK1TaskPlugin < CelltypePlugin
 #@celltype:: Celltype
-#@option:: String     :ãªãã·ã§ã³æå­å
-
-  #signature::     Celltype        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+#@option:: String     :オプション文字列
+
+  #signature::     Celltype        シグニチャ（インスタンス）
   def initialize( celltype, option )
     super
   end
 
-  #===  CDL ãã¡ã¤ã«ã®çæ
-  #      typedef, signature, celltype, cell ã®ã³ã¼ããçæ
-  #      éè¤ãã¦çæãã¦ã¯ãªããªã
-  #      ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ã
-  #      ãããã¯ååã® import ã«ãããéè¤ãé¿ãããã¨ã
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell のコードを生成
+  #      重複して生成してはならない
+  #      すでに生成されている場合は出力しないこと。
+  #      もしくは同名の import により、重複を避けること。
+  #file::        FILE       生成するファイル
 #  def gen_cdl_file file
 #  end
@@ -83,10 +67,8 @@
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     ãã®ã¡ã½ãããæªå®ç¾©ã®å ´åãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã®ã¡ã½ãããå®ç¾©æ¸ã¿ã®å ´åãï¼ãã³ãã¬ã¼ãã§ã¯ãªããå¤æ´ããå¿
-è¦ã®ãªãï¼ã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     このメソッドが未定義の場合、ジェネレータは受け口関数のテンプレートを生成する
+  #     このメソッドが定義済みの場合、（テンプレートではなく、変更する必要のない）セルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -218,5 +200,5 @@
   file2.close
 
-  # è¿½è¨ããããã« AppFile ãä½¿ãï¼æå­ã³ã¼ãå¤æãããªãï¼
+  # 追記するために AppFile を使う（文字コード変換されない）
   file = AppFile.open( "#{$gen}/tTask_tecsgen.#{$c_suffix}" )
   file.print "\n/* Generated by ATK1TaskPlugin */\n"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/C2TECSBridgePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/C2TECSBridgePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/C2TECSBridgePlugin.rb	(revision 321)
@@ -6,57 +6,42 @@
 #   Copyright (C) 2008-2015 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: C2TECSBridgePlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== C => TECS åãå£å¼ã³åºãã®ãã©ã°ã¤ã³
+#== C => TECS 受け口呼び出しのプラグイン
 class C2TECSBridgePlugin < SignaturePlugin
-#@signature:: Signature   ãã©ã°ã¤ã³ã®å¯¾è±¡ã¨ãªãã·ã°ããã£
-#@option:: String   '"', '"' ã§å²ã¾ããæå­å
-
-  # ãã©ã°ã¤ã³å¼æ°åã¨ Proc
+#@signature:: Signature   プラグインの対象となるシグニチャ
+#@option:: String   '"', '"' で囲まれた文字列
+
+  # プラグイン引数名と Proc
   C2TECSBridgePluginArgProc = {
     "prefix" => Proc.new { |obj,rhs| obj.set_prefix rhs },
@@ -68,5 +53,5 @@
   @@signature_list = { }
 
-  #signature::     Signature        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+  #signature::     Signature        シグニチャ（インスタンス）
   def initialize( signature, option )
     super
@@ -100,18 +85,16 @@
   end
 
-  #=== å¾ãã®ã³ã¼ããçæ
-  #ãã©ã°ã¤ã³ã®å¾ãã®ã³ã¼ããçæ
+  #=== 後ろのコードを生成
+  #プラグインの後ろのコードを生成
   #file:: File: 
   def self.gen_post_code( file )
-    # è¤æ°ã®ãã©ã°ã¤ã³ã® post_code ãä¸ã¤ã®ãã¡ã¤ã«ã«å«ã¾ãããããä»¥ä¸ã®ãããªè¦åºããã¤ãããã¨
+    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
     # file.print "/* '#{self.class.name}' post code */\n"
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     éå¸¸ã§ããã°ãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã©ã°ã¤ã³ã®å ´åãå¤æ´ããå¿
-è¦ã®ãªãã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     通常であれば、ジェネレータは受け口関数のテンプレートを生成する
+  #     プラグインの場合、変更する必要のないセルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -212,13 +195,13 @@
   end
 
-  #===  set_prefix - prefix ãã©ã°ã¤ã³ãªãã·ã§ã³
+  #===  set_prefix - prefix プラグインオプション
   def set_prefix rhs
     @prefix = rhs.to_s
   end
-  #===  set_suffix - suffix ãã©ã°ã¤ã³ãªãã·ã§ã³
+  #===  set_suffix - suffix プラグインオプション
   def set_suffix rhs
     @suffix = rhs.to_s
   end
-  #===  set_header_name - header_name ãã©ã°ã¤ã³ãªãã·ã§ã³
+  #===  set_header_name - header_name プラグインオプション
   def set_header_name rhs
     @header_name = "#{$gen}/" + rhs.to_s
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/CellPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/CellPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/CellPlugin.rb	(revision 321)
@@ -6,73 +6,57 @@
 #   Copyright (C) 2008-2011 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: CellPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class CellPlugin < Plugin
 
   #=== CellPlugin# initialize
-  #cell::     Cell        ã»ã«ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
-  # ãã®ã¡ã½ããã¯ãã»ã«ã®æ§æè§£æãçµãã£ãã¨ããã§å¼ã³åºããã
-  # ãã®æ®µéã§ã¯æå³è§£æãçµãã£ã¦ããªã
+  #cell::     Cell        セル（インスタンス）
+  # このメソッドは、セルの構文解析が終わったところで呼び出される
+  # この段階では意味解析が終わっていない
   def initialize( cell, option )
     super()
     @cell = cell
     @plugin_arg_str = CDLString.remove_dquote option
-    # @plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # åå¾ã® "" ãåãé¤ã
+    # @plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # 前後の "" を取り除く
     # @plugin_arg_str.sub!( /(.*)"\z/, '\1' )
     @plugin_arg_list = {}
   end
 
-  #=== å¾ãã® CDL ã³ã¼ããçæ
-  #ãã©ã°ã¤ã³ã®å¾ãã® CDL ã³ã¼ããçæ
+  #=== 後ろの CDL コードを生成
+  #プラグインの後ろの CDL コードを生成
   #file:: File: 
   def self.gen_post_code( file )
-    # è¤æ°ã®ãã©ã°ã¤ã³ã® post_code ãä¸ã¤ã®ãã¡ã¤ã«ã«å«ã¾ãããããä»¥ä¸ã®ãããªè¦åºããã¤ãããã¨
+    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
     # file.print "/* '#{self.class.name}' post code */\n"
   end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/CelltypePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/CelltypePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/CelltypePlugin.rb	(revision 321)
@@ -6,60 +6,44 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: CelltypePlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class CelltypePlugin < Plugin
 
-  #celltype::     Celltype        ã»ã«ã¿ã¤ãï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+  #celltype::     Celltype        セルタイプ（インスタンス）
   def initialize( celltype, option )
     super()
     @celltype = celltype
-    # @plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # åå¾ã® "" ãåãé¤ã
+    # @plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # 前後の "" を取り除く
     # @plugin_arg_str.sub!( /(.*)"\z/, '\1' )
     @plugin_arg_str = CDLString.remove_dquote option
@@ -67,25 +51,24 @@
   end
 
-  #=== æ°ããã»ã«
-  #cell::        Cell            ã»ã«
+  #=== 新しいセル
+  #cell::        Cell            セル
   #
-  # celltype ãã©ã°ã¤ã³ãæå®ãããã»ã«ã¿ã¤ãã®ã»ã«ãçæããã
-  # ã»ã«ã¿ã¤ããã©ã°ã¤ã³ã«å¯¾ããæ°ããã»ã«ã®å ±å
+  # celltype プラグインを指定されたセルタイプのセルが生成された
+  # セルタイププラグインに対する新しいセルの報告
   def new_cell( cell )
   end
 
 
-  #=== tCelltype_factory.h ã«æ¿å
-¥ããã³ã¼ããçæãã
-  # file ä»¥å¤ã®ä»ã®ãã¡ã¤ã«ã«ãã¡ã¯ããªã³ã¼ããçæãã¦ããã
-  # ã»ã«ã¿ã¤ããã©ã°ã¤ã³ãæå®ãããã»ã«ã¿ã¤ãã®ã¿å¼ã³åºããã
+  #=== tCelltype_factory.h に挿入するコードを生成する
+  # file 以外の他のファイルにファクトリコードを生成してもよい
+  # セルタイププラグインが指定されたセルタイプのみ呼び出される
   def gen_factory file
   end
 
-  #=== å¾ãã® CDL ã³ã¼ããçæ
-  #ãã©ã°ã¤ã³ã®å¾ãã® CDL ã³ã¼ããçæ
+  #=== 後ろの CDL コードを生成
+  #プラグインの後ろの CDL コードを生成
   #file:: File: 
   def self.gen_post_code( file )
-    # è¤æ°ã®ãã©ã°ã¤ã³ã® post_code ãä¸ã¤ã®ãã¡ã¤ã«ã«å«ã¾ãããããä»¥ä¸ã®ãããªè¦åºããã¤ãããã¨
+    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
     # file.print "/* '#{self.class.name}' post code */\n"
   end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/DomainPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/DomainPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/DomainPlugin.rb	(revision 321)
@@ -6,97 +6,72 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: DomainPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== ãã¡ã¤ã³ãã©ã°ã¤ã³ã®è¦ªã¯ã©ã¹
+#== ドメインプラグインの親クラス
 class DomainPlugin < Plugin
 
-  #== domain æå®ããããªã¼ã¸ã§ã³ãå®ç¾©ããã
-  # region ã§ domain æå®ããã£ã
-  #domain_type_name::Symbol : domain æå®å­ã®ç¬¬ä¸å¼æ°
-  #option::String : domain æå®å­ã®ç¬¬äºå¼æ°
+  #== domain 指定されたリージョンが定義された
+  # region で domain 指定があった
+  #domain_type_name::Symbol : domain 指定子の第一引数
+  #option::String : domain 指定子の第二引数
   def initialize( region, domain_type_name, option )
   end
 
-  #== çµå join ã«ãã©ã°ã¤ã³ãæ¿å
-¥ãã
-  #join::Join : çµåã«é¢ããæ
-å ±
-  #return::[ plugin_name::String, option::String ]: æ¿å
-¥ãããã©ã°ã¤ã³ã æ¿å
-¥ãããã®ããªããã° nil ãè¿ã
+  #== 結合 join にプラグインを挿入する
+  #join::Join : 結合に関する情報
+  #return::[ plugin_name::String, option::String ]: 挿入するプラグイン。 挿入するものがなければ nil を返す
   #return::(1) [ plugin_name, option ] or (2) [[ plugin_name, option ], ...], or [] or nil:  (2): not supported now
-  #   nil: region éã®çµåç¦æ­¢, []: region éã®çµåå¯(ãã©ã°ã¤ã³æ¿å
-¥ç¡ã)
-  #   [ plugin_name, option ]: *_through( plugin_name, option ) æå®ããã®ã¨åç­
+  #   nil: region 間の結合禁止, []: region 間の結合可(プラグイン挿入無し)
+  #   [ plugin_name, option ]: *_through( plugin_name, option ) 指定したのと同等
   #
-  # region éã® through ãæå®ããã¦ããå ´åãout_through, to_through
-  # ã§ã¯ããããã«ãã£ã¦æå®ããããã©ã°ã¤ã³ã®å¾ãã«ãin_through ã®å ´å
-  # in_through ãã©ã°ã¤ã³ã®åã«æ¿å
-¥ããã
+  # region 間の through が指定されている場合、out_through, to_through
+  # では、それらによって指定されたプラグインの後ろに、in_through の場合
+  # in_through プラグインの前に挿入される
   #
-  # ãã®ã¡ã½ãããå¼åºãããæç¹ã§ã¯ Join#get_rhs_cell ãªã©æå³è§£æå¾
-  # ã«ããå¼ã³åºããªãã¡ã½ãããå¼åºãã¦ããæå¹ãªå¤ã¯å¾ãããªã
+  # このメソッドが呼出された時点では Join#get_rhs_cell など意味解析後
+  # にしか呼び出せないメソッドを呼出しても、有効な値は得られない
   #
   def add_through_plugin( join, current_region, next_region, through_type )
-    # join.get_owner:Cell  å·¦è¾ºã®ã»ã«
-    # join.get_definition:Port å¼ã³å£
-    # join.get_subscript:Integer or nil å¼ã³å£é
-åã®æ·»æ° (Join::@subscript ã®èª¬æåç
-§)
-    # join.get_cell:Cell å³è¾ºã®ã»ã«
-    # join.get_port_name:Symbol åãå£
-    # get_rhs_subscript:Integer or nil åãå£é
-åã®æ·»æ° (Join::@rhs_subscript ã®èª¬æåç
-§)
+    # join.get_owner:Cell  左辺のセル
+    # join.get_definition:Port 呼び口
+    # join.get_subscript:Integer or nil 呼び口配列の添数 (Join::@subscript の説明参照)
+    # join.get_cell:Cell 右辺のセル
+    # join.get_port_name:Symbol 受け口
+    # get_rhs_subscript:Integer or nil 受け口配列の添数 (Join::@rhs_subscript の説明参照)
     # return []
     return nil
   end
 
-  #== require ãçµåå¯è½ãï¼
+  #== require が結合可能か？
   def joinable?(current_region, next_region, through_type )
     return false
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2AlarmHandlerPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2AlarmHandlerPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2AlarmHandlerPlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2012 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -54,6 +39,5 @@
 #require "HRP2KernelObjectPlugin"
 require_tecsgen_lib "HRP2KernelObjectPlugin.rb"
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class HRP2AlarmHandlerPlugin < HRP2KernelObjectPlugin
     @@ep = [:eStartAlarm, :eStopAlarm, :eManageAlarm, :eReferAlarm ]
@@ -66,10 +50,10 @@
     def print_cfg_cre(file, cell, val, tab)
         val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
-        # $cbp$ã®ä»£ãã
+        # $cbp$の代わり
         index = cell.get_id - @celltype.get_id_base
         cell_CB_name = "#{@celltype.get_global_name}_CB_tab[#{index}]"
-        # CRE_XXXã®çæ
+        # CRE_XXXの生成
         if (cell.get_region.get_region_type != :DOMAIN) || (cell.get_region.get_param != :KERNEL_DOMAIN)
-            # ç¡æå± or ã¦ã¼ã¶ãã¡ã¤ã³ã«å±ããå ´å
+            # 無所属 or ユーザドメインに属する場合
                 raise "alarm handler #{val[:id]} must belong to kernel domain."
         else
@@ -84,5 +68,5 @@
     end
 
-    #tAlarmã®åãå£ãªã¹ã 
+    #tAlarmの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2CyclicHandlerPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2CyclicHandlerPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2CyclicHandlerPlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2012 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -55,6 +40,5 @@
 require_tecsgen_lib "HRP2KernelObjectPlugin.rb"
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class HRP2CyclicHandlerPlugin < HRP2KernelObjectPlugin
     @@ep = [:eStartCyclic, :eStopCyclic, :eManageCyclic, :eReferCyclic ]
@@ -67,10 +51,10 @@
     def print_cfg_cre(file, cell, val, tab)
         val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
-        # $cbp$ã®ä»£ãã
+        # $cbp$の代わり
         index = cell.get_id - @celltype.get_id_base
         cell_CB_name = "#{@celltype.get_global_name}_CB_tab[#{index}]"
-        # CRE_XXXã®çæ
+        # CRE_XXXの生成
         if (cell.get_region.get_region_type != :DOMAIN) || (cell.get_region.get_param != :KERNEL_DOMAIN)
-            # ç¡æå± or ã¦ã¼ã¶ãã¡ã¤ã³ã«å±ããå ´å
+            # 無所属 or ユーザドメインに属する場合
                 raise "cyclic handler #{val[:id]} must belong to kernel domain."
         else
@@ -85,5 +69,5 @@
     end
 
-    #tCyclicHandlerã®åãå£ãªã¹ã 
+    #tCyclicHandlerの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2DataqueuePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2DataqueuePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2DataqueuePlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2012 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -59,9 +44,8 @@
     @@ep = [:eSendDataqueue, :eReceiveDataqueue, :eManageDataqueue, :eReferDataqueue ]
     #=== HRP2DataqueuePlugin#print_cfg_cre
-    # CRE_DTQã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # tab :: string:   ã¤ã³ãã³ãç¨ã®tab
+    # CRE_DTQの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # tab :: string:   インデント用のtab
     def print_cfg_cre(file, cell, val, tab)
         file.print tab
@@ -69,13 +53,12 @@
     end
     #=== HRP2DataqueuePlugin#print_cfg_sac
-    # SAC_DTQã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # acv :: string:   ã¢ã¯ã»ã¹ãã¯ã¿    
+    # SAC_DTQの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # acv :: string:   アクセスベクタ    
     def print_cfg_sac(file, val, acv)
         file.puts "SAC_DTQ(#{val[:id]}, {#{acv[0]}, #{acv[1]}, #{acv[2]}, #{acv[3]}});"
     end
-    #tDataqueueã®åãå£ãªã¹ã 
+    #tDataqueueの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2EventflagPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2EventflagPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2EventflagPlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2012 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -59,9 +44,8 @@
     @@ep = [:eSetEventflag, :eWaitEventflag, :eManageEventflag, :eReferEventflag ]
     #=== HRP2EventflagPlugin#print_cfg_cre
-    # CRE_FLGã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # tab :: string:   ã¤ã³ãã³ãç¨ã®tab
+    # CRE_FLGの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # tab :: string:   インデント用のtab
     def print_cfg_cre(file, cell, val, tab)
         file.print tab
@@ -69,13 +53,12 @@
     end
     #=== HRP2EventflagPlugin#print_cfg_sac
-    # SAC_FLGã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # acv :: string:   ã¢ã¯ã»ã¹ãã¯ã¿    
+    # SAC_FLGの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # acv :: string:   アクセスベクタ    
     def print_cfg_sac(file, val, acv)
         file.puts "SAC_FLG(#{val[:id]}, {#{acv[0]}, #{acv[1]}, #{acv[2]}, #{acv[3]}});"
     end
-    #tEventflagã®åãå£ãªã¹ã 
+    #tEventflagの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2FixedSizeMemoryPoolPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2FixedSizeMemoryPoolPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2FixedSizeMemoryPoolPlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2012 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -59,9 +44,8 @@
     @@ep = [:eSendFixedSizeMemoryPool, :eReceiveFixedSizeMemoryPool, :eManageFixedSizeMemoryPool, :eReferFixedSizeMemoryPool ]
     #=== HRP2FixedSizeMemoryPoolPlugin#print_cfg_cre
-    # CRE_MPFã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # tab :: string:   ã¤ã³ãã³ãç¨ã®tab
+    # CRE_MPFの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # tab :: string:   インデント用のtab
     def print_cfg_cre(file, cell, val, tab)
         file.print tab
@@ -69,13 +53,12 @@
     end
     #=== HRP2FixedSizeMemoryPoolPlugin#print_cfg_sac
-    # SAC_MPFã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # acv :: string:   ã¢ã¯ã»ã¹ãã¯ã¿    
+    # SAC_MPFの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # acv :: string:   アクセスベクタ    
     def print_cfg_sac(file, val, acv)
         file.puts "SAC_MPF(#{val[:id]}, {#{acv[0]}, #{acv[1]}, #{acv[2]}, #{acv[3]}});"
     end
-    #tFixedSizeMemoryPoolã®åãå£ãªã¹ã 
+    #tFixedSizeMemoryPoolの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2HandlerPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2HandlerPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2HandlerPlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -56,6 +41,5 @@
 
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class HRP2HandlerPlugin < HRP2KernelObjectPlugin
     @@ep = [:eStartAlarm, :eStopAlarm, :eManageAlarm, :eReferAlarm ]
@@ -68,12 +52,12 @@
     def print_cfg_cre(file, cell, val, tab)
         val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
-        # $cbp$ã®ä»£ãã
+        # $cbp$の代わり
         index = cell.get_id - @celltype.get_id_base
         cell_CB_name = "#{@celltype.get_global_name}_CB_tab[#{index}]"
-        # CRE_XXXã®çæ
+        # CRE_XXXの生成
         domainOption = cell.get_region.get_domain_root.get_domain_type.get_option
         # if (cell.get_region.get_region_type != :DOMAIN) || (cell.get_region.get_param != :KERNEL_DOMAIN)
         if (domainOption == "OutOfDomain") || (domainOption != "trusted")
-            # ç¡æå± or ã¦ã¼ã¶ãã¡ã¤ã³ã«å±ããå ´å
+            # 無所属 or ユーザドメインに属する場合
                 raise "#{@plugin_arg_str.to_s.downcase} handler #{val[:id]} must belong to kernel domain."
         elsif @plugin_arg_str == "ALARM"
@@ -101,5 +85,5 @@
 
 =begin
-    #tAlarmã®åãå£ãªã¹ã 
+    #tAlarmの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2KernelObjectPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2KernelObjectPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2KernelObjectPlugin.rb	(revision 321)
@@ -6,51 +6,36 @@
 #   Copyright (C) 2008-2012 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
 
-# Regionã¯ã©ã¹ã«ã¡ã½ãããè¿½å 
+# Regionクラスにメソッドを追加
 =begin
 class Region
@@ -69,5 +54,5 @@
 =end
 
-# Cellã¯ã©ã¹ã«ã¤ã³ã¹ã¿ã³ã¹å¤æ°ã¨ã¡ã½ãããè¿½å 
+# Cellクラスにインスタンス変数とメソッドを追加
 =begin
 class Cell
@@ -85,5 +70,5 @@
     end
 
-    # set_referenced_cellã«ããã»ãããã
+    # set_referenced_cellにしたほうがよい
     # def set_referenced_region( region, port_name )
     def set_referenced_cell( cell, port_name )
@@ -139,23 +124,21 @@
 =end
 
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class HRP2KernelObjectPlugin < CelltypePlugin
     # @@obj_hash = {}
 
     #@celltype:: Celltype
-    #@option:: String     :ãªãã·ã§ã³æå­å
+    #@option:: String     :オプション文字列
     def initialize( celltype, option )
         super
-        # ããããã®ã«ã¼ãã«ãªãã¸ã§ã¯ããè§£æå¯¾è±¡ã»ã«ã¿ã¤ãã«è¿½å 
+        # それぞれのカーネルオブジェクトを解析対象セルタイプに追加
         HRP2KernelObjectPlugin.set_celltype(celltype)
     end
   
     #=== HRP2KernelObjectPlugin#print_cfg_cre
-    # åç¨®ã«ã¼ãã«ãªãã¸ã§ã¯ãã®CRE_*ã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # tab :: string:   ã¤ã³ãã³ãç¨ã®tab
+    # 各種カーネルオブジェクトのCRE_*の出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # tab :: string:   インデント用のtab
     def print_cfg_cre(file, cell, val, tab)
         raise "called virtual method print_cfg_cre in #{@celltype.get_name} plugin"
@@ -163,9 +146,8 @@
   
     #=== HRP2KernelObjectPlugin#print_cfg_sac
-    # åç¨®ã«ã¼ãã«ãªãã¸ã§ã¯ãã®SAC_*ã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # acv :: string:   ã¢ã¯ã»ã¹ãã¯ã¿
+    # 各種カーネルオブジェクトのSAC_*の出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # acv :: string:   アクセスベクタ
     def print_cfg_sac(file, val, acv)
         raise "called virtual method print_cfg_sac in #{@celltype.get_name} plugin"
@@ -173,5 +155,5 @@
   
     #=== HRP2KernelObjectPlugin#get_entry_ports_name_list
-    # ã«ã¼ãã«ãªãã¸ã§ã¯ãã®åç¨®ã¢ã¯ã»ã¹ã®ç¨®å¥ã®åãå£åãåå¾
+    # カーネルオブジェクトの各種アクセスの種別の受け口名を取得
     def get_entry_ports_name_list()
         raise "called virtual method get_entry_ports_name_list in #{@celltype.get_name} plugin"
@@ -185,6 +167,6 @@
         puts "===== begin #{@celltype.get_name.to_s} plugin ====="
 
-        # å¯¾è±¡ã¨ãªããã¹ã¦ã®ã»ã«ã«ã¤ãã¦ãåãå£ã«çµåããã¦ãã
-        # ã»ã«ã®æå±ãã¡ã¤ã³ãè§£æ
+        # 対象となるすべてのセルについて、受け口に結合されている
+        # セルの所属ドメインを解析
         if !HRP2KernelObjectPlugin.isChecked()
             HRP2KernelObjectPlugin.check_referenced_cells()
@@ -193,5 +175,5 @@
         end
 
-        # è¿½è¨ããããã« AppFile ãä½¿ãï¼æå­ã³ã¼ãå¤æãããªãï¼
+        # 追記するために AppFile を使う（文字コード変換されない）
         file2 = AppFile.open( "#{$gen}/tecsgen.cfg" )
         file2.print "\n/* Generated by #{self.class.name} */\n\n"
@@ -200,6 +182,5 @@
             if cell.is_generate?
                 puts "===== begin check my domain #{cell.get_name} ====="
-                # attrã®å¤ãããã·ã¥ã«å
-¥ãã
+                # attrの値をハッシュに入れる
                 val = {}
                 @celltype.get_attribute_list.each{ |a|
@@ -208,10 +189,10 @@
                         val[a.get_name] = []
                         if j = cell.get_join_list.get_item(a.get_name)
-                            # ã»ã«çææã«åæåããå ´å
+                            # セル生成時に初期化する場合
                             j.get_rhs.each { |elem|
                                 val[a.get_name] << elem.to_s
                             }
                         elsif i = a.get_initializer
-                            # ã»ã«ã¿ã¤ãã®åæåå¤ãä½¿ãå ´å
+                            # セルタイプの初期化値を使う場合
                             i.each { |elem|
                                 val[a.get_name] << elem.to_s
@@ -222,8 +203,8 @@
                     else
                         if j = cell.get_join_list.get_item(a.get_name)
-                            # ã»ã«çææã«åæåããå ´å
+                            # セル生成時に初期化する場合
                             val[a.get_name] = j.get_rhs.to_s
                         elsif i = a.get_initializer
-                            # ã»ã«ã¿ã¤ãã®åæåå¤ãä½¿ãå ´å
+                            # セルタイプの初期化値を使う場合
                             val[a.get_name] = i.to_s
                         else
@@ -232,11 +213,11 @@
                     end
                 }
-                # generate.rbãåèã«
-                # $id$ãç½®æ
+                # generate.rbを参考に
+                # $id$を置換
                 if val[:id].nil? != true
                     puts val[:id]
                     val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
                 end
-                # $cbp$ã®ä»£ãã
+                # $cbp$の代わり
                 index = cell.get_id - @celltype.get_id_base
                 cell_CB_name = "#{@celltype.get_global_name}_CB_tab[#{index}]"
@@ -244,9 +225,9 @@
                 cell_domain_type = cell.get_region.get_domain_root.get_domain_type
 
-                # CRE_XXX/DEF_XXXã®çæ
+                # CRE_XXX/DEF_XXXの生成
                 if cell_domain_type.get_option.to_s != "OutOfDomain"
-                    # ä¿è­·ãã¡ã¤ã³ã«å±ããå ´å
+                    # 保護ドメインに属する場合
                     if !HRP2KernelObjectPlugin.include_region(cell_domain_root.get_name.to_s)
-                        # ãã®ä¿è­·ãã¡ã¤ã³ã®.cfgãçæããã¦ããªãå ´å
+                        # その保護ドメインの.cfgが生成されていない場合
                         HRP2KernelObjectPlugin.set_region_list(cell_domain_root.get_name.to_s)
                         puts "~~~~~ #{cell_domain_root.get_name.to_s} is registered!"
@@ -269,5 +250,5 @@
                     file3.close
                 else
-                    # ç¡æå±ã®å ´å
+                    # 無所属の場合
                     puts "~~~~~ #{cell_domain_root.get_name.to_s} is OutOfDomain"
                     print_cfg_cre(file2, cell, val, "")
@@ -275,5 +256,5 @@
 
                 puts "===== end check my domain #{cell.get_name} ====="
-                # SAC_XXXã®çæ
+                # SAC_XXXの生成
                 puts "===== begin check regions #{cell.get_name} ====="
                 p val[:accessPattern]
@@ -281,11 +262,11 @@
 
                 #ep = [ :eTaskActivate, :eTaskControl, :eTaskManage, :eTaskRefer ]
-                #åã«ã¼ãã«ãªãã¸ã§ã¯ãã®åãå£åãåå¾
+                #各カーネルオブジェクトの受け口名を取得
                 # ep = get_entry_ports_name_list()
                 i = 0
                 acv = []
-                # ã¢ã¯ã»ã¹è¨±å¯ãã¯ã¿ã®çæ
+                # アクセス許可ベクタの生成
                 val[:accessPattern].each { |acptnx|
-                    # ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ã®çæ
+                    # アクセス許可パターンの生成
                     if acptnx != "OMIT"
                         acv << acptnx
@@ -306,14 +287,14 @@
                 p acv
 
-                #åç¨®SACã®çæ
+                #各種SACの生成
                 domainOption = cell_domain_type.get_option
                 # if cell.get_region.get_region_type == :DOMAIN
                 if domainOption != "OutOfDomain"
-                    # ä¿è­·ãã¡ã¤ã³ã«å±ããå ´å
+                    # 保護ドメインに属する場合
                     file3 = AppFile.open( "#{$gen}/tecsgen_#{cell.get_region.get_name.to_s}.cfg" )
                     print_cfg_sac(file3, val, acv)
                     file3.close
                 else
-                    # ç¡æå±ã®å ´å
+                    # 無所属の場合
                     print_cfg_sac(file2, val, acv)
                 end
@@ -327,6 +308,6 @@
     end
 
-    # ã«ã¼ãã«ãªãã¸ã§ã¯ãã»ã«ã¿ã¤ãã®ç®¡ç
-    # HRP2KernelObjectPluginã¯ã©ã¹ã«å¯¾ãã¦ã¡ã½ããå¼åºããè¡ããã¨ãæ³å®
+    # カーネルオブジェクトセルタイプの管理
+    # HRP2KernelObjectPluginクラスに対してメソッド呼出しを行うことを想定
     @@checked = false
     @@celltype_list = []
@@ -351,5 +332,5 @@
                 printf "===== check call port : "
                 p p.get_name.to_s
-                next if j.nil? # æªçµåã®å ´å
+                next if j.nil? # 未結合の場合
                 if @@celltype_list.include?(j.get_celltype)
                     # j.get_cell.set_referenced_region(cell.get_region)
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2ObjectPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2ObjectPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2ObjectPlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -69,9 +54,8 @@
 
     #=== HRP2SemaphorePlugin#print_cfg_cre
-    # CRE_SEMã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # tab :: string:   ã¤ã³ãã³ãç¨ã®tab
+    # CRE_SEMの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # tab :: string:   インデント用のtab
     def print_cfg_cre(file, cell, val, tab)
         if @@api.has_key?(@plugin_arg_str) == false
@@ -87,9 +71,8 @@
     end
     #=== HRP2SemaphorePlugin#print_cfg_sac
-    # SAC_SEMã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # acv :: string:   ã¢ã¯ã»ã¹ãã¯ã¿    
+    # SAC_SEMの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # acv :: string:   アクセスベクタ    
     def print_cfg_sac(file, val, acv)
         if @@api.has_key?(@plugin_arg_str) == false
@@ -103,5 +86,5 @@
 
 =begin
-    #tSemaphoreã®åãå£ãªã¹ã 
+    #tSemaphoreの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2Plugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2Plugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2Plugin.rb	(revision 321)
@@ -6,54 +6,38 @@
 #   Copyright (C) 2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
 
 #
-# åã¡ã½ããã®å½¹å²ãã¯ãDomainPlugin.rb ãåç
-§ã®ãã¨
-# HRP2ã«ã¼ãã«ç¨ãã¡ã¤ã³ãã©ã°ã¤ã³
+# 各メソッドの役割りは、DomainPlugin.rb を参照のこと
+# HRP2カーネル用ドメインプラグイン
 class HRP2Plugin < DomainPlugin
 
@@ -63,14 +47,10 @@
 
   def add_through_plugin( join, current_region, next_region, through_type )
-    # join.get_owner:Cell  å·¦è¾ºã®ã»ã«
-    # join.get_definition:Port å¼ã³å£
-    # join.get_subscript:Integer or nil å¼ã³å£é
-åã®æ·»æ° (Join::@subscript ã®èª¬æåç
-§)
-    # join.get_cell:Cell å³è¾ºã®ã»ã«
-    # join.get_port_name:Symbol åãå£
-    # get_rhs_subscript:Integer or nil åãå£é
-åã®æ·»æ° (Join::@rhs_subscript ã®èª¬æåç
-§)
+    # join.get_owner:Cell  左辺のセル
+    # join.get_definition:Port 呼び口
+    # join.get_subscript:Integer or nil 呼び口配列の添数 (Join::@subscript の説明参照)
+    # join.get_cell:Cell 右辺のセル
+    # join.get_port_name:Symbol 受け口
+    # get_rhs_subscript:Integer or nil 受け口配列の添数 (Join::@rhs_subscript の説明参照)
     # return []
     print "MyDomainPlugin: add_through_plugin: #{current_region.get_name}=>#{next_region.get_name}, #{join.get_owner.get_name}.#{join.get_definition.get_name}=>#{join.get_cell.get_name}.#{join.get_port_name}, #{through_type}\n"
@@ -89,8 +69,7 @@
 
     if HRP2KernelObjectPlugin.include_celltype?(join.get_cell.get_celltype)
-        # çµåå
-ãã«ã¼ãã«ãªãã¸ã§ã¯ãã»ã«
+        # 結合先がカーネルオブジェクトセル
         # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
-        # ä½ãããªãthrough
+        # 何もしないthrough
         puts "***** #{join.get_cell.get_celltype.get_name} is kernel object"
         return []
@@ -100,7 +79,6 @@
     # elsif next_domain.nil?
     elsif next_domain.get_option.to_s == "OutOfDomain"
-    #     # çµåå
-ãç¡æå±
-    #     # ä½ãããªãthrough
+    #     # 結合先が無所属
+    #     # 何もしないthrough
     #     # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
         puts "***** nil"
@@ -109,16 +87,16 @@
     #elsif @start_region.get_param != :KERNEL_DOMAIN && @end_region.get_param == :KERNEL_DOMAIN
     elsif current_domain.get_option.to_s != "trusted" && next_domain.get_option.to_s == "trusted"
-        # ã¦ã¼ã¶ãã¡ã¤ã³ããã«ã¼ãã«ãã¡ã¤ã³ã¸ã®çµå
+        # ユーザドメインからカーネルドメインへの結合
         # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
         puts "***** svc"
         return [ :HRP2SVCPlugin, "" ]
     elsif current_domain != next_domain
-        # ã¦ã¼ã¶ãã¡ã¤ã³ããå¥ã®ã¦ã¼ã¶ãã¡ã¤ã³ã¸ã®çµå
+        # ユーザドメインから別のユーザドメインへの結合
         # @plugin_body = HRP2RPCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
         puts "***** rpc"
         return [ :HRP2RPCPlugin, "channelCelltype=tMessagebufferChannel,noClientSemaphore=true" ]
     else
-        # ãã®ä»
-        # ä½ãããªãthrough
+        # その他
+        # 何もしないthrough
         # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
         print "warning: at HRP2 Join Check"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2PostHook.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2PostHook.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2PostHook.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2012 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -63,7 +48,7 @@
 
     def generate
-        # ã«ã¼ãã«ãªãã¸ã§ã¯ãã®ã»ã«ã¿ã¤ãã¯ã¡ã¢ãªä¿è­·ããªã
+        # カーネルオブジェクトのセルタイプはメモリ保護しない
 #=begin
-        # TODO: ãã¹ãã®ããã«ç¡å¹å
+        # TODO: テストのために無効化
         if HRP2KernelObjectPlugin.include_celltype?( @celltype )
             puts "nothing is generated for kernel object component"
@@ -74,5 +59,5 @@
         rlist = @celltype.get_region_list
         if @celltype.is_singleton?
-            # singletonã®å ´å
+            # singletonの場合
             puts "<singleton>"
 
@@ -82,8 +67,8 @@
                 file = AppFile.open( "#{$gen}/tecsgen_#{rlist[0].get_param.to_s}.cfg" )
             end
-            # ã»ã«ç®¡çãã­ãã¯ã¨ã¹ã±ã«ãã³ã®ã¡ã¢ãªä¿è­·
+            # セル管理ブロックとスケルトンのメモリ保護
             file.print "ATT_MOD(\"#{@celltype.get_global_name}_tecsgen.o\");\n"
             if !@celltype.is_all_entry_inline?
-                # ã»ã«ã¿ã¤ãã³ã¼ãã®ã¡ã¢ãªä¿è­·
+                # セルタイプコードのメモリ保護
                 file.print "ATT_MOD(\"#{@celltype.get_global_name}.o\");\n"
             end
@@ -92,28 +77,28 @@
 
         else
-            # singletonã§ãªãå ´å
+            # singletonでない場合
             puts "<non-singleton>"
 
-            # ã¹ã±ã«ãã³ã¨ã»ã«ã¿ã¤ãã³ã¼ãã®ä¿è­·
+            # スケルトンとセルタイプコードの保護
             if (rlist.length == 1) && 
                 (@celltype.get_n_cell_gen == @celltype.get_n_cell_gen_r( rlist[0] ))
-                # æå±ããä¿è­·ãã¡ã¤ã³ã1ã¤ã®å ´å
+                # 所属する保護ドメインが1つの場合
                 puts "<private celltype>"
                 file = AppFile.open( "#{$gen}/tecsgen_#{rlist[0].get_param.to_s}.cfg" )
             else
-                # ç¡æå± or æå±ããä¿è­·ãã¡ã¤ã³ãè¤æ°ã®å ´å
+                # 無所属 or 所属する保護ドメインが複数の場合
                 puts "<shared celltype>"
                 file = AppFile.open( "#{$gen}/tecsgen.cfg" )
             end
 
-            # ã¹ã±ã«ãã³ã®ã¡ã¢ãªä¿è­·
+            # スケルトンのメモリ保護
             file.print "ATT_MOD(\"#{@celltype.get_global_name}_tecsgen.o\");\n"
             if !@celltype.is_all_entry_inline?
-                # ã»ã«ã¿ã¤ãã³ã¼ãã®ã¡ã¢ãªä¿è­·
+                # セルタイプコードのメモリ保護
                 file.print "ATT_MOD(\"#{@celltype.get_global_name}.o\");\n"
             end
             file.close
 
-            # ã»ã«ç®¡çãã­ãã¯ã®ä¿è­·
+            # セル管理ブロックの保護
             rlist.each { |reg|
                 file = AppFile.open( "#{$gen}/tecsgen_#{reg.get_param.to_s}.cfg" )
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2PriorityDataqueuePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2PriorityDataqueuePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2PriorityDataqueuePlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2012 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -57,9 +42,8 @@
     @@ep = [:eSendPriorityDataqueue, :eReceivePriorityDataqueue, :eManagePriorityDataqueue, :eReferPriorityDataqueue ]
     #=== HRP2PriorityDataqueuePlugin#print_cfg_cre
-    # CRE_PDQã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # tab :: string:   ã¤ã³ãã³ãç¨ã®tab
+    # CRE_PDQの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # tab :: string:   インデント用のtab
     def print_cfg_cre(file, cell, val, tab)
         file.print tab
@@ -67,13 +51,12 @@
     end
     #=== HRP2PriorityDataqueuePlugin#print_cfg_sac
-    # SAC_PDQã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # acv :: string:   ã¢ã¯ã»ã¹ãã¯ã¿    
+    # SAC_PDQの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # acv :: string:   アクセスベクタ    
     def print_cfg_sac(file, val, acv)
         file.puts "SAC_PDQ(#{val[:id]}, {#{acv[0]}, #{acv[1]}, #{acv[2]}, #{acv[3]}});"
     end
-    #tPriorityDataqueueã®åãå£ãªã¹ã 
+    #tPriorityDataqueueの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2RPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2RPCPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2RPCPlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -56,27 +41,20 @@
 # require_tecsgen_lib "GenParamCopy.rb"
 
-#= Transparent RPC ãã©ã°ã¤ã³
-# Transparent RPC ãã£ã³ãã«ãçæãã
-# ãã©ã°ã¤ã³å¼æ°ã¯ä»¥ä¸ã® RPCPluginArgProc ãåç
-§
-
-# mikan through plugin: namespace ãèæ
-®ããã¦ããªã
-# ãããå©ç¨ããå ´åãä»¥ä¸ã®ããã« toppers_jsp.cdl sChannel.cdl ãæå®ããå¿
-è¦ããã
+#= Transparent RPC プラグイン
+# Transparent RPC チャンネルを生成する
+# プラグイン引数は以下の RPCPluginArgProc を参照
+
+# mikan through plugin: namespace が考慮されていない
+# これを利用する場合、以下のように toppers_jsp.cdl sChannel.cdl を指定する必要がある
 # tecsgen toppers_jsp.cdl sChannel.cdl your_description.cdl
 
-# ä»¥ä¸ãä»®å®ï¼å¶éäºé 
-ï¼
-#  å¼ã³å
-ãå¼ã³å
-ã®ã¨ã³ãã£ã¢ã³ãchar, short, int_t, long_t, intptr_t ã®ãµã¤ãºãåã
-#  æç¬¦å·ãç¡ç¬¦å·ã§ãµã¤ãºãåã
+# 以下を仮定（制限事項）
+#  呼び元、呼び先のエンディアン、char, short, int_t, long_t, intptr_t のサイズが同じ
+#  有符号、無符号でサイズが同じ
 
 #
-# RPCãç¨ãããã¡ã¤ã³ééä¿¡ã®
-# throughãã©ã°ã¤ã³
-# HRP2ãã¡ã¤ã³ãã©ã°ã¤ã³ã«ãã£ã¦æ¿å
-¥ããã
+# RPCを用いたドメイン間通信の
+# throughプラグイン
+# HRP2ドメインプラグインによって挿入される
 #
 class HRP2RPCPlugin < ThroughPlugin
@@ -85,13 +63,11 @@
   # include GenParamCopy
 
-  # RPCPlugin å°ç¨ã®ãªãã·ã§ã³
-  TransparentRPCPluginArgProc = RPCPluginArgProc.dup  # è¤è£½ãä½ã£ã¦å
-ãå¤æ´ããªãããã«ãã
+  # RPCPlugin 専用のオプション
+  TransparentRPCPluginArgProc = RPCPluginArgProc.dup  # 複製を作って元を変更しないようにする
   TransparentRPCPluginArgProc[ "noClientSemaphore"  ] = Proc.new { |obj,rhs| obj.set_noClientSemaphore rhs }
   TransparentRPCPluginArgProc[ "semaphoreCelltype"  ] = Proc.new { |obj,rhs| obj.set_semaphoreCelltype rhs }
 
-  #=== RPCPlugin ã® initialize
-  #  èª¬æã¯ ThroughPlugin (plugin.rb) ãåç
-§
+  #=== RPCPlugin の initialize
+  #  説明は ThroughPlugin (plugin.rb) を参照
   def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
     super
@@ -100,6 +76,5 @@
     initialize_transparent_marshaler cell_name
 
-    # ãªãã·ã§ã³ï¼GenTransparentMarshaler åç
-§
+    # オプション：GenTransparentMarshaler 参照
     @plugin_arg_check_proc_tab = TransparentRPCPluginArgProc
     parse_plugin_arg
@@ -111,5 +86,5 @@
       if @PPAllocatorSize == nil then
         cdl_error( "PPAllocatorSize must be speicified for oneway [in] array" )
-        # @PPAllocatorSize = 0   # ä»®ã« 0 ã¨ãã¦ãã (cdl ã®æ§æã¨ã©ã¼ãé¿ãããã)
+        # @PPAllocatorSize = 0   # 仮に 0 としておく (cdl の構文エラーを避けるため)
       end
     end
@@ -118,8 +93,7 @@
 #      if func_decl.get_type.is_oneway? then
 #        if ( param_decl.get_size || param_decl.get_count ) && param_decl.get_string then
-#          cdl_error( "array of string not supported for oneway function in Transparent RPC" )  # mikan æå­åã®é
-å
+#          cdl_error( "array of string not supported for oneway function in Transparent RPC" )  # mikan 文字列の配列
 #        elsif param_decl.get_string == -1 then
-#          cdl_error( "length unspecified string is not permited for oneway function in Transparent RPC" )  # mikan é·ãæªæå®æå­å
+#          cdl_error( "length unspecified string is not permited for oneway function in Transparent RPC" )  # mikan 長さ未指定文字列
 #        end
 #      end
@@ -127,10 +101,10 @@
   end
 
-  #=== plugin ã®å®£è¨ã³ã¼ã (celltype ã®å®ç¾©) çæ
+  #=== plugin の宣言コード (celltype の定義) 生成
   def gen_plugin_decl_code( file )
 
     ct_name = "#{@ct_name}_#{@channelCelltype}"
 
-    # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
     if @@generated_celltype[ ct_name ] == nil then
       @@generated_celltype[ ct_name ] = [ self ]
@@ -165,6 +139,5 @@
 
     f = CFile.open( @rpc_channel_celltype_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -222,10 +195,10 @@
 };
 EOT
-    # mikan stackSize option & ææ° tecs_package å¯¾å¿
+    # mikan stackSize option & 最新 tecs_package 対応
 
     f.close
   end
 
-  #===  through cell ã³ã¼ããçæ
+  #===  through cell コードを生成
   #
   #
@@ -234,5 +207,5 @@
     gen_plugin_decl_code( file )
 
-    # ã»ã«ãæ¢ã
+    # セルを探す
     # path =["::",@next_cell.get_name]
     # cell = Namespace.find( path )
@@ -257,6 +230,6 @@
     indent_str = "  " * nest
 
-    # #473 ãè§£æ±ºãããå ´åãcomposite ãªã¬ã¼ã¢ã­ã±ã¼ã¿ã«å¤æ´ãã¹ã
-    # ã¢ã­ã±ã¼ã¿ã®æå®ããããï¼
+    # #473 が解決された場合、composite リレーアロケータに変更すべき
+    # アロケータの指定があるか？
     if cell.get_allocator_list.length > 0 then
 
@@ -268,8 +241,7 @@
 
         file.print delim
-        delim = ",\n#{indent_str}           "        # æçµè¡ã«ã¯åºããªã
-
-        if subsc then        # é
-åæ·»æ°
+        delim = ",\n#{indent_str}           "        # 最終行には出さない
+
+        if subsc then        # 配列添数
           subsc_str = '[#{subsc}]'
         else
@@ -277,5 +249,5 @@
         end
 
-        eport = "eThroughEntry" #RPCã®åãå£åã«å¤æ´
+        eport = "eThroughEntry" #RPCの受け口名に変更
         file.print  "#{eport}#{subsc_str}.#{func}.#{buf} = #{alloc}"
       end
@@ -314,5 +286,5 @@
 
 
-  #=== ãã©ã°ã¤ã³å¼æ° noClientSemaphore ã®ãã§ãã¯
+  #=== プラグイン引数 noClientSemaphore のチェック
   def set_noClientSemaphore rhs
     rhs = rhs.to_sym
@@ -326,5 +298,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° semaphoreCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 semaphoreCelltype のチェック
   def set_semaphoreCelltype rhs
     @semaphoreCelltype = rhs.to_sym
@@ -336,6 +308,6 @@
   end
 
-  #=== NamespacePath ãå¾ã
-  # çæããã»ã«ã® namespace path ãçæãã
+  #=== NamespacePath を得る
+  # 生成するセルの namespace path を生成する
   def get_cell_namespace_path
 #    nsp = @region.get_namespace.get_namespace_path
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2SVCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2SVCPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2SVCPlugin.rb	(revision 321)
@@ -6,66 +6,46 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
 
-# mikan through plugin: namespace ãèæ
-®ããã¦ããªã
-# ãããå©ç¨ããå ´åãä»¥ä¸ã®ããã« toppers_jsp.cdl sChannel.cdl ãæå®ããå¿
-è¦ããã
+# mikan through plugin: namespace が考慮されていない
+# これを利用する場合、以下のように toppers_jsp.cdl sChannel.cdl を指定する必要がある
 # tecsgen toppers_jsp.cdl sChannel.cdl your_description.cdl
 
-# ä»¥ä¸ãä»®å®ï¼å¶éäºé 
-ï¼
-#  å¼ã³å
-ãå¼ã³å
-ã®ã¨ã³ãã£ã¢ã³ãchar, short, int_t, long_t, intptr_t ã®ãµã¤ãºãåã
-#  æç¬¦å·ãç¡ç¬¦å·ã§ãµã¤ãºãåã
+# 以下を仮定（制限事項）
+#  呼び元、呼び先のエンディアン、char, short, int_t, long_t, intptr_t のサイズが同じ
+#  有符号、無符号でサイズが同じ
 
 class SVCManage
-    # TODO: ããã©ã«ãã®æ¡å¼µãµã¼ãã¹ã³ã¼ã«åãäºç´ãã¦ãã
-    # ããã©ã«ãã®æ¡å¼µãµã¼ãã¹ã³ã¼ã«ï¼syslogãªã©ï¼ãã³ã³ãã¼ãã³ãåããã¾ã§
+    # TODO: デフォルトの拡張サービスコール分を予約しておく
+    # デフォルトの拡張サービスコール（syslogなど）もコンポーネント化するまで
     @@id = 20
     @@func_ids = {}
@@ -93,14 +73,12 @@
 
 #
-# æ¡å¼µãµã¼ãã¹ã³ã¼ã«ãç¨ãããã¡ã¤ã³ééä¿¡ã®
-# throughãã©ã°ã¤ã³
-# HRP2ãã¡ã¤ã³ãã©ã°ã¤ã³ã«ãã£ã¦æ¿å
-¥ããã
+# 拡張サービスコールを用いたドメイン間通信の
+# throughプラグイン
+# HRP2ドメインプラグインによって挿入される
 #
 class HRP2SVCPlugin < ThroughPlugin
 
-  #=== RPCPlugin ã® initialize
-  #  èª¬æã¯ ThroughPlugin (plugin.rb) ãåç
-§
+  #=== RPCPlugin の initialize
+  #  説明は ThroughPlugin (plugin.rb) を参照
   @@generated_celltype_header = {}
 
@@ -116,6 +94,6 @@
   end
 
-  #=== NamespacePath ãå¾ã
-  # çæããã»ã«ã® namespace path ãçæãã
+  #=== NamespacePath を得る
+  # 生成するセルの namespace path を生成する
   def get_cell_namespace_path
 #    nsp = @region.get_namespace.get_namespace_path
@@ -126,5 +104,5 @@
   def gen_plugin_decl_code( file )
 
-    # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
     if !HRP2KernelObjectPlugin.include_celltype?(@next_cell.get_celltype)
     if @@generated_celltype[ @ct_name_body ] == nil then
@@ -144,5 +122,5 @@
     end
 
-    # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
     if @@generated_celltype[ @ct_name ] == nil then
         @@generated_celltype[ @ct_name ] = [ self ]
@@ -155,6 +133,6 @@
 EOT
         else
-            # TODO inlineã«ããæ¹ãå¹çããããï¼tecsgenã®çæããããããã¡ã¤ã«ã®
-            # èª­è¾¼é ã®ããã«ã¨ã©ã¼ã¨ãªã
+            # TODO inlineにした方が効率がよいが，tecsgenの生成したヘッダファイルの
+            # 読込順のためにエラーとなる
         file2.print <<EOT
 celltype #{@ct_name} {
@@ -173,5 +151,5 @@
 
 =begin
-    # TODO: send. receive å¯¾å¿
+    # TODO: send. receive 対応
     send_receive = []
     if @signature != nil then
@@ -205,5 +183,5 @@
   end
 
-  #===  through cell ã³ã¼ããçæ
+  #===  through cell コードを生成
   #
   #
@@ -214,16 +192,16 @@
 
     if !HRP2KernelObjectPlugin.include_celltype?(@next_cell.get_celltype)
-    # ã»ã«ãæ¢ã
+    # セルを探す
     # path =["::",@next_cell.get_name]  # mikan namespace
     # cell = Namespace.find( path )
     # cell = Namespace.find( @next_cell.get_namespace_path )
 
-    ##### ã¯ã©ã¤ã¢ã³ãå´ã®ã»ã«ã®çæ #####
+    ##### クライアント側のセルの生成 #####
     # file.print "[domain(HRP2, \"trusted\")]"
     nest = @start_region.gen_region_str_pre file
     nest_str = "  " * nest
 
-    # ã¯ã©ã¤ã¢ã³ãå´ãã£ã³ãã«ã®çæ
-    # æ¡å¼µãµã¼ãã¹ã³ã¼ã«å¼åºã
+    # クライアント側チャンネルの生成
+    # 拡張サービスコール呼出し
     file.print <<EOT
 #{nest_str}  //  Client Side Channel
@@ -236,10 +214,10 @@
     file.print "\n\n"
 
-    ##### ãµã¼ãã¼å´ã®ã»ã«ã®çæ #####
+    ##### サーバー側のセルの生成 #####
     nest = @end_region.gen_region_str_pre file
     nest_str = "  " * nest
 
-    # ãµã¼ãã¼å´ãã£ã³ãã«ã®çæ 
-    # æ¡å¼µãµã¼ãã¹ã³ã¼ã«æ¬ä½
+    # サーバー側チャンネルの生成 
+    # 拡張サービスコール本体
     file.print <<EOT
 
@@ -260,10 +238,10 @@
     else
 
-    ##### ã¯ã©ã¤ã¢ã³ãå´ã®ã»ã«ã®çæ #####
+    ##### クライアント側のセルの生成 #####
     nest = @start_region.gen_region_str_pre file
     nest_str = "  " * nest
 
-    # ã¯ã©ã¤ã¢ã³ãå´ãã£ã³ãã«ã®çæ
-    # æ¡å¼µãµã¼ãã¹ã³ã¼ã«å¼åºã
+    # クライアント側チャンネルの生成
+    # 拡張サービスコール呼出し
     file.print <<EOT
 #{nest_str}  //  Client Side Channel
@@ -280,10 +258,8 @@
    end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     éå¸¸ã§ããã°ãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã©ã°ã¤ã³ã®å ´åãå¤æ´ããå¿
-è¦ã®ãªãã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     通常であれば、ジェネレータは受け口関数のテンプレートを生成する
+  #     プラグインの場合、変更する必要のないセルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -298,5 +274,5 @@
 
     if !HRP2KernelObjectPlugin.include_celltype?(@next_cell.get_celltype)
-        # æ¡å¼µãµã¼ãã¹ã³ã¼ã«å¼åºã
+        # 拡張サービスコール呼出し
         if ! func_type.get_type.kind_of?( VoidType ) then
             file.print( "  #{func_type.get_type_str}  retval;\n" )
@@ -310,5 +286,5 @@
     p_cellcb = #{global_ct_name}_GET_CELLCB(idx);
   }else{
-     /* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
+     /* エラー処理コードをここに記述 */
   }
 
@@ -361,5 +337,5 @@
         end
 
-        # æ¡å¼µãµã¼ãã¹ã³ã¼ã«æ¬ä½
+        # 拡張サービスコール本体
         if new_func
             file2 = AppFile.open( "#{$gen}/#{@ct_name_body}.c" )
@@ -370,14 +346,14 @@
 #                 file2.print <<EOT
 # /*
-#  * ãã®ãã¡ã¤ã«ã¯ tecsgen ã«ããèªåçæããã¾ãã
-#  * ãã®ãã¡ã¤ã«ãç·¨éãã¦ä½¿ç¨ãããã¨ã¯ãæå³ããã¦ãã¾ãã
+#  * このファイルは tecsgen により自動生成されました
+#  * このファイルを編集して使用することは、意図されていません
 #  */
 # /* #[<PREAMBLE>]#
-#  * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã
-#  * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã
+#  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+#  * tecsmerge によるマージに使用されます
 #  *
 #  * #[</PREAMBLE>]# */
 # 
-# /* ãã­ãã¿ã¤ãå®£è¨ãå¤æ°ã®å®ç¾©ãããã«æ¸ãã¾ã #_PAC_# */
+# /* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
 # #include "#{@ct_name_body}_tecsgen.h"
 # 
@@ -407,5 +383,5 @@
       p_cellcb = #{@ct_name_body}_GET_CELLCB(idx);
     }else{
-       /* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
+       /* エラー処理コードをここに記述 */
     }
 #else
@@ -463,5 +439,5 @@
             file2 = AppFile.open( "#{$gen}/tecsgen.cfg" )
             file2.print "\n/* Generated by HRP2SVCPlugin */\n\n"
-            # TODO: ã¹ã¿ãã¯ãµã¤ãºã¯é©å½
+            # TODO: スタックサイズは適当
             file2.print <<EOT
 KERNEL_DOMAIN{
@@ -479,5 +455,5 @@
         end
     else
-        # ã«ã¼ãã«ãã¡ã¤ã³ã®ã»ã«ã¯ç¹å¥ãªãã¨ã¯ä½ãããï¼æ®éã«å¼ã³åºã
+        # カーネルドメインのセルは特別なことは何もせず，普通に呼び出す
         super
     end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2SemaphorePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2SemaphorePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2SemaphorePlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2011 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -58,9 +43,8 @@
     @@ep = [:eSignalSemaphore, :eWaitSemaphore, :eManageSemaphore, :eReferSemaphore ]
     #=== HRP2SemaphorePlugin#print_cfg_cre
-    # CRE_SEMã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # tab :: string:   ã¤ã³ãã³ãç¨ã®tab
+    # CRE_SEMの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # tab :: string:   インデント用のtab
     def print_cfg_cre(file, cell, val, tab)
         file.print tab
@@ -68,13 +52,12 @@
     end
     #=== HRP2SemaphorePlugin#print_cfg_sac
-    # SAC_SEMã®åºå
-    # file:: FILE:     åºåå
-ãã¡ã¤ã«
-    # val :: string:   ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å±æ§ã®è§£æçµæ
-    # acv :: string:   ã¢ã¯ã»ã¹ãã¯ã¿    
+    # SAC_SEMの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # acv :: string:   アクセスベクタ    
     def print_cfg_sac(file, val, acv)
         file.puts "SAC_SEM(#{val[:id]}, {#{acv[0]}, #{acv[1]}, #{acv[2]}, #{acv[3]}});"
     end
-    #tSemaphoreã®åãå£ãªã¹ã 
+    #tSemaphoreの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2TaskPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2TaskPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2TaskPlugin.rb	(revision 321)
@@ -6,47 +6,32 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
@@ -54,9 +39,8 @@
 #require "HRP2KernelObjectPlugin"
 require_tecsgen_lib "HRP2KernelObjectPlugin.rb"
-#== celltype ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== celltype プラグインの共通の親クラス
 class HRP2TaskPlugin < HRP2KernelObjectPlugin
     # @@ep = [:eActivateTask, :eControlTask, :eManageTask, :eReferTask ]
-    # ATT_MODãçææ¸ã¿ãã©ãã
+    # ATT_MODを生成済みかどうか
     @@generate_memory_module = false
 
@@ -69,16 +53,16 @@
     def print_cfg_cre(file, cell, val, tab)
         val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
-        # $cbp$ã®ä»£ãã
+        # $cbp$の代わり
         index = cell.get_id - @celltype.get_id_base
         #cell_CB_name = "#{@celltype.get_global_name}_pCB_tab[#{index}]"
         cell_CB_name = "#{index}"
-        # CRE_XXX/DEF_XXXã®çæ
+        # CRE_XXX/DEF_XXXの生成
         print "assign task plugin\n"
         domainOption = cell.get_region.get_domain_root.get_domain_type.get_option
         # if cell.get_region.get_region_type == :DOMAIN
         if domainOption != "OutOfDomain"
-            # ä¿è­·ãã¡ã¤ã³ã«å±ããå ´å
+            # 保護ドメインに属する場合
             if domainOption == "trusted"
-                # ã«ã¼ãã«ãã¡ã¤ã³
+                # カーネルドメイン
                 if val[:userStackSize] != "OMIT"
                     raise "system task cannot have user stack."
@@ -88,5 +72,5 @@
 EOT
             else
-                # ã¦ã¼ã¶ãã¡ã¤ã³
+                # ユーザドメイン
                 if val[:userStackSize] == "OMIT"
                     raise "user task must have user stack."
@@ -103,9 +87,9 @@
             end
         else
-            # ç¡æå±ã®å ´å
+            # 無所属の場合
             raise "task #{val[:id]} must belong to a domain."
         end
    
-        # ä¾å¤ç¨ã®ãçæ
+        # 例外用のを生成
         file.print <<EOT
 #{tab}DEF_TEX(#{val[:id]}, { #{val[:exceptionAttribute]}, tTask_start_exception });
@@ -118,5 +102,5 @@
 
 =begin
-    #tTaskã®åãå£ãªã¹ã 
+    #tTaskの受け口リスト 
     def get_entry_ports_name_list()
         @@ep
@@ -124,7 +108,7 @@
 =end
     # 
-    #  ATT_MODã®çæ
-    #  gen_factoryå®è¡æã«ã¯ï¼ãã¹ã¦ã®ã»ã«ã¿ã¤ããã©ã°ã¤ã³ãçææ¸ã¿ã®ã¯ããªã®ã§ï¼
-    #  ã«ã¼ãã«APIã³ã¼ãã®ã¡ã¢ãªä¿è­·ãçç¥ã§ããï¼
+    #  ATT_MODの生成
+    #  gen_factory実行時には，すべてのセルタイププラグインを生成済みのはずなので，
+    #  カーネルAPIコードのメモリ保護を省略できる．
     #
     def gen_factory file
@@ -134,19 +118,18 @@
 
             Cell.get_cell_list2.each { |cell|
-                # ãã¹ã¦ã®ã»ã«ãèµ°æ»ãã¦ã»ã«ã¿ã¤ãããã§ãã¯
+                # すべてのセルを走査してセルタイプをチェック
                 ct = cell.get_celltype
                 if ct.class == Celltype && check_celltype_list.include?( ct ) == false
-                    # æªãã§ãã¯ã®ã»ã«ã¿ã¤ãã ã£ãå ´å
+                    # 未チェックのセルタイプだった場合
                     # puts "check for ATT_MOD : #{ct.classget_global_name}"
                     puts "check for ATT_MOD : #{ct.get_global_name}"
                         
-                    # ã«ã¼ãã«APIã®ã³ã¼ãï¼ãã¼ã¿ã¯ã¡ã¢ãªä¿è­·ããªã
+                    # カーネルAPIのコード，データはメモリ保護しない
                     next if HRP2KernelObjectPlugin.include_celltype?( ct )
 
-                    # å¿
-è¦ã®ãªãã»ã«ã¿ã¤ãã®ã³ã¼ãï¼ãã¼ã¿ã¯ã¡ã¢ãªä¿è­·ããªã
+                    # 必要のないセルタイプのコード，データはメモリ保護しない
                     next if ! ct.need_generate?
 
-                    # HRP2ã®ãã¡ã¤ã³ãªã¼ã¸ã§ã³ãåå¾
+                    # HRP2のドメインリージョンを取得
                     regions = ct.get_domain_roots
                     regions_hrp2 = regions[ :HRP2 ]
@@ -157,10 +140,9 @@
                     puts ""
 
-                    # ã»ã«ç®¡çãã­ãã¯ã¨ã¹ã±ã«ãã³ã®ã¡ã¢ãªä¿è­·
-                    # gen_celltype_names_domain ç¸å½ã®å¦ç
+                    # セル管理ブロックとスケルトンのメモリ保護
+                    # gen_celltype_names_domain 相当の処理
                     if regions_hrp2.include?( Region.get_root ) == false && regions_hrp2.length > 1
-                        # ãã¡ã¤ã³ãè¤æ°ã§ï¼OutOfDomainã«ã»ã«ãå­å¨ããªãã»ã«ã¿ã¤ãã®å ´å
-                        # å
-±æã®ã»ã«ç®¡çãã­ãã¯ã¨ã¹ã±ã«ãã³ã³ã¼ããç»é²ãã
+                        # ドメインが複数で，OutOfDomainにセルが存在しないセルタイプの場合
+                        # 共有のセル管理ブロックとスケルトンコードを登録する
                         file = AppFile.open( "#{$gen}/tecsgen.cfg" )
                         file.print "ATT_MOD(\"#{ct.get_global_name}_tecsgen.o\");\n"
@@ -179,18 +161,17 @@
                     }
 
-                    # ã»ã«ã¿ã¤ãã³ã¼ãããªãå ´åã¯ã¹ã­ãã
+                    # セルタイプコードがない場合はスキップ
                     next if ct.is_all_entry_inline? && ! ct.is_active?
 
-                    # ã»ã«ã¿ã¤ãã³ã¼ãã®ã¡ã¢ãªä¿è­·
-                    # gen_celltype_names_domain2 ç¸å½ã®å¦ç
+                    # セルタイプコードのメモリ保護
+                    # gen_celltype_names_domain2 相当の処理
                     if regions_hrp2.include?( Region.get_root ) == true || regions_hrp2.length > 1
-                        # OutOfDomainã«ã»ã«ãå­å¨ããã»ã«ã¿ã¤ãã®å ´å
-                        # ã¾ãã¯ï¼è¤æ°ã®ãã¡ã¤ã³ã«ã»ã«ãå­å¨ããã»ã«ã¿ã¤ãã®å ´å
-                        # ã»ã«ã¿ã¤ãã³ã¼ããå
-±æããããã«ç»é²ãã
+                        # OutOfDomainにセルが存在するセルタイプの場合
+                        # または，複数のドメインにセルが存在するセルタイプの場合
+                        # セルタイプコードを共有するように登録する
                         file = AppFile.open( "#{$gen}/tecsgen.cfg" )
                     else
-                        # OutOfDomainã§ãªãåä¸ã®ãã¡ã¤ã³ã«ã»ã«ãå­å¨ããã»ã«ã¿ã¤ãã®å ´å
-                        # ã»ã«ã¿ã¤ãã³ã¼ããå°æããããã«ç»é²ãã
+                        # OutOfDomainでない単一のドメインにセルが存在するセルタイプの場合
+                        # セルタイプコードを専有するように登録する
                         file = AppFile.open( "#{$gen}/tecsgen_#{regions_hrp2[0].get_namespace_path.get_global_name}.cfg" )
                     end
@@ -201,5 +182,5 @@
                     check_celltype_list << ct
                 else
-                    # ä½ãããªã
+                    # 何もしない
                 end
             }
@@ -207,5 +188,5 @@
             @@generate_memory_module = true
         else
-            # ä½ãããªã
+            # 何もしない
         end
     end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/Mruby2CBridgePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/Mruby2CBridgePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/Mruby2CBridgePlugin.rb	(revision 321)
@@ -5,49 +5,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: Mruby2CBridgePlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgePlugin.rb	(revision 321)
@@ -5,82 +5,67 @@
 #   Copyright (C) 2008-2015 by TOPPERS Project
 #
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: MrubyBridgePlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #
 
 # Todo:
-# çæãããã®
+# 生成するもの
 #  gen_cdl_file
-#    ããªãã¸åæåã»ã«ã¿ã¤ã (ã·ã°ããã£ãã¨)
-#       @@init_celltypes ã«è¨é²
-#    ããªãã¸ã»ã«ã¿ã¤ã (ã·ã°ããã£ãã¨)
-#       @@celltypes ã«è¨é²
-#    æ§é ä½ã»ã«ã¿ã¤ã
-#       @@struct_list ã«è¨é²
+#    ブリッジ初期化セルタイプ (シグニチャごと)
+#       @@init_celltypes に記録
+#    ブリッジセルタイプ (シグニチャごと)
+#       @@celltypes に記録
+#    構造体セルタイプ
+#       @@struct_list に記録
 #  new_cell
-#    TECS åæåã»ã«(ãã­ãã¿ã¤ãå®£è¨)
-#       @@VM_init_cells ã«è¨é²
-#       @@VM_struct_list ã«è¨é²
-#       @@VM_ptr_list ã«è¨é²
+#    TECS 初期化セル(プロトタイプ宣言)
+#       @@VM_init_cells に記録
+#       @@VM_struct_list に記録
+#       @@VM_ptr_list に記録
 #  gen_post_code
-#    æ§é ä½åæåã»ã«
-#    ãã¤ã³ã¿åæåã»ã«
-#    TECS åæåã»ã«
+#    構造体初期化セル
+#    ポインタ初期化セル
+#    TECS 初期化セル
 #
-#   ep_func ã®ä½æ
-#     signature, ãã¤ã³ã¿ãæ§é ä½ â¦ åæååãå£ï¼mruby VM ã¸ã®ç»é²
-#     ãã¤ã³ã¿
-#   preamble ã®ä½æ
-#     ãã¤ã³ã¿ãæ§é ä½ â¦ ã¢ã¯ã»ã¹ç¨ã³ã¼ãã®çæ
-#     signature â¦ ããªãã¸é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
-#   postamble ã®ä½æ
-#     signature â¦ ããªãã¸é¢æ°ã®å®ç¾©
+#   ep_func の作成
+#     signature, ポインタ、構造体 … 初期化受け口＝mruby VM への登録
+#     ポインタ
+#   preamble の作成
+#     ポインタ、構造体 … アクセス用コードの生成
+#     signature … ブリッジ関数のプロトタイプ宣言
+#   postamble の作成
+#     signature … ブリッジ関数の定義
 
 class MrubyBridgePlugin < SignaturePlugin
 
-  # ãã©ã°ã¤ã³å¼æ°å => Proc
+  # プラグイン引数名 => Proc
   MrubyBridgePluginArgProc = { 
       "ignoreUnsigned" => Proc.new { |obj,rhs| obj.set_ignoreUnsigned rhs },
@@ -89,15 +74,12 @@
   }
 
-  @@celltypes = { }             # {celltype_name => [ BridgePlugin ã®ã¤ã³ã¹ã¿ã³ã¹ã®é
-å }
-  @@init_celltypes = { }        # {celltype_name => [ BridgePlugin ã®ã¤ã³ã¹ã¿ã³ã¹ã®é
-å }
+  @@celltypes = { }             # {celltype_name => [ BridgePlugin のインスタンスの配列 }
+  @@init_celltypes = { }        # {celltype_name => [ BridgePlugin のインスタンスの配列 }
   @@struct_list = { }           # {struct_name=>StructType}
-  @@ptr_list = { }              # {ptr_celltype_name=> @@TYPE_MAP ã®å¯¾å¿ãããã®}
+  @@ptr_list = { }              # {ptr_celltype_name=> @@TYPE_MAP の対応するもの}
   @@VM_list = { }               # VM_name => true
-  @@VM_celltypes = {  }             # VM_name => { @celltype_name => ã»ã«ã®é
-å }
+  @@VM_celltypes = {  }             # VM_name => { @celltype_name => セルの配列 }
   @@VM_struct_list = { }           # {name=>StructType}
-  @@VM_ptr_list = { }              # { VM_name => {name=> @@TYPE_MAP ã®å¯¾å¿ãããã®} }
+  @@VM_ptr_list = { }              # { VM_name => {name=> @@TYPE_MAP の対応するもの} }
   @@TYPE_MAP = {           # type_str   class             GET_SET
     :char_t            => [:char_t,    "Char",     :Char,  :INT   ],
@@ -116,5 +98,5 @@
 
     :int               => [:int,       "Int",      :Int,  :INT   ], 
-    :char              => [:char,      "Char",     :Char, :INT   ],    # char ã¯ char_t ã¨ãã¦æ±ã
+    :char              => [:char,      "Char",     :Char, :INT   ],    # char は char_t として扱う
     :short             => [:short,     "Short",    :Int,  :INT   ],
     :long              => [:long,      "Long",     :Int,  :INT   ],
@@ -138,7 +120,7 @@
   # included  or excluded functions
 
-  ### ã­ã¼ããããæç¹ã§å®è¡ããã ###
-
-  # -I ã« $(TECSPATH)/mruby ãè¿½å 
+  ### ロードされた時点で実行される ###
+
+  # -I に $(TECSPATH)/mruby を追加
   # TECSGEN::Makefile.add_obj "$(MRUBY_MAIN_OBJ)"
   TECSGEN::Makefile.add_ldflag "-lmruby -L$(MRUBYPATH)/lib -lm"
@@ -148,6 +130,6 @@
 
 
-  #=== ãã©ã°ã¤ã³ã¤ã³ã¹ã¿ã³ã¹ã®åæå
-  # æ»ãå¤ãå¼æ°ã®åãä½¿ç¨å¯è½ãªãã®ããã§ãã¯ãã
+  #=== プラグインインスタンスの初期化
+  # 戻り値、引数の型が使用可能なものかチェックする
   #
   def initialize( signature, option )
@@ -178,5 +160,5 @@
 
     if signature.get_function_head_array == nil then
-      return   # ä»¥åã«ææ³ã¨ã©ã¼çºç
+      return   # 以前に文法エラー発生
     end
 
@@ -257,8 +239,6 @@
         when FloatType
         when PtrType
-          ttype_org = type_org.get_type       # ãã¤ã³ã¿ã®æãã¦ããå
-ã®å
-          ttype = ttype_org.get_original_type # ä¸è¨ã® typedef ããã¦ããå ´åãå
-ã®å
+          ttype_org = type_org.get_type       # ポインタの指している先の型
+          ttype = ttype_org.get_original_type # 上記の typedef されている場合、元の型
           register_ptr_type ttype_org
 
@@ -298,5 +278,5 @@
   end
 
-  #=== æ§é ä½ã®ã¡ã³ãã¼ã®åã®ãã§ãã¯
+  #=== 構造体のメンバーの型のチェック
   def check_struct_member struct_type
     #p "tag name:#{struct_type.get_name}"
@@ -345,20 +325,20 @@
       return
     end
-    tstr = ttype.get_type_str.sub( /const /, "" )    # const ã¯ç¡è¦
-    tstr = tstr.sub( /volatile /, "" )               # volatile ãç¡è¦
+    tstr = ttype.get_type_str.sub( /const /, "" )    # const は無視
+    tstr = tstr.sub( /volatile /, "" )               # volatile も無視
     if @b_ignoreUnsigned then
-      tstr = tstr.sub( /unsigned /, "" )             # volatile ãç¡è¦
-      tstr = tstr.sub( /uint/, "int" )               # volatile ãç¡è¦
-      tstr = tstr.sub( /[cs]char/, "char" )          # volatile ãç¡è¦
+      tstr = tstr.sub( /unsigned /, "" )             # volatile も無視
+      tstr = tstr.sub( /uint/, "int" )               # volatile も無視
+      tstr = tstr.sub( /[cs]char/, "char" )          # volatile も無視
     end
     return @@TYPE_MAP[ tstr.to_sym ]
   end
 
-  #===  CDL ãã¡ã¤ã«ã®çæ
-  #      typedef, signature, celltype, cell ã³ã¼ããçæ
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell コードを生成
+  #file::        FILE       生成するファイル
   def gen_cdl_file(file)
 
-    # ããªãã¸ã»ã«ã¿ã¤ãã®çæ
+    # ブリッジセルタイプの生成
     if @@celltypes[ @celltype_name ] == nil then
       @@celltypes[ @celltype_name ] = [ self ]
@@ -389,5 +369,5 @@
 EOT
 
-      # æ§é ä½ã»ã«ã¿ã¤ãã®çæ
+      # 構造体セルタイプの生成
       @struct_list.each{ |name, sttype|
         if @@struct_list[ name ] == nil then
@@ -410,6 +390,6 @@
   end
 
-  #=== gen_cdl_file ã§å®ç¾©ããã»ã«ã¿ã¤ãã« æ°ããã»ã«ãå®ç¾©ããã
-  # cell ã®ã»ã«ã¿ã¤ãã®ååã¯ @celltype_name
+  #=== gen_cdl_file で定義したセルタイプに 新しいセルが定義された
+  # cell のセルタイプの名前は @celltype_name
   def new_cell cell
     if cell.get_celltype.get_name != @celltype_name then
@@ -430,5 +410,5 @@
       file = CFile.open( initializer_celltype_cdl, "w" )
 
-      # TECS åæåã»ã«(ãã­ãã¿ã¤ãå®£è¨)
+      # TECS 初期化セル(プロトタイプ宣言)
       print_msg "  MrubyBridgePlugin: join your VM's cInitialize to #{vm_name}_TECSInitializer.eInitialize\n"
 
@@ -475,6 +455,6 @@
   end
 
-  #=== ãã©ã°ã¤ã³ã CDL ã® POST ã³ã¼ããçæ
-  # tmp_plugin_post_code.cdl ã¸ã®åºå
+  #=== プラグインが CDL の POST コードを生成
+  # tmp_plugin_post_code.cdl への出力
   def self.gen_post_code file
 
@@ -498,5 +478,5 @@
 # EOT
 
-# gen_post_code ã§çæãã celltype ã¯ gen_ep_func ãå¼ã³åºãããªã #847
+# gen_post_code で生成した celltype は gen_ep_func が呼び出されない #847
 #    @@struct_list.each{ |name,sttype|
 #      file.print <<EOT
@@ -566,8 +546,8 @@
   end
 
-  ####### ä»¥ä¸ã³ã¼ãçææ®µé ######
-
-  #===  åãå£é¢æ°ã®æ¬ä½ã³ã¼ããçæï¼é ­é¨ã¨æ«å°¾ã¯å¥éåºåï¼
-  #ct_name:: Symbol    (ãã©ã°ã¤ã³ã§çæããã) ã»ã«ã¿ã¤ãå ï¼Symbol ã¨ãã¦éããã¦ãã
+  ####### 以下コード生成段階 ######
+
+  #===  受け口関数の本体コードを生成（頭部と末尾は別途出力）
+  #ct_name:: Symbol    (プラグインで生成された) セルタイプ名 ．Symbol として送られてくる
   def gen_ep_func_body( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
     if @@celltypes[ ct_name ] then
@@ -673,9 +653,7 @@
   end
 
-  #===  åãå£é¢æ°ã® preamble (Cè¨èª)ãçæãã
-  #     å¿
-è¦ãªã preamble é¨ã«åºåãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の preamble (C言語)を生成する
+  #     必要なら preamble 部に出力する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -1135,11 +1113,10 @@
     if( param.get_size ) then
       sz_str = param.get_size.to_s
-    elsif param.get_string then      # mikan ã¨ãããã size_is ã¨ string ã®åææå® (äºéãã¤ã³ã¿) ã¯ãªã
+    elsif param.get_string then      # mikan とりあえず size_is と string の同時指定 (二重ポインタ) はなし
       sz_str = param.get_string.to_s
     else
       sz_str = "1"
     end
-    # unsigned åã®å ´åã«ã¯ cast ãå¿
-è¦
+    # unsigned 型の場合には cast が必要
     if ttype.get_original_type.get_type_str != param.get_type.get_type.get_type_str then
       cast_str = "(#{param.get_type.get_type_str})"
@@ -1171,5 +1148,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° ignoreUnsigned
+  #=== プラグイン引数 ignoreUnsigned
   def set_ignoreUnsigned rhs
     if rhs == "true" || rhs == nil then
@@ -1177,5 +1154,5 @@
     end
   end
-  #=== ãã©ã°ã¤ã³å¼æ° include
+  #=== プラグイン引数 include
   def set_include rhs
     funcs = rhs.split ','
@@ -1195,5 +1172,5 @@
     }
   end
-  #=== ãã©ã°ã¤ã³å¼æ° exclude
+  #=== プラグイン引数 exclude
   def set_exclude rhs
     funcs = rhs.split ','
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/NotifierPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/NotifierPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/NotifierPlugin.rb	(revision 321)
@@ -14,79 +14,61 @@
 class NotifierPlugin < CelltypePlugin
 
-	# ---------- ã¢ããã¿é¢æ°ã®çæ -------------
+	# ---------- アダプタ関数の生成 -------------
 	#
-	# siHandlerBodyã®åãå£é¢æ°ã¯ï¼ã¿ã¤ã ã¤ãã³ãéç¥ã®éç¥å
-ã¨ãã¦ç´æ¥æå®ãã
-	# ãã¨ã¯ã§ããªãï¼ã·ã°ããã£ãä¸è´ãã¦ããªããã¨ãçç±ã§ããï¼ãã®ããï¼ã¢ã
-	# ãã¿ã¨ãã¦åä½ããé¢æ°ãçæãï¼ã«ã¼ãã«ããã®å¼åºããTECSã®å¼åºãã«å¤æã§
-	# ããããã«ããå¿
-è¦ãããï¼
+	# siHandlerBodyの受け口関数は，タイムイベント通知の通知先として直接指定する
+	# ことはできない．シグネチャが一致していないことが理由である．このため，アダ
+	# プタとして動作する関数を生成し，カーネルからの呼出しをTECSの呼出しに変換で
+	# きるようにする必要がある．
 	#
-	# åºæ¬çã«ã¯ï¼åãå£æ¯ã«ã¢ããã¿é¢æ°ãçæããã°ååã§ããï¼ãããï¼ããã§ã¯
-	# ã¡ã¢ãªæ¶è²»éãä¸å¿
-è¦ã«å¢å ãã¦ãã¾ãï¼ããã§ï¼éç¥å
-é¢æ°ã«intptr_tåã®å¼æ°
-	# ãæ¸¡ãããã¨ã«çç®ãï¼é¢æ°ã®"ä¸è¬å"ãå³ãï¼ããªãã¡åãå£ã®ããå±æ§(ãã
-	# ã§ã¯ï¼çµåå
-ã®ã»ã«ï¼æ·»å­ãªã©ãæã)ãï¼ã¢ããã¿é¢æ°ã®å¼æ°ã¨ãã¦åãåãã
-	# ããã«ãï¼1åã®ã¢ããã¿é¢æ°ã2åä»¥ä¸ã®çµåã«å¯¾ãç¨ãããã¨ãã§ããããã«
-	# ããï¼
+	# 基本的には，受け口毎にアダプタ関数を生成すれば十分である．しかし，これでは
+	# メモリ消費量が不必要に増加してしまう．そこで，通知先関数にintptr_t型の引数
+	# を渡せることに着目し，関数の"一般化"を図る．すなわち受け口のある属性(ここ
+	# では，結合先のセル，添字などを指す)を，アダプタ関数の引数として受け取れる
+	# ようにし，1個のアダプタ関数を2個以上の結合に対し用いることができるように
+	# する．
 	#
-	# ã¢ããã¿é¢æ°ã®å±æ§ã«ã¤ãã¦æ´çããã¨ï¼
-	#  - åãå£é¢æ° - ä¸è¬åãè¡ãã¨ï¼å®è¡æã³ã¹ããå¤§ããå¢å¤§ãã¦ãã¾ããã¨ã
-	#    ç¢ºèªããã¦ããï¼ãã®ããï¼ä¸è¬åã¯è¡ããªãï¼EntryPropertyã«ãå«ããªãï¼
-	#  - ã»ã«ã¤ã³ããã¯ã¹ - CELLIDXåã§ï¼åã®è¦å®ã¯ãªããï¼"ãã¤ã³ã¿å¤ã§ãã£ãã
-	#    æ´æ°å¤ã§ãã£ããããã" (TECS 5.3.6) ããï¼ã¤ã³ããã¯ã¹ããã¤ã³ã¿ãã
-	#    ãã¨ãåããï¼ã¤ã³ããã¯ã¹ã ã¨ããã¨ï¼ãã®å¤ã¯ã»ã«CBã®ã¢ãã¬ãã·ã³ã°ã«
-	#    ä½¿ç¨ãããã®ã§ï¼intptr_tã«åã¾ãç­ã§ããï¼ãã¤ã³ã¿ã®å ´åï¼å½ç¶intptr_t
-	#    ã«åã¾ãï¼
-	#  - åãå£é
-åã®æ·»å­ - int_tï¼åæ§ã«intptr_tã«åã¾ãç­ã§ããï¼
-	# ãããã®ãã¡ï¼ã»ã«ã¤ã³ããã¯ã¹ã¨åãå£é
-åã®æ·»å­ã¯ãã©ã¡ã¼ã¿ã«å«ãããã¨ã
-	# ã§ãããã§ãããï¼ä¸¡æ¹ã¯ç¡çã§ããï¼
-	# ä¸¡æ¹ãæ ¼ç´ããé
-åãçæãï¼ãã®é
-åã®è¦ç´ ã¸ã®ãã¤ã³ã¿ãæ¸¡ãããã«ããã¨ã
-	# ãé¸æè¢ãå¯è½ã§ãããï¼å®è¡éåº¦ãåªå
-ããããã«ï¼ãã®æ¹æ³ã¯ã¨ããªãã£ãï¼
+	# アダプタ関数の属性について整理すると，
+	#  - 受け口関数 - 一般化を行うと，実行時コストが大きく増大してしまうことが
+	#    確認されている．このため，一般化は行わない．EntryPropertyにも含めない．
+	#  - セルインデックス - CELLIDX型で，型の規定はないが，"ポインタ値であったり
+	#    整数値であったりする。" (TECS 5.3.6) より，インデックスかポインタある
+	#    ことが分かる．インデックスだとすると，この値はセルCBのアドレッシングに
+	#    使用されるので，intptr_tに収まる筈である．ポインタの場合，当然intptr_t
+	#    に収まる．
+	#  - 受け口配列の添字 - int_t．同様にintptr_tに収まる筈である．
+	# これらのうち，セルインデックスと受け口配列の添字はパラメータに含めることが
+	# できそうであるが，両方は無理である．
+	# 両方を格納した配列を生成し，その配列の要素へのポインタを渡すようにするとい
+	# う選択肢も可能であるが，実行速度を優先するために，この方法はとらなかった．
 	#
-	# ãã®ããï¼ä¸è¬åã¯ä»¥ä¸ã®ãã¿ã¼ã³ã«åé¡ãã¦è¡ãï¼
+	# このため，一般化は以下のパターンに分類して行う．
 	#
-	# 1. ã»ã«ã¤ã³ããã¯ã¹ã®ã¿ä¸è¬åï¼ã»ã«ã¤ã³ããã¯ã¹ã®ãã¿ã¼ã³æ°ãåãå£é
-åã®
-	#    æ·»å­ã®ãã¿ã¼ã³æ°ããå¤ããï¼ãããã¯åãå£ãé
-åã§ãªãå ´åã«è¡ãããï¼
-	# 2. åãå£é
-åã®æ·»å­ã®ã¿ä¸è¬åï¼ãã®å ´åï¼ã»ã«ãã¨ã«ç°ãªãé¢æ°ãç¨ããï¼
+	# 1. セルインデックスのみ一般化．セルインデックスのパターン数が受け口配列の
+	#    添字のパターン数より多いか，あるいは受け口が配列でない場合に行われる．
+	# 2. 受け口配列の添字のみ一般化．この場合，セルごとに異なる関数を用いる．
 	#
-	# ããããï¼ååãå£é¢æ°ã«ã¤ãã¦ï¼ã¢ããã¿é¢æ°ã®çæåæ°ã¯ï¼
-	#         O(min{ã»ã«ã¤ã³ããã¯ã¹ã®ãã¿ã¼ã³æ°, æ·»å­ã®ãã¿ã¼ã³æ°})
-	# ã¨ãªãï¼
+	# これより，各受け口関数について，アダプタ関数の生成個数は，
+	#         O(min{セルインデックスのパターン数, 添字のパターン数})
+	# となる．
 	#
-	# ãã©ã°ã¤ã³ã§ã®å¦çãã¯ã³ãã¹ã§è¡ãããã«ï¼tecsgen.cfgã§ã¯ã¢ããã¿é¢æ°ãç´
-	# æ¥æå®ããã®ã§ã¯ãªãï¼ä»£ããã«ã¢ããã¿é¢æ°ãè¡¨ããã¯ã­ãä½¿ç¨ããï¼ãã®
-	# ãã¯ã­ã¯ã¢ããã¿é¢æ°ãã³ãã«ã¨å¼ã¶ãã¨ã«ããï¼
-	# ã¢ããã¿é¢æ°ãã³ãã«ã¯ï¼æ¬¡ã®2åã®è¦ç´ ããæãï¼
-	#  - ã¢ããã¿é¢æ°ã¸ã®ã®ãã¤ã³ã¿
-	#  - ã¢ããã¿é¢æ°ã®å¼æ°
+	# プラグインでの処理をワンパスで行うために，tecsgen.cfgではアダプタ関数を直
+	# 接指定するのではなく，代わりにアダプタ関数を表すマクロを使用する．この
+	# マクロはアダプタ関数ハンドルと呼ぶことにする．
+	# アダプタ関数ハンドルは，次の2個の要素から成る．
+	#  - アダプタ関数へののポインタ
+	#  - アダプタ関数の引数
 
 	# @private
 	class AdapterGenerator
 
-		# çµåå
-ã«é¢ããå±æ§ãå«ãï¼ã»ã«ï¼åãå£é
-åã®æ·»å­ããæãï¼
-		# åä¸ã®EntryPropertyã¨ãªãçµåã¯ï¼å
-¨ãåãæ¹æ³ã§ãã®åãå£é¢æ°ãå¼ã³
-		# åºããï¼
+		# 結合先に関する属性を含む．セル，受け口配列の添字から成る．
+		# 同一のEntryPropertyとなる結合は，全く同じ方法でその受け口関数を呼び
+		# 出せる．
 		# @private
 		class EntryProperty
-			# @return [Cell] åãå£å´ã®ã»ã«ï¼
+			# @return [Cell] 受け口側のセル．
 			attr_reader :cell
 
-			# @return [Integer, nil] åãå£é
-åã®æ·»å­ï¼é
-åã§ãªãå ´åã¯nilï¼
+			# @return [Integer, nil] 受け口配列の添字．配列でない場合はnil．
 			attr_reader :subscript
 
@@ -100,6 +82,5 @@
 			end
 
-			# åå¤æ§ã®å®ç¾©ï¼Hashã®ã­ã¼ã¨ãã¦ä½¿ç¨ããã®ã«å¿
-è¦ï¼
+			# 同値性の定義．Hashのキーとして使用するのに必要．
 			def eql?(o) @cell == o.cell && @subscript == o.subscript end
 			def hash() @cell.hash ^ @subscript.hash end
@@ -108,11 +89,10 @@
 		# @private
 		class EntryPort
-			# @param [Port] port çµåå
-ã®ã»ã«ã®ã»ã«ã¿ã¤ãã®åãå£ï¼
+			# @param [Port] port 結合先のセルのセルタイプの受け口．
 			def initialize(port, prefix)
 				@port = port
 				@global_name = "#{prefix}_#{@port.get_celltype.get_global_name}_#{@port.get_name}"
 
-				# åãå£é¢æ°åï¼siHandlerBodyãæ³å®ãã¦ããã®ã§ï¼é¢æ°åã¯mainã§åºå®ã§ããï¼
+				# 受け口関数名．siHandlerBodyを想定しているので，関数名はmainで固定である．
 				@entry_fn_name = "#{@port.get_celltype.get_global_name}_#{@port.get_name}_main"
 
@@ -121,5 +101,5 @@
 			end
 
-			# @return [String] ã°ã­ã¼ãã«ã«ä¸æ(ãªãã®ã¨ãã¦æ±ãããã)ãªè­å¥å­ï¼
+			# @return [String] グローバルに一意(なものとして扱えるよう)な識別子．
 			attr_reader :global_name
 
@@ -127,7 +107,7 @@
 			attr_reader :port
 
-			# æå®ããEntryPropertyã«å¯¾å¿ããã¢ããã¿é¢æ°ãã³ãã«ãåå¾ããï¼
+			# 指定したEntryPropertyに対応するアダプタ関数ハンドルを取得する．
 			# @param [EntryProperty] ep
-			# @return [String] ã¢ããã¿é¢æ°ãã³ãã«ï¼
+			# @return [String] アダプタ関数ハンドル．
 			# @private
 			def adapter_handle_for_entry_property(ep)
@@ -139,13 +119,11 @@
 			end
 
-			# çµåå
-ã®æ
-å ±ã«å¿ããã¢ããã¿é¢æ°ãã½ã¼ã¹ã»ãããã¼ã«åºåããï¼
-			# ä¸è¬åæå®ã¯ï¼`cell`ã¾ãã¯`subscript`ã®ä¸æ¹ã®ã¿è¡ããã¨ãã§ããï¼
+			# 結合先の情報に応じたアダプタ関数をソース・ヘッダーに出力する．
+			# 一般化指定は，`cell`または`subscript`の一方のみ行うことができる．
 			#
 			# @param [AdapterGenerator] context
-			# @param [String] fn_name é¢æ°åï¼
-			# @param [Cell, Symbol] cell ã»ã«ï¼ã»ã«ã«ã¤ãã¦ä¸è¬åããå ´åã¯ `:generic`
-			# @param [Integer, Symbol, nil] subscript æ·»å­ï¼æ·»å­ã«ã¤ãã¦ä¸è¬åããå ´åã¯ `:generic`
+			# @param [String] fn_name 関数名．
+			# @param [Cell, Symbol] cell セル．セルについて一般化する場合は `:generic`
+			# @param [Integer, Symbol, nil] subscript 添字．添字について一般化する場合は `:generic`
 			# @private
 			def generate_inner(context, fn_name, cell, subscript)
@@ -158,11 +136,10 @@
 				ct = @port.get_celltype
 
-				# ã·ã³ã°ã«ãã³ã»ã«ã¿ã¤ãä»¥å¤ã§ã¯ï¼CELLIDXã®æå®ãå¿
-è¦ï¼
+				# シングルトンセルタイプ以外では，CELLIDXの指定が必要．
 				unless ct.is_singleton?
 					if cell == :generic
 						params << "(CELLIDX)extinf"
 					else
-						# ã»ã«ã®CELLIDXãå¾ã
+						# セルのCELLIDXを得る
 						if ct.has_INIB? || ct.has_CB?
 							params << ct.get_name_array(cell)[7]
@@ -173,6 +150,5 @@
 				end
 
-				# åãå£é
-åã®æ·»å­ï¼
+				# 受け口配列の添字．
 				if @port.get_array_size
 					if subscript == :generic
@@ -192,6 +168,6 @@
 			end
 
-			# æå®ããJoinã«å¯¾å¿ããã¢ããã¿é¢æ°ãã³ãã«ãåå¾ããï¼
-			# @return [Array] ã¢ããã¿é¢æ°ãã³ãã«ï¼
+			# 指定したJoinに対応するアダプタ関数ハンドルを取得する．
+			# @return [Array] アダプタ関数ハンドル．
 			def make_adapter_handle(join)
 				prop = EntryProperty.from_join(join)
@@ -203,5 +179,5 @@
 			end
 
-			# ã½ã¼ã¹ã»ãããã¼ã®è¨è¿°ãçæããï¼
+			# ソース・ヘッダーの記述を生成する．
 			# @param [AdapterGenerator] context
 			def generate(context)
@@ -217,18 +193,17 @@
 				no_cellidx = false
 				if !(ct.has_INIB? || ct.has_CB?)
-					# CB, INIBæé©åã«ããï¼CB, INIBãä¸¡æ¹ä¸è¦ã«ãªã£ãã±ã¼ã¹ï¼
-					# CELLIDXãä¸è¦ã§ããã®ã§ï¼ã»ã«ã«ã¤ãã¦ä¸è¬åãã¦ãæå³
-					# ã¯ãªãã®ã§ï¼æ·»å­ã«ããä¸è¬åãé¸æããï¼
+					# CB, INIB最適化により，CB, INIBが両方不要になったケース．
+					# CELLIDXが不要であるので，セルについて一般化しても意味
+					# はないので，添字による一般化を選択する．
 					generalize_by_cell_idx = false
 					no_cellidx = true
 
-					# å
-¨ã¦ã®ã»ã«ãåä¸è¦ããï¼
+					# 全てのセルを同一視する．
 					cells = { @props[0].cell => @props }
 
 					header_file.print " * No INIB & CB: generalized by subscript\n"
 				elsif @port.get_array_size
-					# ä¸è¬åãã¿ã¼ã³ã®åé¡ãè¡ãããã«ï¼åãå£å´ã»ã«ãæ·»å­ã®
-					# ãã¿ã¼ã³æ°ãåæãã¦ï¼æé©ãªæ¹ãé¸æããï¼
+					# 一般化パターンの分類を行うために，受け口側セルや添字の
+					# パターン数を分析して，最適な方を選択する．
 					generalize_by_cell_idx = cells.length >= subscripts.length
 					if generalize_by_cell_idx
@@ -238,5 +213,5 @@
 					end
 				else
-					# å¸¸ã«CELLIDXã§ä¸è¬å
+					# 常にCELLIDXで一般化
 					generalize_by_cell_idx = true
 					header_file.print " * non-array entry port: generalized by cell\n"
@@ -246,11 +221,10 @@
 
 				if generalize_by_cell_idx
-					# CELLIDXã«ã¤ãã¦ä¸è¬å
+					# CELLIDXについて一般化
 					subscripts.each { |subscript, props|
 						if subscript
 							fn_name = "#{@global_name}_adap_#{subscript}"
 						else
-							# åãå£é
-åã§ãªãå ´å
+							# 受け口配列でない場合
 							fn_name = "#{@global_name}_adap"
 						end
@@ -262,5 +236,5 @@
 							handle = adapter_handle_for_entry_property(prop)
 
-							# ã»ã«ã®CELLIDXãå¾ã
+							# セルのCELLIDXを得る
 							if ct.has_INIB? || ct.has_CB?
 								idx = ct.get_name_array(prop.cell)[7]
@@ -273,8 +247,8 @@
 					}
 				else
-					# æ·»å­ã«ã¤ãã¦ä¸è¬å
+					# 添字について一般化
 					cells.each { |cell, props|
 						if no_cellidx
-							# CB/INIB ãªã
+							# CB/INIB なし
 							fn_name = "#{@global_name}_adap"
 						else
@@ -302,6 +276,6 @@
 		attr :header_file
 
-		# @param [String] celltype_name ãã³ãã©é¢æ°ã®ã»ã«ã¿ã¤ãï¼
-		# @param [String] prefix ååè¡çªãé²ãããã®ãã¬ãã£ãã¯ã¹ï¼
+		# @param [String] celltype_name ハンドラ関数のセルタイプ．
+		# @param [String] prefix 名前衝突を防ぐためのプレフィックス．
 		def initialize(celltype_name, prefix)
 			@celltype_name = celltype_name
@@ -313,6 +287,6 @@
 
 		# ===AdapterGenerator#make_adapter_handle===
-		# æå®ããçµåã®å¼åºããè¡ãããã®ã¢ããã¿é¢æ°ãã³ãã«ãçæããï¼
-		# @return [Array] ã¢ããã¿é¢æ°ãã³ãã«ï¼
+		# 指定した結合の呼出しを行うためのアダプタ関数ハンドルを生成する．
+		# @return [Array] アダプタ関数ハンドル．
 		def make_adapter_handle(join)
 			entry_port = @entry_ports[join.get_rhs_port]
@@ -326,5 +300,5 @@
 
 		# ===AdapterGenerator#finish===
-		# ååãå£ã«å¯¾ãï¼ã¢ããã¿é¢æ°ãçæããï¼
+		# 各受け口に対し，アダプタ関数を生成する．
 		def finish
 			@source_file = AppFile.open( "#{$gen}/#{@celltype_name}.c" )
@@ -336,9 +310,9 @@
 	        @header_file.print "\n/* Generated by #{self.class.name} */\n\n"
 
-			# NotifierPluginãä½¿ç¨ããã»ã«ã¿ã¤ããè¤æ°ããå ´åï¼ããããã«
-			# å¯¾ãAdapterGenerator#finishãå¼ã³åºãããï¼tTimeEventHandler.hã«
-			# ç¶ãã¦æ¸ãè¾¼ãã§ãã¾ãã¨ï¼ãããã¼ã¬ã¼ãã®é¢ä¿ã§2åç®ä»¥éã®è¨è¿°
-			# ãèª­ã¿è¾¼ã¾ããªããªã£ã¦ãã¾ãï¼ãã®ããï¼ãã¡ã¤ã«å + ã»ã«ã¿ã¤ãå
-			# ã¨ããå°ãç¹æ®ãªãããã¼ã¬ã¼ããç¨ããï¼
+			# NotifierPluginを使用するセルタイプが複数ある場合，それぞれに
+			# 対しAdapterGenerator#finishが呼び出される．tTimeEventHandler.hに
+			# 続けて書き込んでしまうと，ヘッダーガードの関係で2回目以降の記述
+			# が読み込まれなくなってしまう．このため，ファイル名 + セルタイプ名
+			# という少し特殊なヘッダーガードを用いる．
 			header_guard = "#{@celltype_name}_H_#{@prefix}"
 
@@ -346,16 +320,12 @@
 	        @header_file.print "\#define #{header_guard}\n\n"
 
-	        # ã«ã¼ãã«ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãå®è¡ããéï¼ãã³ãã©åãå£ã®ã»ã«ã¿ã¤ã
-	        # ã®ã»ã«CBã®å®ç¾©ãå¿
-è¦ãªå ´åãããï¼
+	        # カーネルコンフィギュレータを実行する際，ハンドラ受け口のセルタイプ
+	        # のセルCBの定義が必要な場合がある．
 	        @header_file.print "\#include \"#{@celltype_name}_aux.h\"\n\n"
 
-			# çµåå
-ã®ã»ã«ã¿ã¤ãã®å®ç¾©ã¯ï¼èªåã®ã»ã«ã®tecsgen.hãããå
-ã«
-			# èª­ã¿è¾¼ã¾ãªããã°ãªããªããï¼ãã®ãã©ã°ã¤ã³ãè¤æ°å®è¡ãããã¨ï¼
-			# é åºãå´©ãã¦ãã¾ãï¼ããã§ï¼çµåå
-ã®ã»ã«ã¿ã¤ãã®å®ç¾©ã¯ããä¸ã¤ã®
-			# ãããã¼ãã¡ã¤ã«(tCelltypeName_aux.h)ããèª­ã¿è¾¼ãããã«ããï¼
+			# 結合先のセルタイプの定義は，自分のセルのtecsgen.hよりも先に
+			# 読み込まなければならないが，このプラグインが複数実行されると，
+			# 順序が崩れてしまう．そこで，結合先のセルタイプの定義はもう一つの
+			# ヘッダーファイル(tCelltypeName_aux.h)から読み込むようにする．
 			aux_header_file = AppFile.open( "#{$gen}/#{@celltype_name}_aux.h" )
 	        aux_header_file.print "\n/* Generated by #{self.class.name} */\n\n"
@@ -368,6 +338,5 @@
 			cb_type_only_guard = "#{@celltype_name}_AUX_H_#{@prefix}_CB_TYPE_ONLY"
 
-			# çµåå
-ã®ã»ã«ã¿ã¤ãã®å®ç¾©ãèª­ã¿è¾¼ã
+			# 結合先のセルタイプの定義を読み込む
 			aux_header_file.print "#ifndef TOPPERS_CB_TYPE_ONLY\n"
 		    aux_header_file.print "#define TOPPERS_CB_TYPE_ONLY\n"
@@ -400,5 +369,5 @@
 	end
 
-	# ------ éç¥ã®ãã³ãã©ã®ç¨®é¡ã®å®ç¾© -------
+	# ------ 通知のハンドラの種類の定義 -------
 
 	class Handler
@@ -410,8 +379,8 @@
 	end
 
-	# éå¸¸ã®ãã³ãã©
+	# 通常のハンドラ
 	EVENT_HANDLER = Handler::new("ciNotificationHandler")
 
-	# ã¨ã©ã¼ãã³ãã© (éå¸¸ã®ãã³ãã©ãå¤±æããå ´åã«å¼ã³åºããã)
+	# エラーハンドラ (通常のハンドラが失敗した場合に呼び出される)
 	ERROR_HANDLER = Handler::new("ciErrorNotificationHandler")
 
@@ -436,9 +405,8 @@
 	end
 
-	# ------ éç¥ã®å±æ§ã®å®ç¾© -------
+	# ------ 通知の属性の定義 -------
 	#
-	# ãã³ãã©ã¿ã¤ãã«åè´ããªãå±æ§ãæå®ãããå ´åã«
-	# ã¨ã©ã¼ãåºåã§ãããããå
-¨ã¦ã®å±æ§ãããã§åæããã
+	# ハンドラタイプに合致しない属性が指定された場合に
+	# エラーを出力できるよう、全ての属性をここで列挙する。
 
 	SETVAR_ADDR_ATTR =   HandlerAttribute::new("setVariableAddress")
@@ -456,5 +424,5 @@
 	]
 
-	# ------ ãã³ãã©ã¿ã¤ãã®å®ç¾© -------
+	# ------ ハンドラタイプの定義 -------
 
 	class BaseHandlerType
@@ -470,9 +438,8 @@
 
 	    #=== NotifierPlugin#BaseHandlerType#validate_join
-	    # æå®ããã»ã«ã®çµåå
-ãããã®ãã³ãã©ã¿ã¤ãã«è©²å½ããããæ¤è¨¼
-	    # handler:: Handler : ãã³ãã©
-	    # cell:: Cell : ã»ã«
-	    # join:: Join : çµå (declarationãPortã§ãããã®)
+	    # 指定したセルの結合先が、このハンドラタイプに該当するかを検証
+	    # handler:: Handler : ハンドラ
+	    # cell:: Cell : セル
+	    # join:: Join : 結合 (declarationがPortであるもの)
 		def validate_join(handler, cell, join)
         	return !generate_attr_map(handler, cell).nil?
@@ -480,11 +447,11 @@
 
 	    #=== NotifierPlugin#BaseHandlerType#generate_attr_map
-	    # æå®ããã»ã«ã®å±æ§ã¨ãæ¢ç¥ã®HandlerAttributeã®ãããã³ã°ã
-	    # çæããHash<HandlerAttribute, Join> (åå±æ§ã¨ããã«å¯¾å¿ãã
-	    # Join(declarationãDeclã®ãã®)ãè¡¨ãHash)ããããã¯ã
-		# ãããã³ã°ãè¡ããªãå ´å(å±æ§ã®ä¸è¶³ãéå°)ã¯nilãè¿ãã
+	    # 指定したセルの属性と、既知のHandlerAttributeのマッピングを
+	    # 生成し、Hash<HandlerAttribute, Join> (各属性とそれに対応する
+	    # Join(declarationがDeclのもの)を表すHash)、あるいは、
+		# マッピングが行えない場合(属性の不足、過剰)はnilを返す。
 	    #
-	    # handler:: Handler : ãã³ãã©
-	    # cell:: Cell : ã»ã«
+	    # handler:: Handler : ハンドラ
+	    # cell:: Cell : セル
 		def generate_attr_map(handler, cell)
 			map = {}
@@ -496,20 +463,17 @@
 				join = join_list.get_item(attr_name.to_sym)
 
-				# ãã®ã»ã«ã¿ã¤ãã«ããã¦å¿
-é ã®å±æ§ã?
+				# このセルタイプにおいて必須の属性か?
 				is_required = @required_attributes.include?(known_attr)
 
-				# å±æ§ã®æå®ãä¸è¶³ãã¦ãã? or éå°?
-				# æ³¨: ãã³ãã©ã¿ã¤ãã®å¤å¥ã«ã¯ãã»ã«ã§å¤ãæå®ããã¦ããã
-				#     ãèæ
-®ããããã»ã«ã¿ã¤ãã§åæå¤ãæå®ããã¦ãã¦ãã
-				#     ããã¯ãã³ãã©ã¿ã¤ãã®æ±ºå®ã«å½±é¿ããªãã
+				# 属性の指定が不足している? or 過剰?
+				# 注: ハンドラタイプの判別には、セルで値が指定されているか
+				#     が考慮される。セルタイプで初期値が指定されていても、
+				#     それはハンドラタイプの決定に影響しない。
 				return nil if join.nil? != !is_required
 
-				# å¿
-è¦ã®ãªãå±æ§ã§ãããæå®ãããã¦ããªãã®ã§é£ã°ã
+				# 必要のない属性であり、指定もされていないので飛ばす
 				next if join.nil?
 
-				# TODO: attrã®çµåã§ãããã¨ãæ¤è¨¼
+				# TODO: attrの結合であることを検証
 
 				map[known_attr] = join
@@ -520,6 +484,6 @@
 
 	    #=== NotifierPlugin#BaseHandlerType#gen_cfg_handler_type
-	    # ã¿ã¤ã ã¤ãã³ãã®éç¥ã®ç¨®é¡ãè¡¨ãã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è¨è¿°ãçæããStringã¾ãã¯nilãè¿ã
-	    # handler:: Handler : ãã³ãã©
+	    # タイムイベントの通知の種類を表すコンフィギュレータの記述を生成し、Stringまたはnilを返す
+	    # handler:: Handler : ハンドラ
 		def gen_cfg_handler_type(handler)
         	raise "called abstract method gen_cfg_handler_type"
@@ -527,11 +491,11 @@
 
 	    #=== NotifierPlugin#BaseHandlerType#gen_cfg_handler_parameters
-	    # ã¿ã¤ã ã¤ãã³ãã®éç¥ã®å¼æ°ãè¡¨ãã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è¨è¿°ãçæããString[]ãè¿ã
-	    # handler:: Handler : ãã³ãã©
-	    # join:: Join : çµå (declarationãPortã§ãããã®)
+	    # タイムイベントの通知の引数を表すコンフィギュレータの記述を生成し、String[]を返す
+	    # handler:: Handler : ハンドラ
+	    # join:: Join : 結合 (declarationがPortであるもの)
 	    # attrMap:: Hash<HandlerAttribute, Join> :
-	    #     åå±æ§ã¨ããã«å¯¾å¿ããJoin (declarationãDeclã®ãã®)
-	    # cell:: Cell : ã»ã«
-		# adpt_gen:: AdapterGenerator : ã¢ããã¿é¢æ°ãçæãããªãã¸ã§ã¯ã
+	    #     各属性とそれに対応するJoin (declarationがDeclのもの)
+	    # cell:: Cell : セル
+		# adpt_gen:: AdapterGenerator : アダプタ関数を生成するオブジェクト
 		def gen_cfg_handler_parameters(handler, join, attrMap, cell, adpt_gen)
         	return nil
@@ -539,7 +503,6 @@
 
 	    #=== NotifierPlugin#BaseHandlerType#might_fail
-	    # éç¥ã®éãã¨ã©ã¼ãçºçãããã®çµæã¨ã©ã¼éç¥ãå¼ã¶å¿
-è¦ãçãã
-	    # ãã©ãããè¿ãã
+	    # 通知の際、エラーが発生し、その結果エラー通知を呼ぶ必要が生じる
+	    # かどうかを返す。
 		def might_fail
 			return false
@@ -557,12 +520,12 @@
 			id_attr = join.get_rhs_cell.get_celltype.find(:id)
 			if id_attr_join
-				# ã»ã«çææã«åæåããå ´å
+				# セル生成時に初期化する場合
 				id = id_attr_join.get_rhs.to_s
 			else
-				# ã»ã«ã¿ã¤ãã®åæåå¤ãä½¿ãå ´å
+				# セルタイプの初期化値を使う場合
 				id = id_attr.get_initializer.to_s
 			end
 
-			# $id$ç­ã®ç½®æ
+			# $id$等の置換
 			name_array = taskCell.get_celltype.get_name_array(taskCell)
 			id = taskCell.get_celltype.subst_name(id, name_array)
@@ -617,5 +580,5 @@
 			var_value = attrMap[SETVAR_VALUE_ATTR].get_rhs.to_s
 
-			# $id$ç­ã®ç½®æ
+			# $id$等の置換
 			name_array = cell.get_celltype.get_name_array(cell)
 			var_addr = cell.get_celltype.subst_name(var_addr, name_array)
@@ -646,5 +609,5 @@
 			var_addr = attrMap[SETVAR_ADDR_ATTR].get_rhs.to_s
 
-			# $id$ç­ã®ç½®æ
+			# $id$等の置換
 			name_array = cell.get_celltype.get_name_array(cell)
 			var_addr = cell.get_celltype.subst_name(var_addr, name_array)
@@ -673,5 +636,5 @@
 			var_addr = attrMap[INCVAR_ADDR_ATTR].get_rhs.to_s
 
-			# $id$ç­ã®ç½®æ
+			# $id$等の置換
 			name_array = cell.get_celltype.get_name_array(cell)
 			var_addr = cell.get_celltype.subst_name(var_addr, name_array)
@@ -697,12 +660,12 @@
 			id_attr = join.get_rhs_cell.get_celltype.find(:id)
 			if id_attr_join
-				# ã»ã«çææã«åæåããå ´å
+				# セル生成時に初期化する場合
 				id = id_attr_join.get_rhs.to_s
 			else
-				# ã»ã«ã¿ã¤ãã®åæåå¤ãä½¿ãå ´å
+				# セルタイプの初期化値を使う場合
 				id = id_attr.get_initializer.to_s
 			end
 
-			# $id$ç­ã®ç½®æ
+			# $id$等の置換
 			name_array = semaphoreCell.get_celltype.get_name_array(semaphoreCell)
 			id = semaphoreCell.get_celltype.subst_name(id, name_array)
@@ -737,13 +700,13 @@
 			id_attr = join.get_rhs_cell.get_celltype.find(:id)
 			if id_attr_join
-				# ã»ã«çææã«åæåããå ´å
+				# セル生成時に初期化する場合
 				id = id_attr_join.get_rhs.to_s
 			else
-				# ã»ã«ã¿ã¤ãã®åæåå¤ãä½¿ãå ´å
+				# セルタイプの初期化値を使う場合
 				id = id_attr.get_initializer.to_s
 			end
 			flg_pattern = attrMap[SETFLG_FLAG_ATTR].get_rhs.to_s
 
-			# $id$ç­ã®ç½®æ
+			# $id$等の置換
 			name_array = eventflagCell.get_celltype.get_name_array(eventflagCell)
 			id = eventflagCell.get_celltype.subst_name(id, name_array)
@@ -778,12 +741,12 @@
 			id_attr = join.get_rhs_cell.get_celltype.find(:id)
 			if id_attr_join
-				# ã»ã«çææã«åæåããå ´å
+				# セル生成時に初期化する場合
 				id = id_attr_join.get_rhs.to_s
 			else
-				# ã»ã«ã¿ã¤ãã®åæåå¤ãä½¿ãå ´å
+				# セルタイプの初期化値を使う場合
 				id = id_attr.get_initializer.to_s
 			end
 
-			# $id$ç­ã®ç½®æ
+			# $id$等の置換
 			name_array = dataqueueCell.get_celltype.get_name_array(dataqueueCell)
 			id = dataqueueCell.get_celltype.subst_name(id, name_array)
@@ -812,5 +775,5 @@
 			sent_value = attrMap[SNDDTQ_VALUE_ATTR].get_rhs.to_s
 
-			# $id$ç­ã®ç½®æ
+			# $id$等の置換
 			name_array = cell.get_celltype.get_name_array(cell)
 			sent_value = cell.get_celltype.subst_name(sent_value, name_array)
@@ -854,14 +817,13 @@
 		end
 		def gen_cfg_handler_parameters(handler, join, attrMap, cell, adpt_gen)
-			# tTimeEventHandlerã®çµåå
-ãåå¾
+			# tTimeEventHandlerの結合先を取得
 			handler_cell = join.get_rhs_cell
 	    	call_join = handler_cell.get_join_list.get_item(:ciHandlerBody)
 
-			# çµåããã¦ããªãå ´åã¯tecsgenãã¨ã©ã¼ãåºãã¯ããªã®ã§ããã§ã¯
-			# ã¨ã©ã¼ã«ããç¡è¦ããï¼
+			# 結合されていない場合はtecsgenがエラーを出すはずなのでここでは
+			# エラーにせず無視する．
 			return [] unless call_join
 
-			# ã¢ããã¿é¢æ°ãã³ãã«ãåå¾
+			# アダプタ関数ハンドルを取得
 			adapter_handle = adpt_gen.make_adapter_handle(call_join)
         	return [adapter_handle[1], adapter_handle[0]]
@@ -897,10 +859,10 @@
 
     #@celltype:: Celltype
-    #@option:: String     :ãªãã·ã§ã³æå­å
+    #@option:: String     :オプション文字列
     def initialize( celltype, option )
     	super
     	@plugin_arg_check_proc_tab = NotifierPluginArgProc
     	@plugin_arg_str = option
-    	@plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # åå¾ã® "" ãåãé¤ã
+    	@plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # 前後の "" を取り除く
     	@plugin_arg_str.sub!( /(.*)"\z/, '\1' )
     	@factory = nil
@@ -940,19 +902,18 @@
         kernelCfg.print "\#include \"tTimeEventHandler.h\"\n"
 
-		# ã¢ããã¿é¢æ°ãçæããæºå
+		# アダプタ関数を生成する準備
 		@adpt_gen = AdapterGenerator.new("tTimeEventHandler", @celltype.get_global_name)
 
-    	# å±æ§ç½®æãè¡ãããã¨ãæ¤è¨¼ããã
-    	# ããã§è¡ãã®ã¯ãfactoryã§æå®ãããå±æ§åã
-    	# å­å¨ãããã¨ãç¢ºèªããããªããã°ã¨ã©ã¼ãåºåãããã¨ã®ã¿ã§ããã
-    	# ã»ã«ãã¨ã®å¦çã®æä¸­ã«ã¨ã©ã¼ãåºåãããã¨ãå¯è½ã§ã¯ãããã
-    	# ããããã¨ã»ã«ã¿ã¤ãå´ã®åé¡ã§ããã®ã«ãããããããã»ã«ãã¨ã«
-    	# ã¨ã©ã¼ãè¡¨ç¤ºããã¦ãã¾ãã
+    	# 属性置換が行えることを検証する。
+    	# ここで行うのは、factoryで指定された属性名が
+    	# 存在することを確認し、しなければエラーを出力することのみである。
+    	# セルごとの処理の最中にエラーを出力することも可能ではあるが、
+    	# そうするとセルタイプ側の問題であるのにもかかわらず、セルごとに
+    	# エラーが表示されてしまう。
     	# {{attribute_name}} -> attribute_value
     	@factory.scan(/\{\{([a-zA-Z0-9_]*?)\}\}/) { |match|
     		name = $1.to_sym
 
-    		# {{_handler_params_}} ã¯ãã³ãã©ã«é¢ããæå®ããã©ã°ã¤ã³å
-ã§å¤ãçæããã
+    		# {{_handler_params_}} はハンドラに関する指定。プラグイン内で値が生成される
     		next if name == :_handler_params_
 
@@ -968,5 +929,5 @@
         }
 
-		# ã¢ããã¿é¢æ°ã®çæãå®äºããã
+		# アダプタ関数の生成を完了させる
 		@adpt_gen.finish
 
@@ -982,12 +943,12 @@
     	handler_flag = nil
 
-		# ignoreErrorsãåå¾
+		# ignoreErrorsを取得
 		ignoreErrors_attr_join = cell.get_join_list.get_item(:ignoreErrors)
 		ignoreErrors_attr = cell.get_celltype.find(:ignoreErrors)
 		if ignoreErrors_attr_join
-			# ã»ã«çææã«åæåããå ´å
+			# セル生成時に初期化する場合
 			ignoreErrors = ignoreErrors_attr_join.get_rhs.to_s
 		else
-			# ã»ã«ã¿ã¤ãã®åæåå¤ãä½¿ãå ´å
+			# セルタイプの初期化値を使う場合
 			ignoreErrors = ignoreErrors_attr.get_initializer.to_s
 		end
@@ -1002,8 +963,8 @@
 
     	[EVENT_HANDLER, ERROR_HANDLER].each { |handler|
-    		# å¼ã³å£ã®çµåãåå¾
+    		# 呼び口の結合を取得
     		call_join = cell.get_join_list.get_item(handler.call_port_name.to_sym)
 
-	    	# ãã³ãã©ã¿ã¤ããå¤å¥ãã
+	    	# ハンドラタイプを判別する
 	    	matches = HANDLER_TYPES.select { |handler_type|
 	    		handler_type.validate_join(handler, cell, call_join)
@@ -1015,11 +976,11 @@
 	    	end
 
-			# æåã«è¦ã¤ãã£ãæå¹ãªãã³ãã©ã¿ã¤ããä½¿ç¨
+			# 最初に見つかった有効なハンドラタイプを使用
 	    	ht = matches[0]
 
-			# éç¥ãã³ãã©ã§ãã¨ã©ã¼ãçºçããã¯ãããªããã®ã«ãã¨ã©ã¼ãã³ãã©ãæå®ããã¦ããã
-			# ãããã¯ãã®éã®ãã¿ã¼ã³ãæ¤åºããã
-			# (handler_flagãnilã§ããå ´åããã³ãã©ã¿ã¤ããä¸æã§ãããã¨ã©ã¼ãçºçãããä¸æ
-			#  ãªãããæ¤åºã¯è¡ããªãã)
+			# 通知ハンドラで「エラーが発生するはずがない」のに「エラーハンドラが指定されている」
+			# もしくはその逆のパターンを検出する。
+			# (handler_flagがnilである場合、ハンドラタイプが不明であり、エラーが発生するか不明
+			#  なため、検出は行わない。)
     		if handler == ERROR_HANDLER && !ht.is_a?(NullHandlerType) && !event_handler_might_fail
 	    		cdl_error( "ASP1004 cell $1: handler type $2 which never raises an error was inferred for the normal notification handler, but an error notification handler was specified.",
@@ -1036,5 +997,5 @@
 	    	end
 
-			# éç¥æ¹æ³ã®éçAPIè¨è¿°ãçæãã
+			# 通知方法の静的API記述を生成する
 	    	handler_flag = ht.gen_cfg_handler_type(handler)
 	    	handler_flags << handler_flag if handler_flag
@@ -1050,5 +1011,5 @@
     	}
 
-		# $id$ç­ã®ç½®æ
+		# $id$等の置換
 		name_array = cell.get_celltype.get_name_array(cell)
 		handler_args.collect! { |e|
@@ -1060,6 +1021,6 @@
 		}
 
-    	# tecsgen.cfgã®è¨è¿°ãçæããã
-    	# factoryã«å¯¾ãããã©ã¡ã¼ã¿ç½®æãè¡ãã
+    	# tecsgen.cfgの記述を生成する。
+    	# factoryに対し、パラメータ置換を行う。
     	# {{attribute_name}} -> attribute_value
     	text = @factory.gsub(/\{\{([a-zA-Z0-9_]*?)\}\}/) { |match|
@@ -1067,5 +1028,5 @@
 			subst_attr = cell.get_celltype.find(name)
 
-			# {{_handler_params_}} ã¯ãã³ãã©ã®æå®ã«ç½®æããã
+			# {{_handler_params_}} はハンドラの指定に置換する。
 			if name == :_handler_params_
 		    	args_joined = handler_flags.join(' | ')
@@ -1078,6 +1039,6 @@
 
 			unless subst_attr
-				# å±æ§ãè¦ã¤ãããªãã¨ããã¨ã©ã¼ã¯ãã§ã«å ±åããã¦ããã®ã§
-				# ããã§ã¯ããã¼å¤ãè¿ãã¦ããã ãã§ããã
+				# 属性が見つからないというエラーはすでに報告されているので
+				# ここではダミー値を返しておくだけである。
 				next ""
 			end
@@ -1085,16 +1046,16 @@
 			subst_attr_join = cell.get_join_list.get_item(name)
 			if subst_attr_join
-				# ã»ã«çææã«åæåããå ´å
+				# セル生成時に初期化する場合
 				subst = subst_attr_join.get_rhs.to_s
 			else
-				# ã»ã«ã¿ã¤ãã®åæåå¤ãä½¿ãå ´å
+				# セルタイプの初期化値を使う場合
 				subst = subst_attr.get_initializer.to_s
 			end
 
-			# $id$ç­ã®ç½®æ
+			# $id$等の置換
 			cell.get_celltype.subst_name(subst, name_array)
     	}
 
-    	# åºå
+    	# 出力
     	kernelCfg.puts text
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueMarshalerPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueMarshalerPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueMarshalerPlugin.rb	(revision 321)
@@ -6,53 +6,38 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: OpaqueMarshalerPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
 #== OpaqueMarshaler
-# OpaqueRPC ç¨ã®ãã¼ã·ã£ã©ãã¢ã³ãã¼ã·ã£ã©ã»ã«ã¿ã¤ããçæããã·ã°ããã£ãã©ã°ã¤ã³
+# OpaqueRPC 用のマーシャラ、アンマーシャラセルタイプを生成するシグニチャプラグイン
 
 require_tecsgen_lib "lib/GenOpaqueMarshaler.rb"
@@ -76,6 +61,5 @@
     # check_PPAllocator
     if @signature.need_PPAllocator?(true) then
-      @PPAllocatorSize = 1    # PPAllocatorã®å¿
-è¦æ§æã®ããã«è¨­å® (ãµã¤ãºã¯ä½¿ãããªã)
+      @PPAllocatorSize = 1    # PPAllocatorの必要性有のために設定 (サイズは使われない)
       necessity = "Necessary"
     else
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueRPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueRPCPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueRPCPlugin.rb	(revision 321)
@@ -6,57 +6,39 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: OpaqueRPCPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-# ä»¥ä¸ãä»®å®ï¼å¶éäºé 
-ï¼
-#  å¼ã³å
-ãå¼ã³å
-ã®ã¨ã³ãã£ã¢ã³ãchar, short, int_t, long_t, intptr_t ã®ãµã¤ãºãåã
-#  æç¬¦å·ãç¡ç¬¦å·ã§ãµã¤ãºãåã
+# 以下を仮定（制限事項）
+#  呼び元、呼び先のエンディアン、char, short, int_t, long_t, intptr_t のサイズが同じ
+#  有符号、無符号でサイズが同じ
 
 require_tecsgen_lib "lib/GenOpaqueMarshaler.rb"
@@ -68,12 +50,10 @@
   include GenParamCopy
 
-  # OpaqueRPCPlugin å°ç¨ã®ãªãã·ã§ã³
-  OpaqueRPCPluginArgProc = RPCPluginArgProc.dup  # è¤è£½ãä½ã£ã¦å
-ãå¤æ´ããªãããã«ãã
+  # OpaqueRPCPlugin 専用のオプション
+  OpaqueRPCPluginArgProc = RPCPluginArgProc.dup  # 複製を作って元を変更しないようにする
   OpaqueRPCPluginArgProc[ "noClientSemaphore"  ] = Proc.new { |obj,rhs| obj.set_noClientSemaphore rhs }
 
-  #=== RPCPlugin ã® initialize
-  #  èª¬æã¯ ThroughPlugin (plugin.rb) ãåç
-§
+  #=== RPCPlugin の initialize
+  #  説明は ThroughPlugin (plugin.rb) を参照
   def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
     super
@@ -98,11 +78,10 @@
     gen_marshaler_celltype
 
-    # ãã£ã³ãã« composite ã»ã«ã¿ã¤ãã®çæ
-    #  ããã§çæããã CDL ãã¡ã¤ã«ã¯ãtecsgen ãç´æ¥ import ããã®ã§ã¯ãªã
-    #  ã»ã«ã³ã¼ãã® CDL ãã import ããã
+    # チャンネル composite セルタイプの生成
+    #  ここで生成された CDL ファイルは、tecsgen が直接 import するのではなく
+    #  セルコードの CDL から import される
 
     f = CFile.open( @rpc_client_channel_celltype_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -142,6 +121,5 @@
 
     f = CFile.open( @rpc_server_channel_celltype_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -173,5 +151,5 @@
   end
 
-  #===  through cell ã³ã¼ããçæ
+  #===  through cell コードを生成
   #
   #
@@ -180,5 +158,5 @@
     gen_plugin_decl_code( file )
 
-    # ã»ã«ãæ¢ã
+    # セルを探す
     # path =["::",@next_cell.get_name]  # mikan namespace
     # cell = Namespace.find( path )
@@ -191,9 +169,9 @@
 EOT
 
-    ##### ã¯ã©ã¤ã¢ã³ãå´ã®ã»ã«ã®çæ #####
+    ##### クライアント側のセルの生成 #####
     nest = @start_region.gen_region_str_pre file
     nest_str = "  " * nest
 
-    # ã»ããã©ã®çæ
+    # セマフォの生成
     if @b_noClientSemaphore == false then
       file.print <<EOT
@@ -206,5 +184,5 @@
     end
 
-    # ã¯ã©ã¤ã¢ã³ãå´ãã£ã³ãã« (TINET, Socket ãªã©)ã®çæ
+    # クライアント側チャンネル (TINET, Socket など)の生成
     file.print <<EOT
 #{nest_str}  //  Client Side Channel
@@ -216,5 +194,5 @@
 EOT
 
-    # ã»ããã©ã®çµåæ
+    # セマフォの結合文
     if @b_noClientSemaphore == false then
       semaphore = "#{nest_str}    cLockChannel = #{@serverChannelCell}_Semaphore.eSemaphore;\n"
@@ -223,6 +201,6 @@
     end
 
-    ### ã¯ã©ã¤ã¢ã³ãå´ãã£ã³ãã« (ãã¼ã·ã£ã©+TDR)ã®çæ ###
-    # ã¢ã­ã±ã¼ã¿ã®æå®ããããï¼
+    ### クライアント側チャンネル (マーシャラ+TDR)の生成 ###
+    # アロケータの指定があるか？
     if cell.get_allocator_list.length > 0 then
 
@@ -240,8 +218,7 @@
 
         file.print delim
-        delim = ",\n"        # æçµè¡ã«ã¯åºããªã
-
-        if subsc then        # é
-åæ·»æ°
+        delim = ",\n"        # 最終行には出さない
+
+        if subsc then        # 配列添数
           subsc_str = '[#{subsc}]'
         else
@@ -249,5 +226,5 @@
         end
 
-        eport = "eThroughEntry" #RPCã®åãå£åã«å¤æ´
+        eport = "eThroughEntry" #RPCの受け口名に変更
         file.print nest_str
         file.print  "#{eport}#{subsc_str}.#{func}.#{buf} = #{alloc_str}"
@@ -269,10 +246,10 @@
 
 EOT
-    ### END: ã¯ã©ã¤ã¢ã³ãå´ãã£ã³ãã« (ãã¼ã·ã£ã©+TDR)ã®çæ ###
+    ### END: クライアント側チャンネル (マーシャラ+TDR)の生成 ###
 
     @start_region.gen_region_str_post file
     file.print "\n\n"
 
-    ##### ãµã¼ãã¼å´ã®ã»ã«ã®çæ #####
+    ##### サーバー側のセルの生成 #####
     nest = @end_region.gen_region_str_pre file
     nest_str = "  " * nest
@@ -290,5 +267,5 @@
     end
 
-    # ãµã¼ãã¼å´ãã£ã³ãã« (TINET, Socket ãªã©)
+    # サーバー側チャンネル (TINET, Socket など)
     file.print <<EOT
 
@@ -299,5 +276,5 @@
 EOT
 
-    # ãµã¼ãã¼å´ãã£ã³ãã« (ã¢ã³ãã¼ã·ã£ã©+TDR)
+    # サーバー側チャンネル (アンマーシャラ+TDR)
     file.print <<EOT
 
@@ -309,5 +286,5 @@
 EOT
 
-    # ãµã¼ãã¼å´ã¿ã¹ã¯ã¡ã¤ã³
+    # サーバー側タスクメイン
     file.print <<EOT
 
@@ -318,5 +295,5 @@
 EOT
 
-    # ãµã¼ãã¼å´ã¿ã¹ã¯
+    # サーバー側タスク
     file.print <<EOT
 
@@ -332,5 +309,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° noClientSemaphore ã®ãã§ãã¯
+  #=== プラグイン引数 noClientSemaphore のチェック
   def set_noClientSemaphore rhs
     rhs = rhs.to_sym
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RPCPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RPCPlugin.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: RPCPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -56,21 +41,15 @@
 require_tecsgen_lib "lib/GenParamCopy.rb"
 
-#= Transparent RPC ãã©ã°ã¤ã³
-# Transparent RPC ãã£ã³ãã«ãçæãã
-# ãã©ã°ã¤ã³å¼æ°ã¯ä»¥ä¸ã® RPCPluginArgProc ãåç
-§
-
-# mikan through plugin: namespace ãèæ
-®ããã¦ããªã
-# ãããå©ç¨ããå ´åãä»¥ä¸ã®ããã« toppers_jsp.cdl sChannel.cdl ãæå®ããå¿
-è¦ããã
+#= Transparent RPC プラグイン
+# Transparent RPC チャンネルを生成する
+# プラグイン引数は以下の RPCPluginArgProc を参照
+
+# mikan through plugin: namespace が考慮されていない
+# これを利用する場合、以下のように toppers_jsp.cdl sChannel.cdl を指定する必要がある
 # tecsgen toppers_jsp.cdl sChannel.cdl your_description.cdl
 
-# ä»¥ä¸ãä»®å®ï¼å¶éäºé 
-ï¼
-#  å¼ã³å
-ãå¼ã³å
-ã®ã¨ã³ãã£ã¢ã³ãchar, short, int_t, long_t, intptr_t ã®ãµã¤ãºãåã
-#  æç¬¦å·ãç¡ç¬¦å·ã§ãµã¤ãºãåã
+# 以下を仮定（制限事項）
+#  呼び元、呼び先のエンディアン、char, short, int_t, long_t, intptr_t のサイズが同じ
+#  有符号、無符号でサイズが同じ
 
 class RPCPlugin < ThroughPlugin
@@ -79,13 +58,11 @@
   include GenParamCopy
 
-  # RPCPlugin å°ç¨ã®ãªãã·ã§ã³
-  TransparentRPCPluginArgProc = RPCPluginArgProc.dup  # è¤è£½ãä½ã£ã¦å
-ãå¤æ´ããªãããã«ãã
+  # RPCPlugin 専用のオプション
+  TransparentRPCPluginArgProc = RPCPluginArgProc.dup  # 複製を作って元を変更しないようにする
   TransparentRPCPluginArgProc[ "noClientSemaphore"  ] = Proc.new { |obj,rhs| obj.set_noClientSemaphore rhs }
   TransparentRPCPluginArgProc[ "semaphoreCelltype"  ] = Proc.new { |obj,rhs| obj.set_semaphoreCelltype rhs }
 
-  #=== RPCPlugin ã® initialize
-  #  èª¬æã¯ ThroughPlugin (plugin.rb) ãåç
-§
+  #=== RPCPlugin の initialize
+  #  説明は ThroughPlugin (plugin.rb) を参照
   def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
     super
@@ -94,6 +71,5 @@
     initialize_transparent_marshaler cell_name
 
-    # ãªãã·ã§ã³ï¼GenTransparentMarshaler åç
-§
+    # オプション：GenTransparentMarshaler 参照
     @plugin_arg_check_proc_tab = TransparentRPCPluginArgProc
     parse_plugin_arg
@@ -105,5 +81,5 @@
       if @PPAllocatorSize == nil then
         cdl_error( "PPAllocatorSize must be speicified for oneway [in] array" )
-        # @PPAllocatorSize = 0   # ä»®ã« 0 ã¨ãã¦ãã (cdl ã®æ§æã¨ã©ã¼ãé¿ãããã)
+        # @PPAllocatorSize = 0   # 仮に 0 としておく (cdl の構文エラーを避けるため)
       end
     end
@@ -112,8 +88,7 @@
 #      if func_decl.get_type.is_oneway? then
 #        if ( param_decl.get_size || param_decl.get_count ) && param_decl.get_string then
-#          cdl_error( "array of string not supported for oneway function in Transparent RPC" )  # mikan æå­åã®é
-å
+#          cdl_error( "array of string not supported for oneway function in Transparent RPC" )  # mikan 文字列の配列
 #        elsif param_decl.get_string == -1 then
-#          cdl_error( "length unspecified string is not permited for oneway function in Transparent RPC" )  # mikan é·ãæªæå®æå­å
+#          cdl_error( "length unspecified string is not permited for oneway function in Transparent RPC" )  # mikan 長さ未指定文字列
 #        end
 #      end
@@ -121,10 +96,10 @@
   end
 
-  #=== plugin ã®å®£è¨ã³ã¼ã (celltype ã®å®ç¾©) çæ
+  #=== plugin の宣言コード (celltype の定義) 生成
   def gen_plugin_decl_code( file )
 
     ct_name = "#{@ct_name}_#{@channelCelltype}"
 
-    # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
     if @@generated_celltype[ ct_name ] == nil then
       @@generated_celltype[ ct_name ] = [ self ]
@@ -159,6 +134,5 @@
 
     f = CFile.open( @rpc_channel_celltype_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -199,10 +173,10 @@
 };
 EOT
-    # mikan stackSize option & ææ° tecs_package å¯¾å¿
+    # mikan stackSize option & 最新 tecs_package 対応
 
     f.close
   end
 
-  #===  through cell ã³ã¼ããçæ
+  #===  through cell コードを生成
   #
   #
@@ -211,5 +185,5 @@
     gen_plugin_decl_code( file )
 
-    # ã»ã«ãæ¢ã
+    # セルを探す
     # path =["::",@next_cell.get_global_name]
     # cell = Namespace.find( path )
@@ -225,13 +199,13 @@
 
     file.print <<EOT
-#{indent_str}// ä¸æ¹åãã£ã³ãã«ã»ã«
+#{indent_str}// 一方向チャンネルセル
 #{indent_str}cell #{@channelCelltype} #{@channelCellName} {
 #{indent_str}};
 
-#{indent_str}// RPC ãã£ã³ãã«ã»ã«
-EOT
-
-    # #473 ãè§£æ±ºãããå ´åãcomposite ãªã¬ã¼ã¢ã­ã±ã¼ã¿ã«å¤æ´ãã¹ã
-    # ã¢ã­ã±ã¼ã¿ã®æå®ããããï¼
+#{indent_str}// RPC チャンネルセル
+EOT
+
+    # #473 が解決された場合、composite リレーアロケータに変更すべき
+    # アロケータの指定があるか？
     if cell.get_allocator_list.length > 0 then
 
@@ -242,8 +216,7 @@
 
         file.print delim
-        delim = ",\n#{indent_str}           "        # æçµè¡ã«ã¯åºããªã
-
-        if subsc then        # é
-åæ·»æ°
+        delim = ",\n#{indent_str}           "        # 最終行には出さない
+
+        if subsc then        # 配列添数
           subsc_str = '[#{subsc}]'
         else
@@ -251,5 +224,5 @@
         end
 
-        eport = "eThroughEntry" #RPCã®åãå£åã«å¤æ´
+        eport = "eThroughEntry" #RPCの受け口名に変更
         file.print  "#{eport}#{subsc_str}.#{func}.#{buf} = #{alloc}"
       end
@@ -270,5 +243,5 @@
 
 
-  #=== ãã©ã°ã¤ã³å¼æ° noClientSemaphore ã®ãã§ãã¯
+  #=== プラグイン引数 noClientSemaphore のチェック
   def set_noClientSemaphore rhs
     rhs = rhs.to_sym
@@ -282,5 +255,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° semaphoreCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 semaphoreCelltype のチェック
   def set_semaphoreCelltype rhs
     @semaphoreCelltype = rhs.to_sym
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedOpaqueRPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedOpaqueRPCPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedOpaqueRPCPlugin.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: SharedOpaqueRPCPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -56,26 +41,19 @@
 require_tecsgen_lib "lib/GenParamCopy.rb"
 
-#= SharedOpaqueRPC ãã©ã°ã¤ã³
-# SharedOpaqueRPC ãã£ã³ãã«ãçæãã
-# ãã©ã°ã¤ã³å¼æ°ã¯ GenTransparentMarshaler åç
-§
-
-# mikan through plugin: namespace ãèæ
-®ããã¦ããªã
-# ãããå©ç¨ããå ´åãä»¥ä¸ã®ããã« toppers_jsp.cdl sChannel.cdl ãæå®ããå¿
-è¦ããã
+#= SharedOpaqueRPC プラグイン
+# SharedOpaqueRPC チャンネルを生成する
+# プラグイン引数は GenTransparentMarshaler 参照
+
+# mikan through plugin: namespace が考慮されていない
+# これを利用する場合、以下のように toppers_jsp.cdl sChannel.cdl を指定する必要がある
 # tecsgen toppers_jsp.cdl sChannel.cdl your_description.cdl
 
-# ä»¥ä¸ãä»®å®ï¼å¶éäºé 
-ï¼
-#  å¼ã³å
-ãå¼ã³å
-ã®ã¨ã³ãã£ã¢ã³ãchar, short, int_t, long_t, intptr_t ã®ãµã¤ãºãåã
-#  æç¬¦å·ãç¡ç¬¦å·ã§ãµã¤ãºãåã
+# 以下を仮定（制限事項）
+#  呼び元、呼び先のエンディアン、char, short, int_t, long_t, intptr_t のサイズが同じ
+#  有符号、無符号でサイズが同じ
 
 class SharedOpaqueRPCPlugin < ThroughPlugin
 
-  # ãã£ã³ãã«ãå
-±æãããã©ã°ã¤ã³ãªãã¸ã§ã¯ãã¸ã®ããã·ã¥ãªã¹ã
+  # チャンネルを共有するプラグインオブジェクトへのハッシュリスト
   @@shared_channel_list = {}    # { chan_name => [ Plugin_obj0, Plugin_Obj1, ... ] }
 
@@ -84,20 +62,16 @@
   include GenParamCopy
 
-  # SharedOpaqueRPCPlugin å°ç¨ã®ãªãã·ã§ã³
-  SharedOpaqueRPCPluginArgProc = RPCPluginArgProc.dup  # è¤è£½ãä½ã£ã¦å
-ãå¤æ´ããªãããã«ãã
+  # SharedOpaqueRPCPlugin 専用のオプション
+  SharedOpaqueRPCPluginArgProc = RPCPluginArgProc.dup  # 複製を作って元を変更しないようにする
   SharedOpaqueRPCPluginArgProc[ "sharedChannelName"  ] = Proc.new { |obj,rhs| obj.set_sharedChannelName rhs }
 
-  #=== RPCPlugin ã® initialize
-  #  èª¬æã¯ ThroughPlugin (plugin.rb) ãåç
-§
+  #=== RPCPlugin の initialize
+  #  説明は ThroughPlugin (plugin.rb) を参照
   def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
     super
     initialize_opaque_marshaler
-    @entry_port_name = :"eClientEntry"   # Marshaler ã®åãå£å (through ã»ã«ã®å
-¥ãå£)
-
-    # ãªãã·ã§ã³ï¼GenOpaqueMarshaler åç
-§
+    @entry_port_name = :"eClientEntry"   # Marshaler の受け口名 (through セルの入り口)
+
+    # オプション：GenOpaqueMarshaler 参照
     @plugin_arg_check_proc_tab = SharedOpaqueRPCPluginArgProc
     @sharedChannelName = nil
@@ -125,5 +99,5 @@
     prev_start = @@shared_channel_list[ @shared_channel_cell ][0].start_region
     if @start_region != prev_start then
-      # ååºã¨ start ãªã¼ã¸ã§ã³ä¸ä¸è´ (ååºã¯ãèªåèªèº«ã¨ãã§ãã¯ããããç¡é§ã ãå°ããã®ã§æ¾ç½®)
+      # 初出と start リージョン不一致 (初出は、自分自身とチェックされる。無駄だが小さいので放置)
       cdl_error( "SharedRPCPlugin: start region mismatch current: #{@region.get_name} previous: #{prev_start.get_name}")
     end
@@ -131,5 +105,5 @@
     prev_end = @@shared_channel_list[ @shared_channel_cell ][0].end_region
     if @end_region != prev_end then
-      # ååºã¨ end ãªã¼ã¸ã§ã³ä¸ä¸è´  (ååºã¯ãèªåèªèº«ã¨ãã§ãã¯ããããç¡é§ã ãå°ããã®ã§æ¾ç½®)
+      # 初出と end リージョン不一致  (初出は、自分自身とチェックされる。無駄だが小さいので放置)
       cdl_error( "SharedRPCPlugin: end region mismatch current: #{@region.get_name} previous: #{prev_end.get_name}")
     end
@@ -141,5 +115,5 @@
   # end
 
-  #=== ãã©ã°ã¤ã³å¼æ° sharedChannelCell ã®ãã§ãã¯
+  #=== プラグイン引数 sharedChannelCell のチェック
   def set_sharedChannelName( rhs )
     @sharedChannelName = rhs
@@ -153,5 +127,5 @@
   def gen_plugin_decl_code( file )
 
-    # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
     if @@generated_celltype[ @shared_channel_server_ct_name ] == nil then
       @@generated_celltype[ @shared_channel_server_ct_name ] = [ self ]
@@ -162,6 +136,5 @@
     gen_marshaler_celltype
 
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     if @PPAllocatorSize then
@@ -174,6 +147,5 @@
 
     f = CFile.open( @shared_channel_ct_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -233,5 +205,5 @@
   end
 
-  #===  through cell ã³ã¼ããçæ
+  #===  through cell コードを生成
   #
   #
@@ -250,17 +222,16 @@
     indent_str = "  " * nest
 
-    # ã»ã«ãæ¢ã
+    # セルを探す
     # path =["::",@next_cell.get_name]
     # cell = Namespace.find( path )
     cell = Namespace.find( @next_cell.get_namespace_path )
 
-    # å
-±æãããéä¿¡ãã£ã³ãã«ã®çæã®ãã­ãã¿ã¤ãå®£è¨
+    # 共有される通信チャンネルの生成のプロトタイプ宣言
     file.print <<EOT
 #{indent_str}cell #{@shared_channel_client_ct_name} #{@shared_channel_cell};
 EOT
 
-    # ãã¼ã·ã£ã©ã»ã«ã®çæï¼ã¢ã­ã±ã¼ã¿ã³ã¼ãã®çæããï¼
-    # ã¢ã­ã±ã¼ã¿ã®æå®ããããï¼
+    # マーシャラセルの生成（アロケータコードの生成から）
+    # アロケータの指定があるか？
     if cell.get_allocator_list.length > 0 then
 
@@ -278,8 +249,7 @@
 
         file.print delim
-        delim = ",\n#{indent_str}           "        # æçµè¡ã«ã¯åºããªã
-
-        if subsc then        # é
-åæ·»æ°
+        delim = ",\n#{indent_str}           "        # 最終行には出さない
+
+        if subsc then        # 配列添数
           subsc_str = '[#{subsc}]'
         else
@@ -287,5 +257,5 @@
         end
 
-        eport = @entry_port_name #RPCã®åãå£åã«å¤æ´
+        eport = @entry_port_name #RPCの受け口名に変更
         file.print  "#{eport}#{subsc_str}.#{func}.#{buf} = #{alloc_str}"
       end
@@ -294,5 +264,5 @@
     end
 
-    # ãã¼ã·ã£ã©ã»ã«æ¬ä½çæ
+    # マーシャラセル本体生成
     file.print <<EOT
 /* OpaqueRPC Marshaler Cell */
@@ -305,6 +275,6 @@
     @start_region.gen_region_str_post file
 
-    # ã¢ã³ãã¼ã·ã£ã©ã»ã«ã®åºå
-    # ã»ã«æ¬ä½ã®çæ
+    # アンマーシャラセルの出力
+    # セル本体の生成
     nest = @end_region.gen_region_str_pre file
 
@@ -315,6 +285,5 @@
 EOT
 
-    # PPAllocator ãå¿
-è¦ã?
+    # PPAllocator が必要か?
     if @PPAllocatorSize then
       if @sub_channel_no == 0 then
@@ -341,6 +310,6 @@
   end
 
-  #=== post ã³ã¼ã(CDL) ãçæ
-  # ãã©ã°ã¤ã³ã®å¾ã®ã³ã¼ããçæ
+  #=== post コード(CDL) を生成
+  # プラグインの後のコードを生成
   #file:: File: 
   def self.gen_post_code( file )
@@ -355,14 +324,11 @@
   end
 
-  #=== post ã³ã¼ã(CDL) ãçæ
-  # å
-±æãã£ã³ãã«ãçæãã
-  # ãã®ã¡ã½ããã¯ããã£ã³ãã«ãå
-±æããæåã®ãã©ã°ã¤ã³ãªãã¸ã§ã¯ãã®ã¿å¼ã³åºããã
+  #=== post コード(CDL) を生成
+  # 共有チャンネルを生成する
+  # このメソッドは、チャンネルを共有する最初のプラグインオブジェクトのみ呼び出される
   def gen_post_code( file, plugin_obj_array )
 
-    # å
-±æããã¦ããéä¿¡ãã£ã³ãã«ã®çæ
-    # åãã©ã°ã¤ã³ã¤ã³ã¹ã¿ã³ã¹ã§ã¯ @shared_channel_ct_name ã¨ãã¦è¨æ¶ãã¦ãã
+    # 共有されている通信チャンネルの生成
+    # 各プラグインインスタンスでは @shared_channel_ct_name として記憶している
     # region = @caller_cell.get_region
     nest = @start_region.gen_region_str_pre file
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedRPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedRPCPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedRPCPlugin.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: SharedRPCPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -56,21 +41,15 @@
 require_tecsgen_lib "lib/GenParamCopy.rb"
 
-#= SharedRPC ãã©ã°ã¤ã³
-# SharedRPC ãã£ã³ãã«ãçæãã
-# ãã©ã°ã¤ã³å¼æ°ã¯ GenTransparentMarshaler åç
-§
-
-# mikan through plugin: namespace ãèæ
-®ããã¦ããªã
-# ãããå©ç¨ããå ´åãä»¥ä¸ã®ããã« toppers_jsp.cdl sChannel.cdl ãæå®ããå¿
-è¦ããã
+#= SharedRPC プラグイン
+# SharedRPC チャンネルを生成する
+# プラグイン引数は GenTransparentMarshaler 参照
+
+# mikan through plugin: namespace が考慮されていない
+# これを利用する場合、以下のように toppers_jsp.cdl sChannel.cdl を指定する必要がある
 # tecsgen toppers_jsp.cdl sChannel.cdl your_description.cdl
 
-# ä»¥ä¸ãä»®å®ï¼å¶éäºé 
-ï¼
-#  å¼ã³å
-ãå¼ã³å
-ã®ã¨ã³ãã£ã¢ã³ãchar, short, int_t, long_t, intptr_t ã®ãµã¤ãºãåã
-#  æç¬¦å·ãç¡ç¬¦å·ã§ãµã¤ãºãåã
+# 以下を仮定（制限事項）
+#  呼び元、呼び先のエンディアン、char, short, int_t, long_t, intptr_t のサイズが同じ
+#  有符号、無符号でサイズが同じ
 
 class SharedRPCPlugin < ThroughPlugin
@@ -81,18 +60,16 @@
   include GenParamCopy
 
-  #=== RPCPlugin ã® initialize
-  #  èª¬æã¯ ThroughPlugin (plugin.rb) ãåç
-§
+  #=== RPCPlugin の initialize
+  #  説明は ThroughPlugin (plugin.rb) を参照
   def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
 
-    # mikan ãã©ã°ã¤ã³ãªãã·ã§ã³æå®ã®ä¸ä¸è´ã®ãã§ãã¯ task_priority, 
+    # mikan プラグインオプション指定の不一致のチェック task_priority, 
 
     super
     initialize_transparent_marshaler cell_name
 
-    # ãªãã·ã§ã³ï¼GenTransparentMarshaler åç
-§
+    # オプション：GenTransparentMarshaler 参照
     @plugin_arg_check_proc_tab = RPCPluginArgProc
-    @channelCellName = ""     # nil ã«ãã¦ãã
+    @channelCellName = ""     # nil にしておく
     parse_plugin_arg
 
@@ -108,8 +85,8 @@
 
     if @@shared_channel_list[ @shared_channel_cell ] == nil then
-      # ååº
+      # 初出
       @@shared_channel_list[ @shared_channel_cell ] = [ self ]
     else
-      # äºçªç®ä»¥é
+      # 二番目以降
       @@shared_channel_list[ @shared_channel_cell ] << self
     end
@@ -117,5 +94,5 @@
 
     if @region != @@shared_channel_list[ @shared_channel_cell ][0].region then
-      # ååºã¨ãªã¼ã¸ã§ã³ä¸ä¸è´ (ååºã¯ãèªåèªèº«ã¨ãã§ãã¯ããããç¡é§ã ãå°ããã®ã§æ¾ç½®)
+      # 初出とリージョン不一致 (初出は、自分自身とチェックされる。無駄だが小さいので放置)
       cdl_error( "SharedRPCPlugin: preferred region mismatch current: #{@region.get_name} previous: #{@@shared_channel_list[ @shared_channel_cell ][0].region.get_name}")
     else
@@ -138,5 +115,5 @@
   def gen_plugin_decl_code( file )
 
-    # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
     if @@generated_celltype[ @shared_channel_ct_name ] == nil then
       @@generated_celltype[ @shared_channel_ct_name ] = [ self ]
@@ -152,6 +129,5 @@
 
     gen_marshaler_celltype
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     if @signature.need_PPAllocator? then
@@ -164,6 +140,5 @@
 
     f = CFile.open( @rpc_channel_celltype_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -196,11 +171,10 @@
 };
 EOT
-    # mikan stackSize option & ææ° tecs_package å¯¾å¿
+    # mikan stackSize option & 最新 tecs_package 対応
 
     f.close
 
     f = CFile.open( "#{$gen}/#{@shared_channel_ct_name}.cdl", "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -247,5 +221,5 @@
   end
 
-  #===  through cell ã³ã¼ããçæ
+  #===  through cell コードを生成
   #
   #
@@ -263,11 +237,10 @@
     indent_str = "  " * nest
 
-    # ã»ã«ãæ¢ã
+    # セルを探す
     # path =["::",@next_cell.get_name]
     # cell = Namespace.find( path )
     cell = Namespace.find( @next_cell.get_namespace_path )
 
-    # PPAllocator ãå¿
-è¦ã?
+    # PPAllocator が必要か?
     if @signature.need_PPAllocator? then
       if @sub_channel_no == 0 then
@@ -284,13 +257,12 @@
     end
 
-    # å
-±æãããéä¿¡ãã£ã³ãã«ã®çæã®ãã­ãã¿ã¤ãå®£è¨
+    # 共有される通信チャンネルの生成のプロトタイプ宣言
     file.print <<EOT
 #{indent_str}cell #{@shared_channel_ct_name} #{@shared_channel_cell};
 EOT
 
-    # ããããåçµåãã¨ã®ã»ã«ãçæ
-
-    # ã¢ã­ã±ã¼ã¿ã®æå®ããããï¼
+    # ここから各結合ごとのセルを生成
+
+    # アロケータの指定があるか？
     if cell.get_allocator_list.length > 0 then
 
@@ -301,8 +273,7 @@
 
         file.print delim
-        delim = ",\n#{indent_str}           "        # æçµè¡ã«ã¯åºããªã
-
-        if subsc then        # é
-åæ·»æ°
+        delim = ",\n#{indent_str}           "        # 最終行には出さない
+
+        if subsc then        # 配列添数
           subsc_str = '[#{subsc}]'
         else
@@ -310,5 +281,5 @@
         end
 
-        eport = "eThroughEntry" #RPCã®åãå£åã«å¤æ´
+        eport = "eThroughEntry" #RPCの受け口名に変更
         file.print  "#{eport}#{subsc_str}.#{func}.#{buf} = #{alloc}"
       end
@@ -317,5 +288,5 @@
     end
 
-    # ã»ã«æ¬ä½ã®çæ
+    # セル本体の生成
     file.print <<EOT
 #{indent_str}cell #{@rpc_channel_celltype_name} #{@cell_name} {
@@ -329,6 +300,6 @@
   end
 
-  #=== å¾ãã®ã³ã¼ããçæ
-  #ãã©ã°ã¤ã³ã®å¾ãã®ã³ã¼ããçæ
+  #=== 後ろのコードを生成
+  #プラグインの後ろのコードを生成
   #file:: File: 
   def self.gen_post_code( file )
@@ -339,6 +310,6 @@
   end
 
-  #=== å¾ãã®ã³ã¼ããçæ
-  # plugin_obj[0] ãä»£è¡¨ãã¦åºåããï¼ã¤ã³ã¹ã¿ã³ã¹å¤æ°ã«ã¢ã¯ã»ã¹ãããããï¼
+  #=== 後ろのコードを生成
+  # plugin_obj[0] が代表して出力する（インスタンス変数にアクセスしたいため）
   def gen_post_code( file, plugin_obj )
 
@@ -348,7 +319,6 @@
     indent_str = "  " * nest
 
-    # å
-±æããã¦ããéä¿¡ãã£ã³ãã«ã®çæ
-    # åãã©ã°ã¤ã³ã¤ã³ã¹ã¿ã³ã¹ã§ã¯ @shared_channel_ct_name ã¨ãã¦è¨æ¶ãã¦ãã
+    # 共有されている通信チャンネルの生成
+    # 各プラグインインスタンスでは @shared_channel_ct_name として記憶している
     file.print "#{indent_str}cell tSharedRPCPlugin_#{@channelCelltype} #{chan_name} {\n"
     plugin_obj.each{ |po|
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SignaturePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SignaturePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SignaturePlugin.rb	(revision 321)
@@ -6,62 +6,46 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: SignaturePlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== signature ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹
+#== signature プラグインの共通の親クラス
 class SignaturePlugin < Plugin
-#@signature:: Signature   ãã©ã°ã¤ã³ã®å¯¾è±¡ã¨ãªãã·ã°ããã£
-#@option:: String   '"', '"' ã§å²ã¾ããæå­å
+#@signature:: Signature   プラグインの対象となるシグニチャ
+#@option:: String   '"', '"' で囲まれた文字列
 
-  #signature::     Signature        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+  #signature::     Signature        シグニチャ（インスタンス）
   def initialize( signature, option )
     super()
     @signature = signature
-    # @plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # åå¾ã® "" ãåãé¤ã
+    # @plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # 前後の "" を取り除く
     # @plugin_arg_str.sub!( /(.*)"\z/, '\1' )
     @plugin_arg_str = CDLString.remove_dquote option
@@ -69,18 +53,16 @@
   end
 
-  #=== å¾ãã®ã³ã¼ããçæ
-  #ãã©ã°ã¤ã³ã®å¾ãã® CDL ã³ã¼ããçæ
+  #=== 後ろのコードを生成
+  #プラグインの後ろの CDL コードを生成
   #file:: File: 
   def self.gen_post_code( file )
-    # è¤æ°ã®ãã©ã°ã¤ã³ã® post_code ãä¸ã¤ã®ãã¡ã¤ã«ã«å«ã¾ãããããä»¥ä¸ã®ãããªè¦åºããã¤ãããã¨
+    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
     # file.print "/* '#{self.class.name}' post code */\n"
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     éå¸¸ã§ããã°ãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã©ã°ã¤ã³ã®å ´åãå¤æ´ããå¿
-è¦ã®ãªãã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     通常であれば、ジェネレータは受け口関数のテンプレートを生成する
+  #     プラグインの場合、変更する必要のないセルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TECS2CBridgePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TECS2CBridgePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TECS2CBridgePlugin.rb	(revision 321)
@@ -6,59 +6,44 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: TECS2CBridgePlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#== TECS => C å¼ã³åºããã©ã°ã¤ã³
+#== TECS => C 呼び出しプラグイン
 class TECS2CBridgePlugin < SignaturePlugin
-#@signature:: Signature   ãã©ã°ã¤ã³ã®å¯¾è±¡ã¨ãªãã·ã°ããã£
-#@option:: String   '"', '"' ã§å²ã¾ããæå­å
+#@signature:: Signature   プラグインの対象となるシグニチャ
+#@option:: String   '"', '"' で囲まれた文字列
 
   @@signature_list = { }
 
-  #signature::     Signature        ã·ã°ããã£ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼
+  #signature::     Signature        シグニチャ（インスタンス）
   def initialize( signature, option )
     super
@@ -91,18 +76,16 @@
   end
 
-  #=== å¾ãã®ã³ã¼ããçæ
-  #ãã©ã°ã¤ã³ã®å¾ãã®ã³ã¼ããçæ
+  #=== 後ろのコードを生成
+  #プラグインの後ろのコードを生成
   #file:: File: 
   def self.gen_post_code( file )
-    # è¤æ°ã®ãã©ã°ã¤ã³ã® post_code ãä¸ã¤ã®ãã¡ã¤ã«ã«å«ã¾ãããããä»¥ä¸ã®ãããªè¦åºããã¤ãããã¨
+    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
     # file.print "/* '#{self.class.name}' post code */\n"
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     éå¸¸ã§ããã°ãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã©ã°ã¤ã³ã®å ´åãå¤æ´ããå¿
-è¦ã®ãªãã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     通常であれば、ジェネレータは受け口関数のテンプレートを生成する
+  #     プラグインの場合、変更する必要のないセルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -129,5 +112,5 @@
     p_cellcb = #{global_ct_name}_GET_CELLCB(idx);
   }else{
-     /* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
+     /* エラー処理コードをここに記述 */
   }
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ThroughPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ThroughPlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ThroughPlugin.rb	(revision 321)
@@ -6,112 +6,80 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: ThroughPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-# mikan through plugin: namespace ãèæ
-®ããã¦ããªã
-
-#==  ã¹ã«ã¼ãã©ã°ã¤ã³ã®å
-±éã®è¦ªã¯ã©ã¹ããã¤ ï¼ä½ãããï¼ã¹ã«ã¼ããã»ã«ãæ¿å
-¥ããã¹ã«ã¼ãã©ã°ã¤ã³
-#    ã¹ã«ã¼ãã©ã°ã¤ã³ã¯ ThroughPlugin ã®å­ã¯ã©ã¹ã¨ãã¦å®ç¾©ãã
+# mikan through plugin: namespace が考慮されていない
+
+#==  スループラグインの共通の親クラス　かつ （何もせず）スルーするセルを挿入するスループラグイン
+#    スループラグインは ThroughPlugin の子クラスとして定義する
 class ThroughPlugin < Plugin
-#@cell_name::      Symbol             çæããã»ã«åï¼è¤æ°ã»ã«ãçæããå ´åãåãå£å´ã®ã»ã«ï¼
-#@plugin_arg_str:: string             through ã§æå®ãããå¼æ°
-#@next_cell:: Cell                    å¼ã³å£ãçµåããã»ã«
-#@next_cell_port_name:: Symbol       å¼ã³å£ãçµåããåå£ã®åå
-#@signature::      Signature          ã·ã°ããã£
-#@celltype::       Celltype           å¼ã³å
-ã®ã»ã«ã®ã»ã«ã¿ã¤ã. through ãé£æ¥ããå ´åãæçµçãªå¼ã³å
-ã®ã»ã«ã®ã»ã«ã¿ã¤ã
-#@entry_port_name::Symbol             çæããã»ã«ã®åãå£å  "eThroughEntry"
-#@call_port_name:: Symbol             çæããã»ã«ã®å¼ã³å£å  "cCall"
-#@ct_name::        Symbol             çæããã»ã«ã®ã»ã«ã¿ã¤ãå   "t#{self.class.name}_#{@signature.get_global_name}"
-#@plugin_arg_list:: Hash              ãã©ã°ã¤ã³å¼æ°ããã¼ã¹ããçµæã®ããã·ã¥å¤æ°
-#@caller_cell::    Cell               å¼ã³å
-ã®ã»ã«ï¼through ãã©ã°ã¤ã³ãé£æ¥ããå ´åã§ã¯ãæãå¼ã³å
-ã®ã»ã«ï¼($source$)
-#                                     through ãã©ã°ã¤ã³ãåæµããã±ã¼ã¹ã§ã¯ã1ã¤ç®ã®å¼ã³å
-ã»ã«ã®ã¿å¼æ°ã¨ãã¦ä¸ãããã
-#                                     å¾ã£ã¦ TracePlugin ã®å¼ã³å
-ã®å¤å¥ã«å©ç¨ããå ´åã¯ãç°ãªãå¼ã³å
-ããå¼ã°ããå¯è½æ§ããããã¨ã«æ³¨æããªãã¦ã¯ãªããªã
-#@callee_cell:: Cell                  å¼ã³å
-ã®ã»ã«($destination$)
-#@plugin_arg_check_proc_tab:: [string => Proc]  ãã©ã°ã¤ã³å¼æ°åâãã§ãã¯é¢æ°
-# ä»¥ä¸ã®å¤æ°ã¯ãinitialize ã§ã¯ãªããå¾ããè¨­å®ããã
-#@start_@region::  Region             å§ã¾ãã®ãªã¼ã¸ã§ã³ï¼ caller_cell ã®ãªã¼ã¸ã§ã³ã¨ã¯ç°ãªãå¯è½æ§ããã ($start_region$)
-#@end_region::  Region                çµããã®ãªã¼ã¸ã§ã³ï¼ next_cell ã®ãªã¼ã¸ã§ã³ã¨ã¯ç°ãªãå¯è½æ§ããã ($end_region$)
-#@region:: Region                     @start_region ã¨ @end_region ã®ããããã§ãcell ãç½®ãã®ãå¥½ã¾ãããªã¼ã¸ã§ã³ ($preferred_region$)
-#@through_type:: Symbol              :THROUGH, :TO_THROUGH, :IN_THROUGH, :OUT_THROUGH ã®ãããã
-
-  # ãã® Plugin ãçæããã»ã«ã¿ã¤ãã®ãªã¹ã
+#@cell_name::      Symbol             生成するセル名（複数セルを生成する場合、受け口側のセル）
+#@plugin_arg_str:: string             through で指定された引数
+#@next_cell:: Cell                    呼び口を結合するセル
+#@next_cell_port_name:: Symbol       呼び口を結合する受口の名前
+#@signature::      Signature          シグニチャ
+#@celltype::       Celltype           呼び先のセルのセルタイプ. through が連接する場合、最終的な呼び先のセルのセルタイプ
+#@entry_port_name::Symbol             生成するセルの受け口名  "eThroughEntry"
+#@call_port_name:: Symbol             生成するセルの呼び口名  "cCall"
+#@ct_name::        Symbol             生成するセルのセルタイプ名   "t#{self.class.name}_#{@signature.get_global_name}"
+#@plugin_arg_list:: Hash              プラグイン引数をパースした結果のハッシュ変数
+#@caller_cell::    Cell               呼び元のセル．through プラグインが連接する場合では、最も呼び元のセル．($source$)
+#                                     through プラグインが合流するケースでは、1つ目の呼び元セルのみ引数として与えられる
+#                                     従って TracePlugin の呼び元の判別に利用する場合は、異なる呼び元から呼ばれる可能性があることに注意しなくてはならない
+#@callee_cell:: Cell                  呼び先のセル($destination$)
+#@plugin_arg_check_proc_tab:: [string => Proc]  プラグイン引数名⇒チェック関数
+# 以下の変数は、initialize ではなく、後から設定される
+#@start_@region::  Region             始まりのリージョン： caller_cell のリージョンとは異なる可能性がある ($start_region$)
+#@end_region::  Region                終わりのリージョン： next_cell のリージョンとは異なる可能性がある ($end_region$)
+#@region:: Region                     @start_region と @end_region のいずれかで、cell を置くのが好ましいリージョン ($preferred_region$)
+#@through_type:: Symbol              :THROUGH, :TO_THROUGH, :IN_THROUGH, :OUT_THROUGH のいずれか
+
+  # この Plugin が生成したセルタイプのリスト
   @@generated_celltype = {}
 
-  #=== ThroughPlugin ã®åæå
-  #     through ãæå®ãããæç¹ã§çæãè¡ããã
-  #         åæåã§ã¯ãæå®ãããå¼æ°ãè¨é²ããã«çãã
-  #cell_name::      Symbol             çæãã¹ãã»ã«åï¼åå£å´ï¼
-  #plugin_arg::     string             through ã§æå®ãããå¼æ°
-  #next_cell::      Cell               å¼ã³å£ãæ¥ç¶ããã»ã«
-  #next_cell_port_name:: Symbol        å¼ã³å£ãæ¥ç¶ããåå£ã®åå
-  #signature::      Signature          ã·ã°ããã£
-  #celltype::       Celltype           ã»ã«ã¿ã¤ã (å¼ã³å
-ã®ã»ã«ã®ã»ã«ã¿ã¤ã)
-  #caller_cell::    Cell               å¼ã³å
-ã®ã»ã«ï¼@caller_cell ã®é 
-ãåç
-§
+  #=== ThroughPlugin の初期化
+  #     through が指定された時点で生成が行われる
+  #         初期化では、指定された引数を記録するに留める
+  #cell_name::      Symbol             生成すべきセル名（受口側）
+  #plugin_arg::     string             through で指定された引数
+  #next_cell::      Cell               呼び口を接続するセル
+  #next_cell_port_name:: Symbol        呼び口を接続する受口の名前
+  #signature::      Signature          シグニチャ
+  #celltype::       Celltype           セルタイプ (呼び先のセルのセルタイプ)
+  #caller_cell::    Cell               呼び元のセル．@caller_cell の項を参照
   def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
     super()
-    @cell_name = cell_name                      # çæãã¹ãã»ã«åï¼åãå£å´ã®ã»ã«åï¼
-                                                # ãã®å¼ã³å
-ã«å¥ã»ã«ãçæããå ´åããã®ååãæ¥é ­è¾ã¨ãã¹ã
-    @next_cell = next_cell                      # å¼ã³å
-ã®ã»ã«
+    @cell_name = cell_name                      # 生成すべきセル名（受け口側のセル名）
+                                                # この呼び先に別セルを生成する場合、この名前を接頭辞とすべき
+    @next_cell = next_cell                      # 呼び先のセル
     @next_cell_port_name = next_cell_port_name
     @signature = signature
@@ -121,18 +89,16 @@
     @celltype = celltype
     @plugin_arg_str = plugin_arg
-    @plugin_arg_list = {}                       # ãã©ã°ã¤ã³å¼æ°ããã¼ã¹ããçµæã®ããã·ã¥å¤æ°
+    @plugin_arg_list = {}                       # プラグイン引数をパースした結果のハッシュ変数
     @caller_cell     = caller_cell
-    Join.set_through_info self                  # å¼æ°ã§æ¸¡ããªã(å¾ããè¿½å ããã)ãã®ã¯ set_through_info ã§è¨­å®ããã
+    Join.set_through_info self                  # 引数で渡らない(後から追加された)ものは set_through_info で設定される
     print( "#{self.class.name}.new( '#{cell_name}', '#{plugin_arg}', '#{next_cell.get_name}', '#{next_cell_port_name}', #{celltype.get_name} )\n" )
   end
 
-  #=== æ
-å ±ãè¨­å®ãã
-  # å
-±æãã£ã³ãã«ã®å ´å caller_cell, next_cell ã®ãããã® region ã§ããªãã±ã¼ã¹ããã
-  # å¾ããè¿½å ããã®ã§ initialize ã®å¼æ°ã§ã¯ãªããå¥ã¡ã½ããã§è¨­å®
-  # ãã®ã¡ã½ããã¯ããªã¼ãã¼ã©ã¤ãããªãã§ãã ãã
-  # Join ã¨ ThrougPlugin ã®éã®é£çµ¡ç¨ã§ãä»å¾ã¨ãå¼æ°ãè¿½å ãããå¯è½æ§ããããã
-  # ãã®ã¡ã½ããã¯ V1.C.0.34 ã§ä½ç½®ãç§»åãããThroughPlugin#initialize ã§å¼ã³åºããã
+  #=== 情報を設定する
+  # 共有チャンネルの場合 caller_cell, next_cell のいずれの region でもないケースがある
+  # 後から追加したので initialize の引数ではなく、別メソッドで設定
+  # このメソッドは、オーバーライドしないでください
+  # Join と ThrougPlugin の間の連絡用で、今後とも引数が追加される可能性があるため
+  # このメソッドは V1.C.0.34 で位置が移動され、ThroughPlugin#initialize で呼び出される
   def set_through_info( start_region, end_region, through_type, join, callee_cell, count )
     @start_region = start_region
@@ -143,5 +109,5 @@
     @count = count
 
-    # preferred_region ã®è¨­å®
+    # preferred_region の設定
     case through_type
     when :IN_THROUGH, :THROUGH
@@ -154,11 +120,11 @@
   end
 
-  #===  ã»ã«ã®ååãå¾ã
+  #===  セルの名前を得る
   def get_cell_name
     @cell_name
   end
 
-  #=== NamespacePath ãå¾ã
-  # çæããã»ã«ã® namespace path ãçæãã
+  #=== NamespacePath を得る
+  # 生成するセルの namespace path を生成する
   def get_cell_namespace_path
 #    nsp = @region.get_namespace.get_namespace_path
@@ -167,16 +133,16 @@
   end
 
-  #===  çæãããã»ã«ã®åãå£ã®ååãå¾ã
+  #===  生成されたセルの受け口の名前を得る
   def get_through_entry_port_name
     @entry_port_name
   end
 
-  #===  å®£è¨ã³ã¼ãã®çæ
-  #      typedef, signature, celltype ãªã©ï¼cell ä»¥å¤ï¼ã®ã³ã¼ããçæ
-  #          éè¤ãã¦çæãã¦ã¯ãªããªãï¼ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ï¼
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  宣言コードの生成
+  #      typedef, signature, celltype など（cell 以外）のコードを生成
+  #          重複して生成してはならない（すでに生成されている場合は出力しないこと）
+  #file::        FILE       生成するファイル
   def gen_plugin_decl_code( file )
 
-    # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
     if @@generated_celltype[ @ct_name ] == nil then
       @@generated_celltype[ @ct_name ] = [ self ]
@@ -223,6 +189,6 @@
   end
 
-  #=== CDL ãã¡ã¤ã«ã®çæ
-  #file::     FILE    çæãããã¡ã¤ã«
+  #=== CDL ファイルの生成
+  #file::     FILE    生成するファイル
   def gen_cdl_file( file )
     gen_plugin_decl_code( file )
@@ -230,7 +196,7 @@
   end
 
-  #===  ã»ã«ã³ã¼ãã®çæ
-  #     through æå®ã«ããçããã»ã«ã³ã¼ã(CDL)ãçæãã
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  セルコードの生成
+  #     through 指定により生じるセルコード(CDL)を生成する
+  #file::        FILE       生成するファイル
   def gen_through_cell_code( file )
 
@@ -247,18 +213,16 @@
   end
 
-  #=== å¾ãã®ã³ã¼ããçæ
-  #ãã©ã°ã¤ã³ã®å¾ãã®ã³ã¼ã (CDL) ãçæ
+  #=== 後ろのコードを生成
+  #プラグインの後ろのコード (CDL) を生成
   #file:: File: 
   def self.gen_post_code( file )
-    # è¤æ°ã®ãã©ã°ã¤ã³ã® post_code ãä¸ã¤ã®ãã¡ã¤ã«ã«å«ã¾ãããããä»¥ä¸ã®ãããªè¦åºããã¤ãããã¨
+    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
     # file.print "/* '#{self.class.name}' post code */\n"
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½(Cè¨èª)ãçæãã
-  #     éå¸¸ã§ããã°ãã¸ã§ãã¬ã¼ã¿ã¯åãå£é¢æ°ã®ãã³ãã¬ã¼ããçæãã
-  #     ãã©ã°ã¤ã³ã®å ´åãå¤æ´ããå¿
-è¦ã®ãªãã»ã«ã¿ã¤ãã³ã¼ããçæãã
-  #file::           FILE        åºåå
-ãã¡ã¤ã«
+  #===  受け口関数の本体(C言語)を生成する
+  #     通常であれば、ジェネレータは受け口関数のテンプレートを生成する
+  #     プラグインの場合、変更する必要のないセルタイプコードを生成する
+  #file::           FILE        出力先ファイル
   #b_singleton::    bool        true if singleton
   #ct_name::        Symbol
@@ -285,5 +249,5 @@
     p_cellcb = #{global_ct_name}_GET_CELLCB(idx);
   }else{
-     /* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
+     /* エラー処理コードをここに記述 */
   }
 
@@ -318,5 +282,5 @@
   end
 
-  #=== Through ãã©ã°ã¤ã³ã®å¼æ°ã®ååãç½®æãã
+  #=== Through プラグインの引数の名前を置換する
   def check_plugin_arg( ident, rhs )
     rhs = subst_name rhs
@@ -324,26 +288,21 @@
   end
 
-  #=== ThroughPlugin#ååã®ç½®æ
-  # ãã©ã°ã¤ã³ãªãã·ã§ã³å¼æ°å
-ã®æå­åãç½®æãã
-  #   $source$       â¦ å¼ã³å
-ã®ã»ã«å
-  #   $destination$  â¦ å¼ã³å
-ã®ã»ã«å
-  #   $SOURCE$       â¦ å¼ã³å
-ã®ã»ã«å (ãªã¼ã¸ã§ã³åã '_' ã§é£çµãã global_name)
-  #   $DESTINATION$  â¦ å¼ã³å
-ã®ã»ã«å (ãªã¼ã¸ã§ã³åã '_' ã§é£çµãã global_name)
-  #   $next$         â¦ æ¬¡ã®ã»ã«å
-  #                     è¤æ°ã® through ãã¤ãªãã£ã¦ããå ´åãããå¾ãã«æ¥ããã®
-  #   $NEXT$         â¦ æ¬¡ã®ã»ã«å (ãªã¼ã¸ã§ã³åã '_' ã§é£çµãã global_name)
-  #                     è¤æ°ã® through ãã¤ãªãã£ã¦ããå ´åãããå¾ãã«æ¥ããã®
-  #   $start_region$ â¦ $source$ ã®ã»ã«ã®å­å¨ãã region (global_name)
-  #   $end_region$   â¦ $destination$ ã®ã»ã«ã®å­å¨ãã region (global_name)
-  #   $preferred_region$  â¦ é©åãª region (global_name), start_region ã¾ãã¯ end_region
-  #   $count$        â¦ region éã® through ã®é©ç¨æ°
-  #   $$             â¦ $ ã«ç½®æ
+  #=== ThroughPlugin#名前の置換
+  # プラグインオプション引数内の文字列を置換する
+  #   $source$       … 呼び元のセル名
+  #   $destination$  … 呼び先のセル名
+  #   $SOURCE$       … 呼び元のセル名 (リージョン名を '_' で連結した global_name)
+  #   $DESTINATION$  … 呼び先のセル名 (リージョン名を '_' で連結した global_name)
+  #   $next$         … 次のセル名
+  #                     複数の through がつながっている場合、すぐ後ろに来るもの
+  #   $NEXT$         … 次のセル名 (リージョン名を '_' で連結した global_name)
+  #                     複数の through がつながっている場合、すぐ後ろに来るもの
+  #   $start_region$ … $source$ のセルの存在する region (global_name)
+  #   $end_region$   … $destination$ のセルの存在する region (global_name)
+  #   $preferred_region$  … 適切な region (global_name), start_region または end_region
+  #   $count$        … region 間の through の適用数
+  #   $$             … $ に置換
   def subst_name( str )
-    # ã»ã«åã®ç½®æ
+    # セル名の置換
     str = str.gsub( /(^|[^\$])\$source\$/, "\\1#{@caller_cell.get_name}" )
     str = str.gsub( /(^|[^\$])\$destination\$/, "\\1#{@callee_cell.get_name}" )
@@ -352,5 +311,5 @@
     str = str.gsub( /(^|[^\$])\$next\$/, "\\1#{@next_cell.get_name}" )
     str = str.gsub( /(^|[^\$])\$NEXT\$/, "\\1#{@next_cell.get_global_name}" )
-    # region åã®ç½®æ
+    # region 名の置換
     str = str.gsub( /(^|[^\$])\$start_region\$/, "\\1#{@start_region.get_global_name}" )
     str = str.gsub( /(^|[^\$])\$end_region\$/, "\\1#{@end_region.get_global_name}" )
@@ -358,5 +317,5 @@
     str = str.gsub( /(^|[^\$])\$count\$/, "\\1#{@count}" )
 
-    str = str.gsub( /\$\$/, "\$" )                       # $$ ã $ ã«ç½®æ
+    str = str.gsub( /\$\$/, "\$" )                       # $$ を $ に置換
 
     return str
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TracePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TracePlugin.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TracePlugin.rb	(revision 321)
@@ -6,59 +6,42 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: TracePlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
 class TracePlugin < ThroughPlugin
 #@cellEntry_list::[ "Cell.eEntry", "Cell2.eEntry2", ... ]
-#@b_generate::bool  : true : TracePlugin ãçæããå¿
-è¦ããã
-
-  #=== TracePlugin ã® initialize
-  #  èª¬æã¯ ThroughPlugin (plugin.rb) ãåç
-§
+#@b_generate::bool  : true : TracePlugin を生成する必要がある
+
+  #=== TracePlugin の initialize
+  #  説明は ThroughPlugin (plugin.rb) を参照
   def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
 
@@ -86,7 +69,5 @@
 
     if @b_generate == false then
-      # å
-ã
-å¼ã³åºãã»ã«ã«çµåãããã®ã¨ãã
+      # 元々呼び出すセルに結合するものとする
       @entry_port_name = next_cell_port_name
       @cell_name = next_cell.get_name
@@ -94,11 +75,11 @@
   end
 
-  #===  å®£è¨ã³ã¼ãã®çæ
-  #      typedef, signature, celltype ãªã©ï¼cell ä»¥å¤ï¼ã®ã³ã¼ããçæ
-  #          éè¤ãã¦çæãã¦ã¯ãªããªãï¼ãã§ã«çæããã¦ããå ´åã¯åºåããªããã¨ï¼
-  #file::        FILE       çæãããã¡ã¤ã«
+  #===  宣言コードの生成
+  #      typedef, signature, celltype など（cell 以外）のコードを生成
+  #          重複して生成してはならない（すでに生成されている場合は出力しないこと）
+  #file::        FILE       生成するファイル
   def gen_plugin_decl_code( file )
 
-    # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
     if @@generated_celltype[ @ct_name ] == nil then
       @@generated_celltype[ @ct_name ] = [ self ]
@@ -439,5 +420,5 @@
   end
 
-  # ãã©ã°ã¤ã³å¼æ°åã¨ Proc
+  # プラグイン引数名と Proc
   TracePluginArgProc = {
     "maxArrayDisplay"    => Proc.new { |obj,rhs| obj.set_maxArrayDisplay rhs },
@@ -479,5 +460,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° tKernel ã®ãã§ãã¯
+  #=== プラグイン引数 tKernel のチェック
   def set_kernelCelltype( rhs )
     @kernelCelltype = rhs.to_sym
@@ -489,5 +470,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° tSyslog ã®ãã§ãã¯
+  #=== プラグイン引数 tSyslog のチェック
   def set_syslogCelltype( rhs )
     @syslogCelltype = rhs.to_sym
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenHRP2Marshaler.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenHRP2Marshaler.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenHRP2Marshaler.rb	(revision 321)
@@ -6,51 +6,36 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
 #++
 
-#ãã©ã°ã¤ã³ãªãã·ã§ã³ç¨å¤æ°
+#プラグインオプション用変数
 #@task_priority:: Integer
 #@channelCelltype:: String
@@ -59,5 +44,5 @@
 module GenTransparentMarshaler
 
-  # ãã©ã°ã¤ã³å¼æ°åã¨ Proc
+  # プラグイン引数名と Proc
   RPCPluginArgProc = {
     "taskPriority"    => Proc.new { |obj,rhs| obj.set_taskPriority rhs },
@@ -68,10 +53,10 @@
   }
 
-  #=== ãã©ã°ã¤ã³å¼æ° taskPriority ã®ãã§ãã¯
+  #=== プラグイン引数 taskPriority のチェック
   def set_taskPriority( rhs )
     @task_priority = rhs
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° channelCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 channelCelltype のチェック
   def set_channelCelltype( rhs )
     @channelCelltype = rhs.to_sym
@@ -85,5 +70,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° TDRCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 TDRCelltype のチェック
   def set_TDRCelltype( rhs )
     @TDRCelltype = rhs.to_sym
@@ -97,5 +82,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° channelCellName ã®ãã§ãã¯
+  #=== プラグイン引数 channelCellName のチェック
   def set_channelCellName( rhs )
     @channelCellName = rhs
@@ -107,10 +92,10 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° PPAllocatorSize ã®ãã§ãã¯
+  #=== プラグイン引数 PPAllocatorSize のチェック
   def set_PPAllocatorSize( rhs )
     @PPAllocatorSize = rhs
   end
 
-  #=== marshaler ã®ã»ã«ã¿ã¤ãåãè¨­å®ãã
+  #=== marshaler のセルタイプ名を設定する
   def initialize_transparent_marshaler cell_name
     @task_priority = 8
@@ -134,6 +119,5 @@
 
     f = CFile.open( @marshaler_celltype_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     # modified by ishikawa
@@ -163,9 +147,9 @@
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½ã³ã¼ããçæï¼é ­é¨ã¨æ«å°¾ã¯å¥éåºåï¼
-  #ct_name:: Symbol    (through ãã©ã°ã¤ã³ã§çæããã) ã»ã«ã¿ã¤ãå ï¼Symbol ã¨ãã¦éããã¦ããï¼ãããï¼
+  #===  受け口関数の本体コードを生成（頭部と末尾は別途出力）
+  #ct_name:: Symbol    (through プラグインで生成された) セルタイプ名 ．Symbol として送られてくる（らしい）
   def gen_ep_func_body( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
 
-    # unmarshaler ã¯ã©ã¹ã?
+    # unmarshaler クラスか?
     if ct_name == @unmarshaler_celltype_name.to_sym then
       gen_ep_func_body_unmarshal( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
@@ -175,5 +159,5 @@
   end
 
-  #===  marshal ã³ã¼ãã®çæ
+  #===  marshal コードの生成
   def gen_ep_func_body_marshal( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
 
@@ -181,9 +165,8 @@
     b_ret_er = false
 
-    # é¢æ°ã®æ»ãå¤ã®å
-ã®åãå¾ã(typedef ããã¦ããå ´å)
+    # 関数の戻り値の元の型を得る(typedef されている場合)
     type = func_type.get_type.get_original_type
 
-    # æ»ãå¤è¨æ¶ç¨ã®å¤æ°ãåºåï¼void åã®é¢æ°ã§ã¯åºåããªãï¼
+    # 戻り値記憶用の変数を出力（void 型の関数では出力しない）
     if ! type.kind_of?( VoidType ) then
       if func_type.get_type.kind_of?( DefinedType ) && ( func_type.get_type.get_type_str == "ER" || func_type.get_type.get_type_str == "ER_INT" ) then
@@ -200,9 +183,8 @@
     file.print( "    FLGPTN  flgptn;\n" )
 
-    # å¼ã³å
-ã® signature ãåãåºã
+    # 呼び先の signature を取り出す
     signature = @signature
 
-    # é¢æ° ID ï¼æ´æ°å¤ï¼
+    # 関数 ID （整数値）
     func_id = signature.get_id_from_func_name( func_name )
     file.print( "    int16_t  func_id_ = #{func_id};    /* id of #{func_name}: #{func_id} */\n" )
@@ -210,8 +192,8 @@
     file.print( "    uint8_t  msg[256];\n" )
 
-    # ã·ã³ã°ã«ãã³ã§ãªããï¼
+    # シングルトンでないか？
     if ! b_singleton then
 
-      # singleton ã§ãªããã° p_cellcb åå¾ã³ã¼ããåºå
+      # singleton でなければ p_cellcb 取得コードを出力
       file.print <<EOT
     #{ct_name}_CB *p_cellcb;
@@ -221,5 +203,5 @@
 EOT
 
-      # ã¨ã©ã¼ãè¿ããï¼
+      # エラーを返すか？
       if b_ret_er then
         file.print <<EOT
@@ -231,11 +213,11 @@
         file.print <<EOT
     }else{
-        /* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
-    }
-EOT
-      end
-    end
-
-    # channel lock ã³ã¼ã
+        /* エラー処理コードをここに記述 */
+    }
+EOT
+      end
+    end
+
+    # channel lock コード
     file.print <<EOT
     ///* Channel Lock */
@@ -246,12 +228,12 @@
 
 =begin
-    # SOP ãéä¿¡
-    file.print "    /* SOPã®éåº */\n"
+    # SOP を送信
+    file.print "    /* SOPの送出 */\n"
     file.print "    if( ( ercd_ = cTDR_sendSOP( true ) ) != E_OK )\n"
     file.print "      goto error_reset;\n"
 =end
 
-    # func_id ãéä¿¡
-    file.print "    /* é¢æ° id ã®éåº */\n"
+    # func_id を送信
+    file.print "    /* 関数 id の送出 */\n"
 =begin
     file.print "    if( ( ercd_ = cTDR_putInt16( func_id_ ) ) != E_OK )\n"
@@ -263,12 +245,10 @@
     # p "#{ct_name}, #{sig_name}, #{func_name}, #{func_global_name}"
 
-    b_get = false    # marshal ãªã put
+    b_get = false    # marshal なら put
     b_marshal = true  # marshal
 
-    # in æ¹åã®å
-¥åºåãåºå
+    # in 方向の入出力を出力
     @index = 2
-    file.print "    /* å
-¥åå¼æ°éåº */\n"
+    file.print "    /* 入力引数送出 */\n"
     print_params( params, file, 1, b_marshal, b_get, true, func_type.is_oneway? )
     print_params( params, file, 1, b_marshal, b_get, false, func_type.is_oneway? )
@@ -280,5 +260,5 @@
 =end
 
-    file.print "    /* EOPã®éåºï¼ãã±ããã®æãã ãï¼ */\n"
+    file.print "    /* EOPの送出（パケットの掃きだし） */\n"
     if ! func_type.is_oneway? then
       b_continue = "true"
@@ -315,6 +295,5 @@
 
     if( b_void == false )then
-      # å¼ã³å
-ã«æ»ãå¤ããªã¿ã¼ã³
+      # 呼び元に戻り値をリターン
       file.print( "    cMessageBuffer_receive(&retval_);\n" )
       file.print( "    return retval_;\n" )
@@ -332,5 +311,5 @@
 EOT
 
-    # channel lock ã³ã¼ã
+    # channel lock コード
     file.print <<EOT
     ///* Channel Lock */
@@ -341,6 +320,5 @@
 
     if( b_ret_er != false )then
-      # å¼ã³å
-ã«æ»ãå¤ããªã¿ã¼ã³
+      # 呼び元に戻り値をリターン
       file.print( "    return ercd_;\n" )
     else
@@ -350,5 +328,5 @@
   end
 
-  #===  unmarshal ã³ã¼ãã®çæ
+  #===  unmarshal コードの生成
   def gen_ep_func_body_unmarshal( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
 
@@ -356,5 +334,5 @@
     b_ret_er = false
 
-    # func_id ãå¾ãã³ã¼ããçæ
+    # func_id を得るコードを生成
     file.print <<EOT
 
@@ -377,5 +355,5 @@
         file.print <<EOT
     }else{
-        /* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
+        /* エラー処理コードをここに記述 */
     }
 EOT
@@ -387,8 +365,8 @@
 
 #if 0
-    /* SOPã®ãã§ãã¯ */
+    /* SOPのチェック */
     if( (ercd_=cTDR_receiveSOP( false )) != E_OK )
         goto error_reset;
-    /* func_id ã®åå¾ */
+    /* func_id の取得 */
     if( (ercd_=cTDR_getInt16( &func_id_ )) != E_OK )
         goto error_reset;
@@ -405,11 +383,10 @@
 EOT
 
-    # å¼ã³å
-ã® signature ãåãåºã
+    # 呼び先の signature を取り出す
     # port = @celltype.find( @next_cell_port_name )
     # signature = port.get_signature
     signature = @signature
 
-    # through ã® signature ã«å«ã¾ãã ãã¹ã¦ã®é¢æ°ã«ã¤ãã¦
+    # through の signature に含まれる すべての関数について
     signature.get_function_head_array.each { |f|
       f_name = f.get_name
@@ -417,5 +394,5 @@
       id = signature.get_id_from_func_name( f_name )
 
-      # é¢æ°ã¯è¿ãå¤ãæã¤ã?
+      # 関数は返り値を持つか?
       if f_type.get_type.kind_of?( VoidType ) then
         b_void = true
@@ -424,5 +401,5 @@
       end
 
-      # ãã±ããã®çµããããã§ãã¯ï¼æªåãåãã®ãã¼ã¿ãæ®ã£ã¦ããªãããã§ãã¯ï¼
+      # パケットの終わりをチェック（未受け取りのデータが残っていないかチェック）
       file.print "    case #{id}:       /*** #{f_name} ***/ \n"
       file.print "        if( tTransparentUnmarshaler_#{@signature.get_name}_#{f_name}() != E_OK )\n"
@@ -433,5 +410,5 @@
 
     if @PPAllocatorSize then
-      ppallocator_dealloc_str = "    /* PPAllocator ã®ãã¹ã¦ãè§£æ¾ */\n    cPPAllocator_dealloc_all();"
+      ppallocator_dealloc_str = "    /* PPAllocator のすべてを解放 */\n    cPPAllocator_dealloc_all();"
     else
       ppallocator_dealloc_str = ""
@@ -441,6 +418,5 @@
     file.print <<EOT
     default:
-#if 0 // deleted by ishikawa: tSysLogãæªå®è£
-
+#if 0 // deleted by ishikawa: tSysLogが未実装
         syslog(LOG_INFO, "unmarshaler task: ERROR: unknown func_id: %d", func_id_ );
 #endif /* 0 */
@@ -463,10 +439,8 @@
 
   # IN b_marshal, b_get
-  #  b_marshal = true  && b_get == false   :  ãã¼ã·ã£ã©ã§å
-¥åå¼æ°éåº
-  #  b_marshal = true  && b_get == true    :  ãã¼ã·ã£ã©ã§åºåå¼æ°åå
-  #  b_marshal = false && b_get == true    :  ã¢ã³ãã¼ã·ã£ã©ã§å
-¥åå¼æ°åå
-  #  b_marshal = false && b_get == get     :  ã¢ã³ãã¼ã·ã£ã©ã§åºåå¼æ°éåº
+  #  b_marshal = true  && b_get == false   :  マーシャラで入力引数送出
+  #  b_marshal = true  && b_get == true    :  マーシャラで出力引数受取
+  #  b_marshal = false && b_get == true    :  アンマーシャラで入力引数受取
+  #  b_marshal = false && b_get == get     :  アンマーシャラで出力引数送出
   def print_params( params, file, nest, b_marshal, b_get, b_referenced, b_oneway = false )
     params.each{ |param|
@@ -479,5 +453,5 @@
       type = param.get_type
       if b_oneway && dir == :IN && type.get_original_type.kind_of?( PtrType ) || type.get_original_type.kind_of?( ArrayType ) then
-        # oneway, in, PtrType ã®å ´åã³ãã¼
+        # oneway, in, PtrType の場合コピー
         alloc_cp = "cPPAllocator_alloc"
         alloc_cp_extra = nil
@@ -501,5 +475,5 @@
   end
 
-  #=== ã³ãã¼ããªãå¼æ°æ¸¡ãã³ã¼ãã®åºå
+  #=== コピーしない引数渡しコードの出力
   def print_param_nc( name, type, file, nest, b_marshal, outer, outer2, b_get )
     indent = "    " * ( nest + 1 )
@@ -521,5 +495,5 @@
         when :SIGNED
           if bit_size == -1 || bit_size == -11 then
-            # signed char ã®å ´åãsigned ãæå®ãã
+            # signed char の場合、signed を指定する
             signC = "S"
             sign  = "s"
@@ -640,6 +614,6 @@
 
 
-  #=== PREAMBLE é¨ã®ã³ã¼ãçæ
-  # ã¢ã³ãã¼ã·ã£ã©ã»ã«ã¿ã¤ãã®å ´åãã¢ã³ãã¼ã·ã£ã©é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨ãçæ
+  #=== PREAMBLE 部のコード生成
+  # アンマーシャラセルタイプの場合、アンマーシャラ関数のプロトタイプ宣言を生成
   def gen_preamble file, b_singleton, ct_name, global_name
     if ct_name != @unmarshaler_celltype_name.to_sym then
@@ -647,6 +621,6 @@
     end
 
-    file.print "/* ã¢ã³ãã¼ã·ã£ã©é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨ */\n"
-    # signature ã«å«ã¾ãã ãã¹ã¦ã®é¢æ°ã«ã¤ãã¦
+    file.print "/* アンマーシャラ関数のプロトタイプ宣言 */\n"
+    # signature に含まれる すべての関数について
     @signature.get_function_head_array.each { |f|
       f_name = f.get_name
@@ -660,6 +634,6 @@
   end
 
-  #=== POSTAMBLE é¨ã®ã³ã¼ãçæ
-  # ã¢ã³ãã¼ã·ã£ã©ã»ã«ã¿ã¤ãã®å ´åãã¢ã³ãã¼ã·ã£ã©é¢æ°ã®çæ
+  #=== POSTAMBLE 部のコード生成
+  # アンマーシャラセルタイプの場合、アンマーシャラ関数の生成
   def gen_postamble file, b_singleton, ct_name, global_name
     if ct_name != @unmarshaler_celltype_name.to_sym then
@@ -667,5 +641,5 @@
     end
 
-    file.print "\n/*** ã¢ã³ãã¼ã·ã£ã©é¢æ° ***/\n\n"
+    file.print "\n/*** アンマーシャラ関数 ***/\n\n"
     @signature.get_function_head_array.each { |f|
       f_name = f.get_name
@@ -673,5 +647,5 @@
       id = @signature.get_id_from_func_name( f_name )
 
-      # é¢æ°ã¯è¿ãå¤ãæã¤ã?
+      # 関数は返り値を持つか?
       if f_type.get_type.kind_of?( VoidType ) then
         b_void = true
@@ -691,5 +665,5 @@
       file.print "	ER  ercd_;\n"
 
-      # å¼æ°ãååãå¤æ°ã®å®ç¾©
+      # 引数を受取る変数の定義
       param_list = f.get_declarator.get_type.get_paramlist.get_items
            # FuncHead->  Decl->    FuncType->ParamList
@@ -706,13 +680,13 @@
         end
 
-        type_str = type.get_type_str.gsub( /\bconst\b */, "" ) # "const" ãå¤ã
+        type_str = type.get_type_str.gsub( /\bconst\b */, "" ) # "const" を外す
 
         file.printf( "    %-12s %s%s%s%s;\n", type_str, aster, name, aster2, type.get_type_str_post )
       }
 
-      # æ»ãå¤ãåãåãå¤æ°ã®å®ç¾©
+      # 戻り値を受け取る変数の定義
       if ! b_void then
         if f.is_oneway? then
-          retval_ptr = ""   # oneway ã®å ´åãåãåããæ¨ã¦ããã
+          retval_ptr = ""   # oneway の場合、受け取るが捨てられる
         else
           # =begin ishikawa modified
@@ -724,10 +698,7 @@
       end
 
-      # in æ¹åã®å
-¥åºåãå
-¥å
-      file.print "\n        /* å
-¥åå¼æ°åå */\n"
-      b_get = true    # unmarshal ã§ã¯ get
+      # in 方向の入出力を入力
+      file.print "\n        /* 入力引数受取 */\n"
+      b_get = true    # unmarshal では get
       b_marshal  = false
       @index = 2
@@ -740,7 +711,7 @@
       end
 =end
-      # ãã±ããã®åä¿¡å®äº
-      # mikan æ¬å½ã¯ãå¯¾è±¡é¢æ°ãå¼åºãå¾ã«å®æ½ãããï¼å¼åºããã±ããã®ä½¿ç¨çµãããå®£è¨ããç®çã¨ãã¦
-      file.print "        /* ãã±ããçµããããã§ãã¯ */\n"
+      # パケットの受信完了
+      # mikan 本当は、対象関数を呼出す後に実施したい．呼出しパケットの使用終わりを宣言する目的として
+      file.print "        /* パケット終わりをチェック */\n"
       if ! f.is_oneway? then
         b_continue = "true"
@@ -752,6 +723,6 @@
       file.print "        goto error_reset;\n\n"
 =end
-      # å¯¾è±¡é¢æ°ãå¼åºã
-      file.print "    /* å¯¾è±¡é¢æ°ã®å¼åºã */\n"
+      # 対象関数を呼出す
+      file.print "    /* 対象関数の呼出し */\n"
       if b_void then
         file.print( "    cServerCall_#{f_name}(" )
@@ -768,5 +739,5 @@
       file.print( " );\n" )
 
-      # æ»ãå¤ãåºåå¼æ°ã®ååã³ã¼ãã®çæ
+      # 戻り値、出力引数の受取コードの生成
 
       if ! b_void && ! f.is_oneway? then
@@ -775,9 +746,8 @@
 
       end
-      # oneway ã®å ´ååºåãæ»ãå¤ãç¡ããååãå¾
-ããªãï¼éåæãªå¼åºãï¼
+      # oneway の場合出力、戻り値が無く、受取を待たない（非同期な呼出し）
       if ! f.is_oneway? then
         file.print <<EOT
-    /* é¢æ°å¦çã®çµäºãéç¥ */
+    /* 関数処理の終了を通知 */
     if( ( ercd_ = cEventflag_set( 0x01 ) ) != E_OK ){
       goto error_reset;
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenOpaqueMarshaler.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenOpaqueMarshaler.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenOpaqueMarshaler.rb	(revision 321)
@@ -6,57 +6,41 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: GenOpaqueMarshaler.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
 #== GenOpaqueMarshaler
-# OpaqueRPCPlugin, sharedOpaqueRPCPlugin å
-±éã®è¦ç´ ãéããã¢ã¸ã¥ã¼ã«
+# OpaqueRPCPlugin, sharedOpaqueRPCPlugin 共通の要素を集めたモジュール
 module GenOpaqueMarshaler
 
-  # ãã©ã°ã¤ã³å¼æ°åã¨ Proc
+  # プラグイン引数名と Proc
   RPCPluginArgProc = {
     "clientChannelCelltype" => Proc.new { |obj,rhs| obj.set_clientChannelCelltype rhs },
@@ -79,12 +63,12 @@
   }
 
-  ##### ãã©ã°ã¤ã³å¼æ°ãã§ãã¯é¢æ°
-
-  #=== ãã©ã°ã¤ã³å¼æ° taskPriority ã®ãã§ãã¯
+  ##### プラグイン引数チェック関数
+
+  #=== プラグイン引数 taskPriority のチェック
   def set_taskPriority( rhs )
     @taskPriority = rhs
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° serverChannelCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 serverChannelCelltype のチェック
   def set_serverChannelCelltype( rhs )
     @serverChannelCelltype = rhs.to_sym
@@ -98,5 +82,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° clientChannelCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 clientChannelCelltype のチェック
   def set_clientChannelCelltype( rhs )
     @clientChannelCelltype = rhs.to_sym
@@ -110,8 +94,8 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° serverChannelCell ã®ãã§ãã¯
+  #=== プラグイン引数 serverChannelCell のチェック
   def set_serverChannelCell( rhs )
     @serverChannelCell = rhs.to_sym
-    # ChannelCell ã¯ãã©ã°ã¤ã³ã§çæããããããããã§ã¯ãã§ãã¯ã§ããªã
+    # ChannelCell はプラグインで生成されるため、ここではチェックできない
     # path = [ "::", @serverChannelCell ]
     # obj = Namespace.find( path )
@@ -121,8 +105,8 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° clientChannelCell ã®ãã§ãã¯
+  #=== プラグイン引数 clientChannelCell のチェック
   def set_clientChannelCell( rhs )
     @clientChannelCell = rhs.to_sym
-    # ChannelCell ã¯ãã©ã°ã¤ã³ã§çæããããããããã§ã¯ãã§ãã¯ã§ããªã
+    # ChannelCell はプラグインで生成されるため、ここではチェックできない
     # path = [ "::", @clientChannelCell ]
     # obj = Namespace.find( path )
@@ -132,15 +116,15 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° serverChannelInitializer ã®ãã§ãã¯
+  #=== プラグイン引数 serverChannelInitializer のチェック
   def set_serverChannelInitializer( rhs )
     @serverChannelInitializer = rhs.to_sym
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° clientChannelInitializer ã®ãã§ãã¯
+  #=== プラグイン引数 clientChannelInitializer のチェック
   def set_clientChannelInitializer( rhs )
     @clientChannelInitializer = rhs.to_sym
   end
 
-  #=== ã¿ã¹ã¯ã¿ã¤ã taskCellype ã®ãã§ãã¯
+  #=== タスクタイプ taskCellype のチェック
   def set_taskCelltype( rhs )
     @taskCelltype = rhs.to_sym
@@ -154,15 +138,15 @@
   end
 
-  #=== ã¿ã¹ã¯ã¿ã¤ã stack\size ã®ãã§ãã¯
+  #=== タスクタイプ stack\size のチェック
   def set_stackSize( rhs )
     @stackSize = rhs
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° PPAllocatorSize ã®ãã§ãã¯
+  #=== プラグイン引数 PPAllocatorSize のチェック
   def set_PPAllocatorSize( rhs )
     @PPAllocatorSize = rhs
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° TDRCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 TDRCelltype のチェック
   def set_TDRCelltype( rhs )
     @TDRCelltype = rhs.to_sym
@@ -176,13 +160,11 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° substituteAllocator ã®ãã§ãã¯
-  # ãªãã·ã§ã³å¼æ°ããä»¥ä¸ã®å½¢å¼ã§ãããã¨ããã§ãã¯
+  #=== プラグイン引数 substituteAllocator のチェック
+  # オプション引数が、以下の形式であることをチェック
   #     substituteAllocator(Alloc.eAlloc=>Subst.eAlloc,Alloc2.eAlloc=>Subst2.eAlloc)
   def set_substituteAllocator( rhs )
-    #str::String : ç ´å£ãããï¼ãããããæ®ãã«ãªãï¼ãstr.empty? ã§ç©ºã«ãªã£ããã¨ããã§ãã¯ã§ãã
-    #regexp::Regexp : æå¾
-ãããã¼ã¯ã³ã«ãããããæ­£è¦è¡¨ç¾ã "\A" åºå§ãã
-    #expected::String: æå¾
-ãããã¼ã¯ã³ãregexp ãåºç¾ããªãã£ãå ´åã«ã¨ã©ã¼ã¡ãã»ã¼ã¸ã¨ãã¦è¡¨ç¤º
+    #str::String : 破壊される（マッチした残りになる）。str.empty? で空になったことをチェックできる
+    #regexp::Regexp : 期待するトークンにマッチする正規表現。 "\A" 出始める
+    #expected::String: 期待するトークン、regexp が出現しなかった場合にエラーメッセージとして表示
     def optparse (str,regexp,expected)
       str.strip!
@@ -198,5 +180,5 @@
     ident_rexpr = /\A(\w[\w\d]*)/
 
-    # "Alloc.eAlloc=>CAlloc.eAlloc" ã®å½¢å¼ã«ãªã£ã¦ãããã¨ããã§ãã¯
+    # "Alloc.eAlloc=>CAlloc.eAlloc" の形式になっていることをチェック
     while true
       lhs_alloc_cell = optparse( opt, ident_rexpr, "allocator cell name" )
@@ -221,6 +203,5 @@
       break if ! rhs_alloc_ent
 
-#  ããã§ã¯ãå³è¾ºã®ãã§ãã¯ã¯ã§ããªããå³è¾ºã®ã»ã«ã¯åæ¹åç
-§ã¨ãªã
+#  ここでは、右辺のチェックはできない。右辺のセルは前方参照となる
 #      path = [ "::", rhs_alloc_cell.to_sym ]   # mikan namespace
 #      obj = Namespace.find( path )
@@ -229,5 +210,5 @@
 #      else
 #        ct = obj.get_celltype
-#        if ct #  nil ãªãæ¢ã«ã¨ã©ã¼
+#        if ct #  nil なら既にエラー
 #          ent = ct.find rhs_alloc_ent
 #          if ! ent.instance_of? Port || ent.get_port_type != :ENTRY || ent.get_signature == nil || ! ent.get_signature.is_allocator?
@@ -250,5 +231,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° noServerChannelOpenerCode ã®ãã§ãã¯
+  #=== プラグイン引数 noServerChannelOpenerCode のチェック
   def set_noServerChannelOpenerCode( rhs )
     rhs = rhs.to_sym
@@ -262,5 +243,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° clientSemaphoreCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 clientSemaphoreCelltype のチェック
   def set_clientSemaphoreCelltype rhs
     @semaphoreCelltype = rhs.to_sym
@@ -272,15 +253,15 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° clientSemaphoreInitializer ã®ãã§ãã¯
+  #=== プラグイン引数 clientSemaphoreInitializer のチェック
   def set_clientSemaphoreInitializer rhs
     @semaphoreInitializer = rhs.to_sym
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° clientErrorHandler ã®ãã§ãã¯
+  #=== プラグイン引数 clientErrorHandler のチェック
   def set_clientErrorHandler rhs
     @clientErrorHandler = rhs.to_sym
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° serverErrorHandler ã®ãã§ãã¯
+  #=== プラグイン引数 serverErrorHandler のチェック
   def set_serverErrorHandler rhs
     @serverErrorHandler = rhs.to_sym
@@ -288,6 +269,6 @@
 
 
-  #===  ã»ã«ã®ååãå¾ã
-  # ThroughPlugin::get_cell_name plugin.rb ããªã¼ãã¼ã©ã¤ã
+  #===  セルの名前を得る
+  # ThroughPlugin::get_cell_name plugin.rb をオーバーライド
   def get_cell_name
     @cell_name
@@ -295,8 +276,8 @@
   end
 
-  #=== marshaler ã®ã»ã«ã¿ã¤ãåãè¨­å®ãã
+  #=== marshaler のセルタイプ名を設定する
   def initialize_opaque_marshaler
 
-    # ãªãã·ã§ã³è¨­å®ãããå¤æ°ã®ããã©ã«ããè¨­å®
+    # オプション設定される変数のデフォルトを設定
     @taskPriority = 11
     @stackSize  = 4096
@@ -309,5 +290,5 @@
     @taskCelltype = :"tTask"
     @PPAllocatorSize = nil
-    # @TDRCelltype  = :"tTDR"   # "tNBOTDR" ã«å¤æ´ã®äºå®
+    # @TDRCelltype  = :"tTDR"   # "tNBOTDR" に変更の予定
     @TDRCelltype  = :"tNBOTDR"
     @substituteAllocator = {}
@@ -324,5 +305,5 @@
     @marshaler_celltype_file_name = "#{$gen}/#{@marshaler_celltype_name}.cdl"
 
-    # signature ã§å¯¾å¿ã§ããªããã®ããã§ãã¯
+    # signature で対応できないものをチェック
     @signature.each_param{ |func_decl, param_decl|
       if param_decl.get_direction == :OUT then
@@ -337,8 +318,8 @@
   end
 
-  #=== GenOpaqueMarshaler# Opener Code ã®çææã®ãã§ãã¯
+  #=== GenOpaqueMarshaler# Opener Code の生成時のチェック
   def check_opener_code
-    # ãµã¼ãã¼ãã£ã³ãã«ã»ã«ã¿ã¤ãã entry sServerChannelOpener eOpener ãæã¤ãã©ããããã§ãã¯
-    # mikan entry ã (call ã§ãªãã) ããã§ãã¯ãã¦ããªã
+    # サーバーチャンネルセルタイプが entry sServerChannelOpener eOpener を持つかどうかをチェック
+    # mikan entry か (call でないか) をチェックしていない
     # scct = Namespace.find ["::", @serverChannelCelltype] # mikan namespace
     nsp = NamespacePath.analyze( @serverChannelCelltype.to_s )
@@ -360,6 +341,5 @@
   end
 
-  #=== GenOpaqueMarshaler# PPAllocator ã®å¿
-è¦æ§ããã§ãã¯ãã
+  #=== GenOpaqueMarshaler# PPAllocator の必要性をチェックする
   def check_PPAllocator
     if @signature.need_PPAllocator?(true) then
@@ -374,6 +354,5 @@
   def gen_marshaler_celltype
     f = CFile.open( @marshaler_celltype_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     if @PPAllocatorSize then
@@ -404,9 +383,9 @@
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½ã³ã¼ããçæï¼é ­é¨ã¨æ«å°¾ã¯å¥éåºåï¼
-  #ct_name:: Symbol    (through ãã©ã°ã¤ã³ã§çæããã) ã»ã«ã¿ã¤ãå ï¼Symbol ã¨ãã¦éããã¦ããï¼ãããï¼
+  #===  受け口関数の本体コードを生成（頭部と末尾は別途出力）
+  #ct_name:: Symbol    (through プラグインで生成された) セルタイプ名 ．Symbol として送られてくる（らしい）
   def gen_ep_func_body( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
 
-    # unmarshaler ã¯ã©ã¹ã?
+    # unmarshaler クラスか?
     if ct_name == @unmarshaler_celltype_name.to_sym then
       gen_ep_func_body_unmarshal( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
@@ -416,5 +395,5 @@
   end
 
-  #===  marshal ã³ã¼ãã®çæ
+  #===  marshal コードの生成
   def gen_ep_func_body_marshal( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
 
@@ -422,9 +401,8 @@
     b_ret_er = false
 
-    # é¢æ°ã®æ»ãå¤ã®å
-ã®åãå¾ã(typedef ããã¦ããå ´å)
+    # 関数の戻り値の元の型を得る(typedef されている場合)
     type = func_type.get_type.get_original_type
 
-    # æ»ãå¤è¨æ¶ç¨ã®å¤æ°ãåºåï¼void åã®é¢æ°ã§ã¯åºåããªãï¼
+    # 戻り値記憶用の変数を出力（void 型の関数では出力しない）
     if ! type.is_void? then
       file.print( "\t#{func_type.get_type.get_type_str}\t\tretval_;\n" )
@@ -439,13 +417,13 @@
     file.print( "\tint16_t\tstate_;\n" )
 
-    # é¢æ° ID ï¼æ´æ°å¤ï¼
+    # 関数 ID （整数値）
     func_id = "FUNCID_#{@signature.get_global_name}_#{func_name}".upcase
     fid = @signature.get_id_from_func_name( func_name )
     file.print( "\tint16_t\tfunc_id_ = #{func_id};	/* (id of '#{func_name}') = #{fid}*/\n" )
 
-    # ã·ã³ã°ã«ãã³ã§ãªããï¼
+    # シングルトンでないか？
     if ! b_singleton then
 
-      # singleton ã§ãªããã° p_cellcb åå¾ã³ã¼ããåºå
+      # singleton でなければ p_cellcb 取得コードを出力
       file.print <<EOT
 	#{ct_name}_CB *p_cellcb;
@@ -455,5 +433,5 @@
 EOT
 
-      # ã¨ã©ã¼ãè¿ããï¼
+      # エラーを返すか？
       if b_ret_er then
         file.print <<EOT
@@ -465,5 +443,5 @@
         file.print <<EOT
 	}else{
-		/* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
+		/* エラー処理コードをここに記述 */
 	}
 
@@ -481,5 +459,5 @@
     end
 
-    # channel lock ã³ã¼ã
+    # channel lock コード
     file.print <<EOT
 
@@ -490,12 +468,12 @@
 EOT
 
-    # SOP ãéä¿¡
-    file.print "	/* SOPã®éåº */\n"
+    # SOP を送信
+    file.print "	/* SOPの送出 */\n"
     file.print "	SET_RPC_STATE( state_, RPCSTATE_CLIENT_SEND_SOP );\n"
     file.print "	if( ( ercd_ = cTDR_sendSOP( true ) ) != E_OK )\n"
     file.print "		goto error_reset;\n"
 
-    # func_id ãéä¿¡
-    file.print "	/* é¢æ° id ã®éåº */\n"
+    # func_id を送信
+    file.print "	/* 関数 id の送出 */\n"
     file.print "	if( ( ercd_ = cTDR_putInt16( func_id_ ) ) != E_OK )\n"
     file.print "		goto error_reset;\n"
@@ -504,12 +482,10 @@
     # p "#{ct_name}, #{sig_name}, #{func_name}, #{func_global_name}"
 
-    b_get = false    # marshal ãªã put
+    b_get = false    # marshal なら put
     b_marshal = true  # marshal
 
-    # in æ¹åã®å
-¥åºåãåºå
+    # in 方向の入出力を出力
     if func_type.has_inward? then
-      file.print "	/* å
-¥åå¼æ°éåº */\n"
+      file.print "	/* 入力引数送出 */\n"
       file.print "	SET_RPC_STATE( state_, RPCSTATE_CLIENT_SEND_BODY );\n"
       print_params( params, file, 1, b_marshal, b_get, true, "eClientEntry", func_name )
@@ -523,10 +499,10 @@
       b_continue = "false"
     end
-    file.print "	/* EOPã®éåºï¼ãã±ããã®æãã ãï¼ */\n"
+    file.print "	/* EOPの送出（パケットの掃きだし） */\n"
     file.print "	SET_RPC_STATE( state_, RPCSTATE_CLIENT_SEND_EOP );\n"
     file.print "	if( (ercd_=cTDR_sendEOP(#{b_continue})) != E_OK )\n"
     file.print "		goto error_reset;\n\n"
 
-    # send ã®ã¡ã¢ãªããã¢ã­ã±ã¼ã
+    # send のメモリをデアロケート
     if func_type.has_send? then
       file.print "	/* dealloc send parameter while executing */\n"
@@ -539,11 +515,11 @@
     if ! func_type.is_oneway? then
 
-      file.print "	/* ãã±ããã®å§ã¾ãããã§ãã¯ */\n"
+      file.print "	/* パケットの始まりをチェック */\n"
       file.print "	SET_RPC_STATE( state_, RPCSTATE_CLIENT_RECV_SOP );\n"
       file.print "	if( (ercd_=cTDR_receiveSOP( true )) != E_OK )\n"
       file.print "		goto error_reset;\n"
 
-      b_get = true     # marshaler ã¯ get
-      file.print "	/* æ»ãå¤ã®åãåã */\n"
+      b_get = true     # marshaler は get
+      file.print "	/* 戻り値の受け取り */\n"
       print_param( "retval_", func_type.get_type, file, 1, :RETURN, nil, nil, b_marshal, b_get )
 
@@ -557,5 +533,5 @@
         indent = "	" * indent_level
 
-        file.print "#{indent}/* åºåå¤ã®åãåã */\n"
+        file.print "#{indent}/* 出力値の受け取り */\n"
         file.print "#{indent}SET_RPC_STATE( state_, RPCSTATE_CLIENT_RECV_BODY );\n"
         print_params( params, file, indent_level, b_marshal, b_get, true, "eClientEntry", func_name )
@@ -567,5 +543,5 @@
       end
 
-      file.print "\n	/* ãã±ããã®çµããããã§ãã¯ */\n"
+      file.print "\n	/* パケットの終わりをチェック */\n"
       file.print "	SET_RPC_STATE( state_, RPCSTATE_CLIENT_RECV_EOP );\n"
       file.print "	if( (ercd_=cTDR_receiveEOP(false)) != E_OK )\n"  # b_continue = false
@@ -574,5 +550,5 @@
     end # ! func_type.is_oneway?
 
-    # channel lock ã³ã¼ã
+    # channel lock コード
     file.print <<EOT
 	/* Channel Unlock */
@@ -583,6 +559,5 @@
 
     if( b_void == false )then
-      # å¼ã³å
-ã«æ»ãå¤ããªã¿ã¼ã³
+      # 呼び元に戻り値をリターン
       file.print( "	return retval_;\n" )
     else
@@ -594,5 +569,5 @@
 error_reset:
 EOT
-    # send ã®ã¡ã¢ãªããã¢ã­ã±ã¼ã
+    # send のメモリをデアロケート
     if func_type.has_send? then
       file.print "	/* dealloc send parameter */\n"
@@ -603,5 +578,5 @@
     end
 
-    # receive ã®ã¡ã¢ãªããã¢ã­ã±ã¼ã
+    # receive のメモリをデアロケート
     if func_type.has_receive? then
       file.print( "	/* receive parameter */\n" )
@@ -615,5 +590,5 @@
 EOT
 
-    # channel lock ã³ã¼ã
+    # channel lock コード
     file.print <<EOT
 	/* Channel Unlock */
@@ -626,6 +601,5 @@
 
     if( b_ret_er != false )then
-      # å¼ã³å
-ã«æ»ãå¤ããªã¿ã¼ã³
+      # 呼び元に戻り値をリターン
       file.print( "	return ERCD( E_RPC, MERCD( ercd_ ) );\n" )
     else
@@ -635,10 +609,10 @@
   end
 
-  #===  unmarshal ã³ã¼ãã®çæ
+  #===  unmarshal コードの生成
   def gen_ep_func_body_unmarshal( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
 
     b_ret_er = true
 
-    # func_id ãå¾ãã³ã¼ããçæ
+    # func_id を得るコードを生成
     file.print <<EOT
 
@@ -662,5 +636,5 @@
         file.print <<EOT
 	}else{
-		/* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
+		/* エラー処理コードをここに記述 */
 	}
 EOT
@@ -673,9 +647,9 @@
 #endif
 
-	/* SOPã®ãã§ãã¯ */
+	/* SOPのチェック */
 	SET_RPC_STATE( state_, RPCSTATE_SERVER_RECV_SOP );
 	if( (ercd_=cTDR_receiveSOP( false )) != E_OK )
 		goto error_reset;
-	/* func_id ã®åå¾ */
+	/* func_id の取得 */
 	if( (ercd_=cTDR_getInt16( &func_id_ )) != E_OK )
 		goto error_reset;
@@ -687,5 +661,5 @@
 EOT
 
-    # signature ã«å«ã¾ãã ãã¹ã¦ã®é¢æ°ã«ã¤ãã¦
+    # signature に含まれる すべての関数について
     @signature.get_function_head_array.each { |f|
       f_name = f.get_name
@@ -701,5 +675,5 @@
 
     if @PPAllocatorSize then
-      ppallocator_dealloc_str = "	/* PPAllocator ã®ãã¹ã¦ãè§£æ¾ */\n	cPPAllocator_dealloc_all();"
+      ppallocator_dealloc_str = "	/* PPAllocator のすべてを解放 */\n	cPPAllocator_dealloc_all();"
     else
       ppallocator_dealloc_str = ""
@@ -724,6 +698,6 @@
   end
 
-  #=== PREAMBLE é¨ã®ã³ã¼ãçæ
-  # ã¢ã³ãã¼ã·ã£ã©ã»ã«ã¿ã¤ãã®å ´åãã¢ã³ãã¼ã·ã£ã©é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨ãçæ
+  #=== PREAMBLE 部のコード生成
+  # アンマーシャラセルタイプの場合、アンマーシャラ関数のプロトタイプ宣言を生成
   def gen_preamble file, b_singleton, ct_name, global_name
     if ct_name != @unmarshaler_celltype_name.to_sym then
@@ -731,10 +705,10 @@
     end
 
-    # string.h ã® include (memset, strlen ã®ãã)
+    # string.h の include (memset, strlen のため)
     file.print "/* header file (strlen, memset) */\n"
     file.print "#include\t<string.h>\n\n"
 
-    file.print "/* ã¢ã³ãã¼ã·ã£ã©é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨ */\n"
-    # signature ã«å«ã¾ãã ãã¹ã¦ã®é¢æ°ã«ã¤ãã¦
+    file.print "/* アンマーシャラ関数のプロトタイプ宣言 */\n"
+    # signature に含まれる すべての関数について
     @signature.get_function_head_array.each { |f|
       f_name = f.get_name
@@ -746,7 +720,6 @@
   end
 
-  #=== POSTAMBLE é¨ã®ã³ã¼ãçæ
-  # ã¢ã³ãã¼ã·ã£ã©ã»ã«ã¿ã¤ãã®å ´åãåã
-ã®ã¢ã³ãã¼ã·ã£ã©é¢æ°ã®çæ
+  #=== POSTAMBLE 部のコード生成
+  # アンマーシャラセルタイプの場合、個々のアンマーシャラ関数の生成
   def gen_postamble file, b_singleton, ct_name, global_name
     if ct_name != @unmarshaler_celltype_name.to_sym then
@@ -754,5 +727,5 @@
     end
 
-    file.print "\n/*** ã¢ã³ãã¼ã·ã£ã©é¢æ° ***/\n\n"
+    file.print "\n/*** アンマーシャラ関数 ***/\n\n"
     @signature.get_function_head_array.each { |f|
       f_name = f.get_name
@@ -760,5 +733,5 @@
       id = @signature.get_id_from_func_name( f_name )
 
-      # é¢æ°ã¯è¿ãå¤ãæã¤ã?
+      # 関数は返り値を持つか?
       b_ret_er = false
       init_retval = ""
@@ -784,5 +757,5 @@
       file.print "	ER      ercd_;\n"
 
-      # å¼æ°ãååãå¤æ°ã®å®ç¾©
+      # 引数を受取る変数の定義
       params = f.get_declarator.get_type.get_paramlist.get_items
            # FuncHead->  Decl->    FuncType->ParamList
@@ -793,5 +766,5 @@
         dir = par.get_direction
         if( dir == :RECEIVE )then
-          # type ã¯ PtrType ã§ããããåãé¤ããå
+          # type は PtrType で、それを取り除いた型
           type = type.get_type
         end
@@ -811,5 +784,5 @@
         end
 
-        type_str = type.get_type_str.gsub( /\bconst\b */, "" ) # "const" ãå¤ã
+        type_str = type.get_type_str.gsub( /\bconst\b */, "" ) # "const" を外す
         file.printf( "	%-12s %s%s%s%s%s;\n", type_str, aster, name, aster2, type.get_type_str_post, init )
 
@@ -823,11 +796,8 @@
       end
 
-      # in æ¹åã®å
-¥åºåãå
-¥å
-      file.print "\n	/* å
-¥åå¼æ°åå */\n"
+      # in 方向の入出力を入力
+      file.print "\n	/* 入力引数受取 */\n"
       file.print "	SET_RPC_STATE( *state_, RPCSTATE_SERVER_RECV_BODY );\n"
-      b_get = true    # unmarshal ã§ã¯ get
+      b_get = true    # unmarshal では get
       b_marshal  = false
       print_params( params, file, 1, b_marshal, b_get, true, "cServerCall", f_name )
@@ -836,6 +806,6 @@
 
 
-      # ãã±ããã®åä¿¡å®äº
-      file.print "	/* ãã±ããçµããããã§ãã¯ */\n"
+      # パケットの受信完了
+      file.print "	/* パケット終わりをチェック */\n"
       file.print "	SET_RPC_STATE( *state_, RPCSTATE_SERVER_RECV_EOP );\n"
       if ! f_type.is_oneway? then
@@ -847,10 +817,10 @@
       file.print "		goto error_reset;\n\n"
 
-      # out ã®ã¡ã¢ãªãã¢ã­ã±ã¼ã
+      # out のメモリをアロケート
       dir = :OUT; alloc_cp = "cPPAllocator_alloc"; alloc_cp_extra = nil; nest = 1
       alloc_for_out_params( params, file, nest, dir, alloc_cp, alloc_cp_extra )
 
-      # å¯¾è±¡é¢æ°ãå¼åºã
-      file.print "	/* å¯¾è±¡é¢æ°ã®å¼åºã */\n"
+      # 対象関数を呼出す
+      file.print "	/* 対象関数の呼出し */\n"
       file.print "	SET_RPC_STATE( *state_, RPCSTATE_SERVER_EXEC );\n"
       if b_void then
@@ -871,11 +841,10 @@
       file.print( " );\n" )
 
-      # æ»ãå¤ãåºåå¼æ°ã®ååã³ã¼ãã®çæ
-
-      # oneway ã®å ´ååºåãæ»ãå¤ãç¡ããååãå¾
-ããªãï¼éåæãªå¼åºãï¼
+      # 戻り値、出力引数の受取コードの生成
+
+      # oneway の場合出力、戻り値が無く、受取を待たない（非同期な呼出し）
       if ! f.is_oneway? then
 
-        file.print "\n	/* SOPã®éåº */\n"
+        file.print "\n	/* SOPの送出 */\n"
         file.print "	SET_RPC_STATE( *state_, RPCSTATE_SERVER_SEND_SOP );\n"
 
@@ -883,7 +852,7 @@
         file.print "		goto error_reset;\n"
 
-        b_get = false     # unmarshaler ã¯ put
+        b_get = false     # unmarshaler は put
         if( ! b_void )then
-          file.print "	/* æ»ãå¤ã®éåº */\n"
+          file.print "	/* 戻り値の送出 */\n"
           print_param( "retval_", f_type.get_type, file, 1, :RETURN, nil, nil, b_marshal, b_get )
         end
@@ -898,10 +867,10 @@
           indent = "	" * indent_level
 
-          file.print "#{indent}/* åºåå¤ã®éåº */\n"
+          file.print "#{indent}/* 出力値の送出 */\n"
           file.print "#{indent}SET_RPC_STATE( *state_, RPCSTATE_SERVER_SEND_BODY );\n"
           print_params( params, file, indent_level, b_marshal, b_get, true, "cServerCall", f_name )
           print_params( params, file, indent_level, b_marshal, b_get, false, "cServerCall", f_name )
 
-          # receive ã®ã¡ã¢ãªããã¢ã­ã±ã¼ã
+          # receive のメモリをデアロケート
           if f_type.has_receive? then
             file.print "#{indent}/* dealloc receive parameter */\n"
@@ -915,5 +884,5 @@
         end
 
-        file.print "	/* ãã±ããã®çµããï¼æãã ãï¼ */\n"
+        file.print "	/* パケットの終わり（掃きだし） */\n"
         file.print "	SET_RPC_STATE( *state_, RPCSTATE_SERVER_SEND_EOP );\n"
         file.print "	if( (ercd_=cTDR_sendEOP(false)) != E_OK )\n"  # b_continue = false
@@ -926,5 +895,5 @@
 error_reset:
 EOT
-      # send ã®ãªã»ããç¨ãã¢ã­ã±ã¼ã
+      # send のリセット用デアロケート
       if f_type.has_send? then
         file.print "	/* dealloc send parameter */\n"
@@ -935,5 +904,5 @@
       end
 
-      # receive ã®ã¡ã¢ãªããã¢ã­ã±ã¼ã
+      # receive のメモリをデアロケート
       if f_type.has_receive? && b_ret_er then
         file.print "	/* dealloc receive parameter */\n"
@@ -947,7 +916,5 @@
       file.print "}\n\n"
 
-      # ããï¼åã
-ã®é¢æ°ï¼ã§ã¯ã¨ã©ã¼ãã³ãã©ã¼ã¯å¼ã³åºããªããå¼ã³å
-ï¼ãµã¼ãã¼ã®ã¡ã¤ã³é¢æ°ï¼ã§å¼ã³åºãã
+      # ここ（個々の関数）ではエラーハンドラーは呼び出さない。呼び元（サーバーのメイン関数）で呼び出す。
     }
   end
@@ -956,12 +923,9 @@
   #b_marshal:: bool
   #b_get:: bool
-  #  b_marshal = true  && b_get == false   :  ãã¼ã·ã£ã©ã§å
-¥åå¼æ°éåº
-  #  b_marshal = true  && b_get == true    :  ãã¼ã·ã£ã©ã§åºåå¼æ°åå
-  #  b_marshal = false && b_get == false   :  ã¢ã³ãã¼ã·ã£ã©ã§å
-¥åå¼æ°åå
-  #  b_marshal = false && b_get == true    :  ã¢ã³ãã¼ã·ã£ã©ã§åºåå¼æ°éåº
-  #b_referenced:: size_is, count_is, string ã§åç
-§ããã¦ãããã®ãåºå
+  #  b_marshal = true  && b_get == false   :  マーシャラで入力引数送出
+  #  b_marshal = true  && b_get == true    :  マーシャラで出力引数受取
+  #  b_marshal = false && b_get == false   :  アンマーシャラで入力引数受取
+  #  b_marshal = false && b_get == true    :  アンマーシャラで出力引数送出
+  #b_referenced:: size_is, count_is, string で参照されているものを出力
   def print_params( params, file, nest, b_marshal, b_get, b_referenced, port_name, func_name )
     params.each{ |param|
@@ -986,5 +950,5 @@
         case dir
         when :OUT, :INOUT
-          alloc_cp = nil        # inout ã® b_get==true&&b_marsha==true ã®ã¨ãã¢ã­ã±ã¼ã¿ã³ã¼ãã¯ä¸ç¨
+          alloc_cp = nil        # inout の b_get==true&&b_marsha==true のときアロケータコードは不用
           alloc_cp_extra = nil
           print_param( param.get_name, param.get_type, file, nest, dir, nil, nil, b_marshal, b_get, alloc_cp, alloc_cp_extra )
@@ -993,8 +957,8 @@
           alloc_cp_extra = nil
           if b_get then
-            outer = "(*"         # ãã¼ã·ã£ã©å´ã§ã¯ããã¤ã³ã¿ã (send ã¨æ¯ã¹) ä¸ã¤å¤ã
+            outer = "(*"         # マーシャラ側では、ポインタが (send と比べ) 一つ多い
             outer2 = ")"
           else
-            outer = nil          # ã¢ã³ãã¼ã·ã£ã©å´ã§ã¯ããã¤ã³ã¿ãä¸ã¤å¤ããã¦ãã
+            outer = nil          # アンマーシャラ側では、ポインタが一つ外されている
             outer2 = nil
           end
@@ -1006,5 +970,5 @@
   end
 
-  #=== ã¢ã­ã±ã¼ã¿ã³ã¼ããçæ (out ã®ã¢ã³ãã¼ã·ã£ã©ç¨)
+  #=== アロケータコードを生成 (out のアンマーシャラ用)
   def alloc_for_out_params( params, file, nest, dir, alloc_cp, alloc_cp_extra )
     params.each{ |param|
@@ -1016,5 +980,5 @@
   end
 
-  #=== ã¢ã­ã±ã¼ã¿ã³ã¼ããçæ (out ã®ã¢ã³ãã¼ã·ã£ã©ç¨åå¥ãã©ã¡ã¼ã¿ã®çæ)
+  #=== アロケータコードを生成 (out のアンマーシャラ用個別パラメータの生成)
   def alloc_for_out_param( name, type, file, nest, outer, outer2, alloc_cp, alloc_cp_extra )
     org_type = type.get_original_type
@@ -1029,5 +993,5 @@
       count = type.get_count; size = type.get_size; string = type.get_string
       if count || size || string then
-        loop_counter_type = IntType.new(16)   # mikan æ¹ã size_is, count_is ã®å¼æ°ã®åã¨ãã
+        loop_counter_type = IntType.new(16)   # mikan 方を size_is, count_is の引数の型とする
         if count then
           len = type.get_count.to_s
@@ -1042,6 +1006,5 @@
         end
 
-        # size_is ã« max æå®ãããå ´åãlength ã max ãè¶
-ãã¦ããããã§ãã¯ããã³ã¼ããçæ
+        # size_is に max 指定がある場合、length が max を超えているかチェックするコードを生成
         if org_type.get_max != nil && string == nil then
           file.print "#{indent}if( #{len} > #{type.get_max} ){\t/* GenOpaqueMarshaler max check 2 */\n"
@@ -1082,6 +1045,6 @@
   end
 
-  #=== å¼æ°ã®ä¸æ¬ãã¢ã­ã±ã¼ãã³ã¼ãã®çæ
-  # sendï¼ãã¼ã·ã£ã©ã®æå¾ãreceiveï¼ã¢ã³ãã¼ã·ã£ã©ã®æå¾ã§ä¸æ¬ãã¦å¼æ°ããã¢ã­ã±ã¼ããã
+  #=== 引数の一括デアロケートコードの生成
+  # send：マーシャラの最後、receive：アンマーシャラの最後で一括して引数をデアロケートする
   def dealloc_for_params( params, file, nest, dir, dealloc_cp, b_reset = false )
     if b_reset then
@@ -1097,5 +1060,5 @@
         aster = ""
         if dir == :RECEIVE then
-          type = type.get_type.get_original_type   # ãã¤ã³ã¿ãä¸ã¤å¤ã
+          type = type.get_type.get_original_type   # ポインタを一つ外す
           if b_reset then
             aster = "*"
@@ -1118,7 +1081,6 @@
   end
 
-  #== out ã§ nullable ãªå¼æ°ã®æ
-å ±ãæ¸¡ã
-  # out nullable ã®å ´åãin, send, receive ã®ããã«ãå¤ãæ¸¡ãç´åã§ã¯ãªããå¼åºãæã«æ¸¡ã
+  #== out で nullable な引数の情報を渡す
+  # out nullable の場合、in, send, receive のように、値を渡す直前ではなく、呼出し時に渡す
   def  print_out_nullable( params, file, nest, b_marshal );
     indent = "\t" * nest
@@ -1130,6 +1092,5 @@
         file.print "#{indent}\tgoto error_reset;\n"
       else
-        # å¼ã³å
-ã¯ alloc_for_out_param ã§ nullable ã®å¯¾å¿ãã
+        # 呼び先は alloc_for_out_param で nullable の対応する
         file.print "#{indent}if( (ercd_=cTDR_getInt8( &b_#{param.get_name}_null_)) != E_OK )\n"
         file.print "#{indent}\tgoto error_reset;\n"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenParamCopy.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenParamCopy.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenParamCopy.rb	(revision 321)
@@ -6,60 +6,45 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: GenParamCopy.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
 #= ParamCopy
 #
-# ãã©ã¡ã¼ã¿ã³ãã¼ãããã¼ã·ã£ã©ï¼ã¢ã³ãã¼ã·ã£ã©ã³ã¼ããçæããã¡ã½ãã print_param ãæä¾ããï¼
-# RPCPlugin, OpaqueRPCPlugin ã« include ãããï¼
-# RPCPlugin (ãã©ã³ã¹ãã¢ã¬ã³ã) ã§ã¯ãoneway é¢æ°ã§ in ã®ãã¤ã³ã¿å¼æ°ã®å ´åã«éã£ã¦ print_param ãç¨ããããï¼
+# パラメータコピーするマーシャラ／アンマーシャラコードを生成するメソッド print_param を提供する．
+# RPCPlugin, OpaqueRPCPlugin に include される．
+# RPCPlugin (トランスペアレント) では、oneway 関数で in のポインタ引数の場合に限って print_param が用いられる．
 #
 module  GenParamCopy
 
-  #=== å¼æ°ã®è»¢éã³ã¼ããçæ
+  #=== 引数の転送コードを生成
 
   def print_param( name, type, file, nest, dir, outer, outer2, b_marshal, b_get, alloc_cp = nil, alloc_cp_extra = nil, name_list = nil )
@@ -76,5 +61,5 @@
 EOT
         if ( dir == :SEND || dir == :RECEIVE ) && type.get_type.has_pointer? then
-          # send, receive ã®å ´åã¯ãã¨ã©ã¼ãªã»ããã«åã NULL ã«ãã
+          # send, receive の場合は、エラーリセットに備え NULL にする
           file.print <<EOT
 #{indent}memset( (void *)#{outer}#{name}#{outer2}#{alloc_cp_extra}, 0, sizeof(#{type.get_type.get_type_str}#{type.get_type.get_type_str_post})*(#{size_str});   /* GenParamCopy Alloc1 */
@@ -103,5 +88,5 @@
         when :SIGNED
           if bit_size == -1 || bit_size == -11 then
-            sign = "S"   # signed char ã®å ´åã®ã¿ S ãã¤ã
+            sign = "S"   # signed char の場合のみ S がつく
           else
             sign = ""
@@ -156,5 +141,5 @@
         nest = print_nullable_pre( name, type, file, nest, dir, outer, outer2, b_marshal, b_get )
         indent = "\t" * nest
-        loop_counter_type = IntType.new(32)   # mikan åã size_is, count_is ã®å¼æ°ã®åã¨ãã
+        loop_counter_type = IntType.new(32)   # mikan 型を size_is, count_is の引数の型とする
         file.print "#{indent}{\t/* GenParamCopy 4 */\n"
         file.print "#{indent}	#{loop_counter_type.get_type_str}  i__#{nest}, length__#{nest};\n"
@@ -168,13 +153,11 @@
             count_str = count.to_str( name_list, outer, outer2 )
           else
-            # size_is ã¯å¿
-é . count_is ã¯ãªãã·ã§ã³
+            # size_is は必須. count_is はオプション
             count_str = size_str
           end
           file.print "#{indent}	length__#{nest} = #{count_str};\t/* GenParamCopy 5 */\n"
 
-          # size_is ã« max æå®ãããå ´åãlength ã max ãè¶
-ãã¦ããããã§ãã¯ããã³ã¼ããçæ
-              # alloc_cp == nil ã®ã¨ã dir ã¯ INOUT, OUT ã®ã¯ã (æ¡ä»¶ãåé·)ãè©¦é¨ãçµãã£ã¦ããã®ã§ãæ¬¡åè¦ç´ãæã«å¤ã
+          # size_is に max 指定がある場合、length が max を超えているかチェックするコードを生成
+              # alloc_cp == nil のとき dir は INOUT, OUT のはず (条件が冗長)。試験が終わっているので、次回見直し時に外す
           if b_get && type.get_max != nil && ! ( ( dir == :INOUT || dir == :OUT ) && alloc_cp == nil ) then
             file.print "#{indent}	if( length__#{nest} > #{type.get_max.to_s} ){\t/* GenParamCopy max check 1 */\n"
@@ -202,15 +185,15 @@
               file.print "#{indent}	length__#{nest} = STRLEN#{b_size}(#{outer}#{name}#{outer2})+1;\t/* GenParamCopy 7 */\n"
             end
-            size_str = "length__#{nest}"     # string ã®å ´åãstrnlen ä»¥ä¸ã®é åãç¢ºä¿ããªã
+            size_str = "length__#{nest}"     # string の場合、strnlen 以上の領域を確保しない
           else
             if ( dir == :INOUT ) then
               if ( string.instance_of? Expression ) then
                 len = string.to_str( name_list, outer, outer2 )
-                size_str = "#{len}"              # string(len) ã®å ´å len ãç¢ºä¿ãã
+                size_str = "#{len}"              # string(len) の場合 len を確保する
               else
                 raise "unsuscripted string used for inout parameter #{name}"
               end
             else
-              size_str = "length__#{nest}"     # string ã®å ´åãstrnlen ä»¥ä¸ã®é åãç¢ºä¿ããªã
+              size_str = "length__#{nest}"     # string の場合、strnlen 以上の領域を確保しない
             end
           end
@@ -224,5 +207,5 @@
 EOT
           if ( dir == :SEND || dir == :RECEIVE ) && type.get_type.has_pointer? then
-            # send, receive ã®å ´åã¯ãã¨ã©ã¼ãªã»ããã«åã NULL ã«ãã
+            # send, receive の場合は、エラーリセットに備え NULL にする
             file.print <<EOT
 #{indent}	memset( (void *)#{outer}#{name}#{outer2}#{alloc_cp_extra}, 0, sizeof(#{type.get_type.get_type_str}#{type.get_type.get_type_str_post})*(#{size_str}) );   /* GenParamCopy Alloc2 */
@@ -251,5 +234,5 @@
 EOT
           if ( dir == :SEND || dir == :RECEIVE ) && type.get_type.has_pointer? then
-            # send, receive ã®å ´åã¯ãã¨ã©ã¼ãªã»ããã«åã NULL ã«ãã
+            # send, receive の場合は、エラーリセットに備え NULL にする
             file.print <<EOT
 #{indent}memset( (void *)#{outer}#{name}#{outer2}#{alloc_cp_extra}, 0, sizeof(#{type.get_type.get_type_str}#{type.get_type.get_type_str_post}) );   /* GenParamCopy Alloc3 */
@@ -286,5 +269,5 @@
         size_str = subsc.to_str( name_list, outer, outer2 )
 
-        loop_counter_type = IntType.new(32)   # mikan åã size_is, count_is ã®å¼æ°ã®åã¨ãã
+        loop_counter_type = IntType.new(32)   # mikan 型を size_is, count_is の引数の型とする
         file.print "#{indent}{\t/* GenParamCopy 11 */\n"
         file.print "#{indent}	#{loop_counter_type.get_type_str}  i__#{nest}, length__#{nest} = #{size_str};\n"
@@ -302,6 +285,5 @@
     if type.is_nullable? then
       indent = "	" * nest
-      if dir == :OUT then  # OUT ã®å ´å print_out_nullable ã§ NULL ãã©ããã®æ
-å ±ãæ¸¡ã
+      if dir == :OUT then  # OUT の場合 print_out_nullable で NULL かどうかの情報を渡す
         # 'null or not' is sent in the function 'print_out_nullable'
         if b_get then
@@ -321,6 +303,5 @@
 #{indent}	if( ! b_null_ ){
 EOT
-          else # dir = :INOUT, b_marshal = true, b_get = true ã®å ´åãNULL ãã©ããã®æ
-å ±ãæ¸¡ããªã
+          else # dir = :INOUT, b_marshal = true, b_get = true の場合、NULL かどうかの情報を渡さない
             file.print <<EOT
 #{indent}	int8_t  b_null_ = (#{outer}#{name}#{outer2} == NULL);\t/* GenParamCopy Null 21 */
@@ -335,5 +316,5 @@
 
           if ! ( dir == :INOUT && b_marshal == false ) then
-            # dir = :INOUT, b_marshal = false, b_get = false ã®å ´å
+            # dir = :INOUT, b_marshal = false, b_get = false の場合
             file.print <<EOT
 #{indent}	if((ercd_=cTDR_putInt8( b_null_ )) != E_OK )\t/* GenParamCopy Null 32 */
@@ -355,6 +336,5 @@
   def print_nullable_post( name, type, file, nest, dir, outer, outer2, b_marshal, b_get )
     if type.is_nullable? then
-      if dir == :OUT then  # OUT ã®å ´å print_out_nullable ã§ NULL ãã©ããã®æ
-å ±ãæ¸¡ã
+      if dir == :OUT then  # OUT の場合 print_out_nullable で NULL かどうかの情報を渡す
         nest -= 1
         indent = "	" * nest
@@ -371,5 +351,5 @@
 #{indent}	}  /* ! b_null_ */
 EOT
-          else # dir = :INOUT, b_marshal = true   # inout ã® out æ¹å
+          else # dir = :INOUT, b_marshal = true   # inout の out 方向
             file.print "#{indent}	}  /* ! b_null_  GenParamCopy Null 52 */\n"
           end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenTransparentMarshaler.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenTransparentMarshaler.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenTransparentMarshaler.rb	(revision 321)
@@ -6,52 +6,37 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: GenTransparentMarshaler.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#ãã©ã°ã¤ã³ãªãã·ã§ã³ç¨å¤æ°
+#プラグインオプション用変数
 #@task_priority:: Integer
 #@channelCelltype:: String
@@ -60,5 +45,5 @@
 module GenTransparentMarshaler
 
-  # ãã©ã°ã¤ã³å¼æ°åã¨ Proc
+  # プラグイン引数名と Proc
   RPCPluginArgProc = {
     "taskPriority"    => Proc.new { |obj,rhs| obj.set_taskPriority rhs },
@@ -69,10 +54,10 @@
   }
 
-  #=== ãã©ã°ã¤ã³å¼æ° taskPriority ã®ãã§ãã¯
+  #=== プラグイン引数 taskPriority のチェック
   def set_taskPriority( rhs )
     @task_priority = rhs
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° channelCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 channelCelltype のチェック
   def set_channelCelltype( rhs )
     @channelCelltype = rhs.to_sym
@@ -86,5 +71,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° TDRCelltype ã®ãã§ãã¯
+  #=== プラグイン引数 TDRCelltype のチェック
   def set_TDRCelltype( rhs )
     @TDRCelltype = rhs.to_sym
@@ -98,5 +83,5 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° channelCellName ã®ãã§ãã¯
+  #=== プラグイン引数 channelCellName のチェック
   def set_channelCellName( rhs )
     @channelCellName = rhs
@@ -108,10 +93,10 @@
   end
 
-  #=== ãã©ã°ã¤ã³å¼æ° PPAllocatorSize ã®ãã§ãã¯
+  #=== プラグイン引数 PPAllocatorSize のチェック
   def set_PPAllocatorSize( rhs )
     @PPAllocatorSize = rhs
   end
 
-  #=== marshaler ã®ã»ã«ã¿ã¤ãåãè¨­å®ãã
+  #=== marshaler のセルタイプ名を設定する
   def initialize_transparent_marshaler cell_name
     @task_priority = 8
@@ -135,6 +120,5 @@
 
     f = CFile.open( @marshaler_celltype_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -157,9 +141,9 @@
   end
 
-  #===  åãå£é¢æ°ã®æ¬ä½ã³ã¼ããçæï¼é ­é¨ã¨æ«å°¾ã¯å¥éåºåï¼
-  #ct_name:: Symbol    (through ãã©ã°ã¤ã³ã§çæããã) ã»ã«ã¿ã¤ãå ï¼Symbol ã¨ãã¦éããã¦ããï¼ãããï¼
+  #===  受け口関数の本体コードを生成（頭部と末尾は別途出力）
+  #ct_name:: Symbol    (through プラグインで生成された) セルタイプ名 ．Symbol として送られてくる（らしい）
   def gen_ep_func_body( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
 
-    # unmarshaler ã¯ã©ã¹ã?
+    # unmarshaler クラスか?
     if ct_name == @unmarshaler_celltype_name.to_sym then
       gen_ep_func_body_unmarshal( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
@@ -169,5 +153,5 @@
   end
 
-  #===  marshal ã³ã¼ãã®çæ
+  #===  marshal コードの生成
   def gen_ep_func_body_marshal( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
 
@@ -175,9 +159,8 @@
     b_ret_er = false
 
-    # é¢æ°ã®æ»ãå¤ã®å
-ã®åãå¾ã(typedef ããã¦ããå ´å)
+    # 関数の戻り値の元の型を得る(typedef されている場合)
     type = func_type.get_type.get_original_type
 
-    # æ»ãå¤è¨æ¶ç¨ã®å¤æ°ãåºåï¼void åã®é¢æ°ã§ã¯åºåããªãï¼
+    # 戻り値記憶用の変数を出力（void 型の関数では出力しない）
     if ! type.is_void? then
       if func_type.get_type.kind_of?( DefinedType ) && ( func_type.get_type.get_type_str == "ER" || func_type.get_type.get_type_str == "ER_INT" ) then
@@ -194,16 +177,15 @@
     file.print( "    FLGPTN  flgptn;\n" )
 
-    # å¼ã³å
-ã® signature ãåãåºã
+    # 呼び先の signature を取り出す
     signature = @signature
 
-    # é¢æ° ID ï¼æ´æ°å¤ï¼
+    # 関数 ID （整数値）
     func_id = signature.get_id_from_func_name( func_name )
     file.print( "    int16_t  func_id_ = #{func_id};    /* id of #{func_name}: #{func_id} */\n" )
 
-    # ã·ã³ã°ã«ãã³ã§ãªããï¼
+    # シングルトンでないか？
     if ! b_singleton then
 
-      # singleton ã§ãªããã° p_cellcb åå¾ã³ã¼ããåºå
+      # singleton でなければ p_cellcb 取得コードを出力
       file.print <<EOT
     #{ct_name}_CB *p_cellcb;
@@ -213,5 +195,5 @@
 EOT
 
-      # ã¨ã©ã¼ãè¿ããï¼
+      # エラーを返すか？
       if b_ret_er then
         file.print <<EOT
@@ -223,11 +205,11 @@
         file.print <<EOT
     }else{
-        /* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
-    }
-EOT
-      end
-    end
-
-    # channel lock ã³ã¼ã
+        /* エラー処理コードをここに記述 */
+    }
+EOT
+      end
+    end
+
+    # channel lock コード
     file.print <<EOT
     /* Channel Lock */
@@ -237,11 +219,11 @@
 EOT
 
-    # SOP ãéä¿¡
-    file.print "    /* SOPã®éåº */\n"
+    # SOP を送信
+    file.print "    /* SOPの送出 */\n"
     file.print "    if( ( ercd_ = cTDR_sendSOP( true ) ) != E_OK )\n"
     file.print "      goto error_reset;\n"
 
-    # func_id ãéä¿¡
-    file.print "    /* é¢æ° id ã®éåº */\n"
+    # func_id を送信
+    file.print "    /* 関数 id の送出 */\n"
     file.print "    if( ( ercd_ = cTDR_putInt16( func_id_ ) ) != E_OK )\n"
     file.print "        goto error_reset;\n"
@@ -250,11 +232,9 @@
     # p "#{ct_name}, #{sig_name}, #{func_name}, #{func_global_name}"
 
-    b_get = false    # marshal ãªã put
+    b_get = false    # marshal なら put
     b_marshal = true  # marshal
 
-    # in æ¹åã®å
-¥åºåãåºå
-    file.print "    /* å
-¥åå¼æ°éåº */\n"
+    # in 方向の入出力を出力
+    file.print "    /* 入力引数送出 */\n"
     print_params( params, file, 1, b_marshal, b_get, true, func_type.is_oneway? )
     print_params( params, file, 1, b_marshal, b_get, false, func_type.is_oneway? )
@@ -264,5 +244,5 @@
     end
 
-    file.print "    /* EOPã®éåºï¼ãã±ããã®æãã ãï¼ */\n"
+    file.print "    /* EOPの送出（パケットの掃きだし） */\n"
     if ! func_type.is_oneway? then
       b_continue = "true"
@@ -293,6 +273,5 @@
 
     if( b_void == false )then
-      # å¼ã³å
-ã«æ»ãå¤ããªã¿ã¼ã³
+      # 呼び元に戻り値をリターン
       file.print( "    return retval_;\n" )
     else
@@ -307,5 +286,5 @@
 EOT
 
-    # channel lock ã³ã¼ã
+    # channel lock コード
     file.print <<EOT
     /* Channel Lock */
@@ -316,6 +295,5 @@
 
     if( b_ret_er != false )then
-      # å¼ã³å
-ã«æ»ãå¤ããªã¿ã¼ã³
+      # 呼び元に戻り値をリターン
       file.print( "    return ercd_;\n" )
     else
@@ -325,5 +303,5 @@
   end
 
-  #===  unmarshal ã³ã¼ãã®çæ
+  #===  unmarshal コードの生成
   def gen_ep_func_body_unmarshal( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
 
@@ -331,5 +309,5 @@
     b_ret_er = false
 
-    # func_id ãå¾ãã³ã¼ããçæ
+    # func_id を得るコードを生成
     file.print <<EOT
 
@@ -352,5 +330,5 @@
         file.print <<EOT
     }else{
-        /* ã¨ã©ã¼å¦çã³ã¼ããããã«è¨è¿° */
+        /* エラー処理コードをここに記述 */
     }
 EOT
@@ -359,8 +337,8 @@
     file.print <<EOT
 
-    /* SOPã®ãã§ãã¯ */
+    /* SOPのチェック */
     if( (ercd_=cTDR_receiveSOP( false )) != E_OK )
         goto error_reset;
-    /* func_id ã®åå¾ */
+    /* func_id の取得 */
     if( (ercd_=cTDR_getInt16( &func_id_ )) != E_OK )
         goto error_reset;
@@ -372,11 +350,10 @@
 EOT
 
-    # å¼ã³å
-ã® signature ãåãåºã
+    # 呼び先の signature を取り出す
     # port = @celltype.find( @next_cell_port_name )
     # signature = port.get_signature
     signature = @signature
 
-    # through ã® signature ã«å«ã¾ãã ãã¹ã¦ã®é¢æ°ã«ã¤ãã¦
+    # through の signature に含まれる すべての関数について
     signature.get_function_head_array.each { |f|
       f_name = f.get_name
@@ -384,5 +361,5 @@
       id = signature.get_id_from_func_name( f_name )
 
-      # é¢æ°ã¯è¿ãå¤ãæã¤ã?
+      # 関数は返り値を持つか?
       if f_type.get_type.is_void? then
         b_void = true
@@ -391,5 +368,5 @@
       end
 
-      # ãã±ããã®çµããããã§ãã¯ï¼æªåãåãã®ãã¼ã¿ãæ®ã£ã¦ããªãããã§ãã¯ï¼
+      # パケットの終わりをチェック（未受け取りのデータが残っていないかチェック）
       file.print "    case #{id}:       /*** #{f_name} ***/ \n"
       file.print "        if( tTransparentUnmarshaler_#{@signature.get_global_name}_#{f_name}() != E_OK )\n"
@@ -400,5 +377,5 @@
 
     if @PPAllocatorSize then
-      ppallocator_dealloc_str = "    /* PPAllocator ã®ãã¹ã¦ãè§£æ¾ */\n    cPPAllocator_dealloc_all();"
+      ppallocator_dealloc_str = "    /* PPAllocator のすべてを解放 */\n    cPPAllocator_dealloc_all();"
     else
       ppallocator_dealloc_str = ""
@@ -422,10 +399,8 @@
 
   # IN b_marshal, b_get
-  #  b_marshal = true  && b_get == false   :  ãã¼ã·ã£ã©ã§å
-¥åå¼æ°éåº
-  #  b_marshal = true  && b_get == true    :  ãã¼ã·ã£ã©ã§åºåå¼æ°åå
-  #  b_marshal = false && b_get == true    :  ã¢ã³ãã¼ã·ã£ã©ã§å
-¥åå¼æ°åå
-  #  b_marshal = false && b_get == get     :  ã¢ã³ãã¼ã·ã£ã©ã§åºåå¼æ°éåº
+  #  b_marshal = true  && b_get == false   :  マーシャラで入力引数送出
+  #  b_marshal = true  && b_get == true    :  マーシャラで出力引数受取
+  #  b_marshal = false && b_get == true    :  アンマーシャラで入力引数受取
+  #  b_marshal = false && b_get == get     :  アンマーシャラで出力引数送出
   def print_params( params, file, nest, b_marshal, b_get, b_referenced, b_oneway = false )
     params.each{ |param|
@@ -438,5 +413,5 @@
       type = param.get_type
       if b_oneway && dir == :IN && type.get_original_type.kind_of?( PtrType ) || type.get_original_type.kind_of?( ArrayType ) then
-        # oneway, in, PtrType ã®å ´åã³ãã¼
+        # oneway, in, PtrType の場合コピー
         alloc_cp = "cPPAllocator_alloc"
         alloc_cp_extra = nil
@@ -460,5 +435,5 @@
   end
 
-  #=== ã³ãã¼ããªãå¼æ°æ¸¡ãã³ã¼ãã®åºå
+  #=== コピーしない引数渡しコードの出力
   def print_param_nc( name, type, file, nest, b_marshal, outer, outer2, b_get )
     indent = "    " * ( nest + 1 )
@@ -480,5 +455,5 @@
         when :SIGNED
           if bit_size == -1 || bit_size == -11 then
-            # signed char ã®å ´åãsigned ãæå®ãã
+            # signed char の場合、signed を指定する
             signC = "S"
             sign  = "s"
@@ -573,6 +548,6 @@
 
 
-  #=== PREAMBLE é¨ã®ã³ã¼ãçæ
-  # ã¢ã³ãã¼ã·ã£ã©ã»ã«ã¿ã¤ãã®å ´åãã¢ã³ãã¼ã·ã£ã©é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨ãçæ
+  #=== PREAMBLE 部のコード生成
+  # アンマーシャラセルタイプの場合、アンマーシャラ関数のプロトタイプ宣言を生成
   def gen_preamble file, b_singleton, ct_name, global_name
     if ct_name != @unmarshaler_celltype_name.to_sym then
@@ -580,6 +555,6 @@
     end
 
-    file.print "/* ã¢ã³ãã¼ã·ã£ã©é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨ */\n"
-    # signature ã«å«ã¾ãã ãã¹ã¦ã®é¢æ°ã«ã¤ãã¦
+    file.print "/* アンマーシャラ関数のプロトタイプ宣言 */\n"
+    # signature に含まれる すべての関数について
     @signature.get_function_head_array.each { |f|
       f_name = f.get_name
@@ -591,6 +566,6 @@
   end
 
-  #=== POSTAMBLE é¨ã®ã³ã¼ãçæ
-  # ã¢ã³ãã¼ã·ã£ã©ã»ã«ã¿ã¤ãã®å ´åãã¢ã³ãã¼ã·ã£ã©é¢æ°ã®çæ
+  #=== POSTAMBLE 部のコード生成
+  # アンマーシャラセルタイプの場合、アンマーシャラ関数の生成
   def gen_postamble file, b_singleton, ct_name, global_name
     if ct_name != @unmarshaler_celltype_name.to_sym then
@@ -598,5 +573,5 @@
     end
 
-    file.print "\n/*** ã¢ã³ãã¼ã·ã£ã©é¢æ° ***/\n\n"
+    file.print "\n/*** アンマーシャラ関数 ***/\n\n"
     @signature.get_function_head_array.each { |f|
       f_name = f.get_name
@@ -604,5 +579,5 @@
       id = @signature.get_id_from_func_name( f_name )
 
-      # é¢æ°ã¯è¿ãå¤ãæã¤ã?
+      # 関数は返り値を持つか?
       if f_type.get_type.is_void? then
         b_void = true
@@ -623,5 +598,5 @@
       file.print "	CELLCB  *p_cellcb;\n"
 
-      # å¼æ°ãååãå¤æ°ã®å®ç¾©
+      # 引数を受取る変数の定義
       param_list = f.get_declarator.get_type.get_paramlist.get_items
            # FuncHead->  Decl->    FuncType->ParamList
@@ -638,13 +613,13 @@
         end
 
-        type_str = type.get_type_str.gsub( /\bconst\b */, "" ) # "const" ãå¤ã
+        type_str = type.get_type_str.gsub( /\bconst\b */, "" ) # "const" を外す
 
         file.printf( "    %-12s %s%s%s%s;\n", type_str, aster, name, aster2, type.get_type_str_post )
       }
 
-      # æ»ãå¤ãåãåãå¤æ°ã®å®ç¾©
+      # 戻り値を受け取る変数の定義
       if ! b_void then
         if f.is_oneway? then
-          retval_ptr = ""   # oneway ã®å ´åãåãåããæ¨ã¦ããã
+          retval_ptr = ""   # oneway の場合、受け取るが捨てられる
         else
           retval_ptr = "*"
@@ -653,10 +628,7 @@
       end
 
-      # in æ¹åã®å
-¥åºåãå
-¥å
-      file.print "\n        /* å
-¥åå¼æ°åå */\n"
-      b_get = true    # unmarshal ã§ã¯ get
+      # in 方向の入出力を入力
+      file.print "\n        /* 入力引数受取 */\n"
+      b_get = true    # unmarshal では get
       b_marshal  = false
       print_params( param_list, file, 1, b_marshal, b_get, true, f.is_oneway? )
@@ -667,7 +639,7 @@
       end
 
-      # ãã±ããã®åä¿¡å®äº
-      # mikan æ¬å½ã¯ãå¯¾è±¡é¢æ°ãå¼åºãå¾ã«å®æ½ãããï¼å¼åºããã±ããã®ä½¿ç¨çµãããå®£è¨ããç®çã¨ãã¦
-      file.print "        /* ãã±ããçµããããã§ãã¯ */\n"
+      # パケットの受信完了
+      # mikan 本当は、対象関数を呼出す後に実施したい．呼出しパケットの使用終わりを宣言する目的として
+      file.print "        /* パケット終わりをチェック */\n"
       if ! f.is_oneway? then
         b_continue = "true"
@@ -678,6 +650,6 @@
       file.print "        goto error_reset;\n\n"
 
-      # å¯¾è±¡é¢æ°ãå¼åºã
-      file.print "    /* å¯¾è±¡é¢æ°ã®å¼åºã */\n"
+      # 対象関数を呼出す
+      file.print "    /* 対象関数の呼出し */\n"
       if b_void then
         file.print( "    cServerCall_#{f_name}(" )
@@ -694,11 +666,10 @@
       file.print( " );\n" )
 
-      # æ»ãå¤ãåºåå¼æ°ã®ååã³ã¼ãã®çæ
-
-      # oneway ã®å ´ååºåãæ»ãå¤ãç¡ããååãå¾
-ããªãï¼éåæãªå¼åºãï¼
+      # 戻り値、出力引数の受取コードの生成
+
+      # oneway の場合出力、戻り値が無く、受取を待たない（非同期な呼出し）
       if ! f.is_oneway? then
         file.print <<EOT
-    /* é¢æ°å¦çã®çµäºãéç¥ */
+    /* 関数処理の終了を通知 */
     if( ( ercd_ = cEventflag_set( 0x01 ) ) != E_OK ){
       goto error_reset;
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsmerge
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsmerge	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsmerge	(revision 321)
@@ -1,5 +1,5 @@
 #! /bin/sh
 
-# $Id: tecsmerge 1138 2010-10-08 03:10:44Z okuma-top $
+# $Id$
 
 tecsmerge.rb $*
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsmerge.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsmerge.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsmerge.rb	(revision 321)
@@ -8,65 +8,49 @@
 #   Copyright (C) 2008-2015 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: tecsmerge.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
-#= tecsgen  : TECS ã®ãã¼ã¸ã£
+#= tecsgen  : TECS のマージャ
 #
-#Authors::   å¤§å±± åå¸
+#Authors::   大山 博司
 #Version::   
 #Copyright:: Copyright (C) TOPPERS Project, 2008-2015. All rights reserved.
-#License::   TOPPERS ã©ã¤ã»ã³ã¹ã«æºæ 
+#License::   TOPPERS ライセンスに準拠
 
 =begin
-tecsmerge ã¯ãã³ãã¬ã¼ããã¡ã¤ã«ãå
-ã«ä½æãããã»ã«ã¿ã¤ãã³ã¼ãï¼å«ã¤ã³ã©ã¤ã³é¢æ°ãè¨è¿°ããã»ã«ã¿ã¤ãã¤ã³ã©ã¤ã³ãããï¼ãä¿å®ãããã®ã§ããã
-ã»ã«ã¿ã¤ãã«ä»¥ä¸ã®æ¹å¤ãå ããããå ´åã«å¯¾å¿ããã
-ã»åãå£é¢æ°ãå¢ãã
-ã»åãå£ã®ååãå¤æ´ããã
-ã»åãå£é¢æ°ã®ååãå¤æ´ããã
+tecsmerge はテンプレートファイルを元に作成されたセルタイプコード（含インライン関数を記述したセルタイプインラインヘッダ）を保守するものである。
+セルタイプに以下の改変が加えられた場合に対応する。
+・受け口関数が増えた
+・受け口の名前が変更された
+・受け口関数の名前が変更された
 
 % tecsmerge source_dir   dest_dir
@@ -76,12 +60,11 @@
 % tecsmerge -p old_name:new_name source_file dest_dir
 
-source_file ã®ååã¯ _teml.c, _templ.h ã§çµãã£ã¦ããªãã¦ã¯ãªããªã
-dest_file ã¯ source_file ã® _templ ãåãé¤ããååã§ãªãã¦ã¯ãªããªã
-dest_file ãå­å¨ããªãå ´åã_templ ãåãé¤ããååã§ã³ãã¼ããã ãã§ãã
-
-ä»¥ä¸ã®ã­ã¼ã¯ã¼ãã å«ãè¡ãæ¢ã
-
-0) å
-é ­
+source_file の名前は _teml.c, _templ.h で終わっていなくてはならない
+dest_file は source_file の _templ を取り除いた名前でなくてはならない
+dest_file が存在しない場合、_templ を取り除いた名前でコピーするだけである
+
+以下のキーワードを 含む行を探す
+
+0) 先頭
 1) /* #[<PREAMBLE>]#,
 2)  * #[</PREAMBLE>]#
@@ -94,46 +77,45 @@
 7) /* #[<POSTAMBLE>]#
 8)  * #[</POSTAMBLE>]#
-9) çµãã
-
-ä¸è¨ã®ãã¡ 1), 3), 5), 7) ãéå§ã­ã¼ã¯ã¼ãã¨å¼ã¶ã
-ãªããç¹ã«æ­ãã®ãªãå ´åã9) ãéå§ã­ã¼ã¯ã¼ãã«å«ãã
-
-ååã®å¤æ´
-
-a) åãå£åã®å¤æ´
+9) 終わり
+
+上記のうち 1), 3), 5), 7) を開始キーワードと呼ぶ。
+なお、特に断りのない場合、9) も開始キーワードに含む。
+
+名前の変更
+
+a) 受け口名の変更
 
   -p old_port_name:new_port_name
 
-b) åãå£é¢æ°åã®å¤æ´
+b) 受け口関数名の変更
 
   -f old_port_name:new_port_name
 
- old_port_name, new_port_name ã¯ãæ¬¡ã®å½¢å¼ã§ãªãã¦ã¯ãªããªãã
-
-  åãå£å + '_' + é¢æ°å
-
-
-i) ãããï¼
-
-  0) ã¨éå§ã­ã¼ã¯ã¼ãã®é
-
-ii) ãããï¼
-
-  1) ã¨éå§ã­ã¼ã¯ã¼ãã®é
-
-éå¸¸ããããè¤æ°å­å¨ãããã¨ã¯ãªãããè¤æ°å­å¨ããå ´åããã¹ã¦ãã¡ã¤ã«
-ã®å
-é ­ã«åºåãããã
-
-iii) åãå£ããã
-
-  3) ã¨éå§ã­ã¼ã¯ã¼ãã®é
-
-åãå£ãããã¯ãå¾ç¶ã®åãå£é¢æ°ã®åãå£ãè¡¨ããã®ã¨ä»®å®ãããã
-åãå£ãããã¯ãéè¦ã§ã¯ãªãã
-
-iv) åãå£é¢æ°
-
-  5) ã¨éå§ã­ã¼ã¯ã¼ãã®é
+ old_port_name, new_port_name は、次の形式でなくてはならない。
+
+  受け口名 + '_' + 関数名
+
+
+i) ヘッダ１
+
+  0) と開始キーワードの間
+
+ii) ヘッダ２
+
+  1) と開始キーワードの間
+
+通常、これが複数存在することはないが、複数存在した場合、すべてファイル
+の先頭に出力される。
+
+iii) 受け口ヘッダ
+
+  3) と開始キーワードの間
+
+受け口ヘッダは、後続の受け口関数の受け口を表すものと仮定される。
+受け口ヘッダは、重要ではない。
+
+iv) 受け口関数
+
+  5) と開始キーワードの間
 
 =end
@@ -142,7 +124,6 @@
 $n_err   = 0
 $b_show  = false
-$b_exist = false            # ã³ãã¼å
-ã«ãã¡ã¤ã«ãããå ´åã®ã¿ãã¼ã¸
-$old_mode = false           # old_mode (é¢æ°æ¬ä½ã¨ãã¦ /<ENTRY_FUNC> ã®ä»£ããã« '{' ãä½¿ã
+$b_exist = false            # コピー先にファイルがある場合のみマージ
+$old_mode = false           # old_mode (関数本体として /<ENTRY_FUNC> の代わりに '{' を使う
 
 #2.0
@@ -254,10 +235,7 @@
   def self.rewrite_DELIMITERS  delimiters
     delimiters.each{ |stat, stat_info|
-      s = stat_info[0].gsub( /([\*\[\]])/, "\\\\\\1" )   # *, [, ] ã®åã« \\ ãæ¿å
-¥
-      s.gsub!( /\s*\w*_NAME/, "\\s*(\\w*)" )             # ..._NAME ã (w*) ã«å¤æ´
-      s = "^" + s                                        # ^ ãå
-é ­ã«æ¿å
-¥
+      s = stat_info[0].gsub( /([\*\[\]])/, "\\\\\\1" )   # *, [, ] の前に \\ を挿入
+      s.gsub!( /\s*\w*_NAME/, "\\s*(\\w*)" )             # ..._NAME を (w*) に変更
+      s = "^" + s                                        # ^ を先頭に挿入
       stat_info[2] = Regexp.new( s )
       # p stat_info[2]
@@ -269,5 +247,5 @@
   rewrite_DELIMITERS @@DELIMITERS_FUNC_BY_BRACKET
 
-  #=== ã¢ã¼ãã«å¾ã DELIMITERS ã« DELIMITERS_FUNC_BY_* ããã¼ã¸ãã
+  #=== モードに従い DELIMITERS に DELIMITERS_FUNC_BY_* をマージする
   # mode :OLD_FUNC_BODY, :NEW_FUNC_BODY
   def self.merge_DELIMITERS mode
@@ -303,5 +281,5 @@
       line_no += 1
       # p "L: #{line}"
-      b_delim = false        # ããªãã¿ã­ã¼ã¯ã¼ãã®è¡
+      b_delim = false        # デリミタキーワードの行
       @@DELIMITERS.each { |next_stat,stat_info|
 
@@ -334,6 +312,5 @@
           end
 
-          case stat   # åã®ç¶æ
-
+          case stat   # 前の状態
           when :HEAD
             @head = part
@@ -351,10 +328,10 @@
           when :ENTRY_FUNC_COMMENT
             func_name = arg.to_sym
-            if @entry_port[ port_name ] then   # nil ãªãæ¢ã«ã¨ã©ã¼
+            if @entry_port[ port_name ] then   # nil なら既にエラー
               @entry_port[ port_name ].entry_func_comment[ func_name ] = part
               @entry_port[ port_name ].entry_func_array << func_name
             end
           when :ENTRY_FUNC_BODY, :ENTRY_FUNC_BODY2
-            if @entry_port[ port_name ] then   # nil ãªãæ¢ã«ã¨ã©ã¼
+            if @entry_port[ port_name ] then   # nil なら既にエラー
               @entry_port[ port_name ].entry_func_body[ func_name ] = part
             end
@@ -375,5 +352,5 @@
 
           stat = next_stat
-          arg = $1     # arg ã«åã£ã¦ãã
+          arg = $1     # arg に取っておく
           # p stat, arg
           break
@@ -389,5 +366,5 @@
 
   def check template
-    # template ã«ãªããã®ããã§ãã¯
+    # template にないものをチェック
     @entry_port.each{ |port_name, entry_port|
       temp_entry_port = template.entry_port[port_name]
@@ -410,5 +387,5 @@
     PortRenamer.get_list.each{ |pon,pr|
 
-      # å¯¾è±¡åãå£ãæã
+      # 対象受け口を捜す
       ep = @entry_port[pon]
       if ep == nil then
@@ -417,13 +394,13 @@
       end
 
-      # ãã¼ãã® rename
-      pnn = pr.new_port_name    # ç½®æå¾ã®åå
+      # ポートの rename
+      pnn = pr.new_port_name    # 置換後の名前
       if pnn then
-        # ç½®æããååãããã°ãç»é²ããªãã
+        # 置換する名前があれば、登録しなおす
         renamed_entry_port[pnn] = @entry_port[pon]
         @entry_port.delete pon
       end
 
-      # æå®ãããé¢æ°ã®ç½®æ
+      # 指定された関数の置換
       renamed_func_comment = {}
       renamed_func_body = {}
@@ -448,5 +425,5 @@
       ep.entry_func_body.merge!    renamed_func_body
 
-      # ãã¼ãåã®å¤æ´ã«ããé¢æ°åã®ç½®æ
+      # ポート名の変更による関数名の置換
       renamed_func_comment = {}
       renamed_func_body = {}
@@ -564,5 +541,5 @@
   if FileTest.file?( dst_file ) then
     print( "merging #{src_file} to #{dst_file}\n" )
-    # dst_file ã®èª­è¾¼ã¿
+    # dst_file の読込み
     begin
       dst = open( dst_file )
@@ -579,5 +556,5 @@
     old = CDLContents.new( old_contents )
 
-    # template ã®èª­è¾¼ã¿
+    # template の読込み
     begin
       src = open( src_file )
@@ -615,5 +592,5 @@
 
   elsif $b_exist == false then
-    # src_file ã dst_file ã¸ã³ãã¼
+    # src_file を dst_file へコピー
     begin
       src = File.open( src_file )
@@ -652,6 +629,6 @@
 
 
-#=== ãã¡ã¤ã«ã®ã¨ã³ã³ã¼ãã£ã³ã°ã ASCII-8BIT ã«å¤æ´
-# Ruby 1.9 ä»¥ä¸ã®å ´åã«å¤æ´
+#=== ファイルのエンコーディングを ASCII-8BIT に変更
+# Ruby 1.9 以上の場合に変更
 def set_encoding file
   if RUBY_VERSION >= "1.9.0" then
@@ -661,7 +638,7 @@
 
 #=== rename_dst
-# dst_file ã®ããã¯ã¢ãããã¡ã¤ã«åãæ±ºå®ãããªãã¼ã ãã
-# æåããã°ããªãã¼ã å¾ã®ãã¡ã¤ã«åãè¿ã
-# dst_file ãå­å¨ããªããã°ï¼ãªãã¼ã ã¯è¡ãããï¼nil ãè¿ãã
+# dst_file のバックアップファイル名を決定し、リネームする
+# 成功すれば、リネーム後のファイル名を返す
+# dst_file が存在しなければ（リネームは行われず）nil を返す。
 def rename_dst( dst_file )
   begin
@@ -669,5 +646,5 @@
   rescue
     STDERR.puts( "info: backup not generated for #{dst_file}" )
-    # ãªããã°çµãã
+    # なければ終わり
     return nil
   end
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.config
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.config	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.config	(revision 321)
@@ -5,54 +5,42 @@
 #                    Tomakomai National College of Technology, JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
-#   ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
-#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
-#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
-#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+#   によって公表されている GNU General Public License の Version 2 に記
+#   述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+#   を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+#   利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次の条件を満たすこと．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
-#   å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
-#   æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+#   含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+#   接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
 #  
-#   @(#) $Id: Makefile.config 497 2014-06-26 01:50:14Z coas-nagasima $
+#   @(#) $Id$
 #
 
 #
-#  ãã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©ãã®å¾ã«è¿½å ããã
+#  「ソースファイルのディレクトリの定義」の後に追加する。
 #
 
 #
-#  TINET ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  TINET ソースファイルのディレクトリの定義
 #
 TINET_ROOT = $(SRCDIR)/tinet
 
 #
-#  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+#  TINET 1.1 との互換性のための定義
 #
 ifndef SUPPORT_INET4
@@ -63,5 +51,5 @@
 
 #
-#  ãããã¯ã¼ã¯ãµã¼ãã¹ã«é¢ããå®ç¾©
+#  ネットワークサービスに関する定義
 #
 TINET_DIR = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet
@@ -117,5 +105,5 @@
 ifeq ($(NET_IF),ether)
 
-	#  ã¿ã¼ã²ããä¾å­ã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+	#  ターゲット依存の定義のインクルード
 
 	ifdef TOOL
@@ -166,6 +154,5 @@
 
 #
-#  å
-±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å 
+#  共通コンパイルオプションの定義への追加
 #
 CDEFS := $(CDEFS) $(TINET_CDEFS)
@@ -173,10 +160,10 @@
 
 #
-#  ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã«é¢ããå®ç¾©ã¸ã®è¿½å 
+#  アプリケーションプログラムに関する定義への追加
 #
 TINET_UTASK_CFG = tinet_$(UNAME).cfg
 
 #
-#  ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©ã¸ã®è¿½å 
+#  システムサービスに関する定義への追加
 #
 STASK_DIR := $(STASK_DIR):$(TINET_DIR)
@@ -185,5 +172,5 @@
 
 #
-#  TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®çæ
+#  TINET コンフィギュレーションファイルの生成
 #
 tinet:
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet	(revision 321)
@@ -6,49 +6,37 @@
 #   Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
-#   ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
-#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
-#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
-#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+#   によって公表されている GNU General Public License の Version 2 に記
+#   述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+#   を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+#   利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次の条件を満たすこと．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
-#   å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
-#   æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+#   含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+#   接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
 #  
-#   @(#) $Id: Makefile.tinet 497 2014-06-26 01:50:14Z coas-nagasima $
-#
-
-#
-#  ãããã«ã¦ã§ã¢ã® Makefile ã®ã¤ã³ã¯ã«ã¼ããã«è¿½å ããã
-#
-
-#
-#  ã«ã¼ãã«ã®è­å¥
+#   @(#) $Id$
+#
+
+#
+#  「ミドルウェアの Makefile のインクルード」に追加する。
+#
+
+#
+#  カーネルの識別
 #
 ifdef SRCLANG
@@ -61,10 +49,10 @@
 
 #
-#  TINET ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#  TINET ソースファイルのディレクトリの定義
 #
 TINET_ROOT = $(SRCDIR)/tinet
 
 #
-#  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+#  TINET 1.1 との互換性のための定義
 #
 ifndef SUPPORT_INET4
@@ -75,5 +63,5 @@
 
 #
-#  ãããã¯ã¼ã¯ãµã¼ãã¹ã«é¢ããå®ç¾©
+#  ネットワークサービスに関する定義
 #
 TINET_DIR = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet
@@ -131,5 +119,5 @@
 endif
 
-#  ã¿ã¼ã²ããä¾å­ã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+#  ターゲット依存の定義のインクルード
 
 ifeq ($(TARGET_KERNEL),ASP)
@@ -199,5 +187,5 @@
 
 #
-#  TINET ã©ã¤ãã©ãªã®å®ç¾©
+#  TINET ライブラリの定義
 #
 
@@ -245,6 +233,6 @@
 
 #
-#  ã©ã¤ãã©ãªåããã½ã¼ã¹ãã¡ã¤ã«ããçæããã
-#  ãªãã¸ã§ã¯ããã¡ã¤ã«ã®å®ç¾©
+#  ライブラリ化するソースファイルから生成される
+#  オブジェクトファイルの定義
 #
 TINET_LCOBJS = $(foreach file,$(TINET_LCSRCS),$($(file:.c=)))
@@ -266,6 +254,6 @@
 
 #
-#  ã©ã¤ãã©ãªåããã½ã¼ã¹ãã¡ã¤ã«ããçæããã
-#  ãªãã¸ã§ã¯ããã¡ã¤ã«ã®ä¾å­é¢ä¿ã®å®ç¾©
+#  ライブラリ化するソースファイルから生成される
+#  オブジェクトファイルの依存関係の定義
 #
 $(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c
@@ -273,10 +261,10 @@
 
 #
-#  TINET ã©ã¤ãã©ãªã®å®ç¾©
+#  TINET ライブラリの定義
 #
 TINET_LIB_OBJS = $(TINET_LCOBJS)
 
 #
-#  TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®å®ç¾©
+#  TINET コンフィギュレーションファイルの定義
 #
 
@@ -301,6 +289,5 @@
 
 #
-#  å
-±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å 
+#  共通コンパイルオプションの定義への追加
 #
 CDEFS := $(CDEFS) $(TINET_CDEFS)
@@ -308,10 +295,10 @@
 
 #
-#  TINET ã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å 
+#  TINET コンパイルオプションの定義への追加
 #
 TINET_CFLAGS := $(TINET_CFLAGS) -fno-strict-aliasing
 
 #
-#  ã·ã¹ãã ãµã¼ãã¹ãããã«ã¦ã§ã¢ã«é¢ããå®ç¾©
+#  システムサービス、ミドルウェアに関する定義
 #
 
@@ -348,5 +335,5 @@
 
 #
-#  TINET ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ
+#  TINET ライブラリファイルの生成
 #
 libtinet.a: $(TINET_LIB_OBJS)
@@ -356,5 +343,5 @@
 
 #
-#  ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
+#  コンパイルルールの定義
 #
 
@@ -377,5 +364,5 @@
 
 #
-#  ã³ã³ãã¤ã«çµæã®æ¶å»
+#  コンパイル結果の消去
 #
 cleantinet:
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ether_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ether_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ether_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -50,5 +38,5 @@
 
 /*
- *  Ethernet å¦çã¿ã¹ã¯
+ *  Ethernet 処理タスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  Ethernet å¦çã¿ã¹ã¯ã®æ¬ä½
+ *  Ethernet 処理タスクの本体
  */
 
@@ -92,5 +80,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -105,17 +93,16 @@
 
 /*
- *  å¤æ°
- */
-
-/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ */
+ *  変数
+ */
+
+/* ネットワークインタフェース構造体 */
 
 #if defined(SUPPORT_INET4)
 
 static T_IFNET ether_ifnet = {
-	NULL,			/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
-å ±	*/
+	NULL,			/* ネットワークインタフェースのソフトウェア情報	*/
 	{
-		IPV4_ADDR_LOCAL,	/* IPv4 ã¢ãã¬ã¹		*/
-		IPV4_ADDR_LOCAL_MASK,	/* ãµãããããã¹ã¯		*/
+		IPV4_ADDR_LOCAL,	/* IPv4 アドレス		*/
+		IPV4_ADDR_LOCAL_MASK,	/* サブネットマスク		*/
 		},
 	};
@@ -126,10 +113,8 @@
 
 static T_IFNET ether_ifnet = {
-	NULL,			/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
-å ±	*/
-	{0},			/* IPv6 ã¢ãã¬ã¹æ
-å ±				*/
-	{0},			/* ãã«ãã­ã£ã¹ã IPv6 ã¢ãã¬ã¹			*/
-	0,				/* ãã©ã°					*/
+	NULL,			/* ネットワークインタフェースのソフトウェア情報	*/
+	{0},			/* IPv6 アドレス情報				*/
+	{0},			/* マルチキャスト IPv6 アドレス			*/
+	0,				/* フラグ					*/
 	};
 
@@ -139,6 +124,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -150,5 +134,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -156,6 +140,5 @@
 
 /*
- *  ieee_802_input -- IEEE 802.3 å
-¥åå¦ç
+ *  ieee_802_input -- IEEE 802.3 入力処理
  */
 
@@ -175,5 +158,5 @@
 
 /*
- *  ether_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã
+ *  ether_get_ifnet -- ネットワークインタフェース構造体を返す。
  */
 
@@ -187,5 +170,5 @@
 
 /*
- *  ether_in6_resolve_multicast -- ã¤ã¼ãµãããã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ
+ *  ether_in6_resolve_multicast -- イーサネットのマルチキャストアドレスへの変換
  */
 
@@ -193,9 +176,9 @@
 ether_in6_resolve_multicast (T_ETHER_ADDR *ifaddr, T_IN6_ADDR *maddr)
 {
-	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ããã§ãã¯ããã*/
+	/* マルチキャストアドレスかチェックする。*/
 	if (!IN6_IS_ADDR_MULTICAST(maddr))
 		return E_PAR;
 
-	/* ã¤ã¼ãµãããã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ */
+	/* イーサネットのマルチキャストアドレスへの変換 */
 	ether_map_ipv6_multicast(ifaddr, maddr);
 
@@ -249,5 +232,5 @@
 
 /*
- *  ether_raw_output -- Ethernet ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãMAC ã¢ãã¬ã¹è§£æ±ºç¡ã
+ *  ether_raw_output -- Ethernet インタフェースの出力関数、MAC アドレス解決無し
  */
 
@@ -257,11 +240,10 @@
 	ER error = E_OK;
 
-	/* Ethernet åºåã­ã¥ã¼ã«æå
-¥ããã*/
+	/* Ethernet 出力キューに投入する。*/
 	if ((error = tsnd_dtq(DTQ_ETHER_OUTPUT, (intptr_t)output, tmout)) != E_OK) {
 		NET_COUNT_ETHER(net_count_ether.out_err_packets, 1);
 		NET_COUNT_MIB(if_stats.ifOutDiscards, 1);
 
-		/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+		/* IF でネットワークバッファを開放しないフラグをチェックする。*/
 		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
 			syscall(rel_net_buf(output));
@@ -276,5 +258,5 @@
 
 /*
- *  ether_output -- Ethernet ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãMAC ã¢ãã¬ã¹è§£æ±ºæã
+ *  ether_output -- Ethernet インタフェースの出力関数、MAC アドレス解決有り
  */
 
@@ -286,6 +268,5 @@
 	T_ETHER_HDR *eth;
 
-	/* éä¿¡å
- MAC ã¢ãã¬ã¹ãè¨­å®ããã*/
+	/* 送信元 MAC アドレスを設定する。*/
 	ic = IF_ETHER_NIC_GET_SOFTC();
 	eth = GET_ETHER_HDR(output);
@@ -298,7 +279,7 @@
 	case ETHER_TYPE_IP:		/* IPv4	*/
 #ifdef ETHER_CFG_MULTICAST
-		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®å ´å */
+		/* マルチキャストアドレスの場合 */
 		if(IN4_IS_ADDR_MULTICAST(*(uint32_t*)dst)){
-			/* ã¤ã¼ãµãããã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ */
+			/* イーサネットのマルチキャストアドレスへの変換 */
 			ether_map_ipv4_multicast((T_ETHER_ADDR *)&eth->dhost, *(T_IN4_ADDR*)dst);
 			error = ether_raw_output(output, tmout);
@@ -306,5 +287,5 @@
 			}
 #endif
-		if (arp_resolve(&ic->ifaddr, output, *(uint32_t*)dst)) {	/* true ãªãã¢ãã¬ã¹è§£æ±ºæ¸ */
+		if (arp_resolve(&ic->ifaddr, output, *(uint32_t*)dst)) {	/* true ならアドレス解決済 */
 			error = ether_raw_output(output, tmout);
 			}
@@ -321,5 +302,5 @@
 			error = ether_raw_output(output, tmout);
 
-		/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+		/* IF でネットワークバッファを開放しないフラグをチェックする。*/
 		else if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
 			syscall(rel_net_buf(output));
@@ -335,5 +316,5 @@
 		NET_COUNT_MIB(if_stats.ifOutErrors, 1);
 
-		/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+		/* IF でネットワークバッファを開放しないフラグをチェックする。*/
 		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
 			syscall(rel_net_buf(output));
@@ -352,5 +333,5 @@
 
 /*
- *  Ethernet åºåã¿ã¹ã¯
+ *  Ethernet 出力タスク
  */
 
@@ -406,6 +387,5 @@
 
 /*
- *  Ethernet å
-¥åã¿ã¹ã¯
+ *  Ethernet 入力タスク
  */
 
@@ -419,16 +399,16 @@
 	uint16_t	proto;
 
-	/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ç®¡çãåæåããã*/
+	/* ネットワークインタフェース管理を初期化する。*/
 	ifinit();
 
-	/* NIC ãåæåããã*/
+	/* NIC を初期化する。*/
 	ic = IF_ETHER_NIC_GET_SOFTC();
 	IF_ETHER_NIC_PROBE(ic);
 	IF_ETHER_NIC_INIT(ic);
 
-	/* Ethernet åºåã¿ã¹ã¯ãèµ·åãã */
+	/* Ethernet 出力タスクを起動する */
 	syscall(act_tsk(ETHER_OUTPUT_TASK));
 
-	/* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ãèµ·åãã */
+	/* ネットワークタイマタスクを起動する */
 	syscall(act_tsk(NET_TIMER_TASK));
 
@@ -440,5 +420,5 @@
 #if defined(SUPPORT_INET4)
 
-	/* ARP ãåæåããã*/
+	/* ARP を初期化する。*/
 	arp_init();
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  Ethernet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  Ethernet コンフィギュレーションファイル
  */
 
@@ -55,5 +43,5 @@
 CRE_DTQ(DTQ_ETHER_OUTPUT,  { TA_TFIFO, NUM_DTQ_ETHER_OUTPUT,  NULL });
 
-/* ãµãã¼ãé¢æ° max2str ç¨ã»ããã© */
+/* サポート関数 max2str 用セマフォ */
 
 CRE_SEM(SEM_MAC2STR_BUFF_LOCK,	{ TA_TPRI, 1, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -88,5 +76,5 @@
 
 /*
- *  ãã£ã¼ã«ãé·
+ *  フィールド長
  */
 
@@ -96,5 +84,5 @@
 
 /*
- *  ãã¬ã¼ã é· (Ethernet ãããã¨ CRC ãå«ã)
+ *  フレーム長 (Ethernet ヘッダと CRC を含む)
  */
 
@@ -103,5 +91,5 @@
 
 /*
- *  Ethernet ããã
+ *  Ethernet ヘッダ
  */
 
@@ -114,5 +102,5 @@
 #if IF_ETHER_NIC_HDR_ALIGN != 0
 
-	uint8_t		align[IF_ETHER_NIC_HDR_ALIGN];	/* ã¢ã©ã¤ã³èª¿æ´ */
+	uint8_t		align[IF_ETHER_NIC_HDR_ALIGN];	/* アライン調整 */
 
 #endif	/* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
@@ -126,9 +114,9 @@
 
 /*
- *  MAC ã¢ãã¬ã¹ã®å®ç¾©
- */
-
-#define ETHER_MCAST_ADDR	UINT_C(0x01)	/* ãã«ãã­ã£ã¹ãã»ã¢ãã¬ã¹	*/
-#define ETHER_LOCAL_ADDR	UINT_C(0x02)	/* ã­ã¼ã«ã«ã»ã¢ãã¬ã¹		*/
+ *  MAC アドレスの定義
+ */
+
+#define ETHER_MCAST_ADDR	UINT_C(0x01)	/* マルチキャスト・アドレス	*/
+#define ETHER_LOCAL_ADDR	UINT_C(0x02)	/* ローカル・アドレス		*/
 
 typedef struct t_ether_addr {
@@ -137,5 +125,5 @@
 
 /*
- *  Type ãã£ã¼ã«ã
+ *  Type フィールド
  */
 
@@ -145,47 +133,43 @@
 
 /*
- *  ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã­
- */
-
-#define T_IF_HDR		T_ETHER_HDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã				*/
-#define T_IF_ADDR		T_ETHER_ADDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹			*/
-#define IF_HDR_ALIGN		2			/* ãããã®ã¢ã©ã¤ã³åä½				*/
-#define IF_MTU			1500			/* ã¤ã³ã¿ãã§ã¼ã¹ã® MTU				*/
-
-#define IF_OUTPUT(o,d,g,t)	ether_output(o,d,g,t)	/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°			*/
-#define IF_RAW_OUTPUT(o,t)	ether_raw_output(o,t)	/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã	*/
+ *  インタフェースの選択マクロ
+ */
+
+#define T_IF_HDR		T_ETHER_HDR		/* インタフェースのヘッダ				*/
+#define T_IF_ADDR		T_ETHER_ADDR		/* インタフェースのアドレス			*/
+#define IF_HDR_ALIGN		2			/* ヘッダのアライン単位				*/
+#define IF_MTU			1500			/* インタフェースの MTU				*/
+
+#define IF_OUTPUT(o,d,g,t)	ether_output(o,d,g,t)	/* インタフェースの出力関数			*/
+#define IF_RAW_OUTPUT(o,t)	ether_raw_output(o,t)	/* インタフェースの出力関数、アドレス解決無し	*/
 #define IF_SET_PROTO(b,p)	(GET_ETHER_HDR(b)->type = htons(p))
-							/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã­ãã³ã«è¨­å®é¢æ°		*/
+							/* インタフェースのプロトコル設定関数		*/
 #define IF_SOFTC_TO_IFADDR(s)	((T_IF_ADDR*)(s)->ifaddr.lladdr)
-							/* ã½ããã¦ã§ã¢æ
-å ±ãã MAC ã¢ãã¬ã¹ãåãåºã	*/
-#define IF_GET_IFNET()		ether_get_ifnet()	/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã		*/
-#define IF_TYPE			IFT_ETHER		/* ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®å				*/
-
-/* IPv4 é¢ä¿ */
-
-#define IF_PROTO_IP		ETHER_TYPE_IP		/* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãã­ãã³ã«æå®		*/
-#define IF_PROTO_ARP		ETHER_TYPE_ARP		/* ã¤ã³ã¿ãã§ã¼ã¹ã® ARP ãã­ãã³ã«æå®		*/
-
-/* IPv6 é¢ä¿ */
-
-#define MAX_IF_MADDR_CNT	2			/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
-åã®æå¤§ãµã¤ãº	*/
+							/* ソフトウェア情報から MAC アドレスを取り出す	*/
+#define IF_GET_IFNET()		ether_get_ifnet()	/* ネットワークインタフェース構造体を返す。		*/
+#define IF_TYPE			IFT_ETHER		/* インターフェースの型				*/
+
+/* IPv4 関係 */
+
+#define IF_PROTO_IP		ETHER_TYPE_IP		/* インタフェースの IP プロトコル指定		*/
+#define IF_PROTO_ARP		ETHER_TYPE_ARP		/* インタフェースの ARP プロトコル指定		*/
+
+/* IPv6 関係 */
+
+#define MAX_IF_MADDR_CNT	2			/* インタフェースのマルチキャストアドレス配列の最大サイズ	*/
 #define IF_MADDR_INIT		{ { { 0, 0, 0, 0, 0, 0 } }, { { 0, 0, 0, 0, 0, 0 } } }
-							/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
-åã®åæå	*/
-#define IF_PROTO_IPV6		ETHER_TYPE_IPV6		/* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãã­ãã³ã«æå®			*/
+							/* インタフェースのマルチキャストアドレス配列の初期化	*/
+#define IF_PROTO_IPV6		ETHER_TYPE_IPV6		/* インタフェースの IP プロトコル指定			*/
 #define IF_ADDMULTI(s)		IF_ETHER_NIC_ADDMULTI(s)
-							/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ç»é²				*/
-#define IF_IN6_NEED_CACHE(i)	(true)			/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãä½¿ç¨ããã				*/
+							/* マルチキャストアドレスの登録				*/
+#define IF_IN6_NEED_CACHE(i)	(true)			/* 近隣探索キャッシュを使用する。				*/
 #define IF_IN6_IFID(i,a)	IF_ETHER_NIC_IN6_IFID(i,a)
-							/* ã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ã®è¨­å®				*/
+							/* インタフェース識別子の設定				*/
 #define IF_IN6_RESOLVE_MULTICAST(i,m)	\
 				ether_in6_resolve_multicast(i,m)
-							/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ		*/
-
-/*
- *  åæ¹åç
-§
+							/* インタフェースのマルチキャストアドレスへの変換		*/
+
+/*
+ *  前方参照
  */
 
@@ -223,6 +207,5 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããªãã½ããã¦ã§ã¢æ
-å ±
+ *  ネットワークインタフェースに依存しないソフトウェア情報
  */
 
@@ -230,14 +213,13 @@
 
 struct t_if_softc {
-	T_IF_ADDR		ifaddr;			/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-	uint16_t		timer;			/* éä¿¡ã¿ã¤ã ã¢ã¦ã			*/
-	T_IF_ETHER_NIC_SOFTC	*sc;	/* ãã£ãã¤ã¹ä¾å­ã®ã½ããã¦ã§ã¢æ
-å ±	*/
-	ID			semid_txb_ready;	/* éä¿¡ã»ããã©				*/
-	ID			semid_rxb_ready;	/* åä¿¡ã»ããã©				*/
+	T_IF_ADDR		ifaddr;			/* ネットワークインタフェースのアドレス	*/
+	uint16_t		timer;			/* 送信タイムアウト			*/
+	T_IF_ETHER_NIC_SOFTC	*sc;	/* ディバイス依存のソフトウェア情報	*/
+	ID			semid_txb_ready;	/* 送信セマフォ				*/
+	ID			semid_rxb_ready;	/* 受信セマフォ				*/
 
 #ifdef SUPPORT_INET6
 
-	T_IF_ADDR 	maddrs[MAX_IF_MADDR_CNT];	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãªã¹ã	*/
+	T_IF_ADDR 	maddrs[MAX_IF_MADDR_CNT];	/* マルチキャストアドレスリスト	*/
 
 #endif	/* of #ifdef SUPPORT_INET6 */
@@ -251,6 +233,5 @@
 #ifdef SUPPORT_INET6
 
-/* åæ¹åç
-§ */
+/* 前方参照 */
 
 #ifndef T_IN6_ADDR_DEFINED
@@ -263,5 +244,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -271,5 +252,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -111,5 +99,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -117,5 +105,5 @@
 
 /*
- *  if_slowtimo -- ã¤ã³ã¿ãã§ã¼ã¹ã®ã¯ããããã°ã¿ã¤ãå¶å¾¡
+ *  if_slowtimo -- インタフェースのワッチドッグタイマ制御
  */
 
@@ -136,5 +124,5 @@
 
 /*
- *  ifinit -- ã¤ã³ã¿ãã§ã¼ã¹ç®¡çã®åæå
+ *  ifinit -- インタフェース管理の初期化
  */
 
@@ -148,5 +136,5 @@
 
 /*
- *  if_addmulti -- ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ç»é²
+ *  if_addmulti -- マルチキャストアドレスの登録
  */
 
@@ -163,8 +151,8 @@
 			return E_PAR;
 
-		/* IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/
+		/* IPv6 マルチキャストアドレスを登録する。*/
 		ifp->in_maddrs[ix] = *(T_IN6_ADDR*)maddr;
 
-		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã«å¤æããç»é²ããã*/
+		/* インタフェースのアドレスに変換し、登録する。*/
 		error = IF_IN6_RESOLVE_MULTICAST(&llmaddr, (T_IN6_ADDR*)maddr);
 		if (error != E_OK)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,19 +72,19 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ç¨ã¿ã¤ãã®å®ç¾©
+ *  ネットワークインタフェース用タイマの定義
  */
 
-#define IF_TIMER_TMO		NET_TIMER_HZ	/* ã¿ã¤ã ã¢ã¦ãã1 [s]	*/
-#define IF_TIMER_HZ		1		/* ã¿ã¤ãã®å¨æ³¢æ°ã1 [s]	*/
+#define IF_TIMER_TMO		NET_TIMER_HZ	/* タイムアウト、1 [s]	*/
+#define IF_TIMER_HZ		1		/* タイマの周波数、1 [s]	*/
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã©ã°
+ *  ネットワークインタフェースのフラグ
  */
 
-#define IFF_UP			UINT_C(0x0001)	/* èµ·åæ¸ã¿		*/
-#define IFF_RUNNING		UINT_C(0x0002)	/* åä½ä¸­		*/
+#define IFF_UP			UINT_C(0x0001)	/* 起動済み		*/
+#define IFF_RUNNING		UINT_C(0x0002)	/* 動作中		*/
 
 /*
- *  æ±ç¨å®ç¾©
+ *  汎用定義
  */
 
@@ -105,5 +93,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if6_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if6_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if6_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -83,16 +71,14 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½
+ *  ネットワークインタフェース構造体
  */
 
 struct t_ifnet {
-	T_IF_SOFTC	*ic;		/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
-å ±	*/
+	T_IF_SOFTC	*ic;		/* ネットワークインタフェースのソフトウェア情報	*/
 	T_IN6_IFADDR 	in_ifaddrs[NUM_IN6_IFADDR_ENTRY];
-					/* IPv6 ã¢ãã¬ã¹æ
-å ±				*/
+					/* IPv6 アドレス情報				*/
 	T_IN6_ADDR	in_maddrs [MAX_IN6_MADDR_CNT];
-					/* ãã«ãã­ã£ã¹ã IPv6 ã¢ãã¬ã¹			*/
-	uint8_t		flags;		/* ãã©ã°					*/
+					/* マルチキャスト IPv6 アドレス			*/
+	uint8_t		flags;		/* フラグ					*/
 	};
 
@@ -106,5 +92,5 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -112,5 +98,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_arp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_arp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_arp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -88,20 +76,19 @@
  *  Address Resolution Protocol.
  *
- *  RFC 826 åç
-§
+ *  RFC 826 参照
  */
 
 /*
- *  æ§é ä½
+ *  構造体
  */
 
-/* ARP ããã */
+/* ARP ヘッダ */
 
 typedef struct t_arp_hdr {
-	uint16_t	hrd_addr;	/* ç©çã¢ãã¬ã¹ãã©ã¼ããã	*/
-	uint16_t	proto;		/* ãã­ãã³ã«			*/
-	uint8_t		hdr_len;	/* ç©çã¢ãã¬ã¹é·		*/
-	uint8_t		proto_len;	/* ãã­ãã³ã«é·			*/
-	uint16_t	opcode;		/* å½ä»¤ã³ã¼ã			*/
+	uint16_t	hrd_addr;	/* 物理アドレスフォーマット	*/
+	uint16_t	proto;		/* プロトコル			*/
+	uint8_t		hdr_len;	/* 物理アドレス長		*/
+	uint8_t		proto_len;	/* プロトコル長			*/
+	uint16_t	opcode;		/* 命令コード			*/
 	} __attribute__((packed, aligned(2)))T_ARP_HDR;
 
@@ -113,20 +100,19 @@
 #define GET_IF_ARP_HDR_SIZE(nbuf)	(IF_HDR_SIZE + ARP_HDR_SIZE)
 
-/* hrd_addrãç©çã¢ãã¬ã¹ãã©ã¼ãããã®å¤ */
+/* hrd_addr、物理アドレスフォーマットの値 */
 
 #define ARPHRD_ETHER	1	/* Ethernet	*/
 
-/* opcode, å½ä»¤ã³ã¼ãã®å¤ */
+/* opcode, 命令コードの値 */
 
-#define ARPOP_REQUEST		UINT_C(1)	/* ã¢ãã¬ã¹è§£æ±ºè¦æ±		*/
-#define ARPOP_REPLY		UINT_C(2)	/* ã¢ãã¬ã¹è§£æ±ºå¿ç­		*/
-#define ARPOP_REV_REQUEST	UINT_C(3)	/* ãã­ãã³ã«ã»ã¢ãã¬ã¹è§£æ±ºè¦æ±	*/
-#define ARPOP_REV_REPLY		UINT_C(4)	/* ãã­ãã³ã«ã»ã¢ãã¬ã¹è§£æ±ºè¦æ±	*/
-#define ARPOP_INV_REQUEST	UINT_C(8)	/* çµç«¯è­å¥è¦æ±			*/
-#define ARPOP_INV_REPLY		UINT_C(9)	/* çµç«¯è­å¥è¦æ±			*/
+#define ARPOP_REQUEST		UINT_C(1)	/* アドレス解決要求		*/
+#define ARPOP_REPLY		UINT_C(2)	/* アドレス解決応答		*/
+#define ARPOP_REV_REQUEST	UINT_C(3)	/* プロトコル・アドレス解決要求	*/
+#define ARPOP_REV_REPLY		UINT_C(4)	/* プロトコル・アドレス解決要求	*/
+#define ARPOP_INV_REQUEST	UINT_C(8)	/* 終端識別要求			*/
+#define ARPOP_INV_REPLY		UINT_C(9)	/* 終端識別要求			*/
 
 /*
- *  ã¤ã¼ãµããããã©ã¤ãã¢ã¸ã¥ã¼ã«ã§ä½¿ç¨ããã ARP æ
-å ±
+ *  イーサネットドライバモジュールで使用される ARP 情報
  */
 
@@ -136,11 +122,11 @@
 
 /*
- *  ARP ã­ã£ãã·ã¥æ´æ°ã¿ã¤ãã®å®ç¾©
+ *  ARP キャッシュ更新タイマの定義
  */
 
-#define ARP_TIMER_TMO		(60*NET_TIMER_HZ)	/* ã¿ã¤ã ã¢ã¦ãã60 [s]	*/
+#define ARP_TIMER_TMO		(60*NET_TIMER_HZ)	/* タイムアウト、60 [s]	*/
 
 /*
- *  å¤æ°
+ *  変数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_llc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_llc.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_llc.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -86,5 +74,5 @@
 
 /*
- *  é·ãã®å®ç¾©
+ *  長さの定義
  */
 
@@ -93,5 +81,5 @@
 
 /*
- *  802.3 ããã
+ *  802.3 ヘッダ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -121,9 +109,9 @@
 
 /*
- *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹
- */
-
-/*
- *  å¤é¨é¢æ°ã®å®ç¾©
+ *  ローカルループバックインタフェース
+ */
+
+/*
+ *  外部関数の定義
  */
 
@@ -131,17 +119,16 @@
 
 /*
- *  å¤æ°
- */
-
-/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ */
+ *  変数
+ */
+
+/* ネットワークインタフェース構造体 */
 
 #if defined(SUPPORT_INET4)
 
 static T_IFNET loop_ifnet = {
-	NULL,			/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
-å ±	*/
+	NULL,			/* ネットワークインタフェースのソフトウェア情報	*/
 	{
-		IPV4_ADDR_LOOPBACK,		/* IPv4 ã¢ãã¬ã¹			*/
-		IPV4_ADDR_LOOPBACK_MASK,	/* ãµãããããã¹ã¯			*/
+		IPV4_ADDR_LOOPBACK,		/* IPv4 アドレス			*/
+		IPV4_ADDR_LOOPBACK_MASK,	/* サブネットマスク			*/
 		},
 	};
@@ -152,9 +139,7 @@
 
 static T_IFNET loop_ifnet = {
-	NULL,			/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
-å ±	*/
-	{},			/* IPv6 ã¢ãã¬ã¹æ
-å ±				*/
-	{},			/* ãã«ãã­ã£ã¹ã IPv6 ã¢ãã¬ã¹			*/
+	NULL,			/* ネットワークインタフェースのソフトウェア情報	*/
+	{},			/* IPv6 アドレス情報				*/
+	{},			/* マルチキャスト IPv6 アドレス			*/
 	};
 
@@ -162,5 +147,5 @@
 
 /*
- *  loop_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã
+ *  loop_get_ifnet -- ネットワークインタフェース構造体を返す。
  */
 
@@ -172,5 +157,5 @@
 
 /*
- *  looutput -- ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°
+ *  looutput -- ローカルループバックインタフェースの出力関数
  */
 
@@ -189,5 +174,5 @@
 
 /*
- *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»åºåã¿ã¹ã¯
+ *  ローカルループバックインタフェース・出力タスク
  */
 
@@ -212,6 +197,5 @@
 
 /*
- *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å
-¥åã¿ã¹ã¯
+ *  ローカルループバックインタフェース・入力タスク
  */
 
@@ -231,6 +215,5 @@
 #if defined(SUPPORT_INET4)
 
-			/* IPv4 å
-¥åé¢æ°ãå¼ã³åºã */
+			/* IPv4 入力関数を呼び出す */
 			if (IP4_VHL_V(GET_IP4_HDR(input)->vhl) == IPV4_VERSION)
 				ip_input(input);
@@ -240,6 +223,5 @@
 #if defined(SUPPORT_INET6)
 
-			/* IPv6 å
-¥åé¢æ°ãå¼ã³åºã */
+			/* IPv6 入力関数を呼び出す */
 			if (IP6_VCF_V(ntohl(GET_IP6_HDR(input)->vcf)) == IPV6_VERSION)
 				ip6_input(input);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ループバックインタフェース・コンフィギュレーションファイル
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»ãããã¨ã¢ãã¬ã¹
+ *  ローカルループバックインタフェース・ヘッダとアドレス
  */
 
@@ -91,30 +79,28 @@
 
 /*
- *  ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã­
+ *  インタフェースの選択マクロ
  */
 
-#define T_IF_HDR		T_LOOP_HDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã	*/
-#define T_IF_ADDR		T_LOOP_ADDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-#define IF_HDR_ALIGN		4			/* ãããã®ã¢ã©ã¤ã³åä½		*/
-#define IF_MTU			LOMTU			/* ã¤ã³ã¿ãã§ã¼ã¹ã® MTU		*/
+#define T_IF_HDR		T_LOOP_HDR		/* インタフェースのヘッダ	*/
+#define T_IF_ADDR		T_LOOP_ADDR		/* インタフェースのアドレス	*/
+#define IF_HDR_ALIGN		4			/* ヘッダのアライン単位		*/
+#define IF_MTU			LOMTU			/* インタフェースの MTU		*/
 
-#define IF_OUTPUT(o,d,g,t)	looutput(o,t)		/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°	*/
-#define IF_RAW_OUTPUT(o,t)	looutput(o,t)		/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã*/
-#define IF_SET_PROTO(b,p)				/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã­ãã³ã«è¨­å®é¢æ°	*/
-#define IF_GET_IFNET()		loop_get_ifnet()	/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã		*/
+#define IF_OUTPUT(o,d,g,t)	looutput(o,t)		/* インタフェースの出力関数	*/
+#define IF_RAW_OUTPUT(o,t)	looutput(o,t)		/* インタフェースの出力関数、アドレス解決無し*/
+#define IF_SET_PROTO(b,p)				/* インタフェースのプロトコル設定関数	*/
+#define IF_GET_IFNET()		loop_get_ifnet()	/* ネットワークインタフェース構造体を返す。		*/
 
-/* IPv4 é¢ä¿ */
+/* IPv4 関係 */
 
-#define IF_PROTO_IP		0			/* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãã­ãã³ã«æå®		*/
+#define IF_PROTO_IP		0			/* インタフェースの IP プロトコル指定		*/
 
-/* IPv6 é¢ä¿ */
+/* IPv6 関係 */
 
-#define MAX_IF_MADDR_CNT	0			/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
-åã®æå¤§ãµã¤ãº	*/
-#define IF_IN6_NEED_CACHE(i)	(false)			/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãä½¿ç¨ããã				*/
+#define MAX_IF_MADDR_CNT	0			/* インタフェースのマルチキャストアドレス配列の最大サイズ	*/
+#define IF_IN6_NEED_CACHE(i)	(false)			/* 近隣探索キャッシュを使用する。				*/
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -144,6 +130,5 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããªãã½ããã¦ã§ã¢æ
-å ±
+ *  ネットワークインタフェースに依存しないソフトウェア情報
  */
 
@@ -151,5 +136,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -158,5 +143,5 @@
 
 /*
- *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¦çã¿ã¹ã¯
+ *  ローカルループバックインタフェース・処理タスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_ppp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_ppp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_ppp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -71,36 +59,35 @@
 
 /*
- *  ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã­
+ *  インタフェースの選択マクロ
  */
 
-#define T_IF_HDR		T_PPP_HDR	/* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã			*/
-#define IF_HDR_ALIGN		2		/* ãããã®ã¢ã©ã¤ã³åä½			*/
-#define IF_MTU			DEF_PPP_MTU	/* ã¤ã³ã¿ãã§ã¼ã¹ã® MTU			*/
-						/* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv4 ã¢ãã¬ã¹		*/
-#define IF_PROTO_IP		PPP_IP		/* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãã­ãã³ã«æå®	*/
+#define T_IF_HDR		T_PPP_HDR	/* インタフェースのヘッダ			*/
+#define IF_HDR_ALIGN		2		/* ヘッダのアライン単位			*/
+#define IF_MTU			DEF_PPP_MTU	/* インタフェースの MTU			*/
+						/* インタフェースの IPv4 アドレス		*/
+#define IF_PROTO_IP		PPP_IP		/* インタフェースの IP プロトコル指定	*/
 
-#define IF_OUTPUT(o,d,g,t)	ppp_output(o,t)		/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°		*/
-#define IF_RAW_OUTPUT(o,t)	ppp_output(o,t)		/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã*/
-							/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã­ãã³ã«è¨­å®é¢æ°	*/
+#define IF_OUTPUT(o,d,g,t)	ppp_output(o,t)		/* インタフェースの出力関数		*/
+#define IF_RAW_OUTPUT(o,t)	ppp_output(o,t)		/* インタフェースの出力関数、アドレス解決無し*/
+							/* インタフェースのプロトコル設定関数	*/
 #define IF_SET_PROTO(b,p)	(*GET_PPP_HDR(b) = htons(p))
-#define IF_GET_IFNET()		ppp_get_ifnet()		/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã		*/
+#define IF_GET_IFNET()		ppp_get_ifnet()		/* ネットワークインタフェース構造体を返す。		*/
 
 /*
- *  MTU (MRU) ã«é¢ããå®ç¾©
+ *  MTU (MRU) に関する定義
  */
 
-#define DEF_PPP_MTU		1500	/* PPP ã® æ¨æº MTU	*/
-#define MAX_PPP_MTU		16384	/* PPP ã® æå¤§ MTU	*/
-#define MIN_PPP_MTU		128	/* PPP ã® æå° MTU	*/
+#define DEF_PPP_MTU		1500	/* PPP の 標準 MTU	*/
+#define MAX_PPP_MTU		16384	/* PPP の 最大 MTU	*/
+#define MIN_PPP_MTU		128	/* PPP の 最小 MTU	*/
 
 /*
- *  PPP ããã
+ *  PPP ヘッダ
  */
 
-typedef uint16_t T_PPP_HDR;				/* ä¸ä½ãã­ãã³ã«		*/
+typedef uint16_t T_PPP_HDR;				/* 上位プロトコル		*/
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -130,6 +117,5 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããªãã½ããã¦ã§ã¢æ
-å ±
+ *  ネットワークインタフェースに依存しないソフトウェア情報
  */
 
@@ -137,5 +123,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_types.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_types.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_types.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -80,5 +68,5 @@
 
 /*
- *  ã¤ã³ã¿ãã§ã¼ã¹ã®åã®å®ç¾©
+ *  インタフェースの型の定義
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -83,14 +71,12 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½
+ *  ネットワークインタフェース構造体
  */
 
 struct t_ifnet {
-	T_IF_SOFTC	*ic;		/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
-å ±	*/
-	T_IN4_IFADDR 	in_ifaddr;	/* IPv4 ã¢ãã¬ã¹æ
-å ±				*/
+	T_IF_SOFTC	*ic;		/* ネットワークインタフェースのソフトウェア情報	*/
+	T_IN4_IFADDR 	in_ifaddr;	/* IPv4 アドレス情報				*/
 	ether_status_callback_fn link_callback;
-	uint8_t		flags;		/* ãã©ã°					*/
+	uint8_t		flags;		/* フラグ					*/
 	};
 
@@ -108,6 +94,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,9 @@
 
 /*
- *  å
-±é æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  共通 汎用ネットワークコンフィギュレーションファイル
  */
 
 /*
- * ãããã¯ã¼ã¯ã¿ã¤ã
+ * ネットワークタイマ
  */
 
@@ -69,10 +56,10 @@
 		});
 
-/* ãããã¯ã¼ã¯ã¿ã¤ãã®å¼åºãã¨ã³ããªç¨ã»ããã© */
+/* ネットワークタイマの呼出しエントリ用セマフォ */
 
 CRE_SEM(SEM_CALL_OUT_LOCK,	{ TA_TPRI, 1, 1 });
 CRE_SEM(SEM_CALL_OUT_TIMEOUT,	{ TA_TPRI, 0, NUM_NET_CALLOUT });
 
-/* ãµãã¼ãé¢æ° ip2strãipv62str ç¨ã»ããã© */
+/* サポート関数 ip2str、ipv62str 用セマフォ */
 
 CRE_SEM(SEM_IP2STR_BUFF_LOCK,	{ TA_TPRI, 1, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -81,5 +69,5 @@
 
 /*
- *  ãã¤ããªã¼ãã®å®ç¾©
+ *  バイトオーダの定義
  */
 
@@ -124,5 +112,5 @@
 
 /*
- *  ãã¤ããªã¼ãå¤æã®å®ç¾©
+ *  バイトオーダ変換の定義
  */
 
@@ -140,8 +128,8 @@
 
 /*
- *  æ³¨æ: IPãããä»¥éã¯ã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã¦ããäºã
- *        åæã¨ãã¦ãããã4 ãã¤ãå¢çã§ã¢ã¯ã»ã¹ãã
- *        ãã­ã»ããµã§ããããã¯ã¼ã¯å´ã®ãã¼ã¿ãã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³
- *        ããã¦ããªãå ´åã¯ãntoahlãahtonlãnahcmpl ãä½¿ç¨ãããã¨ã
+ *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
+ *        前提としているが、4 バイト境界でアクセスする
+ *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
+ *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
  */
 
@@ -177,8 +165,8 @@
 
 /*
- *  æ³¨æ: IPãããä»¥éã¯ã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã¦ããäºã
- *        åæã¨ãã¦ãããã4 ãã¤ãå¢çã§ã¢ã¯ã»ã¹ãã
- *        ãã­ã»ããµã§ããããã¯ã¼ã¯å´ã®ãã¼ã¿ãã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³
- *        ããã¦ããªãå ´åã¯ãntoahlãahtonlãnahcmpl ãä½¿ç¨ãããã¨ã
+ *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
+ *        前提としているが、4 バイト境界でアクセスする
+ *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
+ *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
  */
 
@@ -201,8 +189,7 @@
 
 /*
- *  ãã­ãã³ã«ãè­å¥ãããã©ã°ã«é¢ããå®ç¾©
- *
- *    ã»çµ±è¨æ
-å ±
+ *  プロトコルを識別するフラグに関する定義
+ *
+ *    ・統計情報
  */
 
@@ -242,15 +229,15 @@
 
 /*
- *  ã¢ãã¬ã¹å½¢å¼ã®å®ç¾©
- */
-
-#define AT_ETHER		UINT_C(0x01)		/* ã¤ã¼ãµããã		*/
-#define AT_INET4		UINT_C(0x10)		/* IPv4 ã¢ãã¬ã¹	*/
-#define AT_INET6		UINT_C(0x20)		/* IPv6 ã¢ãã¬ã¹	*/
+ *  アドレス形式の定義
+ */
+
+#define AT_ETHER		UINT_C(0x01)		/* イーサネット		*/
+#define AT_INET4		UINT_C(0x10)		/* IPv4 アドレス	*/
+#define AT_INET6		UINT_C(0x20)		/* IPv6 アドレス	*/
 
 #if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY)
 
 /*
- *  TINET ç¬èªé¢æ°
+ *  TINET 独自関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_asp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_asp.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_asp.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,9 @@
 
 /*
- *  ASPç¨ æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ASP用 汎用ネットワークコンフィギュレーションファイル
  */
 
 /*
- *  å
-±é æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ *  共通 汎用ネットワークコンフィギュレーションファイルのインクルード
  */
 
@@ -56,5 +43,5 @@
 
 /*
- * ãããã¯ã¼ã¯ãããã¡
+ * ネットワークバッファ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -90,5 +78,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -272,8 +260,7 @@
 
 /*
- *  nbuf_get_tbl -- ãããã¯ã¼ã¯ãããã¡ç®¡çè¡¨ãç²å¾ããã
+ *  nbuf_get_tbl -- ネットワークバッファ管理表を獲得する。
  *
- *    æ³¨æ: ãããã¯ã¼ã¯çµ±è¨æ
-å ±ã®è¨æ¸¬ç¨
+ *    注意: ネットワーク統計情報の計測用
  */
 
@@ -285,8 +272,7 @@
 
 /*
- *  nbuf_get_tbl_size -- ãããã¯ã¼ã¯ãããã¡ç®¡çã¨ã³ããªæ°ãç²å¾ããã
+ *  nbuf_get_tbl_size -- ネットワークバッファ管理エントリ数を獲得する。
  *
- *    æ³¨æ: ãããã¯ã¼ã¯çµ±è¨æ
-å ±ã®è¨æ¸¬ç¨
+ *    注意: ネットワーク統計情報の計測用
  */
 
@@ -300,5 +286,5 @@
 
 /*
- *  tget_net_buf_up -- å¤§ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ãã¦ããããã¯ã¼ã¯ãããã¡ãç²å¾ããã
+ *  tget_net_buf_up -- 大きなサイズの方向に探索して、ネットワークバッファを獲得する。
  */
 
@@ -309,5 +295,5 @@
 	ER	error = E_OK;
 
-	/* æé©ãªãµã¤ãºã®åºå®é·ã¡ã¢ãªãã¼ã«ãæ¢ãã*/
+	/* 最適なサイズの固定長メモリプールを探す。*/
 	ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY);
 	while (ix -- > 0 && minlen > net_buf_table[ix].size)
@@ -337,5 +323,5 @@
 
 /*
- *  tget_net_buf_down -- å°ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ãã¦ããããã¯ã¼ã¯ãããã¡ãç²å¾ããã
+ *  tget_net_buf_down -- 小さなサイズの方向に探索して、ネットワークバッファを獲得する。
  */
 
@@ -346,5 +332,5 @@
 	ER	error = E_OK;
 
-	/* æé©ãªãµã¤ãºã®åºå®é·ã¡ã¢ãªãã¼ã«ãæ¢ãã*/
+	/* 最適なサイズの固定長メモリプールを探す。*/
 	ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY);
 	while (ix -- > 0 && maxlen > net_buf_table[ix].size)
@@ -375,5 +361,5 @@
 
 /*
- *  tget_net_buf_ex -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼æ¡å¼µæ©è½ï¼ã
+ *  tget_net_buf_ex -- ネットワークバッファを獲得する（拡張機能）。
  */
 
@@ -381,6 +367,5 @@
 tget_net_buf_ex (T_NET_BUF **buf, uint_t minlen, uint_t maxlen, ATR nbatr, TMO tmout)
 {
-	/* æå°ãµã¤ãºãæå¤§ãµã¤ãºãè¶
-ãã¦ãããã¨ã©ã¼ */
+	/* 最小サイズが最大サイズを超えていたらエラー */
 	if ((nbatr & NBA_SEARCH_DESCENT) != 0 && minlen > maxlen) {
 		syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d > maxlen=%4d.", minlen, maxlen);
@@ -388,6 +373,5 @@
 		}
 
-	/* å²å½ã¦å¯è½ãªæå¤§ã®ãµã¤ãºãè¶
-ãã¦ãããã¨ã©ã¼ */
+	/* 割当て可能な最大のサイズを超えていたらエラー */
 	if (minlen > net_buf_table[0].size || maxlen > net_buf_table[0].size) {
 		syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d or maxlen=%4d > %4d",
@@ -396,5 +380,5 @@
 		}
 
-	/* TCP ã§äºç´ãããããã¯ã¼ã¯ãããã¡ãåãåºãã*/
+	/* TCP で予約したネットワークバッファを取り出す。*/
 	if ((nbatr & NBA_RESERVE_TCP) != 0) {
 		if ((*buf = TCP_PULL_RES_NBUF(nbatr)) != NULL) {
@@ -414,5 +398,5 @@
 
 /*
- *  tget_net_buf -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼äºæï¼ã
+ *  tget_net_buf -- ネットワークバッファを獲得する（互換）。
  */
 
@@ -424,5 +408,5 @@
 
 /*
- * rel_net_buf -- ãããã¯ã¼ã¯ãããã¡ãè¿å´ããã
+ * rel_net_buf -- ネットワークバッファを返却する。
  */
 
@@ -432,5 +416,5 @@
 	ER	error = E_OK;
 
-	/* ãããã¯ã¼ã¯ãããã¡ã® ID ã®æ­£å½æ§ãæ¤è¨¼ããã*/
+	/* ネットワークバッファの ID の正当性を検証する。*/
 	if ((int_t)buf->idix >= (int_t)(sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY))) {
 		syslog(LOG_WARNING, "[NET BUF] E_ID, ID=%d.", buf->idix);
@@ -439,9 +423,9 @@
 	else {
 
-		/* TCP ã§ããããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
+		/* TCP で、ネットワークバッファを予約する。*/
 		if (TCP_PUSH_RES_NBUF(buf) == NULL)
 			return E_OK;
 
-		/* åºå®ã¡ã¢ãªãã¼ã«ã«è¿ãã*/
+		/* 固定メモリプールに返す。*/
 		if ((error = rel_mpf((ID)net_buf_table[buf->idix].index, buf)) != E_OK)
 			syslog(LOG_WARNING, "[NET BUF] %s, ID=%d.", itron_strerror(error), buf->idix);
@@ -451,5 +435,5 @@
 
 /*
- * rus_net_buf -- ãããã¯ã¼ã¯ãããã¡ãåå©ç¨ããã
+ * rus_net_buf -- ネットワークバッファを再利用する。
  */
 
@@ -472,5 +456,5 @@
 
 /*
- * net_buf_siz -- ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãè¿ãã
+ * net_buf_siz -- ネットワークバッファのサイズを返す。
  */
 
@@ -487,5 +471,5 @@
 
 /*
- * net_buf_max_siz -- ãããã¯ã¼ã¯ãããã¡ã®æå¤§ãµã¤ãºãè¿ãã
+ * net_buf_max_siz -- ネットワークバッファの最大サイズを返す。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,11 +36,9 @@
 
 /*
- *  ãããã¯ã¼ã¯ãããã¡
+ *  ネットワークバッファ
  *
- *    4 ãªã¯ãããã§ã¢ã©ã¤ã³ããå¿
-è¦ã®ãããã­ã»ããµãèæ
-®ãã¦ã
- *    IF ããããµã¤ãºã 4 ãªã¯ãããå¢çã§ãªãã®å ´åã
- *    IP ãããä»¥éã 4 ãªã¯ãããå¢çã«èª¿æ´ããã
+ *    4 オクテットでアラインする必要のあるプロセッサを考慮して、
+ *    IF ヘッダサイズが 4 オクテット境界でないの場合、
+ *    IP ヘッダ以降を 4 オクテット境界に調整する。
  */
 
@@ -62,18 +48,18 @@
 
 /*
- *  ãã³ãã¬ã¼ã
+ *  テンプレート
  */
 
 struct t_net_buf {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
-#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
-	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
-#endif
-#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
-	uint8_t		halign[4 - IF_HDR_ALIGN];
-#endif
-	uint8_t		buf[4];	/* ãããã¡æ¬ä½		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[4];	/* バッファ本体		*/
 	};
 
@@ -86,96 +72,96 @@
 #endif	/* of #ifndef T_NET_BUF_DEFINED */
 /*
- *  64 ãªã¯ããã
+ *  64 オクテット
  */
 
 typedef struct t_net_buf_64 {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
-#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
-	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
-#endif
-#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
-	uint8_t		halign[4 - IF_HDR_ALIGN];
-#endif
-	uint8_t		buf[64]; /* ãããã¡æ¬ä½	*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[64]; /* バッファ本体	*/
 	} T_NET_BUF_64;
 
 /*
- *  128 ãªã¯ããã
+ *  128 オクテット
  */
 
 typedef struct t_net_buf_128 {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
-#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
-	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
-#endif
-#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
-	uint8_t		halign[4 - IF_HDR_ALIGN];
-#endif
-	uint8_t		buf[128]; /* ãããã¡æ¬ä½	*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[128]; /* バッファ本体	*/
 	} T_NET_BUF_128;
 
 /*
- *  256 ãªã¯ããã
+ *  256 オクテット
  */
 
 typedef struct t_net_buf_256 {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
-#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
-	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
-#endif
-#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
-	uint8_t		halign[4 - IF_HDR_ALIGN];
-#endif
-	uint8_t		buf[256]; /* ãããã¡æ¬ä½	*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[256]; /* バッファ本体	*/
 	} T_NET_BUF_256;
 
 /*
- *  512 ãªã¯ããã
+ *  512 オクテット
  */
 
 typedef struct t_net_buf_512 {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
-#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
-	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
-#endif
-#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
-	uint8_t		halign[4 - IF_HDR_ALIGN];
-#endif
-	uint8_t		buf[512];/* ãããã¡æ¬ä½	*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[512];/* バッファ本体	*/
 	} T_NET_BUF_512;
 
 /*
- *  1024 ãªã¯ããã
+ *  1024 オクテット
  */
 
 typedef struct t_net_buf_1024 {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
-#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
-	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
-#endif
-#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
-	uint8_t		halign[4 - IF_HDR_ALIGN];
-#endif
-	uint8_t		buf[1024]; /* ãããã¡æ¬ä½	*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[1024]; /* バッファ本体	*/
 	} T_NET_BUF_1024;
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æå¤§ PDU ãµã¤ãº
+ *  ネットワークインタフェースの最大 PDU サイズ
  */
 
 typedef struct t_net_buf_if_pdu {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -185,12 +171,12 @@
 #endif
 	uint8_t		buf[IF_PDU_SIZE];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 #if defined(IF_PDU_HDR_PADDING)
 	uint8_t		padding[IF_PDU_HDR_PADDING];
-#endif				/* ãããã®ä½å		*/
+#endif				/* ヘッダの余分		*/
 	} T_NET_BUF_IF_PDU;
 
 /*
- *  ãããã¯ã¼ã¯ãããã¡è¡¨
+ *  ネットワークバッファ表
  */
 
@@ -212,31 +198,31 @@
 
 /*
- *  ãããã¯ã¼ã¯ãããã¡ã»ãã©ã°	
- */
-
-/*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹åºåå¾ã«ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªãã
- *  æ³¨æ: åºåå¾ã«ãã®ãã©ã°ã¯ã¯ãªã¢ãããã
+ *  ネットワークバッファ・フラグ	
+ */
+
+/*
+ *  ネットワークインタフェース出力後にネットワークバッファを開放しない。
+ *  注意: 出力後にこのフラグはクリアされる。
  */
 #define NB_FLG_NOREL_IFOUT	UINT_C(0x80)
 
 /*
- *  ESP ç¨ãã©ã°
+ *  ESP 用フラグ
  */
 #define NB_FLG_DECRYPED		UINT_C(0x40)
 
 /*
- *  ãããã¯ã¼ã¯ãããã¡ç²å¾å±æ§
- */
-
-/* æ¢ç´¢å±æ§ */
-
-#define NBA_SEARCH_ASCENT	UINT_C(0x1000)	/* å¤§ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã	*/
-#define NBA_SEARCH_DESCENT	UINT_C(0x2000)	/* å°ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã	*/
-#define NBA_RESERVE_TCP		UINT_C(0x4000)	/* TCP ç¨ã«ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
-#define NBA_ID_MASK		UINT_C(0x0fff)	/* éä¿¡ç«¯ç¹ ID ãæ¸¡ãå ´åã®ãã¹ã¯å¤	*/
-
-/*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  ネットワークバッファ獲得属性
+ */
+
+/* 探索属性 */
+
+#define NBA_SEARCH_ASCENT	UINT_C(0x1000)	/* 大きなサイズの方向に探索する。	*/
+#define NBA_SEARCH_DESCENT	UINT_C(0x2000)	/* 小さなサイズの方向に探索する。	*/
+#define NBA_RESERVE_TCP		UINT_C(0x4000)	/* TCP 用にネットワークバッファを予約する。*/
+#define NBA_ID_MASK		UINT_C(0x0fff)	/* 通信端点 ID を渡す場合のマスク値	*/
+
+/*
+ *  関数シミュレーションマクロ
  */
 
@@ -244,5 +230,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -111,6 +99,5 @@
 
 /* 
- *  ãããã¯ã¼ã¯çµ±è¨æ
-å ±ã®è¨æ¸¬
+ *  ネットワーク統計情報の計測
  */
 
@@ -136,5 +123,5 @@
 
 /*
- *  è¨æ¸¬ç¨å¤æ°
+ *  計測用変数
  */
 
@@ -144,5 +131,5 @@
 
 T_NET_COUNT	net_count_ppp;
-T_NET_COUNT_VAL	net_count_ppp_no_bufs;		/* net_buf å²ãå½ã¦å¤±ææ°	*/
+T_NET_COUNT_VAL	net_count_ppp_no_bufs;		/* net_buf 割り当て失敗数	*/
 
 #endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -81,6 +69,5 @@
 
 /*
- *  ãããã¯ã¼ã¯çµ±è¨æ
-å ±ã®è¨æ¸¬
+ *  ネットワーク統計情報の計測
  */
 
@@ -96,10 +83,10 @@
 
 typedef struct t_net_count {
-	T_NET_COUNT_VAL	in_octets;		/* åä¿¡ãªã¯ãããæ°	*/
-	T_NET_COUNT_VAL	out_octets;		/* éä¿¡ãªã¯ãããæ°	*/
-	T_NET_COUNT_VAL	in_packets;		/* åä¿¡ãã±ããæ°	*/
-	T_NET_COUNT_VAL	out_packets;		/* éä¿¡ãã±ããæ°	*/
-	T_NET_COUNT_VAL	in_err_packets;		/* åä¿¡ã¨ã©ã¼ãã±ããæ°	*/
-	T_NET_COUNT_VAL	out_err_packets;	/* éä¿¡ã¨ã©ã¼ãã±ããæ°	*/
+	T_NET_COUNT_VAL	in_octets;		/* 受信オクテット数	*/
+	T_NET_COUNT_VAL	out_octets;		/* 送信オクテット数	*/
+	T_NET_COUNT_VAL	in_packets;		/* 受信バケット数	*/
+	T_NET_COUNT_VAL	out_packets;		/* 送信バケット数	*/
+	T_NET_COUNT_VAL	in_err_packets;		/* 受信エラーバケット数	*/
+	T_NET_COUNT_VAL	out_err_packets;	/* 送信エラーバケット数	*/
 	} T_NET_COUNT;
 
@@ -119,9 +106,9 @@
 
 extern T_NET_COUNT	net_count_ppp;
-extern T_NET_COUNT_VAL	net_count_ppp_no_bufs;	/* net_buf å²ãå½ã¦å¤±ææ°	*/
-
-#endif	/* of #ifndef _MACRO_ONLY */
-
-#define NC_PPP_SIZE	7			/* ã«ã¦ã³ã¿æ° */
+extern T_NET_COUNT_VAL	net_count_ppp_no_bufs;	/* net_buf 割り当て失敗数	*/
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#define NC_PPP_SIZE	7			/* カウンタ数 */
 
 #else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */
@@ -229,5 +216,5 @@
 #ifdef SUPPORT_LOOP
 
-/* ã«ã¼ãããã¯ */
+/* ループバック */
 
 #if NET_COUNT_ENABLE & PROTO_FLG_LOOP
@@ -273,17 +260,17 @@
 #if NET_COUNT_ENABLE & PROTO_FLG_ETHER_NIC
 
-#define NC_ETHER_NIC_RESETS		0	/* ãªã»ããæ°			*/
-#define NC_ETHER_NIC_TXB_QOVRS		1	/* éä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°*/
-#define NC_ETHER_NIC_TIMEOUTS		2	/* éä¿¡ã¿ã¤ã ã¢ã¦ãæ°		*/
-#define NC_ETHER_NIC_COLS		3	/* ã³ãªã¸ã§ã³æ°			*/
-#define NC_ETHER_NIC_OUT_ERR_PACKETS	4	/* éä¿¡ã¨ã©ã¼ãã±ããæ°		*/
-#define NC_ETHER_NIC_OUT_PACKETS	5	/* éä¿¡ãã±ããæ°		*/
-#define NC_ETHER_NIC_OUT_OCTETS		6	/* éä¿¡ãªã¯ãããæ°		*/
-#define NC_ETHER_NIC_RXB_QOVRS		7	/* åä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°*/
-#define NC_ETHER_NIC_NO_BUFS		8	/* net_buf å²ãå½ã¦å¤±ææ°	*/
-#define NC_ETHER_NIC_IN_ERR_PACKETS	9	/* åä¿¡ã¨ã©ã¼ãã±ããæ°		*/
-#define NC_ETHER_NIC_IN_PACKETS		10	/* åä¿¡ãã±ããæ°		*/
-#define NC_ETHER_NIC_IN_OCTETS		11	/* åä¿¡ãªã¯ãããæ°		*/
-#define NC_ETHER_NIC_SIZE		12	/* ã«ã¦ã³ã¿æ°			*/
+#define NC_ETHER_NIC_RESETS		0	/* リセット数			*/
+#define NC_ETHER_NIC_TXB_QOVRS		1	/* 送信セマフォ資源返却上限オーバー数*/
+#define NC_ETHER_NIC_TIMEOUTS		2	/* 送信タイムアウト数		*/
+#define NC_ETHER_NIC_COLS		3	/* コリジョン数			*/
+#define NC_ETHER_NIC_OUT_ERR_PACKETS	4	/* 送信エラーバケット数		*/
+#define NC_ETHER_NIC_OUT_PACKETS	5	/* 送信バケット数		*/
+#define NC_ETHER_NIC_OUT_OCTETS		6	/* 送信オクテット数		*/
+#define NC_ETHER_NIC_RXB_QOVRS		7	/* 受信セマフォ資源返却上限オーバー数*/
+#define NC_ETHER_NIC_NO_BUFS		8	/* net_buf 割り当て失敗数	*/
+#define NC_ETHER_NIC_IN_ERR_PACKETS	9	/* 受信エラーバケット数		*/
+#define NC_ETHER_NIC_IN_PACKETS		10	/* 受信バケット数		*/
+#define NC_ETHER_NIC_IN_OCTETS		11	/* 受信オクテット数		*/
+#define NC_ETHER_NIC_SIZE		12	/* カウンタ数			*/
 
 #define NET_COUNT_ETHER_NIC(v,c)	((v)+=(c))
@@ -303,5 +290,5 @@
 #endif	/* of #ifdef SUPPORT_ETHER */
 
-/* ãããã¯ã¼ã¯ãããã¡ */
+/* ネットワークバッファ */
 
 #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
@@ -339,26 +326,25 @@
 #if NET_COUNT_ENABLE & PROTO_FLG_IP4
 
-#define NC_IP4_FRAG_OUT_FRAGS		0	/* åå²éä¿¡ããã©ã°ã¡ã³ãæ°	*/
-#define NC_IP4_FRAG_OUT			1	/* åå²éä¿¡æ°			*/
-#define NC_IP4_OUT_ERR_PACKETS		2	/* éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°	*/
-#define NC_IP4_OUT_PACKETS		3	/* éä¿¡ãã¼ã¿ã°ã©ã æ°		*/
-#define NC_IP4_OUT_OCTETS		4	/* éä¿¡ãªã¯ãããæ°		*/
-#define NC_IP4_FRAG_IN_TMOUT		5	/* åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°		*/
-#define NC_IP4_FRAG_IN_NO_BUF		6	/* åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°	*/
-#define NC_IP4_FRAG_IN_DROP		7	/* åå²åä¿¡ç ´æ£æ°		*/
-#define NC_IP4_FRAG_IN_OK		8	/* åå²åä¿¡åæ§ææåæ°		*/
-#define NC_IP4_FRAG_IN_FRAGS		9	/* åå²åä¿¡ãã©ã°ã¡ã³ãæ°		*/
-#define NC_IP4_FRAG_IN			10	/* åå²åä¿¡æ°			*/
-#define NC_IP4_OPTS			11	/* ãªãã·ã§ã³å
-¥åæ°		*/
-#define NC_IP4_IN_ERR_PROTO		12	/* ãã­ãã³ã«ã¨ã©ã¼æ°		*/
-#define NC_IP4_IN_ERR_ADDR		13	/* ã¢ãã¬ã¹ã¨ã©ã¼æ°		*/
-#define NC_IP4_IN_ERR_VER		14	/* ãã¼ã¸ã§ã³ã¨ã©ã¼æ°		*/
-#define NC_IP4_IN_ERR_SHORT		15	/* é·ãã¨ã©ã¼æ°			*/
-#define NC_IP4_IN_ERR_CKSUM		16	/* ãã§ãã¯ãµã ã¨ã©ã¼æ°		*/
-#define NC_IP4_IN_ERR_PACKETS		17	/* åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°	*/
-#define NC_IP4_IN_PACKETS		18	/* åä¿¡ãã¼ã¿ã°ã©ã æ°		*/
-#define NC_IP4_IN_OCTETS		19	/* åä¿¡ãªã¯ãããæ°		*/
-#define NC_IP4_SIZE			20	/* ã«ã¦ã³ã¿æ°			*/
+#define NC_IP4_FRAG_OUT_FRAGS		0	/* 分割送信、フラグメント数	*/
+#define NC_IP4_FRAG_OUT			1	/* 分割送信数			*/
+#define NC_IP4_OUT_ERR_PACKETS		2	/* 送信エラーデータグラム数	*/
+#define NC_IP4_OUT_PACKETS		3	/* 送信データグラム数		*/
+#define NC_IP4_OUT_OCTETS		4	/* 送信オクテット数		*/
+#define NC_IP4_FRAG_IN_TMOUT		5	/* 分割受信タイムアウト数		*/
+#define NC_IP4_FRAG_IN_NO_BUF		6	/* 分割受信バッファり当て失敗数	*/
+#define NC_IP4_FRAG_IN_DROP		7	/* 分割受信破棄数		*/
+#define NC_IP4_FRAG_IN_OK		8	/* 分割受信再構成成功数		*/
+#define NC_IP4_FRAG_IN_FRAGS		9	/* 分割受信フラグメント数		*/
+#define NC_IP4_FRAG_IN			10	/* 分割受信数			*/
+#define NC_IP4_OPTS			11	/* オプション入力数		*/
+#define NC_IP4_IN_ERR_PROTO		12	/* プロトコルエラー数		*/
+#define NC_IP4_IN_ERR_ADDR		13	/* アドレスエラー数		*/
+#define NC_IP4_IN_ERR_VER		14	/* バージョンエラー数		*/
+#define NC_IP4_IN_ERR_SHORT		15	/* 長さエラー数			*/
+#define NC_IP4_IN_ERR_CKSUM		16	/* チェックサムエラー数		*/
+#define NC_IP4_IN_ERR_PACKETS		17	/* 受信エラーデータグラム数	*/
+#define NC_IP4_IN_PACKETS		18	/* 受信データグラム数		*/
+#define NC_IP4_IN_OCTETS		19	/* 受信オクテット数		*/
+#define NC_IP4_SIZE			20	/* カウンタ数			*/
 
 #define NET_COUNT_IP4(v,c)	((v)+=(c))
@@ -402,23 +388,23 @@
 #if NET_COUNT_ENABLE & PROTO_FLG_IP6
 
-#define NC_IP6_FRAG_OUT_FRAGS		0	/* åå²éä¿¡ããã©ã°ã¡ã³ãæ°	*/
-#define NC_IP6_FRAG_OUT			1	/* åå²éä¿¡æ°			*/
-#define NC_IP6_OUT_ERR_PACKETS		2	/* éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°	*/
-#define NC_IP6_OUT_PACKETS		3	/* éä¿¡ãã¼ã¿ã°ã©ã æ°		*/
-#define NC_IP6_OUT_OCTETS		4	/* éä¿¡ãªã¯ãããæ°		*/
-#define NC_IP6_FRAG_IN_TMOUT		5	/* åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°		*/
-#define NC_IP6_FRAG_IN_NO_BUF		6	/* åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°	*/
-#define NC_IP6_FRAG_IN_DROP		7	/* åå²åä¿¡ç ´æ£æ°		*/
-#define NC_IP6_FRAG_IN_OK		8	/* åå²åä¿¡åæ§ææåæ°		*/
-#define NC_IP6_FRAG_IN_FRAGS		9	/* åå²åä¿¡ãã©ã°ã¡ã³ãæ°		*/
-#define NC_IP6_FRAG_IN			10	/* åå²åä¿¡æ°			*/
-#define NC_IP6_IN_ERR_PROTO		11	/* ãã­ãã³ã«ã¨ã©ã¼æ°		*/
-#define NC_IP6_IN_ERR_ADDR		12	/* ã¢ãã¬ã¹ã¨ã©ã¼æ°		*/
-#define NC_IP6_IN_ERR_VER		13	/* ãã¼ã¸ã§ã³ã¨ã©ã¼æ°		*/
-#define NC_IP6_IN_ERR_SHORT		14	/* é·ãã¨ã©ã¼æ°			*/
-#define NC_IP6_IN_ERR_PACKETS		15	/* åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°	*/
-#define NC_IP6_IN_PACKETS		16	/* åä¿¡ãã¼ã¿ã°ã©ã æ°		*/
-#define NC_IP6_IN_OCTETS		17	/* åä¿¡ãªã¯ãããæ°		*/
-#define NC_IP6_SIZE			18	/* ã«ã¦ã³ã¿æ°			*/
+#define NC_IP6_FRAG_OUT_FRAGS		0	/* 分割送信、フラグメント数	*/
+#define NC_IP6_FRAG_OUT			1	/* 分割送信数			*/
+#define NC_IP6_OUT_ERR_PACKETS		2	/* 送信エラーデータグラム数	*/
+#define NC_IP6_OUT_PACKETS		3	/* 送信データグラム数		*/
+#define NC_IP6_OUT_OCTETS		4	/* 送信オクテット数		*/
+#define NC_IP6_FRAG_IN_TMOUT		5	/* 分割受信タイムアウト数		*/
+#define NC_IP6_FRAG_IN_NO_BUF		6	/* 分割受信バッファり当て失敗数	*/
+#define NC_IP6_FRAG_IN_DROP		7	/* 分割受信破棄数		*/
+#define NC_IP6_FRAG_IN_OK		8	/* 分割受信再構成成功数		*/
+#define NC_IP6_FRAG_IN_FRAGS		9	/* 分割受信フラグメント数		*/
+#define NC_IP6_FRAG_IN			10	/* 分割受信数			*/
+#define NC_IP6_IN_ERR_PROTO		11	/* プロトコルエラー数		*/
+#define NC_IP6_IN_ERR_ADDR		12	/* アドレスエラー数		*/
+#define NC_IP6_IN_ERR_VER		13	/* バージョンエラー数		*/
+#define NC_IP6_IN_ERR_SHORT		14	/* 長さエラー数			*/
+#define NC_IP6_IN_ERR_PACKETS		15	/* 受信エラーデータグラム数	*/
+#define NC_IP6_IN_PACKETS		16	/* 受信データグラム数		*/
+#define NC_IP6_IN_OCTETS		17	/* 受信オクテット数		*/
+#define NC_IP6_SIZE			18	/* カウンタ数			*/
 
 #define NET_COUNT_IP6(v,c)	((v)+=(c))
@@ -438,12 +424,12 @@
 #if NET_COUNT_ENABLE & PROTO_FLG_ICMP6
 
-#define NC_ICMP6_OUT_ERR_PACKETS	0	/* éä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°	*/
-#define NC_ICMP6_OUT_PACKETS		1	/* éä¿¡ ICMP ãã¼ã¿æ°		*/
-#define NC_ICMP6_OUT_OCTETS		2	/* éä¿¡ ICMP ãªã¯ãããæ°		*/
-#define NC_ICMP6_IN_ERR_CKSUM		3	/* é·ãã¨ã©ã¼æ°			*/
-#define NC_ICMP6_IN_ERR_PACKETS		4	/* åä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°	*/
-#define NC_ICMP6_IN_PACKETS		5	/* åä¿¡ ICMP ãã¼ã¿æ°		*/
-#define NC_ICMP6_IN_OCTETS		6	/* åä¿¡ ICMP ãªã¯ãããæ°		*/
-#define NC_ICMP6_SIZE			7	/* ã«ã¦ã³ã¿æ°			*/
+#define NC_ICMP6_OUT_ERR_PACKETS	0	/* 送信エラー ICMP データ数	*/
+#define NC_ICMP6_OUT_PACKETS		1	/* 送信 ICMP データ数		*/
+#define NC_ICMP6_OUT_OCTETS		2	/* 送信 ICMP オクテット数		*/
+#define NC_ICMP6_IN_ERR_CKSUM		3	/* 長さエラー数			*/
+#define NC_ICMP6_IN_ERR_PACKETS		4	/* 受信エラー ICMP データ数	*/
+#define NC_ICMP6_IN_PACKETS		5	/* 受信 ICMP データ数		*/
+#define NC_ICMP6_IN_OCTETS		6	/* 受信 ICMP オクテット数		*/
+#define NC_ICMP6_SIZE			7	/* カウンタ数			*/
 
 #define NET_COUNT_ICMP6(v,c)	((v)+=(c))
@@ -463,12 +449,12 @@
 #if NET_COUNT_ENABLE & PROTO_FLG_ND6
 
-#define NC_ND6_DAD_OUT_PACKETS		0	/* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°		*/
-#define NC_ND6_NS_OUT_PACKETS		1	/* è¿é£è¦è«éä¿¡æ°		*/
-#define NC_ND6_NS_IN_PACKETS		2	/* è¿é£è¦è«åä¿¡æ°		*/
-#define NC_ND6_NA_OUT_PACKETS		3	/* è¿é£éç¥éä¿¡æ°		*/
-#define NC_ND6_NA_IN_PACKETS		4	/* è¿é£éç¥åä¿¡æ°		*/
-#define NC_ND6_RS_OUT_PACKETS		5	/* ã«ã¼ã¿è¦è«åºåæ°		*/
-#define NC_ND6_RA_IN_PACKETS		6	/* ã«ã¼ã¿éç¥åä¿¡æ°		*/
-#define NC_ND6_SIZE			7	/* ã«ã¦ã³ã¿æ°			*/
+#define NC_ND6_DAD_OUT_PACKETS		0	/* 重複アドレス検出送信数		*/
+#define NC_ND6_NS_OUT_PACKETS		1	/* 近隣要請送信数		*/
+#define NC_ND6_NS_IN_PACKETS		2	/* 近隣要請受信数		*/
+#define NC_ND6_NA_OUT_PACKETS		3	/* 近隣通知送信数		*/
+#define NC_ND6_NA_IN_PACKETS		4	/* 近隣通知受信数		*/
+#define NC_ND6_RS_OUT_PACKETS		5	/* ルータ要請出力数		*/
+#define NC_ND6_RA_IN_PACKETS		6	/* ルータ通知受信数		*/
+#define NC_ND6_SIZE			7	/* カウンタ数			*/
 
 #define NET_COUNT_ND6(v,c)	((v)+=(c))
@@ -494,29 +480,29 @@
 #if NET_COUNT_ENABLE & PROTO_FLG_TCP
 
-#define NC_TCP_CONNECTS			0	/* è½åãªã¼ãã³æ°		*/
-#define NC_TCP_ACCEPTS			1	/* ååãªã¼ãã³æ°		*/
-#define NC_TCP_RTT_UPDATES		2	/* RTT æ´æ°æ°			*/
-#define NC_TCP_SEND_RSTS		3	/* éä¿¡ãRST æ°			*/
-#define NC_TCP_SEND_ACKS		4	/* éä¿¡ãACK æ°			*/
-#define NC_TCP_SEND_URG_SEGS		5	/* éä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°	*/
-#define NC_TCP_SEND_DATA_SEGS		6	/* éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°	*/
-#define NC_TCP_SEND_REXMIT_SEGS		7	/* åéä¿¡ã»ã°ã¡ã³ãæ°		*/
-#define NC_TCP_SEND_SEGS		8	/* éä¿¡ã»ã°ã¡ã³ãæ°		*/
-#define NC_TCP_SEND_CNTL_SEGS		9	/* éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°		*/
-#define NC_TCP_SEND_DATA_OCTETS		10	/* éä¿¡ãã¼ã¿ãªã¯ãããæ°	*/
-#define NC_TCP_FREE_RCV_QUEUE		11	/* åä¿¡ã­ã¥ã¼è§£æ¾æ°		*/
-#define NC_TCP_RECV_DUP_SEGS		12	/* åä¿¡ãå¤éæ°			*/
-#define NC_TCP_RECV_DROP_SEGS		13	/* åä¿¡ãç ´æ£æ°			*/
-#define NC_TCP_RECV_RSTS		14	/* åä¿¡ãRST æ°			*/
-#define NC_TCP_RECV_DUP_ACKS		15	/* åä¿¡ãå¤é ACK æ°		*/
-#define NC_TCP_RECV_ACKS		16	/* åä¿¡ãACK æ°			*/
-#define NC_TCP_RECV_BAD_CKSUMS		17	/* åä¿¡ããã§ãã¯ãµã ä¸æ­£æ°	*/
-#define NC_TCP_RECV_BAD_HEADERS		18	/* åä¿¡ããããä¸æ­£æ°		*/
-#define NC_TCP_RECV_URG_SEGS		19	/* åä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°	*/
-#define NC_TCP_RECV_DATA_SEGS		20	/* åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°	*/
-#define NC_TCP_RECV_SEGS		21	/* åä¿¡ã»ã°ã¡ã³ãæ°		*/
-#define NC_TCP_RECV_DATA_OCTETS		22	/* åä¿¡ãã¼ã¿ãªã¯ãããæ°	*/
-#define NC_TCP_RECV_OCTETS		23	/* åä¿¡ãªã¯ãããæ°		*/
-#define NC_TCP_SIZE			24	/* ã«ã¦ã³ã¿æ°			*/
+#define NC_TCP_CONNECTS			0	/* 能動オープン数		*/
+#define NC_TCP_ACCEPTS			1	/* 受動オープン数		*/
+#define NC_TCP_RTT_UPDATES		2	/* RTT 更新数			*/
+#define NC_TCP_SEND_RSTS		3	/* 送信、RST 数			*/
+#define NC_TCP_SEND_ACKS		4	/* 送信、ACK 数			*/
+#define NC_TCP_SEND_URG_SEGS		5	/* 送信、緊急セグメント数	*/
+#define NC_TCP_SEND_DATA_SEGS		6	/* 送信データセグメント数	*/
+#define NC_TCP_SEND_REXMIT_SEGS		7	/* 再送信セグメント数		*/
+#define NC_TCP_SEND_SEGS		8	/* 送信セグメント数		*/
+#define NC_TCP_SEND_CNTL_SEGS		9	/* 送信制御セグメント数		*/
+#define NC_TCP_SEND_DATA_OCTETS		10	/* 送信データオクテット数	*/
+#define NC_TCP_FREE_RCV_QUEUE		11	/* 受信キュー解放数		*/
+#define NC_TCP_RECV_DUP_SEGS		12	/* 受信、多重数			*/
+#define NC_TCP_RECV_DROP_SEGS		13	/* 受信、破棄数			*/
+#define NC_TCP_RECV_RSTS		14	/* 受信、RST 数			*/
+#define NC_TCP_RECV_DUP_ACKS		15	/* 受信、多重 ACK 数		*/
+#define NC_TCP_RECV_ACKS		16	/* 受信、ACK 数			*/
+#define NC_TCP_RECV_BAD_CKSUMS		17	/* 受信、チェックサム不正数	*/
+#define NC_TCP_RECV_BAD_HEADERS		18	/* 受信、ヘッダ不正数		*/
+#define NC_TCP_RECV_URG_SEGS		19	/* 受信、緊急セグメント数	*/
+#define NC_TCP_RECV_DATA_SEGS		20	/* 受信データセグメント数	*/
+#define NC_TCP_RECV_SEGS		21	/* 受信セグメント数		*/
+#define NC_TCP_RECV_DATA_OCTETS		22	/* 受信データオクテット数	*/
+#define NC_TCP_RECV_OCTETS		23	/* 受信オクテット数		*/
+#define NC_TCP_SIZE			24	/* カウンタ数			*/
 
 #define NET_COUNT_TCP(v,c)	((v)+=(c))
@@ -561,6 +547,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_jsp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_jsp.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_jsp.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,11 +33,10 @@
 
 /*
- *  JSPç¨ æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  JSP用 汎用ネットワークコンフィギュレーションファイル
  */
 
 
 /*
- *  å
-±é æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ *  共通 汎用ネットワークコンフィギュレーションファイルのインクルード
  */
 
@@ -57,5 +44,5 @@
 
 /*
- * ãããã¯ã¼ã¯ãããã¡
+ * ネットワークバッファ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_rename.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_rename.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,6 +36,5 @@
 
 /*
- *  æ±ç¨ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹å
-é¨åã®ãªãã¼ã 
+ *  汎用ネットワークインタフェース内部名のリネーム
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_subr.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_subr.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -78,5 +66,5 @@
 
 /* 
- *  ãããã¯ã¼ã¯æ±ç¨ãµãã¼ãã«ã¼ãã³
+ *  ネットワーク汎用サポートルーチン
  */
 
@@ -103,5 +91,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -109,5 +97,5 @@
 
 /*
- *  net_rand -- ä¹±æ°ãè¿ãã
+ *  net_rand -- 乱数を返す。
  */
 
@@ -120,5 +108,5 @@
 
 /*
- *  srand -- ä¹±æ°ãåæåããã
+ *  srand -- 乱数を初期化する。
  */
 
@@ -130,5 +118,5 @@
 
 /*
- *  convert_hexdigit -- 16é²æ°âæå­åå¤æ
+ *  convert_hexdigit -- 16進数→文字列変換
  */
 
@@ -158,5 +146,5 @@
 
 /*
- *  mac2str -- MAC ã¢ãã¬ã¹ãæå­åã«å¤æããã
+ *  mac2str -- MAC アドレスを文字列に変換する。
  */
 
@@ -198,8 +186,8 @@
 
 /*
- *  rev_memcpy_word -- åè»¢ã¡ã¢ãªã³ãã¼ï¼4 ãã¤ãï¼
- *
- *    ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã
- *    å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ãè§£æ±ºããã
+ *  rev_memcpy_word -- 反転メモリコピー（4 バイト）
+ *
+ *    バイト単位にアクセスする事により、
+ *    境界へのアラインの問題を解決する。
  */
 
@@ -214,8 +202,8 @@
 
 /*
- *  rev_memcmp_word -- åè»¢ã¡ã¢ãªæ¯è¼ï¼4 ãã¤ãï¼
- *
- *    ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã
- *    å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ãè§£æ±ºããã
+ *  rev_memcmp_word -- 反転メモリ比較（4 バイト）
+ *
+ *    バイト単位にアクセスする事により、
+ *    境界へのアラインの問題を解決する。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -113,5 +101,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -119,5 +107,5 @@
 
 /*
- *  å¼åºãã¨ã³ããªç»é²
+ *  呼出しエントリ登録
  */
 
@@ -127,5 +115,5 @@
 	int_t ix;
 
-	/* å¼åºãã¨ã³ããªãç²å¾ãã */
+	/* 呼出しエントリを獲得する */
 	syscall(wai_sem(SEM_CALL_OUT_LOCK));
 	for (ix = NUM_NET_CALLOUT; callout[-- ix].func != NULL; )
@@ -136,5 +124,5 @@
 			}
 
-	/* å¼åºãã¨ã³ããªãè¨­å®ãã */
+	/* 呼出しエントリを設定する */
 	callout[ix].func	= func;
 	callout[ix].arg		= arg;
@@ -144,5 +132,5 @@
 
 /*
- *  å¼åºãã¨ã³ããªåé¤
+ *  呼出しエントリ削除
  */
 
@@ -152,5 +140,5 @@
 	int_t ix;
 
-	/* ã¨ã³ããªãæ¢ã */
+	/* エントリを探す */
 	for (ix = NUM_NET_CALLOUT; ix -- > 0; ) {
 		syscall(wai_sem(SEM_CALL_OUT_LOCK));
@@ -165,9 +153,8 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯
- *
- *    æ³¨æ: ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å®è¡ããå¿
-è¦ãããããï¼
- *          å¨æãã³ãã©ã¯ä½¿ç¨ã§ããªãã
+ *  ネットワークタイマタスク
+ *
+ *    注意: タスクコンテキストで実行する必要があるため，
+ *          周期ハンドラは使用できない。
  */
 
@@ -193,10 +180,10 @@
 	syslog(LOG_NOTICE, "[NET/TIMER:%d] started.", tskid);
 
-	/* IP ãåæåããã*/
+	/* IP を初期化する。*/
 	IP_INIT();
 
 #ifdef SUPPORT_TCP
 
-	/* TCP åºåã¿ã¹ã¯ãèµ·åãã */
+	/* TCP 出力タスクを起動する */
 	syscall(act_tsk(TCP_OUTPUT_TASK));
 
@@ -205,5 +192,5 @@
 #if defined(SUPPORT_UDP) && defined(UDP_CFG_NON_BLOCKING)
 
-	/* UDP åºåã¿ã¹ã¯ãèµ·åãã */
+	/* UDP 出力タスクを起動する */
 	syscall(act_tsk(UDP_OUTPUT_TASK));
 
@@ -211,5 +198,5 @@
 
 	while (true) {
-		/* ã¿ã¤ã ã¢ã¦ãããã¨ã³ããªãå¼åºãã*/
+		/* タイムアウトしたエントリを呼出す。*/
 		syscall(wai_sem(SEM_CALL_OUT_TIMEOUT));
 		for (ix = NUM_NET_CALLOUT; ix -- > 0; ) {
@@ -229,7 +216,7 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¿ã¤ããã³ãã©
- *
- *    NET_TIMER_CYCLE (100ms) æ¯ã«å¼åºãããã
+ *  ネットワークタイマハンドラ
+ *
+ *    NET_TIMER_CYCLE (100ms) 毎に呼出される。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -80,8 +68,8 @@
 #define _NET_TIMER_H_
 
-#include <tinet_kernel_defs.h>	/* ã«ã¼ãã«ã«é¢ããäºææ§å®ç¾©ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããã*/
+#include <tinet_kernel_defs.h>	/* カーネルに関する互換性定義ファイルをインクルードする。*/
 
 /*
- *  TOPPERS/JSP ã«ã¼ãã«ãã·ã¹ãã æå» (SYSTIM) ã®å¨æ³¢æ°
+ *  TOPPERS/JSP カーネル、システム時刻 (SYSTIM) の周波数
  */
 
@@ -89,19 +77,19 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¿ã¤ãã®å®ç¾©
+ *  ネットワークタイマの定義
  */
 
-#define NET_TIMER_CYCLE		ULONG_C(100)	/* [ms]ãfast timeout ä½¿ç¨æã®åä½å¨æ	*/
-						/* ã¿ã¤ãã®å¨æ³¢æ°			*/
+#define NET_TIMER_CYCLE		ULONG_C(100)	/* [ms]、fast timeout 使用時の動作周期	*/
+						/* タイマの周波数			*/
 #define NET_TIMER_HZ		(SYSTIM_HZ/NET_TIMER_CYCLE)
 
 #ifdef SUPPORT_INET6
-#define NUM_NET_CALLOUT		12		/* ã¿ã¤ã ã¢ã¦ãå¼åºãæ°ã10 ä»¥ä¸	*/
+#define NUM_NET_CALLOUT		12		/* タイムアウト呼出し数、10 以上	*/
 #else
-#define NUM_NET_CALLOUT		10		/* ã¿ã¤ã ã¢ã¦ãå¼åºãæ°ã10 ä»¥ä¸	*/
+#define NUM_NET_CALLOUT		10		/* タイムアウト呼出し数、10 以上	*/
 #endif
 
 /*
- *  ã¿ã¤ã ã¢ã¦ãå¼åºãã¨ã³ããª
+ *  タイムアウト呼出しエントリ
  */
 
@@ -109,11 +97,11 @@
 
 typedef struct t_net_callout {
-	callout_func	func;		/* å¼åºãé¢æ°		*/
-	void		*arg;		/* é¢æ°ã¸ã®å¼æ°		*/
-	RELTIM		timeout;	/* ã¿ã¤ã ã¢ã¦ã		*/
+	callout_func	func;		/* 呼出す関数		*/
+	void		*arg;		/* 関数への引数		*/
+	RELTIM		timeout;	/* タイムアウト		*/
 	} T_NET_CALLOUT;
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -122,5 +110,5 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã¨å¨æãã³ãã©
+ *  ネットワークタイマタスクと周期ハンドラ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -81,5 +69,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -87,5 +75,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -80,5 +68,5 @@
 
 /* 
- *  PPP å¦çã¿ã¹ã¯ã®æ¬ä½
+ *  PPP 処理タスクの本体
  */
 
@@ -109,13 +97,11 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-uint8_t	ppp_phase = PPP_PHASE_INITIALIZE;	/* ãªã³ã¯ã®ç¶æ
-		*/
-
-/*
- *  ãã­ãã³ã«è¡¨
+ *  全域変数
+ */
+
+uint8_t	ppp_phase = PPP_PHASE_INITIALIZE;	/* リンクの状態		*/
+
+/*
+ *  プロトコル表
  */
 
@@ -140,5 +126,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -150,5 +136,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -162,6 +148,5 @@
 
 /*
- *  PPP å
-¥åã®è§£æ
+ *  PPP 入力の解析
  */
 
@@ -176,6 +161,6 @@
 	NET_COUNT_PPP(net_count_ppp.in_packets, 1);
 
-	/* ãã¬ã¼ã é·ããã§ãã¯ãã */
-	if (input->len < sizeof(T_PPP_HDR)) {	/* FreeBSD ã§ã¯ PPP_HDRLEN ã¯ 4 */
+	/* フレーム長をチェックする */
+	if (input->len < sizeof(T_PPP_HDR)) {	/* FreeBSD では PPP_HDRLEN は 4 */
 		syslog(LOG_NOTICE, "[PPP] recv short frame.");
 		goto buf_rel;
@@ -184,5 +169,5 @@
 	proto = ntohs(*GET_PPP_HDR(input));
 
-	/* ãã­ãã³ã«ã LCP ä»¥å¤ã§ãLCP ããªã¼ãã³ããã¦ããªããã°ã¨ã©ã¼ */
+	/* プロトコルが LCP 以外で、LCP がオープンされていなければエラー */
 	if (proto != PPP_LCP && lcp_fsm.state != PPP_FSM_OPENED) {
 		syslog(LOG_NOTICE, "[PPP] LCP not open.");
@@ -190,6 +175,5 @@
 		}
 
-	/* ãªã³ã¯ãèªè¨¼ç¶æ
-ä»¥åã¯ãLCPãLQRãPAPãCHAP ã®ã¿åãä»ãã */
+	/* リンクが認証状態以前は、LCP、LQR、PAP、CHAP のみ受け付ける */
 	if (ppp_phase <= PPP_PHASE_AUTHENTICATE &&
 	    !(proto == PPP_LCP || proto == PPP_LQR ||
@@ -199,6 +183,5 @@
 		}
 
-	/* ä¸ä½ãã­ãã³ã«ã®å
-¥åé¢æ°ãå¼åºã */
+	/* 上位プロトコルの入力関数を呼出す */
 	for (ix = 0; (entry = protocols[ix]) != NULL; ix ++) {
 		if (entry->proto == proto && entry->input != NULL) {
@@ -222,5 +205,5 @@
 
 /*
- *  ppp_output -- PPP ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°
+ *  ppp_output -- PPP インタフェースの出力関数
  */
 
@@ -232,7 +215,6 @@
 #ifdef PPP_CFG_MODEM
 
-#if 0	/* ä¿ç */
-	/* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾
-ã¤ã*/
+#if 0	/* 保留 */
+	/* モデムの接続完了まで待つ。*/
 	if ((error = wait_modem()) != E_OK)
 		goto buf_ret;
@@ -241,6 +223,5 @@
 #endif	/* of #ifdef PPP_CFG_MODEM */
 
-	/* IPCP ã®æ¥ç¶å®äºã¾ã§å¾
-ã¤ã*/
+	/* IPCP の接続完了まで待つ。*/
 	if ((error = wait_ipcp()) != E_OK)
 		goto buf_ret;
@@ -255,6 +236,5 @@
 #endif	/* of #ifdef PPP_IDLE_TIMEOUT */
 
-	/* PPP åºåã­ã¥ã¼ã«æå
-¥ããã*/
+	/* PPP 出力キューに投入する。*/
 	if ((error = tsnd_dtq(DTQ_PPP_OUTPUT, output, tmout)) != E_OK)
 		goto buf_ret;
@@ -278,5 +258,5 @@
 
 /*
- *  ppp_cp_output -- CP ãã¬ã¼ã ã®éä¿¡
+ *  ppp_cp_output -- CP フレームの送信
  */
 
@@ -286,5 +266,5 @@
 	T_PPP_CP_HDR	*cph;
 
-	/* CP ããããè¨­å®ãã */
+	/* CP ヘッダを設定する */
 	cph = GET_PPP_CP_HDR(output);
 	cph->code = code;
@@ -292,6 +272,5 @@
 	cph->len  = htons(output->len - sizeof(T_PPP_HDR));
 
-	/* PPP åºåã­ã¥ã¼ã«æå
-¥ããã*/
+	/* PPP 出力キューに投入する。*/
 	if (snd_dtq(DTQ_PPP_OUTPUT, output) != E_OK) {
 		syscall(rel_net_buf(output));
@@ -301,6 +280,5 @@
 
 /*
- *  PPP å
-¥åã¿ã¹ã¯
+ *  PPP 入力タスク
  */
 
@@ -313,5 +291,5 @@
 	int_t		ix;
 
-	/* ãã¼ããåæè¨­å®ãã */
+	/* ポートを初期設定する */
 	syscall(serial_opn_por(HDLC_PORTID));
 	syscall(serial_ctl_por(HDLC_PORTID, IOCTL_FCSND | IOCTL_FCRCV));
@@ -330,8 +308,8 @@
 #endif	/* of #ifdef PPP_CFG_MODEM */
 
-	/* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ãèµ·åãã */
+	/* ネットワークタイマタスクを起動する */
 	syscall(act_tsk(NET_TIMER_TASK));
 
-	/* ä¸ä½ãã­ãã³ã«ãåæåãã */
+	/* 上位プロトコルを初期化する */
 	for (ix = 0; (proto = protocols[ix]) != NULL; ix ++)
 		if (proto->init != NULL)
@@ -341,5 +319,5 @@
 	lcp_open(PPP_OPEN_PASSIVE);
 
-	/* PPP åºåã¿ã¹ã¯ãèµ·åãã */
+	/* PPP 出力タスクを起動する */
 	syscall(act_tsk(PPP_OUTPUT_TASK));
 
@@ -387,5 +365,5 @@
 
 /*
- *  PPP åºåã¿ã¹ã¯
+ *  PPP 出力タスク
  */
 
@@ -412,5 +390,5 @@
 
 /*
- *  ã¢ã¤ãã«ã¿ã¤ã ã¢ã¦ãå¦ç
+ *  アイドルタイムアウト処理
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  PPP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  PPP コンフィギュレーションファイル
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -83,5 +71,5 @@
 
 /*
- *  PPP ãããã®ãã­ãã³ã«ãã£ã¼ã«ãã®å¤
+ *  PPP ヘッダのプロトコルフィールドの値
  */
 
@@ -99,6 +87,5 @@
 
 /*
- *  ãªã³ã¯ã®ç¶æ
-
+ *  リンクの状態
  */
 
@@ -114,11 +101,11 @@
 
 /*
- *  PPP ãªã³ã¯å¶å¾¡ (CP) ãããæ§é ä½
+ *  PPP リンク制御 (CP) ヘッダ構造体
  */
 
 typedef struct t_ppp_cp_hdr {
-	uint8_t		code;		/* å¶å¾¡ã³ã¼ã	*/
-	uint8_t		id;		/* è­å¥å­	*/
-	uint16_t	len;		/* é·ã		*/
+	uint8_t		code;		/* 制御コード	*/
+	uint8_t		id;		/* 識別子	*/
+	uint16_t	len;		/* 長さ		*/
 	} __attribute__((packed, aligned(2)))T_PPP_CP_HDR;
 
@@ -126,5 +113,5 @@
 
 /*
- *  PPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ã
+ *  PPP リンク制御 (CP) の制御コード
  */
 
@@ -139,11 +126,10 @@
 
 /*
- * æ§ææ
-å ± (CI) ããã
+ * 構成情報 (CI) ヘッダ
  */
 
 typedef struct t_ppp_ci_hdr {
-	uint8_t		type;		/* CI ã®å	*/
-	uint8_t		len;		/* é·ã		*/
+	uint8_t		type;		/* CI の型	*/
+	uint8_t		len;		/* 長さ		*/
 	} __attribute__((packed, aligned(2)))T_PPP_CI_HDR;
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -123,5 +111,5 @@
 
 /*
- *  å®æ°
+ *  定数
  */
 
@@ -132,5 +120,5 @@
 
 /*
- *  network_phase -- ã³ãã¯ã·ã§ã³ç¢ºç«
+ *  network_phase -- コネクション確立
  */
 
@@ -143,8 +131,8 @@
 	ppp_phase = PPP_PHASE_NETWORK;
 
-	/* ä¸ä½ãã­ãã³ã«ããªã¼ãã³ãã */
+	/* 上位プロトコルをオープンする */
 	num = 0;
 	for (ix = 0; (proto = protocols[ix]) != NULL; ix ++)
-#if 0	/* ä¿çãåé¤ç¦æ­¢ */
+#if 0	/* 保留、削除禁止 */
 		if (proto->proto < 0xc000 && proto->open != NULL) {
 #else	/* of #if 0 */
@@ -157,5 +145,5 @@
 
 	if (num == 0)
-		/* ä¸ä½ãã­ãã³ã«ããªã */
+		/* 上位プロトコルがない */
 		lcp_close();
 	else
@@ -164,5 +152,5 @@
 
 /*
- *  link_required -- ãªã³ã¯ãéè¨­ããã
+ *  link_required -- リンクを開設する。
  */
 
@@ -173,5 +161,5 @@
 
 /*
- *  link_terminated -- ã­ã°ã¢ã¦ããã¦ããªã³ã¯ãåæ­ããã
+ *  link_terminated -- ログアウトして、リンクを切断する。
  */
 
@@ -185,5 +173,5 @@
 
 /*
- *  link_down -- ãªã³ã¯ãè§£æ¾ããã
+ *  link_down -- リンクを解放する。
  */
 
@@ -194,5 +182,5 @@
 	T_PPP_PROTENT	*proto;
 
-	/* ä¸ä½ãã­ãã³ã«ãè§£æ¾ãã */
+	/* 上位プロトコルを解放する */
 	for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) {
 		if (proto->proto != PPP_LCP && proto->lowerdown != NULL)
@@ -207,5 +195,5 @@
 
 /*
- *  link_established -- ãªã³ã¯ã®æ¥ç¶ãç¢ºç«ããã
+ *  link_established -- リンクの接続が確立した。
  */
 
@@ -222,11 +210,10 @@
 #endif	/* of #if defined(LCP_CFG_CHAP) || defined(LCP_CFG_PAP) */
 
-	/* ä¸ä½ãã­ãã³ã«ãèµ·åãã */
+	/* 上位プロトコルを起動する */
 	for (ix = 0; (proto = protocols[ix]) != NULL; ix ++)
 		if (proto->lowerup != NULL)
 			(*proto->lowerup)();
 
-	/* èªè¨¼ãªãã·ã§ã³ãç¢ºèªããããæªå®è£
-ã*/
+	/* 認証オプションを確認する。【未実装】*/
 
 	ppp_phase = PPP_PHASE_AUTHENTICATE;
@@ -283,5 +270,5 @@
 
 /*
- *  auth_reset -- èªè¨¼ãªãã·ã§ã³ãåç¢ºèªããã
+ *  auth_reset -- 認証オプションを再確認する。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -72,5 +60,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -97,6 +85,5 @@
 
 /*
- *  å®è£
-äºå®ãç¾å¨ã¯ãã¹ã¦æå¦
+ *  実装予定、現在はすべて拒否
  */
 
@@ -114,5 +101,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -126,57 +113,49 @@
 
 /*
- * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢
+ * FSM から呼出されるコールバック関
  */
 
 static int_t  ccp_reqci	(T_PPP_FSM *fsm, T_NET_BUF *nbuf);
-					/* ç¸æã®æ§ææ
-å ±ãç¢ºèªããã	*/
-
-/*
- *  å
-¨åå¤æ°
+					/* 相手の構成情報を確認する。	*/
+
+/*
+ *  全域変数
  */
 
 T_PPP_FSM_CALLBACKS ccp_callbacks = {
-	NULL,				/* èªæ§ææ
-å ±ããªã»ããããã	*/
-	NULL,				/* æ§ææ
-å ±ã®é·ããè¿ãã		*/
-	NULL,				/* èªæ§ææ
-å ±ãè¿½å ããã		*/
-	NULL,				/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
-	NULL,				/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
-	NULL,				/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
-	ccp_reqci,			/* ç¸æã®æ§ææ
-å ±ãç¢ºèªããã	*/
-	NULL,				/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
-	NULL,				/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
-	NULL,				/* ä¸ä½å±¤ãéå§ããã		*/
-	NULL,				/* ä¸ä½å±¤ãçµäºããã		*/
-	NULL,				/* åéããã			*/
-	NULL,				/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+	NULL,				/* 自構成情報をリセットする。	*/
+	NULL,				/* 構成情報の長さを返す。		*/
+	NULL,				/* 自構成情報を追加する。		*/
+	NULL,				/* ACK を受信したときの処理	*/
+	NULL,				/* NAK を受信したときの処理	*/
+	NULL,				/* REJ を受信したときの処理	*/
+	ccp_reqci,			/* 相手の構成情報を確認する。	*/
+	NULL,				/* リンク接続を確立する。		*/
+	NULL,				/* リンク接続を解放する。		*/
+	NULL,				/* 下位層を開始する。		*/
+	NULL,				/* 下位層を終了する。		*/
+	NULL,				/* 再送する。			*/
+	NULL,				/* 不明な CP を受信したときの処理	*/
 	};
 
 T_PPP_FSM ccp_fsm = {
-	&ccp_callbacks,			/* ã³ã¼ã«ããã¯é¢æ°		*/
-	PPP_CCP,			/* ãã­ãã³ã«			*/
+	&ccp_callbacks,			/* コールバック関数		*/
+	PPP_CCP,			/* プロトコル			*/
 	};
 
 T_PPP_PROTENT ccp_protent = {
 	PPP_CCP,
-	ccp_init,			/* åæå			*/
-	ccp_input,			/* å
-¥å				*/
-	ccp_protrej,			/* Proto-REJ åä¿¡å¦ç		*/
-	ccp_lowerup,			/* ä¸ä½å±¤ãèµ·åãã		*/
-	ccp_lowerdown,			/* ä¸ä½å±¤ãåæ­¢ãã		*/
-	ccp_open,			/* ãªã¼ãã³ãã			*/
-	ccp_close,			/* ã¯ã­ã¼ãºãã			*/
-	NULL,				/* ãã¼ã¿å
-¥å			*/
+	ccp_init,			/* 初期化			*/
+	ccp_input,			/* 入力				*/
+	ccp_protrej,			/* Proto-REJ 受信処理		*/
+	ccp_lowerup,			/* 下位層を起動する		*/
+	ccp_lowerdown,			/* 下位層を停止する		*/
+	ccp_open,			/* オープンする			*/
+	ccp_close,			/* クローズする			*/
+	NULL,				/* データ入力			*/
 	};
 
 /*
- *  ccp_init -- CCP ã¢ã¸ã¥ã¼ã«ã®åæå
+ *  ccp_init -- CCP モジュールの初期化
  */
 
@@ -188,6 +167,5 @@
 
 /*
- *  ccp_input -- CCP å
-¥å
+ *  ccp_input -- CCP 入力
  */
 
@@ -201,6 +179,5 @@
 
 /*
- *  ccp_reqci -- ç¸æã®æ§ææ
-å ±ãè§£æããã
+ *  ccp_reqci -- 相手の構成情報を解析する。
  */
 
@@ -209,6 +186,5 @@
 {
 /*
- *  å®è£
-äºå®ãç¾å¨ã¯ãã¹ã¦ã®ãªãã·ã§ã³ãæå¦ããã
+ *  実装予定、現在はすべてのオプションを拒否する。
  */
 	return nbuf->len > (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) ? PPP_CONFREJ : PPP_CONFACK;
@@ -216,5 +192,5 @@
 
 /*
- *  ccp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ *  ccp_protrej -- Proto-REJ を受信したときの処理
  */
 
@@ -226,5 +202,5 @@
 
 /*
- *  ccp_lowerup -- CCP ä¸ä½å±¤ãèµ·åããã
+ *  ccp_lowerup -- CCP 下位層を起動する。
  */
 
@@ -236,5 +212,5 @@
 
 /*
- *  ccp_lowerdown -- CCP ä¸ä½å±¤ãåæ­¢ããã
+ *  ccp_lowerdown -- CCP 下位層を停止する。
  */
 
@@ -246,5 +222,5 @@
 
 /*
- *  ccp_open -- CCP ã®ãªã¼ã
+ *  ccp_open -- CCP のオープ
  */
 
@@ -256,5 +232,5 @@
 
 /*
- *  ccp_close -- CCP ã®ã¯ã­ã¼ãº
+ *  ccp_close -- CCP のクローズ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -101,5 +89,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -111,12 +99,11 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-uint8_t	ppp_open_mode = PPP_OPEN_PASSIVE;	/* ãªã¼ãã³æã®åä½ã¢ã¼ã	*/
-
-/*
- *  é¢æ°
+ *  全域変数
+ */
+
+uint8_t	ppp_open_mode = PPP_OPEN_PASSIVE;	/* オープン時の動作モード	*/
+
+/*
+ *  関数
  */
 
@@ -132,5 +119,5 @@
 
 /*
- *  fsm_sconfreq -- Configure-Request ãéä¿¡ããã
+ *  fsm_sconfreq -- Configure-Request を送信する。
  */
 
@@ -144,5 +131,5 @@
 	      fsm->state == PPP_FSM_ACKRCVD ||
 	      fsm->state == PPP_FSM_ACKSENT)) {
-		/* ã¾ã ãã´ããã¦ããªãããªãã·ã§ã³ããªã»ããããã */
+		/* まだネゴをしていない。オプションをリセットする。 */
 		if (fsm->callbacks->resetci)
 			(*fsm->callbacks->resetci)(fsm);
@@ -150,5 +137,5 @@
 		}
 	if (retransmit == 0) {
-		/* æ°ãããªã¯ã¨ã¹ããåéã«ã¦ã³ã¿ããªã»ããããæ°ãã ID ãè¨­å®ããã */
+		/* 新しいリクエスト。再送カウンタをリセットし、新しい ID を設定する。 */
 		fsm->retrans = MAX_PPP_CONFIGURES;
 		fsm->reqid   = ++ fsm->id;
@@ -158,6 +145,5 @@
 
 	if (fsm->callbacks->cilen && fsm->callbacks->addci) {
-		/* æ§ææ
-å ±ãã±ãããä½ãã */
+		/* 構成情報パケットを作る。 */
 		len = (*fsm->callbacks->cilen)(fsm);
 
@@ -165,6 +151,5 @@
 		(*fsm->callbacks->addci)(fsm, output);
 
-		/* æ§ææ
-å ±ãã±ãããéä¿¡ããã */
+		/* 構成情報パケットを送信する。 */
 		IF_SET_PROTO(output, fsm->proto);
 		ppp_cp_output(PPP_CONFREQ, fsm->reqid, output);
@@ -176,5 +161,5 @@
 
 /*
- *  fsm_rconfreq -- Configure-Request ãåä¿¡ããã¨ãã®å¦ç
+ *  fsm_rconfreq -- Configure-Request を受信したときの処理
  */
 
@@ -199,13 +184,13 @@
 
 	case PPP_FSM_OPENED:
-		/* ä¸ä½å±¤ãåæ­¢ãã¦ããã´ã«ç§»ãã */
+		/* 上位層を停止して、ネゴに移る。 */
 		if (fsm->callbacks->down != NULL)
 			(*fsm->callbacks->down)(fsm);
-		fsm_sconfreq(fsm, 0);		/* æåã® Configure-Request ãéãã */
+		fsm_sconfreq(fsm, 0);		/* 最初の Configure-Request を送る。 */
 		break;
 
 	case PPP_FSM_STOPPED:
-		/* ç¸æãããã´ãéå§ããã */
-		fsm_sconfreq(fsm, 0);		/* æåã® Configure-Request ãéãã */
+		/* 相手からネゴが開始された */
+		fsm_sconfreq(fsm, 0);		/* 最初の Configure-Request を送る。 */
 		fsm->state = PPP_FSM_REQSENT;
 		break;
@@ -215,7 +200,6 @@
 	syscall(get_net_buf(&output, input->len));
 
-	/* ä¸ä½ãã­ãã³ã«ã«è¦æ±ããã Configure-Request ãéãã */
-	if (fsm->callbacks->reqci != NULL)	/* æ§ææ
-å ±ããã§ãã¯ããã */
+	/* 上位プロトコルに要求された Configure-Request を送る。 */
+	if (fsm->callbacks->reqci != NULL)	/* 構成情報をチェックする。 */
 		code = (*fsm->callbacks->reqci)(fsm, input, output);
 	else if (output->len > sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))
@@ -224,5 +208,5 @@
 		code = PPP_CONFACK;
 
-	/* ç¸æã« ACK, NAK ã¾ãã¯ REJ ãéä¿¡ããã */
+	/* 相手に ACK, NAK または REJ を送信する。 */
 	ppp_cp_output(code, id, output);
 
@@ -239,5 +223,5 @@
 		}
 	else {
-		/* ACK ã REJ ãéã */
+		/* ACK か REJ を送る */
 		if (fsm->state != PPP_FSM_ACKRCVD)
 			fsm->state = PPP_FSM_REQSENT;
@@ -248,5 +232,5 @@
 
 /*
- *  fsm_rconfnakrej -- Configure-NAK/REJ ãåä¿¡ããã¨ãã®å¦ç
+ *  fsm_rconfnakrej -- Configure-NAK/REJ を受信したときの処理
  */
 
@@ -257,5 +241,5 @@
 	T_NET_BUF	*output;
 
-	/* äºæãã ID ã§ãªãããNAK/REJ ãäºæãã¦ããªãã¨ãã¯çµäºããã*/
+	/* 予期した ID でないか、NAK/REJ を予期していないときは終了する。*/
 	if (id != fsm->reqid || fsm->seen_ack) {
 		syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp NAK/REJ.");
@@ -290,5 +274,5 @@
 	case PPP_FSM_ACKSENT:
 		untimeout((FP)fsm_timeout, fsm);
-		if (ret < 0)		/* éä¿¡ãã Conf-Req ãç ´æãç©ºã® NAK/REJ ãå±ããã*/
+		if (ret < 0)		/* 送信した Conf-Req が破損し空の NAK/REJ が届いた。*/
 			fsm->state = PPP_FSM_STOPPED;
 		else
@@ -303,5 +287,5 @@
 
 	case PPP_FSM_OPENED:
-		/* åèµ·åãããã´ãããç´ãã*/
+		/* 再起動し、ネゴをやり直す。*/
 		if (fsm->callbacks->down != NULL)
 			(*fsm->callbacks->down)(fsm);
@@ -313,5 +297,5 @@
 
 /*
- *  fsm_rconfack -- Configure-ACK ãåä¿¡ããã¨ãã®å¦ç
+ *  fsm_rconfack -- Configure-ACK を受信したときの処理
  */
 
@@ -321,5 +305,5 @@
 	T_NET_BUF	*output;
 
-	/* äºæãã ID ã§ãªãããACK ãäºæãã¦ããªãã¨ãã¯çµäºããã*/
+	/* 予期した ID でないか、ACK を予期していないときは終了する。*/
 	if (id != fsm->reqid || fsm->seen_ack) {
 		syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp ACK.");
@@ -368,5 +352,5 @@
 
 	case PPP_FSM_OPENED:
-		/* åèµ·åãããã´ãããç´ãã*/
+		/* 再起動し、ネゴをやり直す。*/
 		if (fsm->callbacks->down != NULL)
 			(*fsm->callbacks->down)(fsm);
@@ -383,5 +367,5 @@
 
 /*
- *  fsm_rtermreq -- Terminate-Request ãåä¿¡ããã¨ãã®å¦ç
+ *  fsm_rtermreq -- Terminate-Request を受信したときの処理
  */
 
@@ -411,5 +395,5 @@
 
 /*
- *  fsm_rtermack -- Terminate-ACK ãåä¿¡ããã¨ãã®å¦ç
+ *  fsm_rtermack -- Terminate-ACK を受信したときの処理
  */
 
@@ -420,5 +404,5 @@
 	case PPP_FSM_CLOSING:
 		untimeout((FP)fsm_timeout, fsm);
-#if 0	/* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/
+#if 0	/* 本来の動作は CLOSED に遷移する。*/
 		fsm->state = PPP_FSM_CLOSED;
 #else	/* of #if 0 */
@@ -449,5 +433,5 @@
 
 /*
- *  fsm_rcoderej -- Code-REJ ãåä¿¡ããã¨ãã®å¦ç
+ *  fsm_rcoderej -- Code-REJ を受信したときの処理
  */
 
@@ -457,5 +441,5 @@
 	T_PPP_CP_HDR	*hdr;
 
- 	/* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããç­ããã°ã¨ã©ã¼ */
+ 	/* PPP リンク制御 (CP) ヘッダより短ければエラー */
  	if (input->len < sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) {
  		syslog(LOG_WARNING, "[PPP/FSM] bad len: %d in recv Code-REJ.", input->len);
@@ -472,5 +456,5 @@
 
 /*
- *  fsm_timeout -- ã¿ã¤ã ã¢ã¦ãå¦ç
+ *  fsm_timeout -- タイムアウト処理
  */
 
@@ -484,7 +468,6 @@
 	case PPP_FSM_STOPPING:
 		if (fsm->retrans <= 0) {
-			/* æå¤§åéåæ°ãè¶
-ããã¨ãã®å¦ç */
-#if 0	/* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/
+			/* 最大再送回数を超えたときの処理 */
+#if 0	/* 本来の動作は CLOSED に遷移する。*/
 			fsm->state = (fsm->state == PPP_FSM_CLOSING) ? PPP_FSM_CLOSED : PPP_FSM_STOPPED;
 #else	/* of #if 0 */
@@ -495,5 +478,5 @@
 			}
 		else {
-			/* Terminate-Request ãéä¿¡ããã*/
+			/* Terminate-Request を送信する。*/
 			fsm_stermreq(fsm, ++ fsm->id);
 			}
@@ -503,6 +486,5 @@
 	case PPP_FSM_ACKSENT:
 		if (fsm->retrans <= 0) {
-			/* æå¤§åéåæ°ãè¶
-ããã¨ãã®å¦ç */
+			/* 最大再送回数を超えたときの処理 */
 			syslog(LOG_WARNING, "[PPP/FSM] retrans Conf-Req.");
 			fsm->state = PPP_FSM_STOPPED;
@@ -511,5 +493,5 @@
 			}
 		else {
-			/* Configure-Request ãåéããã*/
+			/* Configure-Request を再送する。*/
 			if (fsm->callbacks->retrans != NULL)
 				(*fsm->callbacks->retrans)(fsm);
@@ -528,5 +510,5 @@
 
 /*
- *  fsm_stermreq -- Terminate-Request ãéä¿¡ããã
+ *  fsm_stermreq -- Terminate-Request を送信する。
  */
 
@@ -545,5 +527,5 @@
 
 /*
- *  fsm_init -- FSM ã¢ã¸ã¥ã¼ã«ã®åæå
+ *  fsm_init -- FSM モジュールの初期化
  */
 
@@ -556,5 +538,5 @@
 
 /*
- *  fsm_lowerup -- FSM ä¸ä½å±¤ãèµ·åããã
+ *  fsm_lowerup -- FSM 下位層を起動する。
  */
 
@@ -583,5 +565,5 @@
 
 /*
- *  fsm_lowerdown -- FSM ä¸ä½å±¤ãåæ­¢ããã
+ *  fsm_lowerdown -- FSM 下位層を停止する。
  */
 
@@ -626,5 +608,5 @@
 
 /*
- *  fsm_open -- FSM ã®ãªã¼ãã³
+ *  fsm_open -- FSM のオープン
  */
 
@@ -650,5 +632,5 @@
 	case PPP_FSM_CLOSING:
 		fsm->state = PPP_FSM_STOPPING;
-		/* nobreak;	ä¸ã«è½ã¡ã */
+		/* nobreak;	下に落ちる */
 
 	case PPP_FSM_STOPPED:
@@ -661,5 +643,5 @@
 
 /*
- *  fsm_close -- ãªã³ã¯ã®åæ­ãéå§ããã
+ *  fsm_close -- リンクの切断を開始する。
  */
 
@@ -672,5 +654,5 @@
 		break;
 
-#if 0	/* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/
+#if 0	/* 本来の動作は CLOSED に遷移する。*/
 	case PPP_FSM_STOPPED:
 		fsm->state = PPP_FSM_CLOSED;
@@ -691,5 +673,5 @@
 			(*fsm->callbacks->down)(fsm);
 
-		/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããTerminate-Request ãéä¿¡ããã*/
+		/* タイムアウトを設定し、Terminate-Request を送信する。*/
 		fsm->retrans = MAX_PPP_TERMINATES;
 		fsm_stermreq(fsm, fsm->reqid = ++ fsm->id);
@@ -700,6 +682,5 @@
 
 /*
- *  fsm_input -- å
-¥åãPPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã
+ *  fsm_input -- 入力、PPP リンク制御 (CP) の制御コードにより適当な関数を呼出す
  */
 
@@ -710,5 +691,5 @@
 	T_NET_BUF	*output;
 
- 	/* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããç­ããã°ã¨ã©ã¼ */
+ 	/* PPP リンク制御 (CP) ヘッダより短ければエラー */
  	if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) {
  		syslog(LOG_WARNING, "[PPP/FSM] short hdr: %d.", input->len);
@@ -718,6 +699,5 @@
  	hdr = GET_PPP_CP_HDR(input);
 
- 	/* ãããã®é·ãã¨å
-¥åãã¼ã¿ãµã¤ãºãä¸è´ããªããã°ã¨ã©ã¼ */
+ 	/* ヘッダの長さと入力データサイズが一致しなければエラー */
  	if (hdr->len != input->len - sizeof(T_PPP_HDR)) {
  		syslog(LOG_WARNING, "[PPP/FSM] bad len: %d.", hdr->len);
@@ -725,6 +705,5 @@
  		}
  
- 	/* ç¶æ
-ã INITIAL ã STARTING ãªãã¨ã©ã¼ */
+ 	/* 状態が INITIAL か STARTING ならエラー */
  	if (fsm->state == PPP_FSM_INITIAL || fsm->state == PPP_FSM_STARTING) {
  		syslog(LOG_WARNING, "[PPP/FSM] unexp state: %d in input.", fsm->state);
@@ -733,5 +712,5 @@
  
  	/*
- 	 *  å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã
+ 	 *  制御コードにより適当な関数を呼出す
  	 */
 
@@ -774,5 +753,5 @@
 
 /*
- *  fsm_protoreject -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ *  fsm_protoreject -- Proto-REJ を受信したときの処理
  */
 
@@ -784,6 +763,6 @@
 		untimeout((FP)fsm_timeout, fsm);
 
-#if 0	/* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/
-		/* ä¸ã«è½ã¡ã */
+#if 0	/* 本来の動作は CLOSED に遷移する。*/
+		/* 下に落ちる */
 #else	/* of #if 0 */
 		fsm->state = PPP_FSM_STOPPED;
@@ -804,5 +783,5 @@
 	case PPP_FSM_ACKSENT:
 		untimeout((FP)fsm_timeout, fsm);
-		/* ä¸ã«è½ã¡ã */
+		/* 下に落ちる */
 
 	case PPP_FSM_STOPPED:
@@ -816,5 +795,5 @@
 			(*fsm->callbacks->down)(fsm);
 
-		/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããTerminate-Request ãéä¿¡ããã*/
+		/* タイムアウトを設定し、Terminate-Request を送信する。*/
 		fsm->retrans = MAX_PPP_TERMINATES;
 		fsm_stermreq(fsm, fsm->reqid = ++ fsm->id);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -93,6 +81,5 @@
 
 /*
- *  ç¶æ
-ç®¡çæ§é ä½
+ *  状態管理構造体
  */
 
@@ -100,14 +87,13 @@
 
 typedef struct t_fsm {
-	struct t_ppp_fsm_callbacks	*callbacks;	/* ã³ã¼ã«ããã¯é¢æ°*/
-	uint16_t	proto;		/* ãã­ãã³ã«				*/
-	uint8_t		state;		/* FSM ã®ç¶æ
-				*/
-	uint8_t		id;		/* ç¾å¨ã® ID				*/
-	uint8_t		reqid;		/* è¦æ± ID				*/
-	uint8_t		seen_ack;	/* è¦æ±ã«å¯¾ãæ­£å¸¸ãª ACK/NAK/REJ ãåä¿¡	*/
-	int8_t		failures;	/* é»èªãã NAK æ°			*/
-	int8_t		retrans;	/* Configure-Request ã¾ãã¯ã		*/
-					/* Terminate-Request ã®åéåæ°		*/
+	struct t_ppp_fsm_callbacks	*callbacks;	/* コールバック関数*/
+	uint16_t	proto;		/* プロトコル				*/
+	uint8_t		state;		/* FSM の状態				*/
+	uint8_t		id;		/* 現在の ID				*/
+	uint8_t		reqid;		/* 要求 ID				*/
+	uint8_t		seen_ack;	/* 要求に対し正常な ACK/NAK/REJ を受信	*/
+	int8_t		failures;	/* 黙認した NAK 数			*/
+	int8_t		retrans;	/* Configure-Request または、		*/
+					/* Terminate-Request の再送回数		*/
 	} __attribute__((packed, aligned(2)))T_PPP_FSM;
 
@@ -115,72 +101,66 @@
 
 /*
- *  ã³ã¼ã«ããã¯é¢æ°æ§é ä½
+ *  コールバック関数構造体
  */
 
 typedef struct t_ppp_fsm_callbacks {
-	void (*resetci)	(T_PPP_FSM *);	/* èªæ§ææ
-å ±ããªã»ããããã	*/
-	int_t  (*cilen)	(T_PPP_FSM *);	/* æ§ææ
-å ±ã®é·ããè¿ãã		*/
+	void (*resetci)	(T_PPP_FSM *);	/* 自構成情報をリセットする。	*/
+	int_t  (*cilen)	(T_PPP_FSM *);	/* 構成情報の長さを返す。		*/
 	void (*addci)	(T_PPP_FSM *, T_NET_BUF *);
-					/* èªæ§ææ
-å ±ãè¿½å ããã		*/
+					/* 自構成情報を追加する。		*/
 	bool_t (*ackci)	(T_PPP_FSM *, T_NET_BUF *);
-					/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+					/* ACK を受信したときの処理	*/
 	int_t  (*nakci)	(T_PPP_FSM *, T_NET_BUF *);
-					/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+					/* NAK を受信したときの処理	*/
 	int_t  (*rejci)	(T_PPP_FSM *, T_NET_BUF *);
-					/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+					/* REJ を受信したときの処理	*/
 	int_t  (*reqci)	(T_PPP_FSM *, T_NET_BUF *, T_NET_BUF *);
-					/* ç¸æã®æ§ææ
-å ±ãç¢ºèªããã	*/
-	void (*up)	(T_PPP_FSM *);	/* ãªã³ã¯ã®æ¥ç¶ãç¢ºç«ããã	*/
-	void (*down)	(T_PPP_FSM *);	/* ãªã³ã¯ã®æ¥ç¶ãè§£æ¾ããã	*/
-	void (*starting)(T_PPP_FSM *);	/* ä¸ä½å±¤ãéå§ããã		*/
-	void (*finished)(T_PPP_FSM *);	/* ä¸ä½å±¤ãçµäºããã		*/
-	void (*retrans)	(T_PPP_FSM *);	/* åéããã			*/
-					/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+					/* 相手の構成情報を確認する。	*/
+	void (*up)	(T_PPP_FSM *);	/* リンクの接続を確立する。	*/
+	void (*down)	(T_PPP_FSM *);	/* リンクの接続を解放する。	*/
+	void (*starting)(T_PPP_FSM *);	/* 下位層を開始する。		*/
+	void (*finished)(T_PPP_FSM *);	/* 下位層を終了する。		*/
+	void (*retrans)	(T_PPP_FSM *);	/* 再送する。			*/
+					/* 不明な CP を受信したときの処理	*/
 	bool_t  (*extcode)(T_PPP_FSM *, uint8_t, uint8_t, T_NET_BUF *);
 	} __attribute__((packed, aligned(2)))T_PPP_FSM_CALLBACKS;
 
 /*
- *  FSM ã®ç¶æ
-
+ *  FSM の状態
  */
 
-#define PPP_FSM_INITIAL		0	/* æªæ¥ç¶ãæªãªã¼ãã³	*/
-#define PPP_FSM_STARTING	1	/* æªæ¥ç¶ããªã¼ãã³	*/
-#define PPP_FSM_CLOSED		2	/* æ¥ç¶ã  æªãªã¼ãã³	*/
-#define PPP_FSM_STOPPED		3	/* ãªã¼ãã³ãåæ­å¾
-ã¡	*/
-#define PPP_FSM_CLOSING		4	/* åæ­ä¸­ãæªãªã¼ãã³	*/
-#define PPP_FSM_STOPPING	5	/* åæ­ä¸­ããªã¼ãã³	*/
-#define PPP_FSM_REQSENT		6	/* Config REQ éä¿¡æ¸ã¿	*/
-#define PPP_FSM_ACKRCVD		7	/* Config ACK åä¿¡æ¸ã¿	*/
-#define PPP_FSM_ACKSENT		8	/* Config ACK éä¿¡æ¸ã¿	*/
-#define PPP_FSM_OPENED		9	/* æ¥ç¶ãéä¿¡å¯è½	*/
+#define PPP_FSM_INITIAL		0	/* 未接続、未オープン	*/
+#define PPP_FSM_STARTING	1	/* 未接続、オープン	*/
+#define PPP_FSM_CLOSED		2	/* 接続、  未オープン	*/
+#define PPP_FSM_STOPPED		3	/* オープン、切断待ち	*/
+#define PPP_FSM_CLOSING		4	/* 切断中、未オープン	*/
+#define PPP_FSM_STOPPING	5	/* 切断中、オープン	*/
+#define PPP_FSM_REQSENT		6	/* Config REQ 送信済み	*/
+#define PPP_FSM_ACKRCVD		7	/* Config ACK 受信済み	*/
+#define PPP_FSM_ACKSENT		8	/* Config ACK 送信済み	*/
+#define PPP_FSM_OPENED		9	/* 接続、通信可能	*/
 
 /*
- *  ãªã¼ãã³æã®åä½ã¢ã¼ã
+ *  オープン時の動作モード
  */
 
-#define PPP_OPEN_PASSIVE	false	/* ååãªã¼ãã³		*/
-#define PPP_OPEN_ACTIVE		true	/* è½åãªã¼ãã³		*/
+#define PPP_OPEN_PASSIVE	false	/* 受動オープン		*/
+#define PPP_OPEN_ACTIVE		true	/* 能動オープン		*/
 
 /*
- *  åéãã¿ã¤ã ã¢ã¦ãã®æ¢å®å¤
+ *  再送、タイムアウトの既定値
  */
 
 #define DEF_PPP_TIMEOUT		(3*NET_TIMER_HZ)
-					/* RFC1661 ã§ã¯  3 ç§			*/
-#define MAX_PPP_TERMINATES	2	/* Terminate-Requests ã®æå¤§åéåæ°	*/
-					/* RFC1661 ã§ã¯  2 å			*/
-#define MAX_PPP_CONFIGURES	10	/* Configure-Requests ã®æå¤§åéåæ°	*/
-					/* RFC1661 ã§ã¯ 10 å			*/
-#define MAX_PPP_FAILURES	5	/* Configure-NAK ã®æå¤§é»èªåæ°		*/
-					/* RFC1661 ã§ã¯  5 å			*/
+					/* RFC1661 では  3 秒			*/
+#define MAX_PPP_TERMINATES	2	/* Terminate-Requests の最大再送回数	*/
+					/* RFC1661 では  2 回			*/
+#define MAX_PPP_CONFIGURES	10	/* Configure-Requests の最大再送回数	*/
+					/* RFC1661 では 10 回			*/
+#define MAX_PPP_FAILURES	5	/* Configure-NAK の最大黙認回数		*/
+					/* RFC1661 では  5 回			*/
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -194,5 +174,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -89,9 +77,9 @@
 
 /*
- *  RFC1171 (PPP) ã® HDLC é¨ã®å®ç¾©
- */
-
-/*
- *  å¤æ°
+ *  RFC1171 (PPP) の HDLC 部の定義
+ */
+
+/*
+ *  変数
  */
 
@@ -99,5 +87,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -106,7 +94,6 @@
 
 /*
- *  genfcstab.c ã«ããä½æãã FCS ã®ã«ãã¯ã¢ããè¡¨
- *  RFC1171 åç
-§
+ *  genfcstab.c により作成した FCS のルックアップ表
+ *  RFC1171 参照
  */
 
@@ -179,5 +166,5 @@
 
 /*
- *  ã¤ã³ã©ã¤ã³é¢æ°
+ *  インライン関数
  */
 
@@ -187,5 +174,5 @@
 
 /*
- *  HDLC_putoctet -- HDLC ãªã¯ãããåºå
+ *  HDLC_putoctet -- HDLC オクテット出力
  */
 
@@ -211,5 +198,5 @@
 
 /*
- *  HDLC_wirte -- HDLC åºå
+ *  HDLC_wirte -- HDLC 出力
  */
 
@@ -240,5 +227,5 @@
 	if (lcp_local_ack_cfg.options & LCP_CFG_ACCOMP) {
 		NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq));
-		/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ ãéä¿¡ãã    */
+		/* フレーム開始フラグシーケンス を送信する    */
 		if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq, sizeof(flag_seq))) < 0) {
 			goto err_ret;
@@ -249,9 +236,9 @@
 
 		NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac));
-		/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ãAddress ã¨ Control ãéä¿¡ãã    */
+		/* フレーム開始フラグシーケンス、Address と Control を送信する    */
 		if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) {
 			goto err_ret;
 			}
-		/* Address ã¨ Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã */
+		/* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */
 		fcs = HDLC_INIT_FCS_AC;
 		}
@@ -260,9 +247,9 @@
 
 	NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac));
-	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ãAddress ã¨ Control ãéä¿¡ãã    */
+	/* フレーム開始フラグシーケンス、Address と Control を送信する    */
 	if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) {
 		goto err_ret;
 		}
-	/* Address ã¨ Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã */
+	/* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */
 	fcs = HDLC_INIT_FCS_AC;
 
@@ -281,5 +268,5 @@
 #endif	/* of #ifdef LCP_CFG_PCOMP */
 
-	/* ãã¼ã¿ãéä¿¡ãã */
+	/* データを送信する */
 	while (len -- > 0) {
 
@@ -290,5 +277,5 @@
 		}
 
-	/* FCS ãéä¿¡ãã */
+	/* FCS を送信する */
 	fcs = ~fcs;
 	if ((error = HDLC_putoctet(fcs & 0xff)) != E_OK)
@@ -297,5 +284,5 @@
 		goto err_ret;
 
-	/* ãã¬ã¼ã çµäºãã©ã°ã·ã¼ã±ã³ã¹ãéä¿¡ãã */
+	/* フレーム終了フラグシーケンスを送信する */
 	if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq_ac[0], sizeof(char))) < 0)
 		goto err_ret;
@@ -309,8 +296,7 @@
 
 /*
- *  HDLC_getoctet -- HDLC ãªã¯ãããå
-¥å
- *
- *	æ»ãå¤ã true ãªããã©ã°ã·ã¼ã±ã³ã¹
+ *  HDLC_getoctet -- HDLC オクテット入力
+ *
+ *	戻り値が true ならフラグシーケンス
  */
 
@@ -320,18 +306,14 @@
 	ER error;
 
-	/* 1ãªã¯ãããå
-¥åãã */
+	/* 1オクテット入力する */
 	if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0) {
 		return error;
 		}
 
-	/* å
-¥åãããªã¯ãããããã©ã°ã·ã¼ã±ã³ã¹ãªã true ãè¿ã */
+	/* 入力したオクテットがフラグシーケンスなら true を返す */
 	if (*octet == HDLC_FLAG_SEQ)
 		return true;
 
-	/* å
-¥åãããªã¯ããããã¨ã¹ã±ã¼ããªããããï¼ãªã¯ãããå
-¥åããã¹ã¯ãè§£é¤ãã */
+	/* 入力したオクテットがエスケープなら、もう１オクテット入力しマスクを解除する */
 	if (*octet == HDLC_CNTL_ESC) {
 		if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0)
@@ -345,9 +327,7 @@
 
 /*
- *  HDLC_read -- HDLC å
-¥å
- *
- *	HDLC ãã¬ã¼ã ãå
-¥åããã
+ *  HDLC_read -- HDLC 入力
+ *
+ *	HDLC フレームを入力する。
  */
 
@@ -361,6 +341,5 @@
 	buf = nbuf->buf;
 
-	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã¾ã§å
-¥åãèª­ã¿é£ã°ã */
+	/* フレーム開始フラグシーケンスまで入力を読み飛ばす */
 	while ((error = HDLC_getoctet(&octet)) != true) {
 
@@ -371,7 +350,7 @@
 
 		else if (octet == '\n') {
-			/* ã¢ãã å¶å¾¡ãå¼ã³åºãã*/
+			/* モデム制御を呼び出す。*/
 			modem_cntl(modem_getline(nbuf, size));
-			/* ä¸åº¦ããã®é¢æ°ãçµäºããã*/
+			/* 一度、この関数を終了する。*/
 			nbuf->len = 0;
 			return E_OK;
@@ -382,6 +361,5 @@
 		}
 
-	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã®éã¯å
-¥åãèª­ã¿é£ã°ã */
+	/* フレーム開始フラグシーケンスの間は入力を読み飛ばす */
 	while (1) {
 		if ((error = HDLC_getoctet(&octet)) == E_OK)
@@ -393,9 +371,8 @@
 	NET_COUNT_PPP_HDLC(net_count_hdlc.in_packets, 1);
 
-	/* å
-¥åãããªã¯ãããã¯ Address: All-Stations ã */
+	/* 入力したオクテットは Address: All-Stations か */
 	if (octet == HDLC_ADDR_ALL) {
 
-		/* æ¬¡ã¯ Control: UI */
+		/* 次は Control: UI */
 		if ((error = HDLC_getoctet(&octet)) != E_OK || octet != HDLC_CNTL_UI) {
 			error = E_SYS;
@@ -404,5 +381,5 @@
 		if ((error = HDLC_getoctet(&octet)) != E_OK)
 			goto err_ret;
-		/* Address ã¨ Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã */
+		/* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */
 		fcs = HDLC_INIT_FCS_AC;
 		}
@@ -438,6 +415,5 @@
 	nbuf->len ++;
 
-	/* SUD + FCS ãå
-¥åãã */
+	/* SUD + FCS を入力する */
 	while ((error = HDLC_getoctet(&octet)) == E_OK) {
 		fcs = Next_FCS(fcs, octet);
@@ -464,5 +440,5 @@
 		goto err_ret;
 
-	/* FCS ããã§ãã¯ãã */
+	/* FCS をチェックする */
 	if (fcs != HDLC_GOOD_FCS) {
 		error = E_SYS;
@@ -478,8 +454,7 @@
 
 /*
- *  HDLC_dummy_read -- HDLC å
-¥å (ç©ºèª­ã¿)
- *
- *	HDLC ãã¬ã¼ã ãç©ºèª­ã¿ããã
+ *  HDLC_dummy_read -- HDLC 入力 (空読み)
+ *
+ *	HDLC フレームを空読みする。
  */
 
@@ -490,6 +465,5 @@
 	ER	error;
 
-	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã¾ã§å
-¥åãèª­ã¿é£ã°ã */
+	/* フレーム開始フラグシーケンスまで入力を読み飛ばす */
 	while ((error = HDLC_getoctet(&octet)) != true) {
 		if (error != E_OK)
@@ -497,15 +471,13 @@
 		}
 
-	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã®éã¯å
-¥åãèª­ã¿é£ã°ã */
+	/* フレーム開始フラグシーケンスの間は入力を読み飛ばす */
 	while (octet == HDLC_FLAG_SEQ)
 		if (HDLC_getoctet(&octet) != E_OK)
 			return;
 
-	/* å
-¥åãããªã¯ãããã¯ Address: All-Stations ã */
+	/* 入力したオクテットは Address: All-Stations か */
 	if (octet == HDLC_ADDR_ALL) {
 
-		/* æ¬¡ã¯ Control: UI */
+		/* 次は Control: UI */
 		if (HDLC_getoctet(&octet) != E_OK || octet != HDLC_CNTL_UI)
 			return;
@@ -531,6 +503,5 @@
 
 /*
- *  HDLC_raw_getoctet -- HDLC ãªã¯ããã (Raw) å
-¥å
+ *  HDLC_raw_getoctet -- HDLC オクテット (Raw) 入力
  */
 
@@ -539,6 +510,5 @@
 	uint8_t ch;
 
-	/* 1ãªã¯ãããå
-¥åãã */
+	/* 1オクテット入力する */
 	if (serial_rea_dat(HDLC_PORTID, &ch, sizeof(ch)) <= 0)
 		return '\0';
@@ -549,5 +519,5 @@
 
 /*
- *  HDLC_raw_putoctet -- HDLC ãªã¯ããã (Raw) åºå
+ *  HDLC_raw_putoctet -- HDLC オクテット (Raw) 出力
  */
 
@@ -555,5 +525,5 @@
 {
 	NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, 1);
-	/* 1ãªã¯ãããåºåãã */
+	/* 1オクテット出力する */
 	serial_wri_dat(HDLC_PORTID, &ch, sizeof(ch));
 	}
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -72,9 +60,9 @@
 
 /*
- *  RFC1171 (PPP) ã® HDLC é¨ã®å®ç¾©
+ *  RFC1171 (PPP) の HDLC 部の定義
  */
 
 /*
- *  æ¢å®å¤
+ *  既定値
  */
 
@@ -90,5 +78,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -123,5 +111,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -135,107 +123,89 @@
 
 /*
- * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢
- */
-
-static void  ipcp_resetci(T_PPP_FSM *fsm);	/* èªæ§ææ
-å ±ããªã»ããããã	*/
-static int_t ipcp_cilen	(T_PPP_FSM *fsm);	/* æ§ææ
-å ±ã®é·ããè¿ãã		*/
+ * FSM から呼出されるコールバック関
+ */
+
+static void  ipcp_resetci(T_PPP_FSM *fsm);	/* 自構成情報をリセットする。	*/
+static int_t ipcp_cilen	(T_PPP_FSM *fsm);	/* 構成情報の長さを返す。		*/
 static void  ipcp_addci	(T_PPP_FSM *fsm, T_NET_BUF *output);
-						/* èªæ§ææ
-å ±ãè¿½å ããã		*/
+						/* 自構成情報を追加する。		*/
 static bool_t  ipcp_ackci	(T_PPP_FSM *fsm, T_NET_BUF *input);
-						/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+						/* ACK を受信したときの処理	*/
 static bool_t  ipcp_nakci	(T_PPP_FSM *fsm, T_NET_BUF *input);
-						/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+						/* NAK を受信したときの処理	*/
 static bool_t  ipcp_rejci	(T_PPP_FSM *fsm, T_NET_BUF *input);
-						/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+						/* REJ を受信したときの処理	*/
 static int_t ipcp_reqci	(T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
-						/* ç¸æã®æ§ææ
-å ±ãç¢ºèªããã	*/
-static void ipcp_up	(T_PPP_FSM *fsm);	/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
-static void ipcp_down	(T_PPP_FSM *fsm);	/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
-static void ipcp_finished(T_PPP_FSM *fsm);	/* ä¸ä½å±¤ãçµäºããã		*/
-
-/*
- *  å¤æ°
- */
-
-static T_IFNET ipcp_local_def_cfg = {		/* èªæ§ææ
-å ±ã®è¦å®å¤		*/
+						/* 相手の構成情報を確認する。	*/
+static void ipcp_up	(T_PPP_FSM *fsm);	/* リンク接続を確立する。		*/
+static void ipcp_down	(T_PPP_FSM *fsm);	/* リンク接続を解放する。		*/
+static void ipcp_finished(T_PPP_FSM *fsm);	/* 下位層を終了する。		*/
+
+/*
+ *  変数
+ */
+
+static T_IFNET ipcp_local_def_cfg = {		/* 自構成情報の規定値		*/
 	NULL,
 	{
-		IPV4_ADDR_LOCAL,		/* IP ã¢ãã¬ã¹			*/
-		UINT_C(0),			/* ãµãããããã¹ã¯		*/
+		IPV4_ADDR_LOCAL,		/* IP アドレス			*/
+		UINT_C(0),			/* サブネットマスク		*/
 		},
 	};
 
-static T_IFNET ipcp_remote_def_cfg = {		/* ç¸æã®æ§ææ
-å ±ã®è¦å®å¤	*/
+static T_IFNET ipcp_remote_def_cfg = {		/* 相手の構成情報の規定値	*/
 	NULL,
 	{
-		IPV4_ADDR_REMOTE,		/* IP ã¢ãã¬ã¹			*/
-		UINT_C(0),			/* ãµãããããã¹ã¯		*/
+		IPV4_ADDR_REMOTE,		/* IP アドレス			*/
+		UINT_C(0),			/* サブネットマスク		*/
 		}
 	};
 
-static T_IFNET ipcp_local_neg_cfg;		/* ãã´ä¸­ã®èªæ§ææ
-å ±		*/
-
-static T_IFNET ipcp_remote_neg_cfg;		/* ãã´ä¸­ã®ç¸æã®æ§ææ
-å ±		*/
-
-/*
- *  å
-¨åå¤æ°
+static T_IFNET ipcp_local_neg_cfg;		/* ネゴ中の自構成情報		*/
+
+static T_IFNET ipcp_remote_neg_cfg;		/* ネゴ中の相手の構成情報		*/
+
+/*
+ *  全域変数
  */
 
 T_PPP_FSM_CALLBACKS ipcp_callbacks = {
-	ipcp_resetci,			/* èªæ§ææ
-å ±ããªã»ããããã	*/
-	ipcp_cilen,			/* æ§ææ
-å ±ã®é·ããè¿ãã		*/
-	ipcp_addci,			/* èªæ§ææ
-å ±ãè¿½å ããã		*/
-	ipcp_ackci,			/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
-	ipcp_nakci,			/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
-	ipcp_rejci,			/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
-	ipcp_reqci,			/* ç¸æã®æ§ææ
-å ±ãç¢ºèªããã	*/
-	ipcp_up,			/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
-	ipcp_down,			/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
-	NULL,				/* ä¸ä½å±¤ãéå§ããã		*/
-	ipcp_finished,			/* ä¸ä½å±¤ãçµäºããã		*/
-	NULL,				/* åéããã			*/
-	NULL,				/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+	ipcp_resetci,			/* 自構成情報をリセットする。	*/
+	ipcp_cilen,			/* 構成情報の長さを返す。		*/
+	ipcp_addci,			/* 自構成情報を追加する。		*/
+	ipcp_ackci,			/* ACK を受信したときの処理	*/
+	ipcp_nakci,			/* NAK を受信したときの処理	*/
+	ipcp_rejci,			/* REJ を受信したときの処理	*/
+	ipcp_reqci,			/* 相手の構成情報を確認する。	*/
+	ipcp_up,			/* リンク接続を確立する。		*/
+	ipcp_down,			/* リンク接続を解放する。		*/
+	NULL,				/* 下位層を開始する。		*/
+	ipcp_finished,			/* 下位層を終了する。		*/
+	NULL,				/* 再送する。			*/
+	NULL,				/* 不明な CP を受信したときの処理	*/
 	};
 
 T_PPP_FSM ipcp_fsm = {
-	&ipcp_callbacks,		/* ã³ã¼ã«ããã¯é¢æ°		*/
-	PPP_IPCP,			/* ãã­ãã³ã«			*/
+	&ipcp_callbacks,		/* コールバック関数		*/
+	PPP_IPCP,			/* プロトコル			*/
 	};
 
 T_PPP_PROTENT ipcp_protent = {
 	PPP_IPCP,
-	ipcp_init,			/* åæå			*/
-	ipcp_input,			/* å
-¥å				*/
-	ipcp_protrej,			/* Proto-REJ åä¿¡å¦ç		*/
-	ipcp_lowerup,			/* ä¸ä½å±¤ãèµ·åãã		*/
-	ipcp_lowerdown,			/* ä¸ä½å±¤ãåæ­¢ãã		*/
-	ipcp_open,			/* ãªã¼ãã³ãã			*/
-	ipcp_close,			/* ã¯ã­ã¼ãºãã			*/
-	ip_input,			/* ãã¼ã¿å
-¥åãIP å
-¥å		*/
+	ipcp_init,			/* 初期化			*/
+	ipcp_input,			/* 入力				*/
+	ipcp_protrej,			/* Proto-REJ 受信処理		*/
+	ipcp_lowerup,			/* 下位層を起動する		*/
+	ipcp_lowerdown,			/* 下位層を停止する		*/
+	ipcp_open,			/* オープンする			*/
+	ipcp_close,			/* クローズする			*/
+	ip_input,			/* データ入力、IP 入力		*/
 	};
 
-T_IFNET ipcp_local_ack_cfg;		/* ç¸æã«è¨±å¯ãããã®èªæ§ææ
-å ±	*/
-T_IFNET ipcp_remote_ack_cfg;		/* ç¸æã«è¨±å¯ããæ§ææ
-å ±	*/
-
-/*
- *  ppp_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã
+T_IFNET ipcp_local_ack_cfg;		/* 相手に許可されたの自構成情報	*/
+T_IFNET ipcp_remote_ack_cfg;		/* 相手に許可した構成情報	*/
+
+/*
+ *  ppp_get_ifnet -- ネットワークインタフェース構造体を返す。
  */
 
@@ -247,8 +217,7 @@
 
 /*
- *  wait_ipcp -- IP æ¥ç¶å®äºã¾ã§å¾
-ã¤ã
- *
- *	æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã
+ *  wait_ipcp -- IP 接続完了まで待つ。
+ *
+ *	戻り値: 接続に失敗したら E_OBJ を返す。
  */
 
@@ -264,6 +233,5 @@
 #ifdef PPP_CFG_MODEM
 
-		/* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾
-ã¤ã*/
+		/* モデムの接続完了まで待つ。*/
 		if ((error = wait_modem()) != E_OK)
 			return error;
@@ -272,8 +240,6 @@
 
 		/*
-		 * ååãªã¼ãã³ããç¸æããã®æ¥ç¶å¾
-ã¡ãªã LCP ãä¸åº¦ã¯ã­ã¼ãºãã
-		 * è½åãªã¼ãã³ç¶æ
-ã§ãåãªã¼ãã³ããã
+		 * 受動オープンし、相手からの接続待ちなら LCP を一度クローズし、
+		 * 能動オープン状態で、再オープンする。
 		 */
 		lcp_close();
@@ -285,6 +251,5 @@
 
 	if (ipcp_fsm.state != PPP_FSM_OPENED) {
-		/* IP æ¥ç¶å®äºã¾ã§å¾
-ã¤ã*/
+		/* IP 接続完了まで待つ。*/
 		wai_sem(SEM_IPCP_READY);
 		if (ipcp_fsm.state != PPP_FSM_OPENED)
@@ -296,5 +261,5 @@
 
 /*
- *  ipcp_init -- IPCP ã¢ã¸ã¥ã¼ã«ã®åæå
+ *  ipcp_init -- IPCP モジュールの初期化
  */
 
@@ -306,6 +271,5 @@
 
 /*
- *  ipcp_input -- IPCP å
-¥å
+ *  ipcp_input -- IPCP 入力
  */
 
@@ -319,6 +283,5 @@
 
 /*
- *  ipcp_resetci -- IPCPã®æ§ææ
-å ±ããªã»ããããã
+ *  ipcp_resetci -- IPCPの構成情報をリセットする。
  */
 
@@ -326,11 +289,9 @@
 ipcp_resetci (T_PPP_FSM *fsm)
 {
-	/* èªæ§ææ
-å ±ã®åæè¨­å® */
+	/* 自構成情報の初期設定 */
 	ipcp_local_neg_cfg = ipcp_local_def_cfg;
 	memset((void*)&ipcp_local_ack_cfg, 0, sizeof(T_IFNET));
 
-	/* ç¸æã®æ§ææ
-å ±ã®åæè¨­å® */
+	/* 相手の構成情報の初期設定 */
 	ipcp_remote_neg_cfg = ipcp_remote_def_cfg;
 	memset((void*)&ipcp_remote_ack_cfg, 0, sizeof(T_IFNET));
@@ -338,6 +299,5 @@
 
 /*
- *  ipcp_cilen -- æ§ææ
-å ±ã®é·ããè¿ãã
+ *  ipcp_cilen -- 構成情報の長さを返す。
  */
 
@@ -347,5 +307,5 @@
 	int_t cilen = 0;
 
-	cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);	/* IP ã¢ãã¬ã¹ */
+	cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);	/* IP アドレス */
 
 	return cilen;
@@ -353,6 +313,5 @@
 
 /*
- *  ipcp_addci -- IPCPã®æ§ææ
-å ±ãè¿½å ããã
+ *  ipcp_addci -- IPCPの構成情報を追加する。
  */
 
@@ -364,5 +323,5 @@
 	buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
 
-	/* IP ã¢ãã¬ã¹ãªãã·ã§ã³ãè¿½å ããã */
+	/* IP アドレスオプションを追加する。 */
 	*buf ++ = IPCP_CIT_ADDR;
 	*buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
@@ -372,8 +331,8 @@
 
 /*
- *  ipcp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç
- *
- *	æ»ãå¤:	true  ACK ã¯æ­£å¸¸
- *		false ACK ã¯ç°å¸¸
+ *  ipcp_ackci -- ACK を受信したときの処理
+ *
+ *	戻り値:	true  ACK は正常
+ *		false ACK は異常
  */
 
@@ -388,11 +347,9 @@
 
 	/*
-	 *  æ§ææ
-å ±ã¯éä¿¡ããé ã«å®å
-¨ã«ä¸è´ããªããã°ãªããªãã
-	 *  å¾ã£ã¦ãipcp_addci ã§ä½æããé ã«è§£æããã
+	 *  構成情報は送信した順に完全に一致しなければならない。
+	 *  従って、ipcp_addci で作成した順に解析する。
 	 */
 
-	/* ADDR ãªãã·ã§ã³ãè§£æããã */
+	/* ADDR オプションを解析する。 */
 	if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	||
 	    *buf ++ != IPCP_CIT_ADDR			||
@@ -407,8 +364,8 @@
 
 /*
- *  ipcp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç
- *
- *	æ»ãå¤:	1  NAK ã¯æ­£å¸¸
- *		0  NAK ã¯ç°å¸¸
+ *  ipcp_nakci -- NAK を受信したときの処理
+ *
+ *	戻り値:	1  NAK は正常
+ *		0  NAK は異常
  */
 
@@ -426,5 +383,5 @@
 	new_cfg = ipcp_local_neg_cfg;
 
-	/* ADDR ãªãã·ã§ã³ãè§£æããã */
+	/* ADDR オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
 	    * buf      == IPCP_CIT_ADDR				&&
@@ -436,5 +393,5 @@
 		}
 
-	/* å¾ã¯ç¡è¦ããã*/
+	/* 後は無視する。*/
 	while (len > sizeof(T_PPP_CI_HDR)) {
 		cilen = *(buf + 1);
@@ -445,9 +402,9 @@
 		}
 
-	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	/* 長さが 0 でなければエラー */
 	if (len != 0)
 		return 0;
 
-	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	/* 新しいオプションを設定する。*/
 	if (fsm->state != PPP_FSM_OPENED)
 		ipcp_local_neg_cfg = new_cfg;
@@ -457,8 +414,8 @@
 
 /*
- *  ipcp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç
- *
- *	æ»ãå¤:	1  REJ ã¯æ­£å¸¸
- *		0  REJ ã¯ç°å¸¸
+ *  ipcp_rejci -- REJ を受信したときの処理
+ *
+ *	戻り値:	1  REJ は正常
+ *		0  REJ は異常
  */
 
@@ -475,5 +432,5 @@
 	new_cfg = ipcp_local_neg_cfg;
 
-	/* ADDR ãªãã·ã§ã³ãè§£æããã */
+	/* ADDR オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
 	    * buf      == IPCP_CIT_ADDR				&&
@@ -484,9 +441,9 @@
 		}
 
-	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	/* 長さが 0 でなければエラー */
 	if (len != 0)
 		return 0;
 
-	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	/* 新しいオプションを設定する。*/
 	if (fsm->state != PPP_FSM_OPENED)
 		ipcp_local_neg_cfg = new_cfg;
@@ -496,6 +453,5 @@
 
 /*
- *  ipcp_reqci -- ç¸æã®æ§ææ
-å ±ãè§£æããã
+ *  ipcp_reqci -- 相手の構成情報を解析する。
  */
 
@@ -508,31 +464,31 @@
 
 	rp = ap = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
-				/* rp: REJãap: ACK ãã CI ã®ãã¤ã³ã¿	*/
-				/* æå¦ããå ´åã¯ãå¼æ° buf ã«ä¸æ¸ãããã	*/
+				/* rp: REJ、ap: ACK する CI のポインタ	*/
+				/* 拒否する場合は、引数 buf に上書きする。	*/
 	len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
 	np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
-	final = PPP_CONFACK;	/* æçµçã«éä¿¡ããã³ã¼ã */
+	final = PPP_CONFACK;	/* 最終的に送信するコード */
 	while (len > 0) {
 		code = PPP_CONFACK;
-		cp   = ap;	/* cp: ç¾å¨å¦çä¸­ã® CI	*/
+		cp   = ap;	/* cp: 現在処理中の CI	*/
 
 		if (len < sizeof(T_PPP_CI_HDR)) {
 
-			/* æ®ãã CI ãããããç­ã */
+			/* 残りが CI ヘッダより短い */
 			syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", len);
-			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
-			len  = 0;	/* ã«ã¼ãããæããã		*/
+			cilen = len;	/* データ長が異常の場合の処置	*/
+			len  = 0;	/* ループから抜ける。		*/
 			code  = PPP_CONFREJ;
 			goto endswitch;
 			}
 
-		type  = *ap ++;	/* CI ã®å		*/
-		cilen = *ap ++;	/* CI ã®é·ã		*/
+		type  = *ap ++;	/* CI の型		*/
+		cilen = *ap ++;	/* CI の長さ		*/
 		if (len < cilen) {
 
-			/* æ®ãã CI é·ããç­ã */
+			/* 残りが CI 長より短い */
 			syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", cilen);
-			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
-			len  = 0;	/* ã«ã¼ãããæããã		*/
+			cilen = len;	/* データ長が異常の場合の処置	*/
+			len  = 0;	/* ループから抜ける。		*/
 			code  = PPP_CONFREJ;
 			goto endswitch;
@@ -540,10 +496,10 @@
 		len -= sizeof(T_PPP_CI_HDR);
 
-		/* CI ã®åã«ããåå²ããã*/
+		/* CI の型により分岐する。*/
 		switch (type) {
 
-		case IPCP_CIT_ADDR:	/* IP ã¢ãã¬ã¹ */
-
-		 	/* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°ã¨ã©ã¼ */
+		case IPCP_CIT_ADDR:	/* IP アドレス */
+
+		 	/* CI 長が、ヘッダ + 4 オクテットでなければエラー */
 		 	if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
 				code = PPP_CONFREJ;
@@ -558,5 +514,5 @@
 					code = PPP_CONFNAK;
 					}
-#if 1	/* è¦ç¢ºèª */
+#if 1	/* 要確認 */
 				else if (addr == 0 && ipcp_remote_neg_cfg.in_ifaddr.addr == 0)
 #else
@@ -577,7 +533,6 @@
 
 		if (code == PPP_CONFNAK) {
-			/* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã	*/
-			/* æå¤§å¤ MAX_PPP_FAILURES  ãè¶
-ãããæå¦ããã	*/
+			/* CI の型が Magic Number の場合を除いて、NAK の回数が	*/
+			/* 最大値 MAX_PPP_FAILURES  を超えたら拒否する。	*/
 			if (fsm->failures >= MAX_PPP_FAILURES)
 				code = PPP_CONFREJ;
@@ -586,7 +541,7 @@
 			}
 
-		/* ãã® CI ãæå¦ãã */
+		/* この CI を拒否する */
 		if (code == PPP_CONFREJ) {
-			if (rp < cp)		/* åã«è©°ããã*/
+			if (rp < cp)		/* 前に詰める。*/
 				memcpy(rp, cp, cilen);
 			rp += cilen;
@@ -598,5 +553,5 @@
 		}
 
-	/* æçµçãªé·ããèª¿æ´ããã*/
+	/* 最終的な長さを調整する。*/
 	switch (final) {
 	case PPP_CONFNAK:
@@ -616,5 +571,5 @@
 
 /*
- *  ipcp_up -- ãªã³ã¯æ¥ç¶ãç¢ºç«ããã
+ *  ipcp_up -- リンク接続を確立する。
  */
 
@@ -622,21 +577,19 @@
 ipcp_up (T_PPP_FSM *fsm)
 {
-	/* èªæ§ææ
-å ±ã®åæè¨­å® */
+	/* 自構成情報の初期設定 */
 	ipcp_local_ack_cfg = ipcp_local_neg_cfg;
 
 	/*
-	 *  ãµãããããã¹ã¯ã¨
-	 *  ã­ã¼ã«ã«ã»ãã­ã¼ãã­ã£ã¹ã IP ã¢ãã¬ã¹ãè¨­å®ããã
+	 *  サブネットマスクと
+	 *  ローカル・ブロードキャスト IP アドレスを設定する。
 	 */
 	ipcp_local_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in_ifaddr.addr);
 
-	/* ç¸æã®æ§ææ
-å ±ã®åæè¨­å® */
+	/* 相手の構成情報の初期設定 */
 	ipcp_remote_ack_cfg = ipcp_remote_neg_cfg;
 
 	/*
-	 *  ãµãããããã¹ã¯ã¨
-	 *  ã­ã¼ã«ã«ã»ãã­ã¼ãã­ã£ã¹ã IP ã¢ãã¬ã¹ãè¨­å®ããã
+	 *  サブネットマスクと
+	 *  ローカル・ブロードキャスト IP アドレスを設定する。
 	 */
 	ipcp_remote_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in_ifaddr.addr);
@@ -650,5 +603,5 @@
 
 /*
- *  ipcp_down -- ãªã³ã¯æ¥ç¶ãè§£æ¾ããã
+ *  ipcp_down -- リンク接続を解放する。
  */
 
@@ -661,5 +614,5 @@
 
 /*
- *  ipcp_finished -- ä¸ä½å±¤ãçµäºããã
+ *  ipcp_finished -- 下位層を終了する。
  */
 
@@ -670,5 +623,5 @@
 
 /*
- *  ipcp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ *  ipcp_protrej -- Proto-REJ を受信したときの処理
  */
 
@@ -680,5 +633,5 @@
 
 /*
- *  ipcp_lowerup -- IPCP ä¸ä½å±¤ãèµ·åããã
+ *  ipcp_lowerup -- IPCP 下位層を起動する。
  */
 
@@ -690,5 +643,5 @@
 
 /*
- *  ipcp_lowerdown -- IPCP ä¸ä½å±¤ãåæ­¢ããã
+ *  ipcp_lowerdown -- IPCP 下位層を停止する。
  */
 
@@ -700,5 +653,5 @@
 
 /*
- *  ipcp_open -- IPCP ã®ãªã¼ãã³
+ *  ipcp_open -- IPCP のオープン
  */
 
@@ -710,5 +663,5 @@
 
 /*
- *  ipcp_close -- IPCP ã®ã¯ã­ã¼ãº
+ *  ipcp_close -- IPCP のクローズ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -93,19 +81,17 @@
 
 /*
- *  IPCP ã®æ§ææ
-å ± (CI)
+ *  IPCP の構成情報 (CI)
  */
 
 /*
- *  CI ã®å
+ *  CI の型
  */
 
-#define IPCP_CIT_ADDRS		UINT_C(1)	/* IP ã¢ãã¬ã¹ (å»æ£)	*/
-#define IPCP_CIT_COMP_TYPE	UINT_C(2)	/* å§ç¸®æ¹å¼		*/
-#define IPCP_CIT_ADDR		UINT_C(3)	/* IP ã¢ãã¬ã¹		*/
+#define IPCP_CIT_ADDRS		UINT_C(1)	/* IP アドレス (廃棄)	*/
+#define IPCP_CIT_COMP_TYPE	UINT_C(2)	/* 圧縮方式		*/
+#define IPCP_CIT_ADDR		UINT_C(3)	/* IP アドレス		*/
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -119,5 +105,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -134,5 +120,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -112,5 +100,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -130,66 +118,58 @@
 
 /*
- * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢æ°
- */
-
-static void  lcp_resetci(T_PPP_FSM *fsm);	/* èªæ§ææ
-å ±ããªã»ããããã	*/
-static int_t lcp_cilen	(T_PPP_FSM *fsm);	/* æ§ææ
-å ±ã®é·ããè¿ãã		*/
+ * FSM から呼出されるコールバック関数
+ */
+
+static void  lcp_resetci(T_PPP_FSM *fsm);	/* 自構成情報をリセットする。	*/
+static int_t lcp_cilen	(T_PPP_FSM *fsm);	/* 構成情報の長さを返す。		*/
 static void  lcp_addci	(T_PPP_FSM *fsm, T_NET_BUF *output);
-						/* èªæ§ææ
-å ±ãè¿½å ããã		*/
+						/* 自構成情報を追加する。		*/
 static bool_t lcp_ackci	(T_PPP_FSM *fsm, T_NET_BUF *input);
-						/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+						/* ACK を受信したときの処理	*/
 static bool_t lcp_nakci	(T_PPP_FSM *fsm, T_NET_BUF *input);
-						/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+						/* NAK を受信したときの処理	*/
 static bool_t lcp_rejci	(T_PPP_FSM *fsm, T_NET_BUF *input);
-						/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+						/* REJ を受信したときの処理	*/
 static int_t lcp_reqci	(T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
-						/* ç¸æã®æ§ææ
-å ±ãç¢ºèªããã	*/
-static void lcp_up	(T_PPP_FSM *fsm);	/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
-static void lcp_starting(T_PPP_FSM *fsm);	/* ä¸ä½å±¤ãéå§ããã		*/
+						/* 相手の構成情報を確認する。	*/
+static void lcp_up	(T_PPP_FSM *fsm);	/* リンク接続を確立する。		*/
+static void lcp_starting(T_PPP_FSM *fsm);	/* 下位層を開始する。		*/
 static bool_t lcp_extcode	(T_PPP_FSM *fsm, uint8_t code, uint8_t id, T_NET_BUF *input);
-						/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+						/* 不明な CP を受信したときの処理	*/
 static void lcp_rprotrej(T_PPP_FSM *fsm, T_NET_BUF *input);
-						/* Proto-REJ ãåä¿¡ããã¨ãã®å¦ç	*/
-/*
- *  å¤æ°
- */
-
-static T_LCP_CONFIGS lcp_def_cfg = {		/* æ§ææ
-å ±ã®åæè¨­å®å¤		*/
+						/* Proto-REJ を受信したときの処理	*/
+/*
+ *  変数
+ */
+
+static T_LCP_CONFIGS lcp_def_cfg = {		/* 構成情報の初期設定値		*/
 	DEF_REMOTE_ACCM,			/* ACCM				*/
 
 #ifdef LCP_CFG_MAGIC
 
-	ULONG_C(0),				/* ãã¸ãã¯çªå·			*/
+	ULONG_C(0),				/* マジック番号			*/
 
 #endif	/* of #ifdef LCP_CFG_MAGIC */
 
 	DEF_PPP_MTU,				/* MRU				*/
-	UINT_C(0),				/* ãªãã·ã§ã³ãã©ã°		*/
+	UINT_C(0),				/* オプションフラグ		*/
 	};
 
-static T_LCP_CONFIGS lcp_local_def_cfg = {	/* èªæ§ææ
-å ±ã®è¦å®å¤		*/
+static T_LCP_CONFIGS lcp_local_def_cfg = {	/* 自構成情報の規定値		*/
 	DEF_LOCAL_ACCM,				/* ACCM				*/
 
 #ifdef LCP_CFG_MAGIC
 
-	ULONG_C(0),				/* ãã¸ãã¯çªå·			*/
+	ULONG_C(0),				/* マジック番号			*/
 
 #endif	/* of #ifdef LCP_CFG_MAGIC */
 
 	DEF_PPP_MTU,				/* MRU				*/
-	DEF_LCP_LOCAL_CFGS,			/* ãªãã·ã§ã³ãã©ã°		*/
+	DEF_LCP_LOCAL_CFGS,			/* オプションフラグ		*/
 	};
 
-static T_LCP_CONFIGS lcp_local_neg_cfg;		/* ãã´ä¸­ã®èªæ§ææ
-å ±		*/
-
-static T_LCP_CONFIGS lcp_remote_neg_cfg;	/* ãã´ä¸­ã®ç¸æã®æ§ææ
-å ±		*/
+static T_LCP_CONFIGS lcp_local_neg_cfg;		/* ネゴ中の自構成情報		*/
+
+static T_LCP_CONFIGS lcp_remote_neg_cfg;	/* ネゴ中の相手の構成情報		*/
 
 #if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC
@@ -202,54 +182,45 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
 T_PPP_FSM_CALLBACKS lcp_callbacks = {
-	lcp_resetci,			/* èªæ§ææ
-å ±ããªã»ããããã	*/
-	lcp_cilen,			/* æ§ææ
-å ±ã®é·ããè¿ãã		*/
-	lcp_addci,			/* èªæ§ææ
-å ±ãè¿½å ããã		*/
-	lcp_ackci,			/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
-	lcp_nakci,			/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
-	lcp_rejci,			/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
-	lcp_reqci,			/* ç¸æã®æ§ææ
-å ±ãç¢ºèªããã	*/
-	lcp_up,				/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
-	lcp_down,			/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
-	lcp_starting,			/* ä¸ä½å±¤ãéå§ããã		*/
-	lcp_finished,			/* ä¸ä½å±¤ãçµäºããã		*/
-	NULL,				/* åéããã			*/
-	lcp_extcode,			/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+	lcp_resetci,			/* 自構成情報をリセットする。	*/
+	lcp_cilen,			/* 構成情報の長さを返す。		*/
+	lcp_addci,			/* 自構成情報を追加する。		*/
+	lcp_ackci,			/* ACK を受信したときの処理	*/
+	lcp_nakci,			/* NAK を受信したときの処理	*/
+	lcp_rejci,			/* REJ を受信したときの処理	*/
+	lcp_reqci,			/* 相手の構成情報を確認する。	*/
+	lcp_up,				/* リンク接続を確立する。		*/
+	lcp_down,			/* リンク接続を解放する。		*/
+	lcp_starting,			/* 下位層を開始する。		*/
+	lcp_finished,			/* 下位層を終了する。		*/
+	NULL,				/* 再送する。			*/
+	lcp_extcode,			/* 不明な CP を受信したときの処理	*/
 	};
 
 T_PPP_FSM lcp_fsm = {
-	&lcp_callbacks,			/* ã³ã¼ã«ããã¯é¢æ°		*/
-	PPP_LCP,			/* ãã­ãã³ã«			*/
+	&lcp_callbacks,			/* コールバック関数		*/
+	PPP_LCP,			/* プロトコル			*/
 	};
 
 T_PPP_PROTENT lcp_protent = {
 	PPP_LCP,
-	lcp_init,			/* åæå			*/
-	lcp_input,			/* å
-¥å				*/
-	lcp_protrej,			/* Proto-REJ åä¿¡å¦ç		*/
-	NULL,				/* ä¸ä½å±¤ãèµ·åãã		*/
-	lcp_lowerdown,			/* ä¸ä½å±¤ãåæ­¢ãã		*/
-	NULL,				/* ãªã¼ãã³ãã			*/
-	lcp_close,			/* ã¯ã­ã¼ãºãã			*/
-	NULL,				/* ãã¼ã¿å
-¥å			*/
+	lcp_init,			/* 初期化			*/
+	lcp_input,			/* 入力				*/
+	lcp_protrej,			/* Proto-REJ 受信処理		*/
+	NULL,				/* 下位層を起動する		*/
+	lcp_lowerdown,			/* 下位層を停止する		*/
+	NULL,				/* オープンする			*/
+	lcp_close,			/* クローズする			*/
+	NULL,				/* データ入力			*/
 	};
 
-T_LCP_CONFIGS lcp_local_ack_cfg;	/* ç¸æã«è¨±å¯ãããã®èªæ§ææ
-å ±	*/
-T_LCP_CONFIGS lcp_remote_ack_cfg;	/* ç¸æã«è¨±å¯ããæ§ææ
-å ±		*/
-
-/*
- *  lcp_init -- LCP ã¢ã¸ã¥ã¼ã«ã®åæå
+T_LCP_CONFIGS lcp_local_ack_cfg;	/* 相手に許可されたの自構成情報	*/
+T_LCP_CONFIGS lcp_remote_ack_cfg;	/* 相手に許可した構成情報		*/
+
+/*
+ *  lcp_init -- LCP モジュールの初期化
  */
 
@@ -261,6 +232,5 @@
 
 /*
- *  lcp_input -- LCP å
-¥å
+ *  lcp_input -- LCP 入力
  */
 
@@ -274,6 +244,5 @@
 
 /*
- *  lcp_resetci -- LCPã®æ§ææ
-å ±ããªã»ããããã
+ *  lcp_resetci -- LCPの構成情報をリセットする。
  */
 
@@ -287,11 +256,9 @@
 #endif	/* of #ifdef LCP_CFG_MAGIC */
 
-	/* èªæ§ææ
-å ±ã®åæè¨­å® */
+	/* 自構成情報の初期設定 */
 	lcp_local_neg_cfg	= lcp_local_def_cfg;
 	lcp_local_ack_cfg	= lcp_def_cfg;
 
-	/* ç¸æã®æ§ææ
-å ±ã®åæè¨­å® */
+	/* 相手の構成情報の初期設定 */
 	lcp_remote_neg_cfg	= lcp_def_cfg;
 	lcp_remote_ack_cfg	= lcp_def_cfg;
@@ -309,6 +276,5 @@
 
 /*
- *  lcp_cilen -- æ§ææ
-å ±ã®é·ããè¿ãã
+ *  lcp_cilen -- 構成情報の長さを返す。
  */
 
@@ -341,5 +307,5 @@
 
 	if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP)
-		cilen += sizeof(T_PPP_CI_HDR);			/* ãã­ãã³ã«å§ç¸® */
+		cilen += sizeof(T_PPP_CI_HDR);			/* プロトコル圧縮 */
 
 #endif	/* of #ifdef LCP_CFG_PCOMP */
@@ -348,5 +314,5 @@
 
 	if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP)
-		cilen += sizeof(T_PPP_CI_HDR);			/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸® */
+		cilen += sizeof(T_PPP_CI_HDR);			/* アドレス・制御圧縮 */
 
 #endif	/* of #ifdef LCP_CFG_ACCOMP */
@@ -356,6 +322,5 @@
 
 /*
- *  lcp_addci -- LCPã®æ§ææ
-å ±ãè¿½å ããã
+ *  lcp_addci -- LCPの構成情報を追加する。
  */
 
@@ -367,5 +332,5 @@
 	buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
 
-	/* MRU ãªãã·ã§ã³ãè¿½å ããã */
+	/* MRU オプションを追加する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_MRU) {
 		*buf ++ = LCP_CIT_MRU;
@@ -375,5 +340,5 @@
 		}
 
-	/* ACCM ãªãã·ã§ã³ãè¿½å ããã */
+	/* ACCM オプションを追加する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) {
 		*buf ++ = LCP_CIT_ACCM;
@@ -385,5 +350,5 @@
 #ifdef LCP_CFG_MAGIC
 
-	/* Magic Number ãªãã·ã§ã³ãè¿½å ããã */
+	/* Magic Number オプションを追加する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) {
 		*buf ++ = LCP_CIT_MAGIC;
@@ -397,5 +362,5 @@
 #ifdef LCP_CFG_PAP
 
-	/* èªè¨¼ãã­ãã³ã«ãªãã·ã§ã³ãè¿½å ããã */
+	/* 認証プロトコルオプションを追加する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_PAP) {
 		*buf ++ = LCP_CIT_AUTH;
@@ -409,5 +374,5 @@
 #ifdef LCP_CFG_PCOMP
 
-	/* ãã­ãã³ã«å§ç¸®ãªãã·ã§ã³ãè¿½å ããã */
+	/* プロトコル圧縮オプションを追加する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) {
 		*buf ++ = LCP_CIT_PCOMP;
@@ -419,5 +384,5 @@
 #ifdef LCP_CFG_ACCOMP
 
-	/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ãè¿½å ããã */
+	/* アドレス・制御圧縮オプションを追加する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) {
 		*buf ++ = LCP_CIT_ACCOMP;
@@ -429,8 +394,8 @@
 
 /*
- *  lcp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç
+ *  lcp_ackci -- ACK を受信したときの処理
  *
- *	æ»ãå¤:	TURE  ACK ã¯æ­£å¸¸
- *		false ACK ã¯ç°å¸¸
+ *	戻り値:	TURE  ACK は正常
+ *		false ACK は異常
  */
 
@@ -445,11 +410,9 @@
 
 	/*
-	 *  æ§ææ
-å ±ã¯éä¿¡ããé ã«å®å
-¨ã«ä¸è´ããªããã°ãªããªãã
-	 *  å¾ã£ã¦ãlcp_addci ã§ä½æããé ã«è§£æããã
+	 *  構成情報は送信した順に完全に一致しなければならない。
+	 *  従って、lcp_addci で作成した順に解析する。
 	 */
 
-	/* MRU ãªãã·ã§ã³ãè§£æããã */
+	/* MRU オプションを解析する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_MRU) {
 		if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)	||
@@ -462,5 +425,5 @@
 		}
 
-	/* ACCM ãªãã·ã§ã³ãè§£æããã */
+	/* ACCM オプションを解析する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) {
 		if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	||
@@ -475,5 +438,5 @@
 #ifdef LCP_CFG_MAGIC
 
-	/* Magic Number ãªãã·ã§ã³ãè§£æããã */
+	/* Magic Number オプションを解析する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) {
 		if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	||
@@ -490,5 +453,5 @@
 #ifdef LCP_CFG_PAP
 
-	/* èªè¨¼ãã­ãã³ã«ãªãã·ã§ã³ãè§£æããã */
+	/* 認証プロトコルオプションを解析する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_PAP) {
 		if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)	||
@@ -505,5 +468,5 @@
 #ifdef LCP_CFG_PCOMP
 
-	/* ãã­ãã³ã«å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	/* プロトコル圧縮オプションを解析する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) {
 		if (len < sizeof(T_PPP_CI_HDR)			||
@@ -518,5 +481,5 @@
 #ifdef LCP_CFG_ACCOMP
 
-	/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	/* アドレス・制御圧縮オプションを解析する。 */
 	if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) {
 		if (len < sizeof(T_PPP_CI_HDR)			||
@@ -532,8 +495,8 @@
 
 /*
- *  lcp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç
+ *  lcp_nakci -- NAK を受信したときの処理
  *
- *	æ»ãå¤:	1  NAK ã¯æ­£å¸¸
- *		0  NAK ã¯ç°å¸¸
+ *	戻り値:	1  NAK は正常
+ *		0  NAK は異常
  */
 
@@ -542,5 +505,5 @@
 {
 	T_LCP_CONFIGS	new_cfg;
-	bool_t		loop = false;	/* ã«ã¼ãããã¯ããã§ãã¯ */
+	bool_t		loop = false;	/* ループバックをチェック */
 	uint32_t	cilong;
 	uint16_t	cishort, len;
@@ -552,5 +515,5 @@
 	new_cfg = lcp_local_neg_cfg;
 
-	/* MRU ãªãã·ã§ã³ãè§£æããã */
+	/* MRU オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)		&&
 	    * buf      == LCP_CIT_MRU				&&
@@ -564,5 +527,5 @@
 		}
 
-	/* ACCM ãªãã·ã§ã³ãè§£æããã */
+	/* ACCM オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
 	    * buf      == LCP_CIT_ACCM				&&
@@ -577,5 +540,5 @@
 #ifdef LCP_CFG_MAGIC
 
-	/* Magic Number ãªãã·ã§ã³ãè§£æããã */
+	/* Magic Number オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
 	    * buf      == LCP_CIT_MAGIC				&&
@@ -593,5 +556,5 @@
 #ifdef LCP_CFG_PAP
 
-	/* èªè¨¼ãã­ãã³ã«ãªãã·ã§ã³ãè§£æããã */
+	/* 認証プロトコルオプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)		&&
 	    * buf      == LCP_CIT_AUTH				&&
@@ -611,5 +574,5 @@
 #ifdef LCP_CFG_PCOMP
 
-	/* ãã­ãã³ã«å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	/* プロトコル圧縮オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR)				&&
 	    * buf      == LCP_CIT_PCOMP				&&
@@ -625,5 +588,5 @@
 #ifdef LCP_CFG_ACCOMP
 
-	/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	/* アドレス・制御圧縮オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR)				&&
 	    * buf      == LCP_CIT_ACCOMP			&&
@@ -637,5 +600,5 @@
 #endif	/* of #ifdef LCP_CFG_ACCOMP */
 
-	/* å¾ã¯ç¡è¦ããã*/
+	/* 後は無視する。*/
 	while (len > sizeof(T_PPP_CI_HDR)) {
 		cilen = *(buf + 1);
@@ -646,9 +609,9 @@
 		}
 
-	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	/* 長さが 0 でなければエラー */
 	if (len != 0)
 		return 0;
 
-	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	/* 新しいオプションを設定する。*/
 	if (fsm->state != PPP_FSM_OPENED) {
 		if (loop) {
@@ -662,8 +625,8 @@
 
 /*
- *  lcp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç
+ *  lcp_rejci -- REJ を受信したときの処理
  *
- *	æ»ãå¤:	1  REJ ã¯æ­£å¸¸
- *		0  REJ ã¯ç°å¸¸
+ *	戻り値:	1  REJ は正常
+ *		0  REJ は異常
  */
 
@@ -681,5 +644,5 @@
 	new_cfg = lcp_local_neg_cfg;
 
-	/* MRU ãªãã·ã§ã³ãè§£æããã */
+	/* MRU オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)		&&
 	    * buf      == LCP_CIT_MRU					&&
@@ -695,5 +658,5 @@
 		}
 		
-	/* ACCM ãªãã·ã§ã³ãè§£æããã */
+	/* ACCM オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
 	    * buf      == LCP_CIT_ACCM					&&
@@ -711,5 +674,5 @@
 #ifdef LCP_CFG_MAGIC
 
-	/* Magic Number ãªãã·ã§ã³ãè§£æããã */
+	/* Magic Number オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
 	    * buf      == LCP_CIT_MAGIC					&&
@@ -729,5 +692,5 @@
 #ifdef LCP_CFG_PAP
 
-	/* èªè¨¼ãã­ãã³ã«ãªãã·ã§ã³ãè§£æããã */
+	/* 認証プロトコルオプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)		&&
 	    * buf      == LCP_CIT_AUTH					&&
@@ -747,5 +710,5 @@
 #ifdef LCP_CFG_PCOMP
 
-	/* ãã­ãã³ã«å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	/* プロトコル圧縮オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR)				&&
 	    * buf      == LCP_CIT_PCOMP				&&
@@ -761,5 +724,5 @@
 #ifdef LCP_CFG_ACCOMP
 
-	/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	/* アドレス・制御圧縮オプションを解析する。 */
 	if (len >= sizeof(T_PPP_CI_HDR)				&&
 	    * buf      == LCP_CIT_ACCOMP			&&
@@ -773,9 +736,9 @@
 #endif	/* of #ifdef LCP_CFG_ACCOMP */
 
-	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	/* 長さが 0 でなければエラー */
 	if (len != 0)
 		return 0;
 
-	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	/* 新しいオプションを設定する。*/
 	if (fsm->state != PPP_FSM_OPENED)
 		lcp_local_neg_cfg = new_cfg;
@@ -785,6 +748,5 @@
 
 /*
- *  lcp_reqci -- ç¸æã®æ§ææ
-å ±ãè§£æããã
+ *  lcp_reqci -- 相手の構成情報を解析する。
  */
 
@@ -802,31 +764,31 @@
 
 	rp = ap = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
-				/* rp: REJãap: ACK ãã CI ã®ãã¤ã³ã¿		*/
-				/* æå¦ããå ´åã¯ãå¼æ° input ã«ä¸æ¸ãããã	*/
+				/* rp: REJ、ap: ACK する CI のポインタ		*/
+				/* 拒否する場合は、引数 input に上書きする。	*/
 	len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
 	np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
-	final = PPP_CONFACK;	/* æçµçã«éä¿¡ããã³ã¼ã */
+	final = PPP_CONFACK;	/* 最終的に送信するコード */
 	while (len > 0) {
 		code = PPP_CONFACK;
-		cp   = ap;	/* cp: ç¾å¨å¦çä¸­ã® CI	*/
+		cp   = ap;	/* cp: 現在処理中の CI	*/
 
 		if (len < sizeof(T_PPP_CI_HDR)) {
 
-			/* æ®ãã CI ãããããç­ã */
+			/* 残りが CI ヘッダより短い */
 			syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", len);
-			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
-			len   = 0;	/* ã«ã¼ãããæããã		*/
+			cilen = len;	/* データ長が異常の場合の処置	*/
+			len   = 0;	/* ループから抜ける。		*/
 			code  = PPP_CONFREJ;
 			goto endswitch;
 			}
 
-		type  = *ap ++;	/* CI ã®å		*/
-		cilen = *ap ++;	/* CI ã®é·ã		*/
+		type  = *ap ++;	/* CI の型		*/
+		cilen = *ap ++;	/* CI の長さ		*/
 		if (len < cilen) {
 
-			/* æ®ãã CI é·ããç­ã */
+			/* 残りが CI 長より短い */
 			syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", cilen);
-			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
-			len   = 0;	/* ã«ã¼ãããæããã		*/
+			cilen = len;	/* データ長が異常の場合の処置	*/
+			len   = 0;	/* ループから抜ける。		*/
 			code  = PPP_CONFREJ;
 			goto endswitch;
@@ -834,8 +796,8 @@
 		len -= sizeof(T_PPP_CI_HDR);
 
-		/* CI ã®åã«ããåå²ããã*/
+		/* CI の型により分岐する。*/
 		switch (type) {
 
-		case LCP_CIT_MRU:	/* æå¤§åä¿¡é (Maximum Receive Unit) */
+		case LCP_CIT_MRU:	/* 最大受信量 (Maximum Receive Unit) */
 
 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0
@@ -845,5 +807,5 @@
 #else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0 */
 
-		 	/* CI é·ããããã + 2 ãªã¯ãããã§ãªããã° REJ */
+		 	/* CI 長が、ヘッダ + 2 オクテットでなければ REJ */
 		 	if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint16_t))
 				code = PPP_CONFREJ;
@@ -851,5 +813,5 @@
 				cishort = ntohs(*(uint16_t*)ap);
 
-				/* æå°åä¿¡éããå°ãããã° NAK */
+				/* 最小受信量より小さければ NAK */
 				if (cishort < MIN_PPP_MTU) {
 					*np ++ = LCP_CIT_MRU;
@@ -877,5 +839,5 @@
 #else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCM) == 0 */
 
-		 	/* CI é·ããããã + 4 ãªã¯ãããã§ãªããã° REJ */
+		 	/* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
 		 	if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
 				code = PPP_CONFREJ;
@@ -889,5 +851,5 @@
 			break;
 
-		case LCP_CIT_MAGIC:	/* ãã¸ãã¯çªå· */
+		case LCP_CIT_MAGIC:	/* マジック番号 */
 
 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0
@@ -897,5 +859,5 @@
 #else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0 */
 
-		 	/* CI é·ããããã + 4 ãªã¯ãããã§ãªããã° REJ */
+		 	/* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
 		 	if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
 				code = PPP_CONFREJ;
@@ -903,5 +865,5 @@
 				ntoahl(cilong, ap);
 
-				/* çªå·ãèªåã¨åããªã NAK */
+				/* 番号が自分と同じなら NAK */
 				if (cilong == lcp_local_neg_cfg.magic) {
 					cilong = net_rand();
@@ -923,10 +885,9 @@
 
 #ifdef LCP_CFG_PAP
-		/* CHAP ã¯å®è£
-äºå®	*/
-
-		case LCP_CIT_AUTH:	/* èªè¨¼ãã­ãã³ã« */
-
-		 	/* CI é·ããããã + 2 ãªã¯ãããããç­ãã¨ãã¯ã¨ã©ã¼ */
+		/* CHAP は実装予定	*/
+
+		case LCP_CIT_AUTH:	/* 認証プロトコル */
+
+		 	/* CI 長が、ヘッダ + 2 オクテットより短いときはエラー */
 		 	if (cilen < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t))
 				code = PPP_CONFREJ;
@@ -934,5 +895,5 @@
 				cishort = ntohs(*(uint16_t*)ap);
 
-				/* èªè¨¼ãã­ãã³ã«ã«ããåå²ãã	*/
+				/* 認証プロトコルにより分岐する	*/
 				if (cishort == PPP_PAP &&
 				    cilen   == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) &&
@@ -948,6 +909,5 @@
 #ifdef LCP_CFG_PCOMP
 
-		case LCP_CIT_PCOMP:	/* ãã­ãã³ã«é¨å§ç¸®ã¯å®è£
-äºå® */
+		case LCP_CIT_PCOMP:	/* プロトコル部圧縮は実装予定 */
 
 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0
@@ -957,5 +917,5 @@
 #else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0 */
 
-		 	/* CI é·ãããããé·ã ãã§ãªããã° REJ */
+		 	/* CI 長が、ヘッダ長だけでなければ REJ */
 		 	if (cilen != sizeof(T_PPP_CI_HDR))
 				code = PPP_CONFREJ;
@@ -971,5 +931,5 @@
 #ifdef LCP_CFG_ACCOMP
 
-		case LCP_CIT_ACCOMP:	/* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸® */
+		case LCP_CIT_ACCOMP:	/* アドレス・制御部圧縮 */
 
 #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0
@@ -979,5 +939,5 @@
 #else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0 */
 
-		 	/* CI é·ãããããé·ã ãã§ãªããã° REJ */
+		 	/* CI 長が、ヘッダ長だけでなければ REJ */
 		 	if (cilen != sizeof(T_PPP_CI_HDR))
 				code = PPP_CONFREJ;
@@ -998,7 +958,6 @@
 endswitch:
 		if (code == PPP_CONFNAK) {
-			/* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã	*/
-			/* æå¤§å¤ MAX_PPP_FAILURES  ãè¶
-ãããæå¦ããã	*/
+			/* CI の型が Magic Number の場合を除いて、NAK の回数が	*/
+			/* 最大値 MAX_PPP_FAILURES  を超えたら拒否する。	*/
 			if (fsm->failures >= MAX_PPP_FAILURES && type != LCP_CIT_MAGIC)
 				code = PPP_CONFREJ;
@@ -1007,7 +966,7 @@
 			}
 
-		/* ãã® CI ãæå¦ãã */
+		/* この CI を拒否する */
 		if (code == PPP_CONFREJ) {
-			if (rp < cp)		/* åã«è©°ããã*/
+			if (rp < cp)		/* 前に詰める。*/
 				memcpy(rp, cp, cilen);
 			rp += cilen;
@@ -1019,5 +978,5 @@
 		}
 
-	/* æçµçãªé·ããèª¿æ´ããã*/
+	/* 最終的な長さを調整する。*/
 	switch (final) {
 	case PPP_CONFNAK:
@@ -1036,5 +995,5 @@
 
 /*
- *  lcp_up -- ãªã³ã¯æ¥ç¶ãç¢ºç«ãã (Phase: Establish ã«ç§»è¡ãã)ã
+ *  lcp_up -- リンク接続を確立する (Phase: Establish に移行する)。
  */
 
@@ -1042,10 +1001,8 @@
 lcp_up (T_PPP_FSM *fsm)
 {
-	/* èªæ§ææ
-å ±ã®è¨­å® */
+	/* 自構成情報の設定 */
 	lcp_local_ack_cfg = lcp_local_neg_cfg;
 
-	/* ç¸æã®æ§ææ
-å ±ã®è¨­å® */
+	/* 相手の構成情報の設定 */
 	lcp_remote_ack_cfg = lcp_remote_neg_cfg;
 
@@ -1060,5 +1017,5 @@
 
 /*
- *  lcp_starting -- ä¸ä½å±¤ãéå§ããã
+ *  lcp_starting -- 下位層を開始する。
  */
 
@@ -1070,5 +1027,5 @@
 
 /*
- *  lcp_extcode -- LCP ç¹æã® CP ãåä¿¡ããã¨ãã®å¦ç
+ *  lcp_extcode -- LCP 特有の CP を受信したときの処理
  */
 
@@ -1127,5 +1084,5 @@
 
 /*
- *  lcp_rprotrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ *  lcp_rprotrej -- Proto-REJ を受信したときの処理
  */
 
@@ -1148,5 +1105,5 @@
 		}
 
-	/* ä¸ä½ãã­ãã³ã«ãåæåãã */
+	/* 上位プロトコルを初期化する */
 	for (ix = 0; (entry = protocols[ix]) != NULL; ix ++)
 		if (entry->proto == proto) {
@@ -1159,5 +1116,5 @@
 
 /*
- *  lcp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ *  lcp_protrej -- Proto-REJ を受信したときの処理
  */
 
@@ -1169,5 +1126,5 @@
 
 /*
- *  lcp_lowerup -- LCP ä¸ä½å±¤ãèµ·åããã
+ *  lcp_lowerup -- LCP 下位層を起動する。
  */
 
@@ -1179,5 +1136,5 @@
 
 /*
- *  lcp_lowerdown -- LCP ä¸ä½å±¤ãåæ­¢ããã
+ *  lcp_lowerdown -- LCP 下位層を停止する。
  */
 
@@ -1189,5 +1146,5 @@
 
 /*
- *  lcp_open -- LCP ã®ãªã¼ã
+ *  lcp_open -- LCP のオープ
  */
 
@@ -1195,10 +1152,10 @@
 lcp_open (uint8_t open_mode)
 {
-	ppp_open_mode = open_mode;	/* ãªã¼ãã³æã®åä½ã¢ã¼ã	*/
+	ppp_open_mode = open_mode;	/* オープン時の動作モード	*/
 	fsm_open(&lcp_fsm);
 	}
 
 /*
- *  lcp_close -- LCP ã®ã¯ã­ã¼ãº
+ *  lcp_close -- LCP のクローズ
  */
 
@@ -1218,5 +1175,5 @@
 
 /*
- *  lcp_sprotrej -- èªè­ã§ããªããã­ãã³ã«ãéããã¦ããã¨ãã®å¦ç
+ *  lcp_sprotrej -- 認識できないプロトコルが送られてきたときの処理
  */
 
@@ -1226,5 +1183,5 @@
 	T_NET_BUF	*output;
 	/*
-	 *  Protocol-Reject ãéãè¿ãã
+	 *  Protocol-Reject を送り返す。
 	 */
 
@@ -1239,5 +1196,5 @@
 
 /*
- *  lcp_down -- ãªã³ã¯æ¥ç¶ãè§£æ¾ãã (Phase: Dead ã«ç§»è¡ãã)ã
+ *  lcp_down -- リンク接続を解放する (Phase: Dead に移行する)。
  */
 
@@ -1256,5 +1213,5 @@
 
 /*
- *  lcp_finished -- ä¸ä½å±¤ãçµäºããã
+ *  lcp_finished -- 下位層を終了する。
  */
 
@@ -1268,5 +1225,5 @@
 
 /*
- *  recv_echo_rep -- ECHOREP ãåä¿¡ããã¨ãã®å¦ç
+ *  recv_echo_rep -- ECHOREP を受信したときの処理
  */
 
@@ -1279,5 +1236,5 @@
  	hdr = GET_PPP_CP_HDR(input);
 
- 	/* Magic Number ã®é·ãä»¥ä¸ãªãã¨ã©ã¼ */
+ 	/* Magic Number の長さ以下ならエラー */
  	if (hdr->len < sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)) {
 		syslog(LOG_WARNING, "[PPP/LCP] bad ECHOREP len: %d.", hdr->len);
@@ -1287,5 +1244,5 @@
 	ntoahl(magic, input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
 
- 	/* åä¿¡ãã Magic Number ãèªåã¨åããªãã«ã¼ããã¦ããã*/
+ 	/* 受信した Magic Number が自分と同じならループしている。*/
 	if ((lcp_local_ack_cfg.options & LCP_CFG_MAGIC) && magic == lcp_local_ack_cfg.magic) {
 		syslog(LOG_WARNING, "[PPP/LCP] ECHOREP looped.");
@@ -1297,5 +1254,5 @@
 
 /*
- *  echo_timeout -- ECHO REQ/REP ã®ã¿ã¤ã ã¢ã¦ãå¦ç
+ *  echo_timeout -- ECHO REQ/REP のタイムアウト処理
  */
 
@@ -1310,5 +1267,5 @@
 
 /*
- *  send_echo_req -- ECHO REQ ãéä¿¡ããã
+ *  send_echo_req -- ECHO REQ を送信する。
  */
 
@@ -1330,5 +1287,5 @@
 	if (fsm->state == PPP_FSM_OPENED) {
 
-		/* ECHOREQ ãéä¿¡ããã*/
+		/* ECHOREQ を送信する。*/
 		syscall(get_net_buf(&input, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)));
 		*(uint32_t*)(input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) = lcp_local_ack_cfg.magic;
@@ -1337,5 +1294,5 @@
 		echo_pending ++;
 
-		/* ã¿ã¤ãã¼ãã¹ã¿ã¼ãããã*/
+		/* タイマーをスタートする。*/
 		timeout((FP)echo_timeout, fsm, LCP_ECHO_INTERVAL);
 		timer_running = true;
@@ -1344,5 +1301,5 @@
 
 /*
- *  echo_lowerup -- ECHO REQ/REP ã®èµ·å
+ *  echo_lowerup -- ECHO REQ/REP の起動
  */
 
@@ -1358,5 +1315,5 @@
 
 /*
- *  echo_lowerdown -- ECHO REQ/REP ã®åæ­¢
+ *  echo_lowerdown -- ECHO REQ/REP の停止
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -93,5 +81,5 @@
 
 /*
- *  LCP ç¹æã® PPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ã
+ *  LCP 特有の PPP リンク制御 (CP) の制御コード
  */
 
@@ -102,34 +90,25 @@
 
 /*
- *  LCP ã®æ§ææ
-å ± (CI)
+ *  LCP の構成情報 (CI)
  */
 
 /*
- *  CI ã®å
+ *  CI の型
  */
 
-#define LCP_CIT_MRU		UINT_C(1)	/* æå¤§åä¿¡é (Maximum Receive Unit)	*/
+#define LCP_CIT_MRU		UINT_C(1)	/* 最大受信量 (Maximum Receive Unit)	*/
 #define LCP_CIT_ACCM		UINT_C(2)	/* Async Control Character Map		*/
-#define LCP_CIT_AUTH		UINT_C(3)	/* èªè¨¼ãã­ãã³ã«			*/
-#define LCP_CIT_QUALITY		UINT_C(4)	/* åè³ªãã­ãã³ã«ã¯æªå®è£
-			*/
-#define LCP_CIT_MAGIC		UINT_C(5)	/* ãã¸ãã¯çªå·				*/
-#define LCP_CIT_PCOMP		UINT_C(7)	/* ãã­ãã³ã«é¨å§ç¸®ã¯å®è£
-äºå®		*/
-#define LCP_CIT_ACCOMP		UINT_C(8)	/* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®ã¯å®è£
-äºå®		*/
-#define LCP_CIT_FCS_ALTER	UINT_C(9)	/* FCS-Alternatives ã¯æªå®è£
-		*/
-#define LCP_CIT_SELF_PAD	UINT_C(10)	/* Self-Describing-Padding ã¯æªå®è£
-	*/
-#define LCP_CIT_CALLBACK	UINT_C(13)	/* Callback ã¯æªå®è£
-			*/
-#define LCP_CIT_CFRAMES		UINT_C(15)	/* Compound-Frames ã¯æªå®è£
-		*/
+#define LCP_CIT_AUTH		UINT_C(3)	/* 認証プロトコル			*/
+#define LCP_CIT_QUALITY		UINT_C(4)	/* 品質プロトコルは未実装			*/
+#define LCP_CIT_MAGIC		UINT_C(5)	/* マジック番号				*/
+#define LCP_CIT_PCOMP		UINT_C(7)	/* プロトコル部圧縮は実装予定		*/
+#define LCP_CIT_ACCOMP		UINT_C(8)	/* アドレス・制御部圧縮は実装予定		*/
+#define LCP_CIT_FCS_ALTER	UINT_C(9)	/* FCS-Alternatives は未実装		*/
+#define LCP_CIT_SELF_PAD	UINT_C(10)	/* Self-Describing-Padding は未実装	*/
+#define LCP_CIT_CALLBACK	UINT_C(13)	/* Callback は未実装			*/
+#define LCP_CIT_CFRAMES		UINT_C(15)	/* Compound-Frames は未実装		*/
 
 /*
- *  LCP ã®æ§ææ
-å ±ãªãã·ã§ã³
+ *  LCP の構成情報オプション
  */
 
@@ -139,25 +118,23 @@
 #ifdef LCP_CFG_MAGIC
 
-	uint32_t	magic;		/* ãã¸ãã¯çªå·		*/
+	uint32_t	magic;		/* マジック番号		*/
 
 #endif	/* of #ifdef LCP_CFG_MAGIC */
 
 	uint16_t	MRU;		/* MRU			*/
-	uint16_t	options;	/* ãªãã·ã§ã³ãã©ã°	*/
+	uint16_t	options;	/* オプションフラグ	*/
 	} __attribute__((packed, aligned(2)))T_LCP_CONFIGS;
 
 /*
- *  å¤æ°
+ *  変数
  */
 
 extern T_PPP_FSM	lcp_fsm;
 extern T_PPP_PROTENT	lcp_protent;
-extern T_LCP_CONFIGS	lcp_local_ack_cfg;	/* ç¸æã«è¨±å¯ãããã®èªæ§ææ
-å ±	*/
-extern T_LCP_CONFIGS	lcp_remote_ack_cfg;	/* ç¸æã«è¨±å¯ããæ§ææ
-å ±		*/
+extern T_LCP_CONFIGS	lcp_local_ack_cfg;	/* 相手に許可されたの自構成情報	*/
+extern T_LCP_CONFIGS	lcp_remote_ack_cfg;	/* 相手に許可した構成情報		*/
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  PPP ã¢ãã å¶å¾¡
+ *  PPP モデム制御
  */
 
@@ -71,14 +59,11 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-uint8_t	modem_state = PPP_MODEM_DOWN;	/* ã¢ãã ã®ç¶æ
-		*/
-
-/*
- *  ã¢ãã å
-¥åæå­å
+ *  全域変数
+ */
+
+uint8_t	modem_state = PPP_MODEM_DOWN;	/* モデムの状態		*/
+
+/*
+ *  モデム入力文字列
  */
 
@@ -93,5 +78,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -110,5 +95,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -119,6 +104,5 @@
 
 /*
- *  modem_getline -- ã¢ãã è¡å
-¥å
+ *  modem_getline -- モデム行入力
  */
 
@@ -129,5 +113,5 @@
 
 	buf = nbuf->buf;
-	size --;			/* '\0' ã®å */
+	size --;			/* '\0' の分 */
 	while (size > 0 && (*buf = HDLC_raw_getoctet()) != '\r') {
 		buf  ++;
@@ -135,5 +119,5 @@
 		}
 	*buf = '\0';
-	HDLC_raw_getoctet();		/* \n ãèª­ã¿é£ã°ãã*/
+	HDLC_raw_getoctet();		/* \n を読み飛ばす。*/
 	nbuf->len = buf - nbuf->buf;
 	return nbuf;
@@ -141,7 +125,7 @@
 
 /*
- *  ã¢ãã å¶å¾¡
+ *  モデム制御
  *
- *	æ»ãå¤: ã¢ãã ããã®ãªã¶ã«ãã³ã¼ã
+ *	戻り値: モデムからのリザルトコード
  */
 
@@ -210,5 +194,5 @@
 
 /*
- *  init_modem -- ã¢ãã ãåæåããã
+ *  init_modem -- モデムを初期化する。
  */
 
@@ -228,8 +212,7 @@
 
 /*
- *  wait_modem -- æ¥ç¶å®äºã¾ã§å¾
-ã¤ã
+ *  wait_modem -- 接続完了まで待つ。
  *
- *	æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã
+ *	戻り値: 接続に失敗したら E_OBJ を返す。
  */
 
@@ -244,6 +227,5 @@
 
 	if (modem_state != PPP_MODEM_CONNECT) {
-		/* æ¥ç¶å®äºã¾ã§å¾
-ã¤ã*/
+		/* 接続完了まで待つ。*/
 		wai_sem(SEM_MODEM_READY);
 		if (modem_state != PPP_MODEM_CONNECT)
@@ -255,5 +237,5 @@
 
 /*
- *  dial -- ãã¤ã¤ã«ããããªãã©ã¤åæ°ãã»ããããã
+ *  dial -- ダイヤルする。リトライ回数をセットする。
  */
 
@@ -267,5 +249,5 @@
 
 /*
- *  do_dial -- ãã¤ã¤ã«ãããdial() ã®ä¸è«ãé¢æ°
+ *  do_dial -- ダイヤルする。dial() の下請け関数
  */
 
@@ -280,5 +262,5 @@
 
 /*
- *  modem_putstr -- ã¢ãã æå­ååºå
+ *  modem_putstr -- モデム文字列出力
  */
 
@@ -291,6 +273,5 @@
 
 /*
- *  modem_wait -- ã¢ãã ããæå­åãå¾
-ã¤
+ *  modem_wait -- モデムから文字列を待つ
  */
 
@@ -311,5 +292,5 @@
 
 /*
- *  modem_putline -- ã¢ãã è¡åºå
+ *  modem_putline -- モデム行出力
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,6 +40,5 @@
 
 /*
- *  ã¢ãã ã®ç¶æ
-
+ *  モデムの状態
  */
 
@@ -64,13 +51,11 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
-extern uint8_t modem_state;	/* ã¢ãã ã®ç¶æ
-		*/
+extern uint8_t modem_state;	/* モデムの状態		*/
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -84,5 +69,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -113,5 +101,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -151,24 +139,21 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
 T_PPP_PROTENT pap_protent = {
 	PPP_PAP,
-	upap_init,			/* åæå			*/
-	upap_input,			/* å
-¥å				*/
-	upap_protrej,			/* Proto-REJ åä¿¡å¦ç		*/
-	upap_lowerup,			/* ä¸ä½å±¤ãèµ·åãã		*/
-	upap_lowerdown,			/* ä¸ä½å±¤ãåæ­¢ãã		*/
-	NULL,				/* ãªã¼ãã³ãã			*/
-	NULL,				/* ã¯ã­ã¼ãºãã			*/
-	NULL,				/* ãã¼ã¿å
-¥å			*/
+	upap_init,			/* 初期化			*/
+	upap_input,			/* 入力				*/
+	upap_protrej,			/* Proto-REJ 受信処理		*/
+	upap_lowerup,			/* 下位層を起動する		*/
+	upap_lowerdown,			/* 下位層を停止する		*/
+	NULL,				/* オープンする			*/
+	NULL,				/* クローズする			*/
+	NULL,				/* データ入力			*/
 	};
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -193,5 +178,5 @@
 
 /*
- *  upap_init -- UPAP ã¢ã¸ã¥ã¼ã«ã®åæå
+ *  upap_init -- UPAP モジュールの初期化
  */
 
@@ -214,6 +199,5 @@
 
 /*
- *  upap_input -- UPAP å
-¥å
+ *  upap_input -- UPAP 入力
  */
 
@@ -226,5 +210,5 @@
 	NET_COUNT_PPP_PAP(net_count_ppp_upap_in_packets, 1);
 
- 	/* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããç­ããã°ã¨ã©ã¼ */
+ 	/* PPP リンク制御 (CP) ヘッダより短ければエラー */
  	if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) {
  		syslog(LOG_WARNING, "[PPP/PAP] short hdr: %d.", input->len);
@@ -234,6 +218,5 @@
  	hdr = GET_PPP_CP_HDR(input);
 
- 	/* ãããã®é·ãã¨å
-¥åãã¼ã¿ãµã¤ãºãä¸è´ããªããã°ã¨ã©ã¼ */
+ 	/* ヘッダの長さと入力データサイズが一致しなければエラー */
  	if (hdr->len != input->len - sizeof(T_PPP_HDR)) {
  		syslog(LOG_WARNING, "[PPP/PAP] bad len: %d.", hdr->len);
@@ -242,5 +225,5 @@
  
  	/*
- 	 *  å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã
+ 	 *  制御コードにより適当な関数を呼出す
  	 */
 
@@ -271,5 +254,5 @@
 
 /*
- *  upap_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ *  upap_protrej -- Proto-REJ を受信したときの処理
  */
 
@@ -297,5 +280,5 @@
 
 /*
- *  upap_lowerup -- UPAP ä¸ä½å±¤ãèµ·åããã
+ *  upap_lowerup -- UPAP 下位層を起動する。
  */
 
@@ -331,5 +314,5 @@
 
 /*
- *  upap_lowerdown -- UPAP ä¸ä½å±¤ãåæ­¢ããã
+ *  upap_lowerdown -- UPAP 下位層を停止する。
  */
 
@@ -366,5 +349,5 @@
 
 /*
- *  ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã§ PAP èªè¨¼ãéå§ããã
+ *  クライアントモードで PAP 認証を開始する。
  */
 
@@ -387,5 +370,5 @@
 
 /*
- *  upap_rauthack -- èªè¨¼ ACK å¦ç
+ *  upap_rauthack -- 認証 ACK 処理
  */
 
@@ -400,5 +383,5 @@
 
 /*
- *  upap_rauthnak -- èªè¨¼ NAK å¦ç
+ *  upap_rauthnak -- 認証 NAK 処理
  */
 
@@ -411,5 +394,5 @@
 
 /*
- *  upap_sauthreq -- èªè¨¼è¦æ±å¦ç
+ *  upap_sauthreq -- 認証要求処理
  */
 
@@ -425,13 +408,13 @@
 	data = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
 
-	/* ã¦ã¼ã¶åãè¨­å®ããã*/
+	/* ユーザ名を設定する。*/
 	*data = sizeof(AUTH_REMOTE_USER) - 1;
 	strcpy(data + 1, AUTH_REMOTE_USER);
 
-	/* ãã¹ã¯ã¼ããè¨­å®ããã*/
+	/* パスワードを設定する。*/
 	*(data + sizeof(AUTH_REMOTE_USER)) = sizeof(AUTH_REMOTE_PASSWD) - 1;
 	strcpy(data + sizeof(AUTH_REMOTE_USER) + 1, AUTH_REMOTE_PASSWD);
 
-	/* éä¿¡ãã */
+	/* 送信する */
 	IF_SET_PROTO(output, PPP_PAP);
 	ppp_cp_output(PAP_AUTHREQ, ++ client_cp_id, output);
@@ -450,5 +433,5 @@
 
 /*
- *  upap_timeout -- ã¿ã¤ã ã¢ã¦ãå¦ç
+ *  upap_timeout -- タイムアウト処理
  */
 
@@ -475,5 +458,5 @@
 
 /*
- *  ãµã¼ãã¢ã¼ãã§ PAP èªè¨¼ãéå§ããã
+ *  サーバモードで PAP 認証を開始する。
  */
 
@@ -496,5 +479,5 @@
 
 /*
- *  upap_rauthreq -- èªè¨¼è¦æ±å¿ç­å¦ç
+ *  upap_rauthreq -- 認証要求応答処理
  */
 
@@ -509,5 +492,5 @@
 
 	/*
-	 *  åè¦æ±ããã£ãã¨ãã®å¦ç
+	 *  再要求があったときの処理
 	 */
 	id = GET_PPP_CP_HDR(input)->id;
@@ -526,5 +509,5 @@
 
 	/*
-	 *  ã¦ã¼ã¶åãç¹å®ããã
+	 *  ユーザ名を特定する。
 	 */
 	ulen  = *data;
@@ -537,5 +520,5 @@
 
 	/*
-	 *  ãã¹ã¯ã¼ããç¹å®ããã
+	 *  パスワードを特定する。
 	 */
 	plen  = *data;
@@ -546,5 +529,5 @@
 
 	/*
-	 *  ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ãããã§ãã¯ããã
+	 *  ユーザ名とパスワードをチェックする。
 	 */
 	if (compare(user,     AUTH_LOCAL_USER,   ulen) &&
@@ -573,5 +556,5 @@
 
 /*
- *  upap_sresp -- å¿ç­ãè¿ãã
+ *  upap_sresp -- 応答を返す。
  */
 
@@ -581,5 +564,5 @@
 	T_NET_BUF *output;
 
-	/* éä¿¡ãã */
+	/* 送信する */
 	syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
 	IF_SET_PROTO(output, PPP_PAP);
@@ -588,5 +571,5 @@
 
 /*
- *  compare -- ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ãã®æ¯è¼
+ *  compare -- ユーザ名とパスワードの比較
  */
 
@@ -606,5 +589,5 @@
 
 /*
- *  upap_reqtimeout -- è¦æ±ã¿ã¤ã ã¢ã¦ãå¦ç
+ *  upap_reqtimeout -- 要求タイムアウト処理
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -93,38 +81,35 @@
 
 /*
- *  PAP ã®å¶å¾¡ã³ã¼ã
+ *  PAP の制御コード
  */
 
-#define PAP_AUTHREQ		UINT_C(1)	/* èªè¨¼è¦æ±	*/
-#define PAP_AUTHACK		UINT_C(2)	/* èªè¨¼ ACK	*/
-#define PAP_AUTHNAK		UINT_C(3)	/* èªè¨¼ NAK	*/
+#define PAP_AUTHREQ		UINT_C(1)	/* 認証要求	*/
+#define PAP_AUTHACK		UINT_C(2)	/* 認証 ACK	*/
+#define PAP_AUTHNAK		UINT_C(3)	/* 認証 NAK	*/
 
 /*
- *  ã¯ã©ã¤ã¢ã³ãã®ç¶æ
-
+ *  クライアントの状態
  */
 
-#define PAP_CS_INIT		UINT_C(0)	/* æªæ¥ç¶		*/
-#define PAP_CS_CLOSED		UINT_C(1)	/* æ¥ç¶ãæªèªè¨¼		*/
-#define PAP_CS_PENDING		UINT_C(2)	/* æªæ¥ç¶ãèªè¨¼		*/
-#define PAP_CS_AUTHREQ		UINT_C(3)	/* èªè¨¼è¦æ±éä¿¡æ¸ã¿	*/
-#define PAP_CS_OPEN		UINT_C(4)	/* ACK åä¿¡		*/
-#define PAP_CS_BADAUTH		UINT_C(5)	/* NAK åä¿¡		*/
+#define PAP_CS_INIT		UINT_C(0)	/* 未接続		*/
+#define PAP_CS_CLOSED		UINT_C(1)	/* 接続、未認証		*/
+#define PAP_CS_PENDING		UINT_C(2)	/* 未接続、認証		*/
+#define PAP_CS_AUTHREQ		UINT_C(3)	/* 認証要求送信済み	*/
+#define PAP_CS_OPEN		UINT_C(4)	/* ACK 受信		*/
+#define PAP_CS_BADAUTH		UINT_C(5)	/* NAK 受信		*/
 
 /*
- *  ãµã¼ãã®ç¶æ
-
+ *  サーバの状態
  */
 
-#define PAP_SS_INIT		UINT_C(0)	/* æªæ¥ç¶		*/
-#define PAP_SS_CLOSED		UINT_C(1)	/* æ¥ç¶ãæªèªè¨¼		*/
-#define PAP_SS_PENDING		UINT_C(2)	/* æªæ¥ç¶ãèªè¨¼		*/
-#define PAP_SS_LISTEN		UINT_C(3)	/* èªè¨¼è¦æ±åä¿¡å¾
-ã¡	*/
-#define PAP_SS_OPEN		UINT_C(4)	/* ACK éä¿¡		*/
-#define PAP_SS_BADAUTH		UINT_C(5)	/* NAK éä¿¡		*/
+#define PAP_SS_INIT		UINT_C(0)	/* 未接続		*/
+#define PAP_SS_CLOSED		UINT_C(1)	/* 接続、未認証		*/
+#define PAP_SS_PENDING		UINT_C(2)	/* 未接続、認証		*/
+#define PAP_SS_LISTEN		UINT_C(3)	/* 認証要求受信待ち	*/
+#define PAP_SS_OPEN		UINT_C(4)	/* ACK 送信		*/
+#define PAP_SS_BADAUTH		UINT_C(5)	/* NAK 送信		*/
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -132,5 +117,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -85,21 +73,19 @@
 
 /*
- *  PPP ãã­ãã³ã«ã¨ã³ããªæ§é ä½
+ *  PPP プロトコルエントリ構造体
  */
 
 typedef struct t_ppp_protent {
-	uint16_t	proto;			/* ãã­ãã³ã«çªå·	*/
-	void		(*init)		(void);	/* åæåé¢æ°		*/
+	uint16_t	proto;			/* プロトコル番号	*/
+	void		(*init)		(void);	/* 初期化関数		*/
 	void		(*input)	(T_NET_BUF *data);
-						/* å
-¥åé¢æ°		*/
-	void		(*protrej)	(void);	/* Ptoto-REJ åä¿¡å¦ç	*/
-	void		(*lowerup)	(void);	/* ä¸ä½å±¤ãèµ·åããã	*/
-	void		(*lowerdown)	(void);	/* ä¸ä½å±¤ãåæ­¢ããã	*/
-	void		(*open)		(void);	/* ãªã¼ãã³ããã	*/
-	void		(*close)	(void);	/* ã¯ã­ã¼ãºããã	*/
+						/* 入力関数		*/
+	void		(*protrej)	(void);	/* Ptoto-REJ 受信処理	*/
+	void		(*lowerup)	(void);	/* 下位層を起動する。	*/
+	void		(*lowerdown)	(void);	/* 下位層を停止する。	*/
+	void		(*open)		(void);	/* オープンする。	*/
+	void		(*close)	(void);	/* クローズする。	*/
 	void		(*datainput)	(T_NET_BUF *data);
-					/* ãã¼ã¿å
-¥åé¢æ°	*/
+					/* データ入力関数	*/
 	} T_PPP_PROTENT;
 
@@ -107,13 +93,12 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
-extern T_PPP_PROTENT	*protocols[];	/* ãã­ãã³ã«è¡¨			*/
-extern uint8_t		ppp_phase;	/* ãªã³ã¯ã®ç¶æ
-			*/
+extern T_PPP_PROTENT	*protocols[];	/* プロトコル表			*/
+extern uint8_t		ppp_phase;	/* リンクの状態			*/
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -121,5 +106,5 @@
 
 /*
- *  PPP å¦çã¿ã¹ã¯
+ *  PPP 処理タスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/route.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/route.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/route.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- * TINET 1.1 ã¨ã®äºææ§ç¢ºä¿
+ * TINET 1.1 との互換性確保
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/Makefile.netapp
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/Makefile.netapp	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/Makefile.netapp	(revision 321)
@@ -5,49 +5,37 @@
 #                    Tomakomai National College of Technology, JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
-#   ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
-#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
-#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
-#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-# 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
-#   å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
-#   æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+#   上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+#   によって公表されている GNU General Public License の Version 2 に記
+#   述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+#   を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+#   利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次の条件を満たすこと．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+# 
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+#   含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+#   接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
 #  
-#   @(#) $Id: Makefile.netapp 497 2014-06-26 01:50:14Z coas-nagasima $
-# 
-
-#
-#  ãµã³ãã«ã®ãããã¯ã¼ã¯å¿ç¨ãã­ã°ã©ã ã«é¢ããå®ç¾©
-#
-
-#
-#  ã«ã¼ãã«ã®è­å¥
+#   @(#) $Id$
+# 
+
+#
+#  サンプルのネットワーク応用プログラムに関する定義
+#
+
+#
+#  カーネルの識別
 #
 ifdef SRCLANG
@@ -59,5 +47,5 @@
 endif
 
-#  å¿ç¨ãã­ã°ã©ã 
+#  応用プログラム
 
 TINET_ROOT = $(SRCDIR)/tinet
@@ -65,5 +53,5 @@
 NETAPP_COBJS := $(NETAPP_COBJS) netapp_subr.o
 
-#  ãã©ã³ã¹ãã¼ãå±¤ã®é¸æ
+#  トランスポート層の選択
 
 SUPPORT_TCP = false
@@ -71,6 +59,5 @@
 
 # 
-#  å
-±éã¯ã©ã¤ã¢ã³ãã»ãµã¼ããã­ã°ã©ã ã®è¨­å®
+#  共通クライアント・サーバプログラムの設定
 # 
 
@@ -84,5 +71,5 @@
 endif
 
-ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1)		# éåä¿¡ã¿ã¹ã¯åä¸å
+ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1)		# 送受信タスク同一型
 	SUPPORT_TCP = true
 	TCP_CFG_PASSIVE_OPEN = true
@@ -93,5 +80,5 @@
 endif
 
-ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2)		# éåä¿¡ã¿ã¹ã¯åé¢å
+ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2)		# 送受信タスク分離型
 	SUPPORT_TCP = true
 	TCP_CFG_PASSIVE_OPEN = true
@@ -255,5 +242,5 @@
 
 #
-#  ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã«é¢ããå®ç¾©ã¸ã®è¿½å 
+#  アプリケーションプログラムに関する定義への追加
 #
 
@@ -275,5 +262,5 @@
 
 #
-#  TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®å®ç¾©ã¸ã®è¿½å 
+#  TINET コンフィギュレーションファイルの定義への追加
 #
 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(NETAPP_KERNEL_CFG)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  ãããã°ã³ã³ã½ã¼ã«
+ *  デバッグコンソール
  */
 
@@ -126,28 +114,15 @@
 
 /*
- *  task_status -- ã¿ã¹ã¯ã®ç¶æ
-ã®åºå
+ *  task_status -- タスクの状態の出力
  */
 
 static const char task_stat_str[][sizeof("SUSPENDED")] = {
-	"DORMANT",		/* ä¼æ­¢ç¶æ
-		*/
-	"RUNNABLE",		/* å®è¡ã§ããç¶æ
-	*/
-	"WAINTING",		/* å¾
-ã¡ç¶æ
-		*/
-	"SUSPENDED",		/* å¼·å¶å¾
-ã¡ç¶æ
-		*/
-	"SLEEP",		/* èµ·åºå¾
-ã¡ç¶æ
-		*/
-	"WOBJ",			/* åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
-ã¡ç¶æ
-	*/
-	"WOBJCB",		/* å
-±éé¨åã®å¾
-ã¡ã­ã¥ã¼ã«ã¤ãªãã£ã¦ããã	*/
+	"DORMANT",		/* 休止状態		*/
+	"RUNNABLE",		/* 実行できる状態	*/
+	"WAINTING",		/* 待ち状態		*/
+	"SUSPENDED",		/* 強制待ち状態		*/
+	"SLEEP",		/* 起床待ち状態		*/
+	"WOBJ",			/* 同期・通信オブジェクトに対する待ち状態	*/
+	"WOBJCB",		/* 共通部分の待ちキューにつながっている。	*/
 	};
 
@@ -184,26 +159,19 @@
 
 /*
- *  tcp_status -- TCP ã®ç¶æ
-ã®åºå
+ *  tcp_status -- TCP の状態の出力
  */
 
 static const char tcp_fsm_str[][sizeof("ESTABLISHED")] = {
-	"CLOSED",		/* ã¯ã­ã¼ãº			*/
-	"LISTEN",		/* ååãªã¼ãã³			*/
-	"SYN_SENT",		/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
-	"SYN_RECVD",		/* ååãªã¼ãã³ãSYN åä¿¡æ¸ã¿	*/
-	"ESTABLISHED",		/* ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
-	"CLOSE_WAIT",		/* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾
-ã¡	*/
-	"FIN_WAIT_1",		/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
-ã¡	*/
-	"CLOSING",		/* åæã¯ã­ã¼ãºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡	*/
-	"LAST_ACK",		/* APP ãçµäºãACK å¾
-ã¡			*/
-	"FIN_WAIT_2",		/* ç¸æããã® FIN å¾
-ã¡			*/
-	"TIME_WAIT",		/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
-ã¡	*/
+	"CLOSED",		/* クローズ			*/
+	"LISTEN",		/* 受動オープン			*/
+	"SYN_SENT",		/* 能動オープン、SYN 送信済み	*/
+	"SYN_RECVD",		/* 受動オープン、SYN 受信済み	*/
+	"ESTABLISHED",		/* コネクション開設完了		*/
+	"CLOSE_WAIT",		/* 相手から FIN 受信、APP の終了待ち	*/
+	"FIN_WAIT_1",		/* APP が終了、FIN 送信済み、ACK 待ち	*/
+	"CLOSING",		/* 同時クローズ、FIN 交換済み、ACK 待ち	*/
+	"LAST_ACK",		/* APP が終了、ACK 待ち			*/
+	"FIN_WAIT_2",		/* 相手からの FIN 待ち			*/
+	"TIME_WAIT",		/* 相手からの FIN 受信済み、時間待ち	*/
 	};
 
@@ -498,6 +466,5 @@
 
 /*
- *  udp_status -- UDP ã®ç¶æ
-ã®åºå
+ *  udp_status -- UDP の状態の出力
  */
 
@@ -536,5 +503,5 @@
 
 /*
- *  ifa_status -- ARP ã­ã£ãã·ã¥åºå
+ *  ifa_status -- ARP キャッシュ出力
  */
 
@@ -550,5 +517,5 @@
 	            "IX Expire IP Address      MAC Address\n");
 
-	/* expire ã®åä½ã¯ [ms]ã*/
+	/* expire の単位は [ms]。*/
 	cache = arp_get_cache();
 	for (ix = 0; ix < NUM_ARP_ENTRY; ix ++) {
@@ -568,18 +535,15 @@
 
 /*
- * ifa_status -- è¿é£ã­ã£ãã·ã¥ç¶æ
-ã®åºå
+ * ifa_status -- 近隣キャッシュ状態の出力
  */
 
 static const char nd_state_str[][sizeof("INCOMPLETE")] = {
-	"FREE",			/* æªä½¿ç¨		*/
-	"NO STATE",		/* ç¶æ
-æªå®ç¾©		*/
-	"INCOMPLETE",		/* æªè§£æ±º		*/
-	"REACHABLE",		/* å°éå¯è½		*/
-	"STALE",		/* å°éå¯è½æ§ã¯æªç¢ºèª	*/
-	"DELAY",		/* å°éå¯è½æ§ã®ç¢ºèªå¾
-æ©	*/
-	"PROBE",		/* å°éå¯è½æ§ãç¢ºèªä¸­	*/
+	"FREE",			/* 未使用		*/
+	"NO STATE",		/* 状態未定義		*/
+	"INCOMPLETE",		/* 未解決		*/
+	"REACHABLE",		/* 到達可能		*/
+	"STALE",		/* 到達可能性は未確認	*/
+	"DELAY",		/* 到達可能性の確認待機	*/
+	"PROBE",		/* 到達可能性を確認中	*/
 	};
 
@@ -596,5 +560,5 @@
 	            "IX Expire State      MAC Address       IP Address\n");
 
-	/* expire ã®åä½ã¯ [ms]ã*/
+	/* expire の単位は [ms]。*/
 	get_tim(&now);
 	cache = nd6_get_cache();
@@ -623,6 +587,5 @@
 
 /*
- *  net_count_struct -- ãããã¯ã¼ã¯çµ±è¨æ
-å ±
+ *  net_count_struct -- ネットワーク統計情報
  */
 
@@ -631,15 +594,14 @@
 {
 	cons_printf(portid, "\n%s\n", name);
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	item->in_octets);
-	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",	item->out_octets);
-	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		item->in_packets);
-	cons_printf(portid, "\téä¿¡ãã±ããæ°\t%lu\n",		item->out_packets);
-	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",	item->in_err_packets);
-	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",	item->out_err_packets);
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",	item->in_octets);
+	cons_printf(portid, "\t送信オクテット数\t%lu\n",	item->out_octets);
+	cons_printf(portid, "\t受信バケット数\t%lu\n",		item->in_packets);
+	cons_printf(portid, "\t送信バケット数\t%lu\n",		item->out_packets);
+	cons_printf(portid, "\t受信エラーバケット数\t%lu\n",	item->in_err_packets);
+	cons_printf(portid, "\t送信エラーバケット数\t%lu\n",	item->out_err_packets);
 	}
 
 /*
- *  net_count -- ãããã¯ã¼ã¯çµ±è¨æ
-å ±
+ *  net_count -- ネットワーク統計情報
  */
 
@@ -653,8 +615,7 @@
 	WAI_NET_CONS_PRINTF();
 	get_tim(&now);
-	cons_printf(portid, "ãããã¯ã¼ã¯çµ±è¨æ
-å ±\tçµéæé[ms]\t%lu\t", now);
+	cons_printf(portid, "ネットワーク統計情報\t経過時間[ms]\t%lu\t", now);
 	if (now > (1000 * 3600 * 24))
-		cons_printf(portid, "%3luæ¥ %2luæé %2luå %2luç§\n",
+		cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n",
 		             now / (1000 * 3600 * 24),
 		            (now / (1000 * 3600)) % 24,
@@ -662,5 +623,5 @@
 		            (now /  1000        ) % 60);
 	else
-		cons_printf(portid, "%2luæé %2luå %2luç§\n",
+		cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n",
 		            (now / (1000 * 3600)) % 24,
 		            (now / (1000 * 60  )) % 60,
@@ -671,23 +632,23 @@
 	net_count_struct(portid, "HDLC", &net_count_hdlc);
 	cons_printf(portid, "\nPPP\n");
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp.in_octets);
-	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp.out_octets);
-	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp.in_packets);
-	cons_printf(portid, "\téä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp.out_packets);
-	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",	net_count_ppp.in_err_packets);
-	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",	net_count_ppp.out_err_packets);
-	cons_printf(portid, "\tnet_buf å²ãå½ã¦å¤±ææ°\t%lu\n",	net_count_ppp_no_bufs);
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",	net_count_ppp.in_octets);
+	cons_printf(portid, "\t送信オクテット数\t%lu\n",	net_count_ppp.out_octets);
+	cons_printf(portid, "\t受信バケット数\t%lu\n",		net_count_ppp.in_packets);
+	cons_printf(portid, "\t送信バケット数\t%lu\n",		net_count_ppp.out_packets);
+	cons_printf(portid, "\t受信エラーバケット数\t%lu\n",	net_count_ppp.in_err_packets);
+	cons_printf(portid, "\t送信エラーバケット数\t%lu\n",	net_count_ppp.out_err_packets);
+	cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n",	net_count_ppp_no_bufs);
 
 	cons_printf(portid, "\nLCP\n");
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp_lcp_in_octets);
-	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp_lcp_in_packets);
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",	net_count_ppp_lcp_in_octets);
+	cons_printf(portid, "\t受信バケット数\t%lu\n",		net_count_ppp_lcp_in_packets);
 
 	cons_printf(portid, "\nIPCP\n");
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp_ipcp_in_octets);
-	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp_ipcp_in_packets);
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",	net_count_ppp_ipcp_in_octets);
+	cons_printf(portid, "\t受信バケット数\t%lu\n",		net_count_ppp_ipcp_in_packets);
 
 	cons_printf(portid, "\nPAP\n");
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp_upap_in_octets);
-	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp_upap_in_packets);
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",	net_count_ppp_upap_in_octets);
+	cons_printf(portid, "\t受信バケット数\t%lu\n",		net_count_ppp_upap_in_packets);
 
 #endif	/* of #ifdef SUPPORT_PPP */
@@ -695,19 +656,19 @@
 #ifdef SUPPORT_ETHER
 
-	net_count_struct(portid, "ã¤ã¼ãµããã", &net_count_ether);
-
-	cons_printf(portid, "\nã¤ã¼ãµãããã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹\n");
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_IN_OCTETS]);
-	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_IN_PACKETS]);
-	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS]);
-	cons_printf(portid, "\tnet_buf å²ãå½ã¦å¤±ææ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_NO_BUFS]);
-	cons_printf(portid, "\tåä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°\t%lu\n",	net_count_ether_nic[NC_ETHER_NIC_RXB_QOVRS]);
-	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_OUT_OCTETS]);
-	cons_printf(portid, "\téä¿¡ãã±ããæ°\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_OUT_PACKETS]);
-	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_OUT_ERR_PACKETS]);
-	cons_printf(portid, "\tã³ãªã¸ã§ã³æ°\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_COLS]);
-	cons_printf(portid, "\téä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°\t%lu\n",	net_count_ether_nic[NC_ETHER_NIC_TXB_QOVRS]);
-	cons_printf(portid, "\téä¿¡ã¿ã¤ã ã¢ã¦ãæ°	\t%lu\n",		net_count_ether_nic[NC_ETHER_NIC_TIMEOUTS]);
-	cons_printf(portid, "\tãªã»ããæ°\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_RESETS]);
+	net_count_struct(portid, "イーサネット", &net_count_ether);
+
+	cons_printf(portid, "\nイーサネット・ネットワークインタフェース\n");
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_IN_OCTETS]);
+	cons_printf(portid, "\t受信バケット数\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_IN_PACKETS]);
+	cons_printf(portid, "\t受信エラーバケット数\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS]);
+	cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_NO_BUFS]);
+	cons_printf(portid, "\t受信セマフォ資源返却上限オーバー数\t%lu\n",	net_count_ether_nic[NC_ETHER_NIC_RXB_QOVRS]);
+	cons_printf(portid, "\t送信オクテット数\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_OUT_OCTETS]);
+	cons_printf(portid, "\t送信バケット数\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_OUT_PACKETS]);
+	cons_printf(portid, "\t送信エラーバケット数\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_OUT_ERR_PACKETS]);
+	cons_printf(portid, "\tコリジョン数\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_COLS]);
+	cons_printf(portid, "\t送信セマフォ資源返却上限オーバー数\t%lu\n",	net_count_ether_nic[NC_ETHER_NIC_TXB_QOVRS]);
+	cons_printf(portid, "\t送信タイムアウト数	\t%lu\n",		net_count_ether_nic[NC_ETHER_NIC_TIMEOUTS]);
+	cons_printf(portid, "\tリセット数\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_RESETS]);
 
 #endif	/* of #ifdef SUPPORT_ETHER */
@@ -722,25 +683,24 @@
 
 	cons_printf(portid, "\nIPv4\n");
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_ip4[NC_IP4_IN_OCTETS]);
-	cons_printf(portid, "\tåä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_PACKETS]);
-	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n",	net_count_ip4[NC_IP4_IN_ERR_PACKETS]);
-	cons_printf(portid, "\tãã§ãã¯ãµã ã¨ã©ã¼æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_CKSUM]);
-	cons_printf(portid, "\té·ãã¨ã©ã¼æ°\t%lu\n",			net_count_ip4[NC_IP4_IN_ERR_SHORT]);
-	cons_printf(portid, "\tãã¼ã¸ã§ã³ã¨ã©ã¼æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_VER]);
-	cons_printf(portid, "\tã¢ãã¬ã¹ã¨ã©ã¼æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_ADDR]);
-	cons_printf(portid, "\tãã­ãã³ã«ã¨ã©ã¼æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_PROTO]);
-	cons_printf(portid, "\tãªãã·ã§ã³å
-¥åæ°\t%lu\n",		net_count_ip4[NC_IP4_OPTS]);
-	cons_printf(portid, "\tåå²åä¿¡æ°\t%lu\n",			net_count_ip4[NC_IP4_FRAG_IN]);
-	cons_printf(portid, "\tåå²åä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n",		net_count_ip4[NC_IP4_FRAG_IN_FRAGS]);
-	cons_printf(portid, "\tåå²åä¿¡åæ§ææåæ°\t%lu\n",		net_count_ip4[NC_IP4_FRAG_IN_OK]);
-	cons_printf(portid, "\tåå²åä¿¡ç ´æ£æ°\t%lu\n",			net_count_ip4[NC_IP4_FRAG_IN_DROP]);
-	cons_printf(portid, "\tåå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°\t%lu\n",	net_count_ip4[NC_IP4_FRAG_IN_NO_BUF]);
-	cons_printf(portid, "\tåå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n",		net_count_ip4[NC_IP4_FRAG_IN_TMOUT]);
-	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_ip4[NC_IP4_OUT_OCTETS]);
-	cons_printf(portid, "\téä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n",		net_count_ip4[NC_IP4_OUT_PACKETS]);
-	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n",	net_count_ip4[NC_IP4_OUT_ERR_PACKETS]);
-	cons_printf(portid, "\tåå²éä¿¡æ°\t%lu\n",			net_count_ip4[NC_IP4_FRAG_OUT]);
-	cons_printf(portid, "\tåå²éä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n",		net_count_ip4[NC_IP4_FRAG_OUT_FRAGS]);
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",		net_count_ip4[NC_IP4_IN_OCTETS]);
+	cons_printf(portid, "\t受信データグラム数\t%lu\n",		net_count_ip4[NC_IP4_IN_PACKETS]);
+	cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n",	net_count_ip4[NC_IP4_IN_ERR_PACKETS]);
+	cons_printf(portid, "\tチェックサムエラー数\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_CKSUM]);
+	cons_printf(portid, "\t長さエラー数\t%lu\n",			net_count_ip4[NC_IP4_IN_ERR_SHORT]);
+	cons_printf(portid, "\tバージョンエラー数\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_VER]);
+	cons_printf(portid, "\tアドレスエラー数\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_ADDR]);
+	cons_printf(portid, "\tプロトコルエラー数\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_PROTO]);
+	cons_printf(portid, "\tオプション入力数\t%lu\n",		net_count_ip4[NC_IP4_OPTS]);
+	cons_printf(portid, "\t分割受信数\t%lu\n",			net_count_ip4[NC_IP4_FRAG_IN]);
+	cons_printf(portid, "\t分割受信フラグメント数\t%lu\n",		net_count_ip4[NC_IP4_FRAG_IN_FRAGS]);
+	cons_printf(portid, "\t分割受信再構成成功数\t%lu\n",		net_count_ip4[NC_IP4_FRAG_IN_OK]);
+	cons_printf(portid, "\t分割受信破棄数\t%lu\n",			net_count_ip4[NC_IP4_FRAG_IN_DROP]);
+	cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n",	net_count_ip4[NC_IP4_FRAG_IN_NO_BUF]);
+	cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n",		net_count_ip4[NC_IP4_FRAG_IN_TMOUT]);
+	cons_printf(portid, "\t送信オクテット数\t%lu\n",		net_count_ip4[NC_IP4_OUT_OCTETS]);
+	cons_printf(portid, "\t送信データグラム数\t%lu\n",		net_count_ip4[NC_IP4_OUT_PACKETS]);
+	cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n",	net_count_ip4[NC_IP4_OUT_ERR_PACKETS]);
+	cons_printf(portid, "\t分割送信数\t%lu\n",			net_count_ip4[NC_IP4_FRAG_OUT]);
+	cons_printf(portid, "\t分割送信フラグメント数\t%lu\n",		net_count_ip4[NC_IP4_FRAG_OUT_FRAGS]);
 
 	net_count_struct(portid, "ICMP", &net_count_icmp4);
@@ -751,40 +711,40 @@
 
 	cons_printf(portid, "\nIPv6\n");
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_ip6[NC_IP6_IN_OCTETS]);
-	cons_printf(portid, "\tåä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n",		net_count_ip6[NC_IP6_IN_PACKETS]);
-	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n",	net_count_ip6[NC_IP6_IN_ERR_PACKETS]);
-	cons_printf(portid, "\té·ãã¨ã©ã¼æ°\t%lu\n",			net_count_ip6[NC_IP6_IN_ERR_SHORT]);
-	cons_printf(portid, "\tãã¼ã¸ã§ã³ã¨ã©ã¼æ°\t%lu\n",		net_count_ip6[NC_IP6_IN_ERR_VER]);
-	cons_printf(portid, "\tã¢ãã¬ã¹ã¨ã©ã¼æ°\t%lu\n",		net_count_ip6[NC_IP6_IN_ERR_ADDR]);
-	cons_printf(portid, "\tãã­ãã³ã«ã¨ã©ã¼æ°\t%lu\n",		net_count_ip6[NC_IP6_IN_ERR_PROTO]);
-	cons_printf(portid, "\tåå²åä¿¡æ°\t%lu\n",			net_count_ip6[NC_IP6_FRAG_IN]);
-	cons_printf(portid, "\tåå²åä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n",		net_count_ip6[NC_IP6_FRAG_IN_FRAGS]);
-	cons_printf(portid, "\tåå²åä¿¡åæ§ææåæ°\t%lu\n",		net_count_ip6[NC_IP6_FRAG_IN_OK]);
-	cons_printf(portid, "\tåå²åä¿¡ç ´æ£æ°\t%lu\n",			net_count_ip6[NC_IP6_FRAG_IN_DROP]);
-	cons_printf(portid, "\tåå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°\t%lu\n",	net_count_ip6[NC_IP6_FRAG_IN_NO_BUF]);
-	cons_printf(portid, "\tåå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n",		net_count_ip6[NC_IP6_FRAG_IN_TMOUT]);
-	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_ip6[NC_IP6_OUT_OCTETS]);
-	cons_printf(portid, "\téä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n",		net_count_ip6[NC_IP6_OUT_PACKETS]);
-	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n",	net_count_ip6[NC_IP6_OUT_ERR_PACKETS]);
-	cons_printf(portid, "\tåå²éä¿¡æ°\t%lu\n",			net_count_ip6[NC_IP6_FRAG_OUT]);
-	cons_printf(portid, "\tåå²éä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n",		net_count_ip6[NC_IP6_FRAG_OUT_FRAGS]);
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",		net_count_ip6[NC_IP6_IN_OCTETS]);
+	cons_printf(portid, "\t受信データグラム数\t%lu\n",		net_count_ip6[NC_IP6_IN_PACKETS]);
+	cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n",	net_count_ip6[NC_IP6_IN_ERR_PACKETS]);
+	cons_printf(portid, "\t長さエラー数\t%lu\n",			net_count_ip6[NC_IP6_IN_ERR_SHORT]);
+	cons_printf(portid, "\tバージョンエラー数\t%lu\n",		net_count_ip6[NC_IP6_IN_ERR_VER]);
+	cons_printf(portid, "\tアドレスエラー数\t%lu\n",		net_count_ip6[NC_IP6_IN_ERR_ADDR]);
+	cons_printf(portid, "\tプロトコルエラー数\t%lu\n",		net_count_ip6[NC_IP6_IN_ERR_PROTO]);
+	cons_printf(portid, "\t分割受信数\t%lu\n",			net_count_ip6[NC_IP6_FRAG_IN]);
+	cons_printf(portid, "\t分割受信フラグメント数\t%lu\n",		net_count_ip6[NC_IP6_FRAG_IN_FRAGS]);
+	cons_printf(portid, "\t分割受信再構成成功数\t%lu\n",		net_count_ip6[NC_IP6_FRAG_IN_OK]);
+	cons_printf(portid, "\t分割受信破棄数\t%lu\n",			net_count_ip6[NC_IP6_FRAG_IN_DROP]);
+	cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n",	net_count_ip6[NC_IP6_FRAG_IN_NO_BUF]);
+	cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n",		net_count_ip6[NC_IP6_FRAG_IN_TMOUT]);
+	cons_printf(portid, "\t送信オクテット数\t%lu\n",		net_count_ip6[NC_IP6_OUT_OCTETS]);
+	cons_printf(portid, "\t送信データグラム数\t%lu\n",		net_count_ip6[NC_IP6_OUT_PACKETS]);
+	cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n",	net_count_ip6[NC_IP6_OUT_ERR_PACKETS]);
+	cons_printf(portid, "\t分割送信数\t%lu\n",			net_count_ip6[NC_IP6_FRAG_OUT]);
+	cons_printf(portid, "\t分割送信フラグメント数\t%lu\n",		net_count_ip6[NC_IP6_FRAG_OUT_FRAGS]);
 
 	cons_printf(portid, "\nICMPv6\n");
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_icmp6[NC_ICMP6_IN_OCTETS]);
-	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",			net_count_icmp6[NC_ICMP6_IN_PACKETS]);
-	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",		net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS]);
-	cons_printf(portid, "\tåä¿¡ããã¯ãµã ã¨ã©ã¼æ°\t%lu\n",		net_count_icmp6[NC_ICMP6_IN_ERR_CKSUM]);
-	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_icmp6[NC_ICMP6_OUT_OCTETS]);
-	cons_printf(portid, "\téä¿¡ãã±ããæ°\t%lu\n",			net_count_icmp6[NC_ICMP6_OUT_PACKETS]);
-	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",		net_count_icmp6[NC_ICMP6_OUT_ERR_PACKETS]);
-
-	cons_printf(portid, "\nè¿é£æ¢ç´¢\n");
-	cons_printf(portid, "\tã«ã¼ã¿éç¥åä¿¡æ°\t%lu\n",		net_count_nd6[NC_ND6_RA_IN_PACKETS]);
-	cons_printf(portid, "\tã«ã¼ã¿è¦è«éä¿¡æ°\t%lu\n",		net_count_nd6[NC_ND6_RS_OUT_PACKETS]);
-	cons_printf(portid, "\tè¿é£éç¥åä¿¡æ°\t%lu\n",			net_count_nd6[NC_ND6_NA_IN_PACKETS]);
-	cons_printf(portid, "\tè¿é£éç¥éä¿¡æ°\t%lu\n",			net_count_nd6[NC_ND6_NA_OUT_PACKETS]);
-	cons_printf(portid, "\tè¿é£è¦è«åä¿¡æ°\t%lu\n",			net_count_nd6[NC_ND6_NS_IN_PACKETS]);
-	cons_printf(portid, "\tè¿é£è¦è«éä¿¡æ°\t%lu\n",			net_count_nd6[NC_ND6_NS_OUT_PACKETS]);
-	cons_printf(portid, "\téè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°\t%lu\n",		net_count_nd6[NC_ND6_DAD_OUT_PACKETS]);
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",		net_count_icmp6[NC_ICMP6_IN_OCTETS]);
+	cons_printf(portid, "\t受信パケット数\t%lu\n",			net_count_icmp6[NC_ICMP6_IN_PACKETS]);
+	cons_printf(portid, "\t受信エラーパケット数\t%lu\n",		net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS]);
+	cons_printf(portid, "\t受信チックサムエラー数\t%lu\n",		net_count_icmp6[NC_ICMP6_IN_ERR_CKSUM]);
+	cons_printf(portid, "\t送信オクテット数\t%lu\n",		net_count_icmp6[NC_ICMP6_OUT_OCTETS]);
+	cons_printf(portid, "\t送信パケット数\t%lu\n",			net_count_icmp6[NC_ICMP6_OUT_PACKETS]);
+	cons_printf(portid, "\t送信エラーパケット数\t%lu\n",		net_count_icmp6[NC_ICMP6_OUT_ERR_PACKETS]);
+
+	cons_printf(portid, "\n近隣探索\n");
+	cons_printf(portid, "\tルータ通知受信数\t%lu\n",		net_count_nd6[NC_ND6_RA_IN_PACKETS]);
+	cons_printf(portid, "\tルータ要請送信数\t%lu\n",		net_count_nd6[NC_ND6_RS_OUT_PACKETS]);
+	cons_printf(portid, "\t近隣通知受信数\t%lu\n",			net_count_nd6[NC_ND6_NA_IN_PACKETS]);
+	cons_printf(portid, "\t近隣通知送信数\t%lu\n",			net_count_nd6[NC_ND6_NA_OUT_PACKETS]);
+	cons_printf(portid, "\t近隣要請受信数\t%lu\n",			net_count_nd6[NC_ND6_NS_IN_PACKETS]);
+	cons_printf(portid, "\t近隣要請送信数\t%lu\n",			net_count_nd6[NC_ND6_NS_OUT_PACKETS]);
+	cons_printf(portid, "\t重複アドレス検出送信数\t%lu\n",		net_count_nd6[NC_ND6_DAD_OUT_PACKETS]);
 
 #endif	/* of #if defined(SUPPORT_INET6) */
@@ -793,28 +753,28 @@
 
 	cons_printf(portid, "\nTCP\n");
-	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_OCTETS]);
-	cons_printf(portid, "\tåä¿¡ãã¼ã¿ãªã¯ãããæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_DATA_OCTETS]);
-	cons_printf(portid, "\tåä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_SEGS]);
-	cons_printf(portid, "\tåä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_DATA_SEGS]);
-	cons_printf(portid, "\tåä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_URG_SEGS]);
-	cons_printf(portid, "\tåä¿¡ããããä¸æ­£æ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_BAD_HEADERS]);
-	cons_printf(portid, "\tåä¿¡ããã§ãã¯ãµã ä¸æ­£æ°\t%lu\n",	net_count_tcp[NC_TCP_RECV_BAD_CKSUMS]);
-	cons_printf(portid, "\tåä¿¡ãACK æ°\t%lu\n",			net_count_tcp[NC_TCP_RECV_ACKS]);
-	cons_printf(portid, "\tåä¿¡ãå¤é ACK æ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_DUP_ACKS]);
-	cons_printf(portid, "\tåä¿¡ãRST æ°\t%lu\n",			net_count_tcp[NC_TCP_RECV_RSTS]);
-	cons_printf(portid, "\tåä¿¡ãå¤éæ°\t%lu\n",			net_count_tcp[NC_TCP_RECV_DUP_SEGS]);
-	cons_printf(portid, "\tåä¿¡ãç ´æ£æ°\t%lu\n",			net_count_tcp[NC_TCP_RECV_DROP_SEGS]);
-	cons_printf(portid, "\tåä¿¡ã­ã¥ã¼è§£æ¾æ°\t%lu\n",		net_count_tcp[NC_TCP_FREE_RCV_QUEUE]);
-	cons_printf(portid, "\téä¿¡ãã¼ã¿ãªã¯ãããæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_DATA_OCTETS]);
-	cons_printf(portid, "\téä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_CNTL_SEGS]);
-	cons_printf(portid, "\téä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_SEGS]);
-	cons_printf(portid, "\tåéä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_REXMIT_SEGS]);
-	cons_printf(portid, "\téä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_DATA_SEGS]);
-	cons_printf(portid, "\téä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_URG_SEGS]);
-	cons_printf(portid, "\téä¿¡ãACK æ°\t%lu\n",			net_count_tcp[NC_TCP_SEND_ACKS]);
-	cons_printf(portid, "\téä¿¡ãRST æ°\t%lu\n",			net_count_tcp[NC_TCP_SEND_RSTS]);
-	cons_printf(portid, "\tRTT æ´æ°æ°\t%lu\n",			net_count_tcp[NC_TCP_RTT_UPDATES]);
-	cons_printf(portid, "\tååãªã¼ãã³æ°\t%lu\n",			net_count_tcp[NC_TCP_ACCEPTS]);
-	cons_printf(portid, "\tè½åãªã¼ãã³æ°\t%lu\n",			net_count_tcp[NC_TCP_CONNECTS]);
+	cons_printf(portid, "\t受信オクテット数\t%lu\n",		net_count_tcp[NC_TCP_RECV_OCTETS]);
+	cons_printf(portid, "\t受信データオクテット数\t%lu\n",		net_count_tcp[NC_TCP_RECV_DATA_OCTETS]);
+	cons_printf(portid, "\t受信セグメント数\t%lu\n",		net_count_tcp[NC_TCP_RECV_SEGS]);
+	cons_printf(portid, "\t受信データセグメント数\t%lu\n",		net_count_tcp[NC_TCP_RECV_DATA_SEGS]);
+	cons_printf(portid, "\t受信、緊急セグメント数\t%lu\n",		net_count_tcp[NC_TCP_RECV_URG_SEGS]);
+	cons_printf(portid, "\t受信、ヘッダ不正数\t%lu\n",		net_count_tcp[NC_TCP_RECV_BAD_HEADERS]);
+	cons_printf(portid, "\t受信、チェックサム不正数\t%lu\n",	net_count_tcp[NC_TCP_RECV_BAD_CKSUMS]);
+	cons_printf(portid, "\t受信、ACK 数\t%lu\n",			net_count_tcp[NC_TCP_RECV_ACKS]);
+	cons_printf(portid, "\t受信、多重 ACK 数\t%lu\n",		net_count_tcp[NC_TCP_RECV_DUP_ACKS]);
+	cons_printf(portid, "\t受信、RST 数\t%lu\n",			net_count_tcp[NC_TCP_RECV_RSTS]);
+	cons_printf(portid, "\t受信、多重数\t%lu\n",			net_count_tcp[NC_TCP_RECV_DUP_SEGS]);
+	cons_printf(portid, "\t受信、破棄数\t%lu\n",			net_count_tcp[NC_TCP_RECV_DROP_SEGS]);
+	cons_printf(portid, "\t受信キュー解放数\t%lu\n",		net_count_tcp[NC_TCP_FREE_RCV_QUEUE]);
+	cons_printf(portid, "\t送信データオクテット数\t%lu\n",		net_count_tcp[NC_TCP_SEND_DATA_OCTETS]);
+	cons_printf(portid, "\t送信制御セグメント数\t%lu\n",		net_count_tcp[NC_TCP_SEND_CNTL_SEGS]);
+	cons_printf(portid, "\t送信セグメント数\t%lu\n",		net_count_tcp[NC_TCP_SEND_SEGS]);
+	cons_printf(portid, "\t再送信セグメント数\t%lu\n",		net_count_tcp[NC_TCP_SEND_REXMIT_SEGS]);
+	cons_printf(portid, "\t送信データセグメント数\t%lu\n",		net_count_tcp[NC_TCP_SEND_DATA_SEGS]);
+	cons_printf(portid, "\t送信、緊急セグメント数\t%lu\n",		net_count_tcp[NC_TCP_SEND_URG_SEGS]);
+	cons_printf(portid, "\t送信、ACK 数\t%lu\n",			net_count_tcp[NC_TCP_SEND_ACKS]);
+	cons_printf(portid, "\t送信、RST 数\t%lu\n",			net_count_tcp[NC_TCP_SEND_RSTS]);
+	cons_printf(portid, "\tRTT 更新数\t%lu\n",			net_count_tcp[NC_TCP_RTT_UPDATES]);
+	cons_printf(portid, "\t受動オープン数\t%lu\n",			net_count_tcp[NC_TCP_ACCEPTS]);
+	cons_printf(portid, "\t能動オープン数\t%lu\n",			net_count_tcp[NC_TCP_CONNECTS]);
 
 #endif	/* of #ifdef SUPPORT_TCP */
@@ -827,5 +787,5 @@
 
 	tbl = nbuf_get_tbl();
-	cons_printf(portid, "\nãããã¯ã¼ã¯ãããã¡\n\tãµã¤ãº\tç¨ææ°\tå²å½è¦æ±æ°\tå²å½æ°\tå²å½ã¦ã¨ã©ã¼æ°\n");
+	cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t割当要求数\t割当数\t割当てエラー数\n");
 	for (ix = nbuf_get_tbl_size(); ix -- > 0; ) {
 		cons_printf(portid, "\t%lu\t%lu\t%lu\t%lu\t%lu\n",
@@ -837,8 +797,7 @@
 		}
 
-	cons_printf(portid, "\nãããã¯ã¼ã¯çµ±è¨æ
-å ±\tçµéæé[ms]\t%lu\t", now);
+	cons_printf(portid, "\nネットワーク統計情報\t経過時間[ms]\t%lu\t", now);
 	if (now > (1000 * 3600 * 24))
-		cons_printf(portid, "%3luæ¥ %2luæé %2luå %2luç§\n",
+		cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n",
 		             now / (1000 * 3600 * 24),
 		            (now / (1000 * 3600)) % 24,
@@ -846,5 +805,5 @@
 		            (now /  1000        ) % 60);
 	else
-		cons_printf(portid, "%2luæé %2luå %2luç§\n",
+		cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n",
 		            (now / (1000 * 3600)) % 24,
 		            (now / (1000 * 60  )) % 60,
@@ -860,7 +819,5 @@
 
 /*
- *  nbuf_stat_ip4_frag_queue -- IPv4 åæ§æã­ã¥ã¼å
-ãããã¯ã¼ã¯ãããã¡æ
-å ±
+ *  nbuf_stat_ip4_frag_queue -- IPv4 再構成キュー内ネットワークバッファ情報
  */
 
@@ -872,6 +829,5 @@
 	int_t			ix, fix, count;
 
-	cons_printf(portid, "\nIPv4åæ§æã­ã¥ã¼å
-\nIndex\tTime");
+	cons_printf(portid, "\nIPv4再構成キュー内\nIndex\tTime");
 	tbl = nbuf_get_tbl();
 	for (ix = nbuf_get_tbl_size(); ix -- > 0; )
@@ -904,7 +860,5 @@
 
 /*
- *  nbuf_stat_ip6_frag_queue -- IPv6 åæ§æã­ã¥ã¼å
-ãããã¯ã¼ã¯ãããã¡æ
-å ±
+ *  nbuf_stat_ip6_frag_queue -- IPv6 再構成キュー内ネットワークバッファ情報
  */
 
@@ -916,6 +870,5 @@
 	int_t			ix, fix, count;
 
-	cons_printf(portid, "\nIPv6åæ§æã­ã¥ã¼å
-\nIndex\tTime");
+	cons_printf(portid, "\nIPv6再構成キュー内\nIndex\tTime");
 	tbl = nbuf_get_tbl();
 	for (ix = nbuf_get_tbl_size(); ix -- > 0; )
@@ -946,6 +899,5 @@
 
 /*
- *  nbuf_status -- ãããã¯ã¼ã¯ãããã¡æ
-å ±
+ *  nbuf_status -- ネットワークバッファ情報
  */
 
@@ -973,10 +925,9 @@
 	WAI_NET_CONS_PRINTF();
 	get_tim(&now);
-	cons_printf(portid, "ãããã¯ã¼ã¯ãããã¡æ
-å ±\tçµéæé[ms]\t%lu\n", now);
+	cons_printf(portid, "ネットワークバッファ情報\t経過時間[ms]\t%lu\n", now);
 
 #if NET_COUNT_ENABLE
 
-	cons_printf(portid, "\nãããã¯ã¼ã¯ãããã¡\n\tãµã¤ãº\tç¨ææ°\tå²å½è¦æ±æ°\tå²å½æ°\tå²å½ã¦ã¨ã©ã¼æ°\n");
+	cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t割当要求数\t割当数\t割当てエラー数\n");
 	tbl = nbuf_get_tbl();
 	for (ix = nbuf_get_tbl_size(); ix -- > 0; ) {
@@ -993,6 +944,5 @@
 #ifdef SUPPORT_TCP
 
-	cons_printf(portid, "\nCEPå
-\nCEPID\n");
+	cons_printf(portid, "\nCEP内\nCEPID\n");
 
 	for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) {
@@ -1063,5 +1013,5 @@
 
 /*
- *  routing_table_status -- çµè·¯è¡¨ã®åºå
+ *  routing_table_status -- 経路表の出力
  */
 
@@ -1120,6 +1070,5 @@
 
 /*
- *  defrtrlist_status -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãç¶æ
-ã®åºå
+ *  defrtrlist_status -- ディフォルトルータ・リスト状態の出力
  */
 
@@ -1140,5 +1089,5 @@
 	cons_printf(portid, " IP Address\n");
 
-	/* expire ã®åä½ã¯ [ms]ã*/
+	/* expire の単位は [ms]。*/
 	get_tim(&now);
 	dr = nd6_get_drl(&count);
@@ -1184,6 +1133,5 @@
 
 /*
- *  prefixlist_status -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãç¶æ
-ã®åºå
+ *  prefixlist_status -- プレフィックス・リスト状態の出力
  */
 
@@ -1204,5 +1152,5 @@
 	cons_printf(portid, " Len Prefix\n");
 
-	/* expire ã®åä½ã¯ [s]ã*/
+	/* expire の単位は [s]。*/
 	get_tim(&now);
 	now /= SYSTIM_HZ;
@@ -1253,5 +1201,5 @@
 
 /*
- *  routing_table_status -- çµè·¯è¡¨ã®åºå
+ *  routing_table_status -- 経路表の出力
  */
 
@@ -1276,5 +1224,5 @@
 		}
 
-	/* expire ã®åä½ã¯ [s]ã*/
+	/* expire の単位は [s]。*/
 	get_tim(&now);
 	now /= SYSTIM_HZ;
@@ -1302,6 +1250,5 @@
 
 /*
- *  routing_status -- ã«ã¼ãã£ã³ã°æ
-å ±
+ *  routing_status -- ルーティング情報
  */
 
@@ -1315,11 +1262,9 @@
 #if NUM_ND6_DEF_RTR_ENTRY > 0
 
-	case 'l':		/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãæ
-å ± */
+	case 'l':		/* ディフォルトルータ・リスト情報 */
 		defrtrlist_status(portid, line + 1);
 		break;
 
-	case 'p':		/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãæ
-å ± */
+	case 'p':		/* プレフィックス・リスト情報 */
 		prefixlist_status(portid, line + 1);
 		break;
@@ -1329,6 +1274,5 @@
 #endif	/* of #if defined(SUPPORT_INET6) */
 
-	default:		/* ã«ã¼ãã£ã³ã°è¡¨æ
-å ± */
+	default:		/* ルーティング表情報 */
 		routing_table_status(portid, line);
 		break;
@@ -1341,6 +1285,5 @@
 
 /*
- *  network_status -- ãããã¯ã¼ã¯ã®ç¶æ
-ã®åºå
+ *  network_status -- ネットワークの状態の出力
  */
 
@@ -1352,6 +1295,5 @@
 #ifdef SUPPORT_ETHER
 
-	case 'a':		/* IF ã¢ãã¬ã¹æ
-å ± */
+	case 'a':		/* IF アドレス情報 */
 		ifa_status(portid, line + 1);
 		break;
@@ -1359,6 +1301,5 @@
 #endif	/* of #ifdef SUPPORT_ETHER */
 
-	case 'b':		/* ãããã¯ã¼ã¯ãããã¡æ
-å ± */
+	case 'b':		/* ネットワークバッファ情報 */
 		nbuf_status(portid, line + 1);
 		break;
@@ -1366,6 +1307,5 @@
 #if NET_COUNT_ENABLE
 
-	case 'c':		/* ãããã¯ã¼ã¯çµ±è¨æ
-å ± */
+	case 'c':		/* ネットワーク統計情報 */
 		net_count(portid, line + 1);
 		break;
@@ -1375,6 +1315,5 @@
 #if NUM_ROUTE_ENTRY > 0
 
-	case 'r':		/* ã«ã¼ãã£ã³ã°æ
-å ± */
+	case 'r':		/* ルーティング情報 */
 		routing_status(portid, line + 1);
 		break;
@@ -1409,6 +1348,5 @@
 
 /*
- *  ifconfig -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ§ææ
-å ±
+ *  ifconfig -- ネットワークインタフェースの構成情報
  */
 
@@ -1458,6 +1396,5 @@
 
 /*
- *  ifconfig -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ§ææ
-å ±
+ *  ifconfig -- ネットワークインタフェースの構成情報
  */
 
@@ -1477,5 +1414,5 @@
 	                    ic->ifaddr.lladdr);
 
-	/* expire ã¨ vltime ã®åä½ã¯ [s]ã*/
+	/* expire と vltime の単位は [s]。*/
 	get_tim(&now);
 	now /= SYSTIM_HZ;
@@ -1515,5 +1452,5 @@
 
 /*
- *  show_config -- ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³è¨­å®ã®è¡¨ç¤º
+ *  show_config -- コンフィギュレーション設定の表示
  */
 
@@ -1918,5 +1855,5 @@
 
 /*
- *  ãããã°ã³ãã³ãè§£æ
+ *  デバッグコマンド解析
  */
 
@@ -2323,5 +2260,5 @@
 
 /*
- *  ãããã°ã³ã³ã½ã¼ã«ã¿ã¹ã¯
+ *  デバッグコンソールタスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  ãããã°ã³ã³ã½ã¼ã«ã®ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  デバッグコンソールのフィギュレーションファイル
  */
 
 #ifdef USE_DBG_CONS
 
-/* ã¿ã¹ã¯ */
+/* タスク */
 
 CRE_TSK(DBG_CON_TASK, {
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,13 +36,12 @@
 
 /* 
- *  ã³ã³ã½ã¼ã«
+ *  コンソール
  */
 
-#define	DBG_CON_STACK_SIZE	1024		/* ã³ã³ã½ã¼ã«ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
-#define DBG_CON_PRIORITY	5		/* ã³ã³ã½ã¼ã«ã¿ã¹ã¯ã®åªå
-åº¦ */
+#define	DBG_CON_STACK_SIZE	1024		/* コンソールタスクのスタックサイズ */
+#define DBG_CON_PRIORITY	5		/* コンソールタスクの優先度 */
 
 /*
- *  ã¿ã¹ã¯
+ *  タスク
  */
 
@@ -62,5 +49,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/discard.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/discard.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/discard.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,25 +36,21 @@
 
 /* 
- *  DISCARD ãµã¼ãã»ã¯ã©ã¤ã¢ã³ãã®ã¹ã¿ãã¯ãµã¤ãº
+ *  DISCARD サーバ・クライアントのスタックサイズ
  */
 
-#define TCP_DISCARD_SRV_STACK_SIZE	1024		/* TCP DISCARD ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
-#define TCP_DISCARD_CLI_STACK_SIZE	1024		/* TCP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
-#define UDP_DISCARD_CLI_STACK_SIZE	1024		/* UDP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#define TCP_DISCARD_SRV_STACK_SIZE	1024		/* TCP DISCARD サーバタスクのスタックサイズ */
+#define TCP_DISCARD_CLI_STACK_SIZE	1024		/* TCP DISCARD クライアントタスクのスタックサイズ */
+#define UDP_DISCARD_CLI_STACK_SIZE	1024		/* UDP DISCARD クライアントタスクのスタックサイズ */
 
 /* 
- *  DISCARD ãµã¼ãã»ã¯ã©ã¤ã¢ã³ãã®åªå
-åº¦
+ *  DISCARD サーバ・クライアントの優先度
  */
 
-#define TCP_DISCARD_SRV_MAIN_PRIORITY	5	/* TCP DISCARD ãµã¼ãã¿ã¹ã¯ã®åªå
-åº¦ */
-#define TCP_DISCARD_CLI_MAIN_PRIORITY	5	/* TCP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå
-åº¦ */
-#define UDP_DISCARD_CLI_MAIN_PRIORITY	5	/* UDP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå
-åº¦ */
+#define TCP_DISCARD_SRV_MAIN_PRIORITY	5	/* TCP DISCARD サーバタスクの優先度 */
+#define TCP_DISCARD_CLI_MAIN_PRIORITY	5	/* TCP DISCARD クライアントタスクの優先度 */
+#define UDP_DISCARD_CLI_MAIN_PRIORITY	5	/* UDP DISCARD クライアントタスクの優先度 */
 
 /*
- *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ *  TCP 送受信ウインドバッファサイズ
  */
 
@@ -95,5 +79,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -101,5 +85,5 @@
 extern bool_t	udp_discard_cli_valid;
 
-/* TCP éåä¿¡ãããã¡ */
+/* TCP 送受信バッファ */
 
 extern uint8_t tcp_discard_cli_swbuf[];
@@ -110,5 +94,5 @@
 
 /*
- *  ã¿ã¹ã¯
+ *  タスク
  */
 
@@ -119,5 +103,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/echo.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/echo.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/echo.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,39 +36,33 @@
 
 /* 
- *  ECHO ã¯ã©ã¤ã¢ã³ãã»ãµã¼ãã®ã¹ã¿ãã¯ãµã¤ãº
+ *  ECHO クライアント・サーバのスタックサイズ
  */
 
-#define TCP_ECHO_SRV_STACK_SIZE		1024		/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#define TCP_ECHO_SRV_STACK_SIZE		1024		/* TCP ECHO サーバタスクのスタックサイズ		*/
 
 #ifdef TOPPERS_S810_CLG3_85
-#define TCP_ECHO_CLI_RCV_STACK_SIZE	512		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
-#define TCP_ECHO_CLI_SND_STACK_SIZE	512		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define TCP_ECHO_CLI_RCV_STACK_SIZE	512		/* TCP ECHO クライアント受信タスクのスタックサイズ	*/
+#define TCP_ECHO_CLI_SND_STACK_SIZE	512		/* TCP ECHO クライアント送信タスクのスタックサイズ	*/
 #else	/* of #ifdef TOPPERS_S810_CLG3_85 */
-#define TCP_ECHO_CLI_RCV_STACK_SIZE	1024		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
-#define TCP_ECHO_CLI_SND_STACK_SIZE	1024		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define TCP_ECHO_CLI_RCV_STACK_SIZE	1024		/* TCP ECHO クライアント受信タスクのスタックサイズ	*/
+#define TCP_ECHO_CLI_SND_STACK_SIZE	1024		/* TCP ECHO クライアント送信タスクのスタックサイズ	*/
 #endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
 
-#define UDP_ECHO_SRV_STACK_SIZE		1024		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
-#define UDP_ECHO_CLI_STACK_SIZE		1024		/* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define UDP_ECHO_SRV_STACK_SIZE		1024		/* UDP ECHO サーバタスクのスタックサイズ		*/
+#define UDP_ECHO_CLI_STACK_SIZE		1024		/* UDP ECHO クライアントタスクのスタックサイズ	*/
 
 /* 
- *  ECHO ã¯ã©ã¤ã¢ã³ãã»ãµã¼ãã®åªå
-åº¦
+ *  ECHO クライアント・サーバの優先度
  */
 
-#define TCP_ECHO_SRV_MAIN_PRIORITY	5		/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå
-åº¦			*/
-#define TCP_ECHO_CLI_RCV_MAIN_PRIORITY	5		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®åªå
-åº¦		*/
-#define TCP_ECHO_CLI_SND_MAIN_PRIORITY	5		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®åªå
-åº¦		*/
+#define TCP_ECHO_SRV_MAIN_PRIORITY	5		/* TCP ECHO サーバタスクの優先度			*/
+#define TCP_ECHO_CLI_RCV_MAIN_PRIORITY	5		/* TCP ECHO クライアント受信タスクの優先度		*/
+#define TCP_ECHO_CLI_SND_MAIN_PRIORITY	5		/* TCP ECHO クライアント送信タスクの優先度		*/
 
-#define UDP_ECHO_SRV_MAIN_PRIORITY	5		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå
-åº¦			*/
-#define UDP_ECHO_CLI_MAIN_PRIORITY	5		/* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå
-åº¦		*/
+#define UDP_ECHO_SRV_MAIN_PRIORITY	5		/* UDP ECHO サーバタスクの優先度			*/
+#define UDP_ECHO_CLI_MAIN_PRIORITY	5		/* UDP ECHO クライアントタスクの優先度		*/
 
 /*
- *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ *  TCP 送受信ウインドバッファサイズ
  */
 
@@ -118,5 +100,5 @@
 
 /*
- *  ã¿ã¹ã¯æ°
+ *  タスク数
  */
 
@@ -129,5 +111,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -135,5 +117,5 @@
 extern bool_t	udp_echo_cli_valid;
 
-/* TCP éåä¿¡ãããã¡ */
+/* TCP 送受信バッファ */
 
 extern uint8_t tcp_echo_cli_swbuf[];
@@ -148,5 +130,5 @@
 
 /*
- *  ã¿ã¹ã¯
+ *  タスク
  */
 
@@ -161,5 +143,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,6 +33,5 @@
 
 /* 
- *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
-¥åºå
+ *  ネットワーク経由コンソール入出力
  */
 
@@ -92,8 +79,8 @@
 
 /*
- *  ãã¯ã­å®ç¾©
- */
-
-/*  ãªãã¼ã ã®è§£é¤  */
+ *  マクロ定義
+ */
+
+/*  リネームの解除  */
 
 #undef syslog
@@ -103,5 +90,5 @@
 #define EOF		(-1)
 
-/*  TELNET ãªãã·ã§ã³ */
+/*  TELNET オプション */
 
 #define TELNET_OPT_SE		(240)
@@ -123,16 +110,14 @@
 
 /*
- *  å¤æ°
- */
-
-/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+ *  変数
+ */
+
+/*  TCP 送受信ウィンドバッファ  */
 
 uint8_t net_cons_swbuf[NET_CONS_SWBUF_SIZE];
 uint8_t net_cons_rwbuf[NET_CONS_RWBUF_SIZE];
 
-bool_t	connected	= false;	/* ã³ãã¯ã·ã§ã³ã®ç¶æ
-	*/
-bool_t	wait_accept	= false;	/* æ¥ç¶è¦æ±å¾
-ã¡ä¸­	*/
+bool_t	connected	= false;	/* コネクションの状態	*/
+bool_t	wait_accept	= false;	/* 接続要求待ち中	*/
 
 #if defined(SUPPORT_INET4)
@@ -157,5 +142,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 
@@ -196,5 +181,5 @@
 
 /*
- *  éä¿¡ãããã¡ã®ãã©ãã·ã¥
+ *  送信バッファのフラッシュ
  */
 
@@ -218,5 +203,5 @@
 
 /*
- *  æå­éä¿¡
+ *  文字送信
  */
 
@@ -255,5 +240,5 @@
 
 /*
- *  æå­åä¿¡ï¼å¤æãªãï¼
+ *  文字受信（変換なし）
  */
 
@@ -292,5 +277,5 @@
 
 /*
- *  æå­åä¿¡ï¼TELNET ãªãã·ã§ã³ãã¹ã­ããï¼
+ *  文字受信（TELNET オプションをスキップ）
  */
 
@@ -356,5 +341,5 @@
 
 /*
- *  ã³ãã¯ã·ã§ã³ãåæ­
+ *  コネクションを切断
  */
 
@@ -388,5 +373,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡
+ *  シリアルポートの制御
  */
 
@@ -399,5 +384,5 @@
 
 /*
- *  ã­ã°åºå
+ *  ログ出力
  */
 
@@ -420,5 +405,5 @@
 		va_start(ap, format);
 		while ((ch = *format ++) != '\0') {
-			if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+			if (ch != '%') {		/* 書式指定以外 */
 				cons_putchar(CONSOLE_PORTID, (char)ch);
 				continue;
@@ -429,5 +414,5 @@
 			padchar = ' ';
 
-			if (ch == '-') {		/* å·¦è©°ã */
+			if (ch == '-') {		/* 左詰め */
 				format ++;
 				left = -1;
@@ -436,16 +421,15 @@
 				left = 1;
 
-			if ((ch = *format ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+			if ((ch = *format ++) == '0') {	/* 上位桁の 0 */
 				padchar = '0';
 				ch = *format ++;
 				}
 
-			while ('0' <= ch && ch <= '9') {	/* åºåå¹
- */
+			while ('0' <= ch && ch <= '9') {	/* 出力幅 */
 				width = width * 10 + ch - '0';
 				ch = *format ++;
 				}
 
-			while (ch == 'l') {		/* long (long) ã®æå® */
+			while (ch == 'l') {		/* long (long) の指定 */
 				longflag = true;
 				ch = *format ++;
@@ -555,5 +539,5 @@
 				}
 
-			while (ch == 'l') {		/* long (long) ã®æå® */
+			while (ch == 'l') {		/* long (long) の指定 */
 				longflag = true;
 				ch = *format ++;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,7 +33,6 @@
 
 /*
- *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
-¥åºå
- *  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ネットワーク経由コンソール入出力
+ *  システムコンフィギュレーションファイル
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,9 +33,8 @@
 
 /*
- *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
-¥åºå
+ *  ネットワーク経由コンソール入出力
  */
 
-/*  TCP éåä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº  */
+/*  TCP 送受信ウィンドバッファサイズ  */
 
 #define NET_CONS_SWBUF_SIZE	512
@@ -56,10 +43,10 @@
 #ifndef _MACRO_ONLY
 
-/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+/*  TCP 送受信ウィンドバッファ  */
 
 extern uint8_t net_cons_swbuf[];
 extern uint8_t net_cons_rwbuf[];
 
-/*  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°  */
+/*  ノンブロッキングコールのコールバック関数  */
 
 extern ER	callback_nblk_net_cons(ID cepid, FN fncd, void *p_parblk);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,5 +36,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ã®åæããã¯ã­
+ *  IPv4 と IPv6 の切換えマクロ
  */
 
@@ -60,5 +48,5 @@
 
 /*
- *  ã³ã³ã½ã¼ã«ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·
+ *  コンソールに用いるシリアルポート番号
  */
 
@@ -70,5 +58,5 @@
 
 /*
- *  æ°å¤å¤æã®ããã®å¤æè¡¨
+ *  数値変換のための変換表
  */
 
@@ -77,5 +65,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  ãããã¯ã¼ã¯å¿ç¨ãã­ã°ã©ã ãµãã¼ãã«ã¼ãã³
+ *  ネットワーク応用プログラムサポートルーチン
  */
 
@@ -84,5 +72,5 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºåã©ã¤ãã©ãª
+ *  シリアルポートへの書式付文字列出力ライブラリ
  */
 
@@ -90,5 +78,5 @@
 
 /*
- *  æ°å¤å¤æã®ããã®å¤æè¡¨
+ *  数値変換のための変換表
  */
 
@@ -99,5 +87,5 @@
 
 /*
- *  cons_putchar -- ã·ãªã¢ã«ãã¼ãã¸ã®æå­åºå
+ *  cons_putchar -- シリアルポートへの文字出力
  */
 
@@ -109,6 +97,5 @@
 
 /*
- *  cons_getchar -- ã·ãªã¢ã«ãã¼ãããã®æå­å
-¥å
+ *  cons_getchar -- シリアルポートからの文字入力
  */
 
@@ -127,5 +114,5 @@
 
 /*
- *  cons_putnumber -- cons_printf ã®æ°å¤å¤æ
+ *  cons_putnumber -- cons_printf の数値変換
  */
 
@@ -160,5 +147,5 @@
 
 	pad = ix;
-	if (!left)	/* å³è©°ã */
+	if (!left)	/* 右詰め */
 		for ( ; pad < width; pad ++)
 			cons_putchar(portid, padchar);
@@ -167,5 +154,5 @@
 		cons_putchar(portid, digits[ix]);
 
-	if (left)	/* å·¦è©°ã */
+	if (left)	/* 左詰め */
 		for ( ; pad < width; pad ++)
 			cons_putchar(portid, padchar);
@@ -177,5 +164,5 @@
 
 /*
- *  put_ipv4addr -- IPv4 ã¢ãã¬ã¹åºå
+ *  put_ipv4addr -- IPv4 アドレス出力
  */
 
@@ -183,5 +170,5 @@
 put_ipv4addr (ID portid, T_IN4_ADDR *addr, int_t width)
 {
-	int_t len = 3;	/* 3 ã¯ '.' ã®æå­æ° */
+	int_t len = 3;	/* 3 は '.' の文字数 */
 
 	len += cons_putnumber(portid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); 
@@ -206,5 +193,5 @@
 
 /*
- *  ipv6addr -- IPv6 ã¢ãã¬ã¹åºå
+ *  ipv6addr -- IPv6 アドレス出力
  */
 
@@ -258,5 +245,5 @@
 
 /*
- *  put_macaddr -- MAC ã¢ãã¬ã¹åºå
+ *  put_macaddr -- MAC アドレス出力
  */
 
@@ -279,5 +266,5 @@
 
 /*
- *  cons_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºå
+ *  cons_printf -- シリアルポートへの書式付文字列出力
  */
 
@@ -296,5 +283,5 @@
 	va_start(ap, fmt);
 	while ((ch = *fmt ++) != '\0') {
-		if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+		if (ch != '%') {		/* 書式指定以外 */
 			cons_putchar(portid, (char)ch);
 			continue;
@@ -304,5 +291,5 @@
 		padchar = ' ';
 
-		if (ch == '-') {		/* å·¦è©°ã */
+		if (ch == '-') {		/* 左詰め */
 			fmt ++;
 			left = -1;
@@ -311,16 +298,15 @@
 			left = 1;
 
-		if ((ch = *fmt ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+		if ((ch = *fmt ++) == '0') {	/* 上位桁の 0 */
 			padchar = '0';
 			ch = *fmt ++;
 			}
 
-		while ('0' <= ch && ch <= '9') {	/* åºåå¹
- */
+		while ('0' <= ch && ch <= '9') {	/* 出力幅 */
 			width = width * 10 + ch - '0';
 			ch = *fmt ++;
 			}
 
-		while (ch == 'l') {		/* long (long) ã®æå® */
+		while (ch == 'l') {		/* long (long) の指定 */
 			longflag ++;
 			ch = *fmt ++;
@@ -410,5 +396,5 @@
 
 /*
- *  skip_blanks -- ç©ºç½ã¨ TAB ãã¹ã­ããããã
+ *  skip_blanks -- 空白と TAB をスキップする。
  */
 
@@ -422,5 +408,5 @@
 
 /*
- *  get_ipv4addr -- æå­åã® IPv4 ã¢ãã¬ã¹ã T_IN4_ADDR å¤ã«å¤æããã
+ *  get_ipv4addr -- 文字列の IPv4 アドレスを T_IN4_ADDR 値に変換する。
  */
 
@@ -445,5 +431,5 @@
 
 /*
- *  get_ipv6addr -- æå­åã® IPv6 ã¢ãã¬ã¹ã T_IN6_ADDR å¤ã«å¤æããã
+ *  get_ipv6addr -- 文字列の IPv6 アドレスを T_IN6_ADDR 値に変換する。
  */
 
@@ -491,6 +477,5 @@
 
 /*
- *  ãããã°è¡å
-¥å
+ *  デバッグ行入力
  */
 
@@ -524,5 +509,5 @@
 
 /*
- *  get_int -- æ´æ°å¤æ
+ *  get_int -- 整数変換
  */
 
@@ -552,5 +537,5 @@
 
 /*
- *  get_xuint -- ç¬¦å·ãªãæ´æ° (16é²) å¤æ
+ *  get_xuint -- 符号なし整数 (16進) 変換
  */
 
@@ -606,5 +591,5 @@
 
 /*
- *  alloc_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ *  alloc_tcp_rep -- TCP 受付口を獲得する。
  */
 
@@ -632,5 +617,5 @@
 
 /*
- *  free_tcp_rep -- TCP åä»å£ãè§£æ¾ããã
+ *  free_tcp_rep -- TCP 受付口を解放する。
  */
 
@@ -656,5 +641,5 @@
 
 /*
- *  alloc_tcp_cep -- TCP éä¿¡ç«¯ç¹ãç²å¾ããã
+ *  alloc_tcp_cep -- TCP 通信端点を獲得する。
  */
 
@@ -682,5 +667,5 @@
 
 /*
- *  free_tcp_cep -- TCP éä¿¡ç«¯ç¹ãè§£æ¾ããã
+ *  free_tcp_cep -- TCP 通信端点を解放する。
  */
 
@@ -719,5 +704,5 @@
 
 /*
- *  alloc_udp_cep -- UDP éä¿¡ç«¯ç¹ãç²å¾ããã
+ *  alloc_udp_cep -- UDP 通信端点を獲得する。
  */
 
@@ -745,5 +730,5 @@
 
 /*
- *  free_udp_cep -- UDP éä¿¡ç«¯ç¹ãè§£æ¾ããã
+ *  free_udp_cep -- UDP 通信端点を解放する。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,7 +33,6 @@
 
 /*
- *  ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³å
-±é
- *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  サンプルアプリケーション共通
+ *  コンフィギュレーションファイル
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,5 +36,5 @@
 
 /*
- *  ãã¯ã­å®ç¾©
+ *  マクロ定義
  */
 
@@ -60,16 +48,15 @@
 
 /*
- *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
-¥åºå
+ *  ネットワーク経由コンソール入出力
  */
 
 #ifdef USE_NET_CONS
 
-/* ãªãã¼ã  */
+/* リネーム */
 
 #define syslog		net_syslog
 #define serial_ctl_por	net_serial_ctl_por
 
-/* é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­ */
+/* 関数シミュレーションマクロ */
 
 #define FLUSH_SND_BUFF()	flush_snd_buff()
@@ -79,5 +66,5 @@
 #else	/* of #ifdef USE_NET_CONS */
 
-/* é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­ */
+/* 関数シミュレーションマクロ */
 
 #define FLUSH_SND_BUFF()
@@ -88,5 +75,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  ping -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  ping -- ICMP ECHO メッセージを送信する。
  */
 
@@ -87,5 +75,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -96,5 +84,5 @@
 
 /*
- *  icmp_reply_timeout -- ICMP REPLY ã¿ã¤ã ã¢ã¦ãå¦ç
+ *  icmp_reply_timeout -- ICMP REPLY タイムアウト処理
  */
 
@@ -106,5 +94,5 @@
 
 /*
- *  icmp_echo_reply -- ICMP ECHO REPLY ã¡ãã»ã¼ã¸ãå¦çããã
+ *  icmp_echo_reply -- ICMP ECHO REPLY メッセージを処理する。
  */
 
@@ -121,5 +109,5 @@
 
 /*
- *  ping4 -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  ping4 -- ICMP ECHO メッセージを送信する。
  */
 
@@ -132,5 +120,5 @@
 	int_t		ix;
 
-	/* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	/* 送信用の IP データグラムを獲得する。*/
 	if (in4_get_datagram(&output, ICMP4_HDR_SIZE + len, 0,
 	                     addr, NULL, IPPROTO_ICMP,
@@ -138,5 +126,5 @@
 		return;
 
-	/* ICMP ããããè¨­å®ããã*/
+	/* ICMP ヘッダを設定する。*/
 	icmp4h			= GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET);
 	icmp4h->type		= ICMP4_ECHO_REQUEST;
@@ -145,14 +133,14 @@
 	icmp4h->data.id_seq.seq	= 0;
 
-	/* ãã¼ã¿ãè¨­å®ããã*/
+	/* データを設定する。*/
 	sdu = GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + len;
 	for (ix = len; ix -- > 0; )
 		*-- sdu = ('0' + icmp_id + ix) & 0xff;
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	icmp4h->sum = 0;
 	icmp4h->sum = in_cksum(icmp4h, ICMP4_HDR_SIZE + len);
 
-	/* å¿ç­ãã§ãã¯ç¨ã®å¤æ°ãè¨­å®ããã*/
+	/* 応答チェック用の変数を設定する。*/
 	curr_icmp_id  = icmp_id ++;
 	curr_icmp_len = len;
@@ -161,5 +149,5 @@
 	NET_COUNT_MIB(icmp_stats.icmpOutEchos, 1);
 
-	/* éä¿¡å¾ãç¾å¨ã®æéãè¨æ¶ããã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	/* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/
 	ip_output(output, TMO_FEVR);
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping6.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping6.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping6.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  ping6 -- ICMPv6 ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  ping6 -- ICMPv6 ECHO メッセージを送信する。
  */
 
@@ -93,5 +81,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -103,5 +91,5 @@
 
 /*
- *  icmp6_reply_timeout -- ICMP6 REPLY ã¿ã¤ã ã¢ã¦ãå¦ç
+ *  icmp6_reply_timeout -- ICMP6 REPLY タイムアウト処理
  */
 
@@ -114,5 +102,5 @@
 
 /*
- *  icmp6_echo_reply -- ICMP6 ECHO REPLY ã¡ãã»ã¼ã¸ãå¦çããã
+ *  icmp6_echo_reply -- ICMP6 ECHO REPLY メッセージを処理する。
  */
 
@@ -133,5 +121,5 @@
 
 /*
- *  ping6 -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  ping6 -- ICMP ECHO メッセージを送信する。
  */
 
@@ -148,8 +136,6 @@
 
 	/*
-	 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 *  宛先アドレスにふさわしい送信元アドレスを、
+	 *  ネットワークインタフェースから探索して利用する。
 	 */
 	if ((ia = in6_ifawithifp(ifp, addr)) == NULL)
@@ -159,5 +145,5 @@
 		ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_DEFHLIM);
 
-	/* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	/* 送信用の IP データグラムを獲得する。*/
 	if (in6_get_datagram(&output, ICMP6_HDR_SIZE + size, 0,
 	                     addr, &ia->addr, IPPROTO_ICMPV6,
@@ -165,5 +151,5 @@
 		return;
 
-	/* ICMP ããããè¨­å®ããã*/
+	/* ICMP ヘッダを設定する。*/
 	icmp6h           = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET);
 	icmp6h->type     = ICMP6_ECHO_REQUEST;
@@ -172,15 +158,15 @@
 	icmp6h->icmp6_seq= 0;
 
-	/* ãã¼ã¿ãè¨­å®ããã*/
+	/* データを設定する。*/
 	sdu = GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET) + size;
 	for (ix = size; ix -- > 0; )
 		*-- sdu = ('0' + send_icmp6_id + ix) & 0xff;
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	icmp6h->sum = 0;
 	icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6,
 	                        (uint8_t*)icmp6h - output->buf, ICMP6_HDR_SIZE + size);
 
-	/* å¿ç­ãã§ãã¯ç¨ã®å¤æ°ãè¨­å®ããã*/
+	/* 応答チェック用の変数を設定する。*/
 	curr_icmp6_id   = send_icmp6_id ++;
 	curr_icmp6_size = size;
@@ -192,5 +178,5 @@
 	                   ipv62str(NULL, addr), ipv62str(NULL, &ia->addr));
 
-	/* éä¿¡å¾ãç¾å¨ã®æéãè¨æ¶ããã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	/* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/
 	ip6_output(output, ipflags, TMO_FEVR);
 	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,9 +33,9 @@
 
 /* 
- *  TCP DISCARD ã¯ã©ã¤ã¢ã³ã
+ *  TCP DISCARD クライアント
  *
- *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
- *    ã»IPv4
- *    ã»IPv6
+ *    ・ノンブロッキングコール
+ *    ・IPv4
+ *    ・IPv6
  */
 
@@ -93,14 +81,14 @@
 #ifdef USE_TCP_DISCARD_CLI
 
-/* discard ãµã¼ãã®ãã¼ãçªå· */
+/* discard サーバのポート番号 */
 
 #define DISCARD_SRV_PORTNO	UINT_C(9)
 
-/* è¡¨ç¤º */
+/* 表示 */
 
 /*#define SHOW_RCV_RANGE*/
 
 /*
- *  ãããã¡ãµã¤ãºã®å®ç¾©
+ *  バッファサイズの定義
  */
 
@@ -112,11 +100,10 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
 bool_t tcp_discard_cli_valid;
 
-/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+/* TCP 送受信ウィンドバッファ */
 
 #ifndef TCP_CFG_SWBUF_CSAVE_ONLY
@@ -127,5 +114,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -138,5 +125,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 
@@ -172,5 +159,5 @@
 
 /*
- *  send_tcp_discard -- DISCARD/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。
  */
 
@@ -200,6 +187,5 @@
 		}
 
-	/* æ¥ç¶ãå®äºããã¾ã§å¾
-ã¤ã*/
+	/* 接続が完了するまで待つ。*/
 	syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY));
 
@@ -244,6 +230,5 @@
 			syslog(LOG_NOTICE, "[TDC:%02d SND] close error: %s", cepid, itron_strerror(error));
 
-		/* éæ¾ãå®äºããã¾ã§å¾
-ã¤ã*/
+		/* 開放が完了するまで待つ。*/
 		syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY));
 		}
@@ -253,5 +238,5 @@
 
 /*
- *  send_tcp_discard -- DISCARD/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,11 +33,11 @@
 
 /*
- *  TCP DISCARD ã¯ã©ã¤ã¢ã³ã
- *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TCP DISCARD クライアント
+ *  コンフィギュレーションファイル
  */
 
 #ifdef USE_TCP_DISCARD_CLI
 
-/* ã¿ã¹ã¯ */
+/* タスク */
 
 #ifdef USE_TCP_EXTENTIONS
@@ -77,9 +65,9 @@
 #endif	/* of #ifdef USE_TCP_EXTENTIONS */
 
-/* ã³ãã³ãã­ã¥ã¼ */
+/* コマンドキュー */
 
 CRE_DTQ(DTQ_TCP_DISCARD_CLI,  { TA_TFIFO, 1, NULL });
 
-/* ã»ããã© */
+/* セマフォ */
 
 #ifdef USE_TCP_NON_BLOCKING
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,9 +33,9 @@
 
 /* 
- *  DISCARD ãµã¼ã
+ *  DISCARD サーバ
  *
- *    ã»çã³ãã¼ API
- *    ã»IPv4
- *    ã»IPv6
+ *    ・省コピー API
+ *    ・IPv4
+ *    ・IPv6
  */
 
@@ -93,5 +81,5 @@
 
 /*
- *  è¡¨ç¤º
+ *  表示
  */
 
@@ -100,9 +88,8 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+ *  全域変数
+ */
+
+/* TCP 送受信ウィンドバッファ */
 
 #ifndef TCP_CFG_RWBUF_CSAVE_ONLY
@@ -111,5 +98,5 @@
 
 /*
- *  TCP DISCARD ãµã¼ãã¿ã¹ã¯
+ *  TCP DISCARD サーバタスク
  */
 
@@ -249,5 +236,5 @@
 
 /*
- *  get_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ *  get_tcp_rep -- TCP 受付口を獲得する。
  */
 
@@ -275,5 +262,5 @@
 
 /*
- *  get_tcp_cep -- TCP éä¿¡ç«¯ç¹ã¨ãç²å¾ããã
+ *  get_tcp_cep -- TCP 通信端点とを獲得する。
  */
 
@@ -302,5 +289,5 @@
 
 /*
- *  tcp_discard_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯
+ *  tcp_discard_srv_task -- TCP エコーサーバタスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  TCP DISCARD ãµã¼ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TCP DISCARD サーバコンフィギュレーションファイル
  */
 
@@ -51,5 +39,5 @@
 
 /*
- * ã¿ã¹ã¯
+ * タスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,11 +33,11 @@
 
 /* 
- *  TCP ECHO ã¯ã©ã¤ã¢ã³ã
+ *  TCP ECHO クライアント
  *
- *    ã»éåä¿¡ã¿ã¹ã¯åé¢å
- *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
- *    ã»çã³ãã¼ API
- *    ã»IPv4
- *    ã»IPv6
+ *    ・送受信タスク分離型
+ *    ・ノンブロッキングコール
+ *    ・省コピー API
+ *    ・IPv4
+ *    ・IPv6
  */
 
@@ -95,9 +83,9 @@
 #ifdef USE_TCP_ECHO_CLI
 
-/* echo ãµã¼ãã®ãã¼ãçªå· */
+/* echo サーバのポート番号 */
 
 #define ECHO_SRV_PORTNO		UINT_C(7)
 
-/* ç·æ¥ãã¼ã¿ã®éä¿¡ */
+/* 緊急データの送信 */
 
 #ifdef USE_TCP_EXTENTIONS
@@ -108,13 +96,13 @@
 #endif	/* of #ifdef USE_TCP_EXTENTIONS */
 
-/* è¡¨ç¤º */
+/* 表示 */
 
 //#define SHOW_RCV_RANGE
 
-/* ã¿ã¤ã ã¢ã¦ã */
+/* タイムアウト */
 
 #define CON_TMO		TMO_FEVR
 //#define CON_TMO		(60*SYSTIM_HZ)
-//#define CLS_TMO		TMO_FEVR				/* Close Wait ã¯æ¨æºã§ 60ç§ */
+//#define CLS_TMO		TMO_FEVR				/* Close Wait は標準で 60秒 */
 #define CLS_TMO		(70*SYSTIM_HZ+(net_rand()%SYSTIM_HZ)*10)
 //#define RCV_TMO		TMO_FEVR
@@ -123,5 +111,5 @@
 #define SND_TMO		(30*SYSTIM_HZ+(net_rand()%SYSTIM_HZ)*30)
 
-/* éä¿¡éé */
+/* 送信間隔 */
 
 //#define SND_DLY			ULONG_C(500)
@@ -129,5 +117,5 @@
 #define SLP_ITV		(60*SYSTIM_HZ)
 
-/* èªåå®è¡ */
+/* 自動実行 */
 
 #if 0
@@ -140,5 +128,5 @@
 
 /*
- *  ãããã¡ãµã¤ãºã®å®ç¾©
+ *  バッファサイズの定義
  */
 
@@ -151,11 +139,10 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
 bool_t tcp_echo_cli_valid;
 
-/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+/* TCP 送受信ウィンドバッファ */
 
 #ifndef TCP_CFG_SWBUF_CSAVE
@@ -168,5 +155,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -184,5 +171,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 
@@ -236,5 +223,5 @@
 
 /*
- *  send_tcp_echo -- ECHO/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  send_tcp_echo -- ECHO/TCP サーバにメッセージを送信する。
  */
 
@@ -268,6 +255,5 @@
 		}
 
-	/* æ¥ç¶ãå®äºããã¾ã§å¾
-ã¤ã*/
+	/* 接続が完了するまで待つ。*/
 	syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
 
@@ -322,6 +308,5 @@
 			syslog(LOG_NOTICE, "[TEC:%02d SND] shutdown error: %s", cepid, itron_strerror(error));
 
-		/* åä¿¡ãå®äºããã¾ã§å¾
-ã¤ã*/
+		/* 受信が完了するまで待つ。*/
 		syscall(slp_tsk());
 		}
@@ -331,5 +316,5 @@
 
 /*
- *  TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯
+ *  TCP ECHO クライアント受信タスク
  */
 
@@ -361,6 +346,5 @@
 					}
 
-				/* åä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾
-ã¤ã*/
+				/* 受信バッファの獲得が完了するまで待つ。*/
 				syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
 				if (nblk_error < 0)
@@ -391,6 +375,5 @@
 				syslog(LOG_NOTICE, "[TEC:%02d SND] close error: %s", cepid, itron_strerror(error));
 
-			/* åæ­ãå®äºããã¾ã§å¾
-ã¤ã*/
+			/* 切断が完了するまで待つ。*/
 			syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
 
@@ -433,6 +416,5 @@
 					}
 
-				/* åä¿¡ãå®äºããã¾ã§å¾
-ã¤ã*/
+				/* 受信が完了するまで待つ。*/
 				syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
 				if (nblk_error < 0)
@@ -459,6 +441,5 @@
 				syslog(LOG_NOTICE, "[TEC:%02d SND] close error: %s", cepid, itron_strerror(error));
 
-			/* åæ­ãå®äºããã¾ã§å¾
-ã¤ã*/
+			/* 切断が完了するまで待つ。*/
 			syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
 
@@ -477,5 +458,5 @@
 
 /*
- *  send_tcp_echo -- ECHO/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  send_tcp_echo -- ECHO/TCP サーバにメッセージを送信する。
  */
 
@@ -563,6 +544,5 @@
 		syslog(LOG_NOTICE, "[TEC:%02d SND] shutdown error: %s", cepid, itron_strerror(error));
 
-	/* åä¿¡ãå®äºããã¾ã§å¾
-ã¤ã*/
+	/* 受信が完了するまで待つ。*/
 	syscall(slp_tsk());
 
@@ -571,5 +551,5 @@
 
 /*
- *  TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯
+ *  TCP ECHO クライアント受信タスク
  */
 
@@ -688,5 +668,5 @@
 
 /*
- *  getcomd -- ã³ãã³ããå¾ãã
+ *  getcomd -- コマンドを得る。
  */
 
@@ -734,5 +714,5 @@
 
 /*
- *  TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯
+ *  TCP ECHO クライアント送信タスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,11 +33,11 @@
 
 /*
- *  TCP ECHO ã¯ã©ã¤ã¢ã³ã
- *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TCP ECHO クライアント
+ *  コンフィギュレーションファイル
  */
 
 #ifdef USE_TCP_ECHO_CLI
 
-/* ã¿ã¹ã¯ */
+/* タスク */
 
 #ifdef USE_TCP_EXTENTIONS
@@ -95,10 +83,10 @@
 #endif	/* of #ifdef USE_TCP_EXTENTIONS */
 
-/* ã³ãã³ãã­ã¥ã¼ */
+/* コマンドキュー */
 
 CRE_DTQ(DTQ_TCP_ECHO_CLI_SND,  { TA_TFIFO, 1, NULL });
 CRE_DTQ(DTQ_TCP_ECHO_CLI_RCV,  { TA_TFIFO, 1, NULL });
 
-/* ã»ããã© */
+/* セマフォ */
 
 #ifdef USE_TCP_NON_BLOCKING
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,11 +33,11 @@
 
 /* 
- *  TCP ECHO ãµã¼ã #1
+ *  TCP ECHO サーバ #1
  *
- *    ã»éåä¿¡ã¿ã¹ã¯åä¸å
- *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
- *    ã»çã³ãã¼ API
- *    ã»IPv4/IPv6
- *    ã»ç·æ¥ãã¼ã¿ã®åä¿¡
+ *    ・送受信タスク同一型
+ *    ・ノンブロッキングコール
+ *    ・省コピー API
+ *    ・IPv4/IPv6
+ *    ・緊急データの受信
  */
 
@@ -97,5 +85,5 @@
 
 /*
- *  è¡¨ç¤º
+ *  表示
  */
 
@@ -103,5 +91,5 @@
 
 /*
- *  ã³ãã¯ã·ã§ã³åæ­æ¹æ³ã®æå®
+ *  コネクション切断方法の指定
  */
 
@@ -109,8 +97,8 @@
 
 /*
- *  ã¿ã¤ã ã¢ã¦ã
- */
-
-//#define CLS_TMO		TMO_FEVR	/* Close Wait ã¯æ¨æºã§ 60ç§ */
+ *  タイムアウト
+ */
+
+//#define CLS_TMO		TMO_FEVR	/* Close Wait は標準で 60秒 */
 #define CLS_TMO		(70*SYSTIM_HZ+(net_rand()%SYSTIM_HZ)*10)
 //#define RCV_TMO		TMO_FEVR
@@ -120,9 +108,8 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+ *  全域変数
+ */
+
+/* TCP 送受信ウィンドバッファ */
 
 #ifndef TCP_CFG_SWBUF_CSAVE
@@ -135,13 +122,13 @@
 
 /*
- *  å¤æ°
- */
-
-/*
- *  æ³¨æ:
+ *  変数
+ */
+
+/*
+ *  注意:
  *
- *    BUF_SIZE ã¯ TCP ã®
- *    éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã® 
- *    3/2 åä»¥ä¸ã®å¤§ããããªããã°ããããã­ãã¯ããå¯è½æ§ãããã
+ *    BUF_SIZE は TCP の
+ *    送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの 
+ *    3/2 倍以上の大きさがなければ、デッドロックする可能性がある。
  */
 
@@ -149,5 +136,5 @@
                           TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2)
 
-static T_IPEP		dst;			/* æ¥ç¶ç¸æ		*/
+static T_IPEP		dst;			/* 接続相手		*/
 
 #ifdef USE_TCP_NON_BLOCKING
@@ -173,5 +160,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 
@@ -260,6 +247,5 @@
 		}
 
-	/* ç¸æããæ¥ç¶ãããã¾ã§å¾
-ã¤ã*/
+	/* 相手から接続されるまで待つ。*/
 	syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
 
@@ -286,19 +272,18 @@
 			}
 
-		/* åä¿¡ããã¾ã§å¾
-ã¤ã*/
+		/* 受信するまで待つ。*/
 		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
 
-		if (nblk_rlen < 0) {	/* ã¨ã©ã¼ */
+		if (nblk_rlen < 0) {	/* エラー */
 			syslog(LOG_NOTICE, "[TES:%02d RCV] error: %s", 
 			                   cepid, itron_strerror(nblk_rlen));
 			break;
 			}
-		else if (nblk_rlen == 0)	/* åä¿¡çµäº */
+		else if (nblk_rlen == 0)	/* 受信終了 */
 			break;
 
 		rblen = nblk_rlen;
 
-		/* ãããã¡ã®æ®ãã«ãããåä¿¡é·ãèª¿æ´ããã*/
+		/* バッファの残りにより、受信長を調整する。*/
 		if (rblen > BUF_SIZE - rlen)
 			rblen = BUF_SIZE - rlen;
@@ -333,6 +318,5 @@
 				}
 
-			/* éä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾
-ã¤ã*/
+			/* 送信バッファの獲得が完了するまで待つ。*/
 			syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
 
@@ -372,6 +356,5 @@
 		syslog(LOG_NOTICE, "[TES:%02d CLS] error: %s", cepid, itron_strerror(error));
 
-	/* éæ¾ãå®äºããã¾ã§å¾
-ã¤ã*/
+	/* 開放が完了するまで待つ。*/
 	syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
 
@@ -399,6 +382,5 @@
 		}
 
-	/* ç¸æããæ¥ç¶ãããã¾ã§å¾
-ã¤ã*/
+	/* 相手から接続されるまで待つ。*/
 	syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
 
@@ -426,6 +408,5 @@
 			}
 
-		/* åä¿¡å®äºã¾ã§å¾
-ã¤ã*/
+		/* 受信完了まで待つ。*/
 		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
 
@@ -458,6 +439,5 @@
 				}
 
-			/* éä¿¡å®äºã¾ã§å¾
-ã¤ã*/
+			/* 送信完了まで待つ。*/
 			syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
 
@@ -489,6 +469,5 @@
 		syslog(LOG_NOTICE, "[TES:%02d CLS] error: %s", cepid, itron_strerror(error));
 
-	/* éæ¾ãå®äºããã¾ã§å¾
-ã¤ã*/
+	/* 開放が完了するまで待つ。*/
 	syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
 
@@ -601,5 +580,5 @@
 
 /*
- *  tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã
+ *  tcp_echo_srv -- TCP エコーサーバ
  */
 
@@ -682,5 +661,5 @@
 
 /*
- *  get_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ *  get_tcp_rep -- TCP 受付口を獲得する。
  */
 
@@ -708,5 +687,5 @@
 
 /*
- *  get_tcp_cep -- TCP éä¿¡ç«¯ç¹ã¨ãç²å¾ããã
+ *  get_tcp_cep -- TCP 通信端点とを獲得する。
  */
 
@@ -743,5 +722,5 @@
 
 /*
- *  tcp_echo_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯
+ *  tcp_echo_srv_task -- TCP エコーサーバタスク
  */
 
@@ -783,5 +762,5 @@
 
 /*
- *  tcp_echo_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯
+ *  tcp_echo_srv_task -- TCP エコーサーバタスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,11 +33,11 @@
 
 /*
- *  TCP ECHO ãµã¼ã #1ãéåä¿¡ã¿ã¹ã¯åä¸å
- *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TCP ECHO サーバ #1、送受信タスク同一型
+ *  コンフィギュレーションファイル
  */
 
 #ifdef USE_TCP_ECHO_SRV1
 
-/* ã¿ã¹ã¯ */
+/* タスク */
 
 #ifdef USE_TCP_EXTENTIONS
@@ -168,5 +156,5 @@
 #endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 8 */
 
-/* ã»ããã© */
+/* セマフォ */
 
 #ifdef USE_TCP_NON_BLOCKING
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,9 +33,9 @@
 
 /* 
- *  TCP ECHO ãµã¼ã #2
+ *  TCP ECHO サーバ #2
  *
- *    ã»éåä¿¡ã¿ã¹ã¯åé¢å
- *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
- *    ã»IPv4/IPv6
+ *    ・送受信タスク分離型
+ *    ・ノンブロッキングコール
+ *    ・IPv4/IPv6
  */
 
@@ -92,5 +80,5 @@
 
 /*
- *  è¡¨ç¤º
+ *  表示
  */
 
@@ -98,5 +86,5 @@
 
 /*
- *  ã³ãã¯ã·ã§ã³åæ­æ¹æ³ã®æå®
+ *  コネクション切断方法の指定
  */
 
@@ -104,9 +92,8 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+ *  全域変数
+ */
+
+/* TCP 送受信ウィンドバッファ */
 
 #ifndef TCP_CFG_SWBUF_CSAVE
@@ -119,13 +106,13 @@
 
 /*
- *  å¤æ°
- */
-
-/*
- *  æ³¨æ:
+ *  変数
+ */
+
+/*
+ *  注意:
  *
- *    BUF_SIZE ã¯ TCP ã®
- *    éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã® 
- *    3/2 åä»¥ä¸ã®å¤§ããããªããã°ããããã­ãã¯ããå¯è½æ§ãããã
+ *    BUF_SIZE は TCP の
+ *    送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの 
+ *    3/2 倍以上の大きさがなければ、デッドロックする可能性がある。
  */
 
@@ -133,24 +120,23 @@
                           TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2)
 
-static char	buffer[BUF_SIZE];	/* ãããã¡		*/
-
-static T_IPEP	dst;			/* æ¥ç¶ç¸æ		*/
-static bool_t	ena_rcv;		/* åä¿¡å¯è½ãã©ã°	*/
-static char	*rptr = buffer;		/* åä¿¡ãã¤ã³ã¿		*/
-static char	*sptr = buffer;		/* éä¿¡ãã¤ã³ã¿		*/
-static uint32_t	rcv_total;		/* åä¿¡æå­æ°		*/
-static uint32_t	snd_total;		/* éä¿¡æå­æ°		*/
-static uint16_t	chars;			/* ãããã¡å
-ã®æå­æ°	*/
-static uint16_t	rcv_count;		/* åä¿¡åæ°		*/
-static uint16_t	snd_count;		/* éä¿¡åæ°		*/
+static char	buffer[BUF_SIZE];	/* バッファ		*/
+
+static T_IPEP	dst;			/* 接続相手		*/
+static bool_t	ena_rcv;		/* 受信可能フラグ	*/
+static char	*rptr = buffer;		/* 受信ポインタ		*/
+static char	*sptr = buffer;		/* 送信ポインタ		*/
+static uint32_t	rcv_total;		/* 受信文字数		*/
+static uint32_t	snd_total;		/* 送信文字数		*/
+static uint16_t	chars;			/* バッファ内の文字数	*/
+static uint16_t	rcv_count;		/* 受信回数		*/
+static uint16_t	snd_count;		/* 送信回数		*/
 
 #ifdef USE_TCP_NON_BLOCKING
 
-static ER	rcv_error = E_OK;	/* åä¿¡ããã³ãã­ãã­ã³ã°ã³ã¼ã«ã¨ã©ã¼ */
-static ER	snd_error = 1;		/* éä¿¡ããã³ãã­ãã­ã³ã°ã³ã¼ã«ã¨ã©ã¼ */
-
-/*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+static ER	rcv_error = E_OK;	/* 受信、ノンブロッキングコールエラー */
+static ER	snd_error = 1;		/* 送信、ノンブロッキングコールエラー */
+
+/*
+ *  ノンブロッキングコールのコールバック関数
  */
 
@@ -198,5 +184,5 @@
 			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
 
-			/* éä¿¡ãã¤ã³ã¿ãé²ããã*/
+			/* 送信ポインタを進める。*/
 			if (sptr - buffer + slen >= sizeof(buffer))
 				sptr -= sizeof(buffer) - slen;
@@ -204,16 +190,13 @@
 				sptr += slen;
 
-			/* ãããã¡å
-ã®æå­æ°ãæ¸ããã*/
+			/* バッファ内の文字数を減らす。*/
 			last   = chars;
 			chars -= slen;
 
- 			/* ãããã¡å
-ã«æå­ãããã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+ 			/* バッファ内に文字があれば、送信タスクを起床する。*/
 			if (chars > 0 || (!ena_rcv && chars == 0))
 				sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
 
- 			/* åä¿¡å¯è½ã§ããããã¡å
-ã«ç©ºããã§ããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+ 			/* 受信可能で、バッファ内に空きができれば、受信タスクを起床する。*/
 			if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0)
 				syscall(sig_sem(SEM_TCP_ECHO_SRV_RCV_READY));
@@ -241,5 +224,5 @@
 			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
 
-			/* åä¿¡ãã¤ã³ã¿ãé²ããã*/
+			/* 受信ポインタを進める。*/
 			if (rptr - buffer + rlen >= sizeof(buffer))
 				rptr -= sizeof(buffer) - rlen;
@@ -247,17 +230,13 @@
 				rptr += rlen;
 
-			/* ãããã¡å
-ã®æå­æ°ãå¢ããã*/
+			/* バッファ内の文字数を増やす。*/
 			last   = chars;
 			chars += rlen;
 
- 			/* ãããã¡å
-ã«æå­ãå
-¥ãã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+ 			/* バッファ内に文字が入れば、送信タスクを起床する。*/
 			if (last == 0 && chars > 0)
 				sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
 
- 			/* ãããã¡å
-ã«ç©ºããããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+ 			/* バッファ内に空きがあれば、受信タスクを起床する。*/
 			if (sizeof(buffer) - chars > 0)
 				sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
@@ -294,5 +273,5 @@
 
 /*
- *  TCP ECHO ãµã¼ãåä¿¡ã«ã¼ãã³ (ãã³ãã­ãã­ã³ã°ã³ã¼ã«ä½¿ç¨)
+ *  TCP ECHO サーバ受信ルーチン (ノンブロッキングコール使用)
  */
 
@@ -313,11 +292,8 @@
 		}
 
-	/* ã³ãã¯ã·ã§ã³éè¨­å®äºã¾ã§å¾
-ã¤ã*/
+	/* コネクション開設完了まで待つ。*/
 	syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY));
 
-	/* å¾
-ã£ã¦ããéã«ã¨ã©ã¼ã«ãªã£ãããã³ãã¯ã·ã§ã³ã®éè¨­å¾
-ã¡ã«æ»ãã*/
+	/* 待っている間にエラーになったら、コネクションの開設待ちに戻る。*/
 	if (rcv_error != E_OK)
 		return rcv_error;
@@ -332,5 +308,5 @@
 	while (true) {
 
-		/* åä¿¡ãµã¤ãºãè¨ç®ããã*/
+		/* 受信サイズを計算する。*/
 		syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
 		if (sptr > rptr)
@@ -340,5 +316,5 @@
 		syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
 
-		/* åä¿¡ããã*/
+		/* 受信する。*/
 		if ((error = tcp_rcv_dat(cepid, rptr, blen, TMO_NBLK)) != E_WBLK) {
 			syslog(LOG_NOTICE, "[TES:%02d RCV] recv error = %s", cepid, itron_strerror(error));
@@ -346,10 +322,8 @@
 			}
 
-		/* åä¿¡ãããã¡ã«ç©ºãã§ããã¾ã§å¾
-ã¤ã*/
+		/* 受信バッファに空ができるまで待つ。*/
 		syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY));
 
-		/* å¾
-ã£ã¦ããéã«ãåä¿¡æå­æ°ã 0 ã«ãªãããã¨ã©ã¼ã«ãªã£ããçµäºããã*/
+		/* 待っている間に、受信文字数が 0 になるか、エラーになったら終了する。*/
 		if (rcv_error <= 0)
 			break;
@@ -357,15 +331,12 @@
 		}
 
-	/* åä¿¡å®äº */
+	/* 受信完了 */
 	ena_rcv = false;
 
-	/* åä¿¡ãããã¡ã«æå­ãå
-¥ãã®ãå¾
-ã£ã¦ããéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+	/* 受信バッファに文字が入るのを待っている送信タスクを起床する。*/
 	if (chars == 0)
 		sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
 
-	/* ã³ãã¯ã·ã§ã³åæ­å®äºã¾ã§å¾
-ã¤ã*/
+	/* コネクション切断完了まで待つ。*/
 	syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY));
 
@@ -374,5 +345,5 @@
 
 /*
- *  TCP ECHO ãµã¼ãéä¿¡ã¿ã¹ã¯ (ãã³ãã­ãã­ã³ã°ã³ã¼ã«ä½¿ç¨)
+ *  TCP ECHO サーバ送信タスク (ノンブロッキングコール使用)
  */
 
@@ -395,19 +366,16 @@
 		while (true) {
 
-			/* ãããã¡ã«æå­ãå
-¥ãã¾ã§å¾
-ã¤ã*/
+			/* バッファに文字が入るまで待つ。*/
 			syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY));
 
-			/* å¾
-ã£ã¦ããéã«ã¨ã©ã¼ã«ãªã£ããçµäºããã*/
+			/* 待っている間にエラーになったら終了する。*/
 			if (snd_error <= 0)
 				break;
 
-			/* åä¿¡å®äºã§ããããã¡ã«æå­ããªããã°çµäºããã*/
+			/* 受信完了で、バッファに文字がなければ終了する。*/
 			if (!ena_rcv && chars == 0)
 				break;
 
-			/* éä¿¡ãµã¤ãºãè¨ç®ããã*/
+			/* 送信サイズを計算する。*/
 			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
 			if (rptr > sptr)
@@ -417,5 +385,5 @@
 			syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
 
-			/* éä¿¡ããã*/
+			/* 送信する。*/
 			if ((error = tcp_snd_dat(cepid, sptr, blen, TMO_NBLK)) != E_WBLK) {
 				syslog(LOG_NOTICE, "[TES:%02d SND] send error = %s", cepid, itron_strerror(error));
@@ -424,6 +392,5 @@
 			}
 
-		/* åä¿¡ãããã¡ã«ç©ºãã§ãããå¾
-ã£ã¦ããåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+		/* 受信バッファに空ができるを待っている受信タスクを起床する。*/
 		if (chars == sizeof(buffer))
 			sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
@@ -446,5 +413,5 @@
 
 /*
- *  TCP ECHO ãµã¼ãåä¿¡ã«ã¼ãã³
+ *  TCP ECHO サーバ受信ルーチン
  */
 
@@ -483,5 +450,5 @@
 	while (true) {
 
-		/* åä¿¡ãµã¤ãºãè¨ç®ããã*/
+		/* 受信サイズを計算する。*/
 		syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
 		if (sptr > rptr)
@@ -491,5 +458,5 @@
 		syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
 
-		/* åä¿¡ããã*/
+		/* 受信する。*/
 		if ((rlen = tcp_rcv_dat(cepid, rptr, blen, TMO_FEVR)) <= 0) {
 			if (rlen < 0)
@@ -509,5 +476,5 @@
 		syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
 
-		/* åä¿¡ãã¤ã³ã¿ãé²ããã*/
+		/* 受信ポインタを進める。*/
 		if (rptr - buffer + rlen >= sizeof(buffer))
 			rptr -= sizeof(buffer) - rlen;
@@ -515,17 +482,13 @@
 			rptr += rlen;
 
-		/* ãããã¡å
-ã®æå­æ°ãå¢ããã*/
+		/* バッファ内の文字数を増やす。*/
 		last   =     chars;
 		chars += (uint16_t)rlen;
 
- 				/* ãããã¡å
-ã«æå­ãå
-¥ãã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+ 				/* バッファ内に文字が入れば、送信タスクを起床する。*/
 		if (last == 0 && chars > 0)
 			sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
 
- 				/* ãããã¡å
-ã«ç©ºããããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+ 				/* バッファ内に空きがあれば、受信タスクを起床する。*/
 		if (sizeof(buffer) - chars > 0)
 			sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
@@ -533,20 +496,16 @@
 		syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
 
-		/* ãããã¡ã«ç©ºããã§ããã¾ã§å¾
-ã¤ã*/
+		/* バッファに空きができるまで待つ。*/
 		syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY));
 		}
 
-	/* åä¿¡å®äº */
+	/* 受信完了 */
 	ena_rcv = false;
 
-	/* åä¿¡ãããã¡ã«æå­ãå
-¥ãã®ãå¾
-ã£ã¦ããéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+	/* 受信バッファに文字が入るのを待っている送信タスクを起床する。*/
 	if (chars == 0)
 		sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
 
-	/* ã³ãã¯ã·ã§ã³ã®åæ­ãå®äºããã¾ã§å¾
-ã¤ã*/
+	/* コネクションの切断が完了するまで待つ。*/
 	syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY));
 
@@ -555,5 +514,5 @@
 
 /*
- *  TCP ECHO ãµã¼ãéä¿¡ã¿ã¹ã¯
+ *  TCP ECHO サーバ送信タスク
  */
 
@@ -579,14 +538,12 @@
 		while (true) {
 
-			/* ãããã¡ã«æå­ãå
-¥ãã¾ã§å¾
-ã¤ã*/
+			/* バッファに文字が入るまで待つ。*/
 			syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY));
 
-			/* åä¿¡å®äºã§ããããã¡ã«æå­ããªããã°çµäºããã*/
+			/* 受信完了で、バッファに文字がなければ終了する。*/
 			if (!ena_rcv && chars == 0)
 				break;
 
-			/* éä¿¡ãµã¤ãºãè¨ç®ããã*/
+			/* 送信サイズを計算する。*/
 			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
 			if (rptr > sptr)
@@ -612,5 +569,5 @@
 			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
 
-			/* éä¿¡ãã¤ã³ã¿ãé²ããã*/
+			/* 送信ポインタを進める。*/
 			if (sptr - buffer + slen >= sizeof(buffer))
 				sptr -= sizeof(buffer) - slen;
@@ -618,10 +575,9 @@
 				sptr += slen;
 
-			/* ãããã¡å
-ã®æå­æ°ãæ¸ããã*/
+			/* バッファ内の文字数を減らす。*/
 			last   =     chars;
 			chars -= (uint16_t)slen;
 
-			/* åä¿¡å®äºã§ããããã¡ã«æå­ããªããã°çµäºããã*/
+			/* 受信完了で、バッファに文字がなければ終了する。*/
 			if (!ena_rcv && chars == 0) {
 				syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
@@ -629,11 +585,9 @@
 				}
 
- 			/* ãããã¡å
-ã«æå­ãããã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+ 			/* バッファ内に文字があれば、送信タスクを起床する。*/
 			if (chars > 0)
 				sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
 
- 			/* åä¿¡å¯è½ã§ããããã¡å
-ã«ç©ºããã§ããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+ 			/* 受信可能で、バッファ内に空きができれば、受信タスクを起床する。*/
 			if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0)
 				sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
@@ -642,6 +596,5 @@
 			}
 
-		/* åä¿¡ãããã¡ã«ç©ºãã§ãããå¾
-ã£ã¦ããåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+		/* 受信バッファに空ができるを待っている受信タスクを起床する。*/
 		if (chars == sizeof(buffer))
 			sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
@@ -671,5 +624,5 @@
 
 /*
- *  get_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ *  get_tcp_rep -- TCP 受付口を獲得する。
  */
 
@@ -697,5 +650,5 @@
 
 /*
- *  get_tcp_cep -- TCP éä¿¡ç«¯ç¹ãç²å¾ããã
+ *  get_tcp_cep -- TCP 通信端点を獲得する。
  */
 
@@ -732,5 +685,5 @@
 
 /*
- *  TCP ECHO ãµã¼ãåä¿¡ã¿ã¹ã¯
+ *  TCP ECHO サーバ受信タスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,11 +33,11 @@
 
 /*
- *  TCP ECHO ãµã¼ã #2ãéåä¿¡ã¿ã¹ã¯åé¢å
- *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TCP ECHO サーバ #2、送受信タスク分離型
+ *  コンフィギュレーションファイル
  */
 
 #ifdef USE_TCP_ECHO_SRV2
 
-/* ã¿ã¹ã¯ */
+/* タスク */
 
 #ifdef USE_TCP_EXTENTIONS
@@ -95,9 +83,9 @@
 #endif	/* of #ifdef USE_TCP_EXTENTIONS */
 
-/* ã³ãã³ãã­ã¥ã¼ */
+/* コマンドキュー */
 
 CRE_DTQ(DTQ_TCP_ECHO_SRV_SND,  { TA_TFIFO, 1, NULL });
 
-/* ã»ããã© */
+/* セマフォ */
 
 CRE_SEM(SEM_TCP_ECHO_SRV_LOCK,		{ TA_TPRI, 1, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_dbg_cons.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_dbg_cons.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_dbg_cons.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,6 +33,6 @@
 
 /*
- *  ãããã°ã³ã³ã½ã¼ã«
- *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  デバッグコンソール
+ *  TCP/IP コンフィギュレーションファイル
  */
 
@@ -53,5 +41,5 @@
 #ifdef USE_TCP_EXTENTIONS
 
-/* TCP åä»å£ */
+/* TCP 受付口 */
 
 #ifdef SUPPORT_INET4
@@ -79,5 +67,5 @@
 #endif	/* of #ifdef SUPPORT_INET6 */
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #ifdef SUPPORT_INET4
@@ -125,5 +113,5 @@
 #ifdef USE_UDP_EXTENTIONS
 
-/* UDP éä¿¡ç«¯ç¹ */
+/* UDP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_net_cons.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_net_cons.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_net_cons.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,12 +33,11 @@
 
 /*
- *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
-¥åºå
- *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ネットワーク経由コンソール入出力
+ *  TCP/IP コンフィギュレーションファイル
  */
 
 #ifdef USE_NET_CONS
 
-/* TCP åä»å£ */
+/* TCP 受付口 */
 
 #ifdef SUPPORT_INET4
@@ -72,5 +59,5 @@
 #endif	/* of #ifdef SUPPORT_INET6 */
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_cli.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_cli.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_cli.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,6 +33,6 @@
 
 /*
- *  TCP DISCARD ã¯ã©ã¤ã¢ã³ã
- *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TCP DISCARD クライアント
+ *  TCP/IP コンフィギュレーションファイル
  */
 
@@ -53,5 +41,5 @@
 #ifndef USE_TCP_EXTENTIONS
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_srv.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_srv.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_srv.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  TCP DISCARD ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TCP DISCARD サーバの TCP/IP コンフィギュレーションファイル
  */
 
@@ -52,5 +40,5 @@
 #ifndef USE_TCP_EXTENTIONS
 
-/* TCP åä»å£ */
+/* TCP 受付口 */
 
 #ifdef SUPPORT_INET4
@@ -72,5 +60,5 @@
 #endif	/* of #ifdef SUPPORT_INET6 */
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_cli.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_cli.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_cli.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,6 +33,6 @@
 
 /*
- *  TCP ECHO ã¯ã©ã¤ã¢ã³ã
- *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TCP ECHO クライアント
+ *  TCP/IP コンフィギュレーションファイル
  */
 
@@ -53,5 +41,5 @@
 #ifndef USE_TCP_EXTENTIONS
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_srv.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_srv.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_srv.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TCP ECHO サーバの TCP/IP コンフィギュレーションファイル
  */
 
@@ -52,5 +40,5 @@
 #ifndef USE_TCP_EXTENTIONS
 
-/* TCP åä»å£ */
+/* TCP 受付口 */
 
 #ifdef SUPPORT_INET4
@@ -72,5 +60,5 @@
 #endif	/* of #ifdef SUPPORT_INET6 */
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_discard_cli.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_discard_cli.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_discard_cli.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,6 +33,6 @@
 
 /*
- *  UDP DISCARD ã¯ã©ã¤ã¢ã³ã
- *  UDP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  UDP DISCARD クライアント
+ *  UDP/IP コンフィギュレーションファイル
  */
 
@@ -53,5 +41,5 @@
 #ifndef USE_UDP_EXTENTIONS
 
-/* UDP éä¿¡ç«¯ç¹ */
+/* UDP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_cli.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_cli.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_cli.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,6 +33,6 @@
 
 /*
- *  UDP ECHO ã¯ã©ã¤ã¢ã³ã
- *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  UDP ECHO クライアント
+ *  TCP/IP コンフィギュレーションファイル
  */
 
@@ -53,5 +41,5 @@
 #ifndef USE_UDP_EXTENTIONS
 
-/* UDP éä¿¡ç«¯ç¹ */
+/* UDP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_srv.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_srv.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_srv.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,6 +33,6 @@
 
 /*
- *  UDP ECHO ãµã¼ã
- *  UDP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  UDP ECHO サーバ
+ *  UDP/IP コンフィギュレーションファイル
  */
 
@@ -53,5 +41,5 @@
 #ifndef USE_UDP_EXTENTIONS
 
-/* UDP éä¿¡ç«¯ç¹ */
+/* UDP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_wwws.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_wwws.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_wwws.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  WWW ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  WWW サーバの TCP/IP コンフィギュレーションファイル
  */
 
@@ -52,5 +40,5 @@
 #ifndef USE_TCP_EXTENTIONS
 
-/* TCP åä»å£ */
+/* TCP 受付口 */
 
 #ifdef SUPPORT_INET4
@@ -72,5 +60,5 @@
 #endif	/* of #ifdef SUPPORT_INET6 */
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  UDP DISCARD ã¯ã©ã¤ã¢ã³ã
+ *  UDP DISCARD クライアント
  */
 
@@ -92,10 +80,10 @@
 #ifdef USE_UDP_DISCARD_CLI
 
-/* discard ãµã¼ãã®ãã¼ãçªå· */
+/* discard サーバのポート番号 */
 
 #define DISCARD_SRV_PORTNO	UINT_C(9)
 
 /*
- * å¤æ°
+ * 変数
  */
 
@@ -104,6 +92,5 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
@@ -111,5 +98,5 @@
 
 /*
- *  send_udp_discard -- DISCARD/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  send_udp_discard -- DISCARD/UDP サーバにメッセージを送信する。
  */
 
@@ -159,5 +146,5 @@
 
 /*
- *  UDP DISCARD ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯
+ *  UDP DISCARD クライアント送信タスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,11 +33,11 @@
 
 /*
- *  UDP DISCARD ã¯ã©ã¤ã¢ã³ã
- *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  UDP DISCARD クライアント
+ *  コンフィギュレーションファイル
  */
 
 #ifdef USE_UDP_DISCARD_CLI
 
-/* ã¿ã¹ã¯ */
+/* タスク */
 
 #ifdef USE_UDP_EXTENTIONS
@@ -77,5 +65,5 @@
 #endif	/* of #ifdef USE_UDP_EXTENTIONS */
 
-/* ã³ãã³ãã­ã¥ã¼ */
+/* コマンドキュー */
 
 CRE_DTQ(DTQ_UDP_DISCARD_CLI,  { TA_TFIFO, 1, NULL });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  UDP ECHO ã¯ã©ã¤ã¢ã³ã
+ *  UDP ECHO クライアント
  */
 
@@ -83,11 +71,10 @@
 #ifdef USE_UDP_ECHO_CLI
 
-/* echo ãµã¼ãã®ãã¼ãçªå· */
+/* echo サーバのポート番号 */
 
 #define ECHO_SRV_PORTNO		UINT_C(7)
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
@@ -95,5 +82,5 @@
 
 /*
- * å¤æ°
+ * 変数
  */
 
@@ -108,5 +95,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 
@@ -120,5 +107,5 @@
 
 /*
- *  send_udp_echo -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ãã³ãã­ãã­ã³ã°ã³ã¼ã«ä½¿ç¨)ã
+ *  send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (ノンブロッキングコール使用)。
  */
 
@@ -141,5 +128,5 @@
 
 	syscall(slp_tsk());
-	if (nblk_len < 0) {	/* 0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+	if (nblk_len < 0) {	/* 0 以下の場合は、エラーコード */
 		syslog(LOG_NOTICE, "[UEC:%02d CBR] error: %s", cepid, itron_strerror(nblk_len));
 		return nblk_len;
@@ -152,5 +139,5 @@
 
 	syscall(slp_tsk());
-	if (nblk_len < 0) {	/* 0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+	if (nblk_len < 0) {	/* 0 以下の場合は、エラーコード */
 		syslog(LOG_NOTICE, "[UEC:%02d RCV] error: %s", cepid, itron_strerror(nblk_len));
 		return nblk_len;
@@ -171,5 +158,5 @@
 
 /*
- *  ã³ã¼ã«ããã¯é¢æ°
+ *  コールバック関数
  */
 
@@ -191,5 +178,5 @@
 
 /*
- *  send_udp_echo -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°ä½¿ç¨)ã
+ *  send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (コールバック関数使用)。
  */
 
@@ -213,5 +200,5 @@
 
 /*
- *  send_udp_echo -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°æªä½¿ç¨)ã
+ *  send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (コールバック関数未使用)。
  */
 
@@ -250,5 +237,5 @@
 
 /*
- *  UDP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯
+ *  UDP ECHO クライアント送信タスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  ECHO ãµã¼ãè©¦é¨ãã­ã°ã©ã ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ECHO サーバ試験プログラムのシステムコンフィギュレーションファイル
  */
 
 #ifdef USE_UDP_ECHO_CLI
 
-/* ã¿ã¹ã¯ */
+/* タスク */
 
 #ifdef USE_UDP_EXTENTIONS
@@ -76,5 +64,5 @@
 #endif	/* of #ifdef USE_UDP_EXTENTIONS */
 
-/* ã³ãã³ãã­ã¥ã¼ */
+/* コマンドキュー */
 
 CRE_DTQ(DTQ_UDP_ECHO_CLI,  { TA_TFIFO, 1, NULL });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  UDP ECHO ãµã¼ã
+ *  UDP ECHO サーバ
  */
 
@@ -83,5 +71,5 @@
 
 /*
- *  åä¿¡ã¿ã¤ã ã¢ã¦ã
+ *  受信タイムアウト
  */
 
@@ -97,5 +85,5 @@
 
 /*
- *  ã³ã¼ã«ããã¯é¢æ°
+ *  コールバック関数
  */
 
@@ -138,5 +126,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -144,5 +132,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 
@@ -154,5 +142,5 @@
 	get_tim(&now);
 	nblk_len = *(ER_UINT*)p_parblk;
-	if (nblk_len < 0) {	/* 0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+	if (nblk_len < 0) {	/* 0 以下の場合は、エラーコード */
 		syslog(LOG_NOTICE, "[UES:%02d CBR] error,      %6ld: %s, fncd: %s",
 		                   cepid, now / SYSTIM_HZ, itron_strerror(nblk_len), in_strtfn(fncd));
@@ -169,5 +157,5 @@
 
 /*
- *  UDP ECHO ãµã¼ã
+ *  UDP ECHO サーバ
  */
 
@@ -211,5 +199,5 @@
 
 /*
- *  UDP ECHO ãµã¼ã
+ *  UDP ECHO サーバ
  */
 
@@ -248,5 +236,5 @@
 
 /*
- *  UDP ECHO ãµã¼ãã¿ã¹ã¯
+ *  UDP ECHO サーバタスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  UDP ECHO ãµã¼ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  UDP ECHO サーバコンフィギュレーションファイル
  */
 
@@ -51,5 +39,5 @@
 
 /*
- * ã¿ã¹ã¯
+ * タスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /* 
- *  WWW ãµã¼ã
+ *  WWW サーバ
  *
- *    ã»éåä¿¡ã¿ã¹ã¯åä¸å
- *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
- *    ã»çã³ãã¼ API
- *    ã»IPv4/IPv6
+ *    ・送受信タスク同一型
+ *    ・ノンブロッキングコール
+ *    ・省コピー API
+ *    ・IPv4/IPv6
  */
 
@@ -103,5 +91,5 @@
 
 /*
- *  éåä¿¡ API ã®é¸æ
+ *  送受信 API の選択
  */
 
@@ -119,5 +107,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -131,9 +119,8 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+ *  全域変数
+ */
+
+/* TCP 送受信ウィンドバッファ */
 
 #ifndef TCP_CFG_SWBUF_CSAVE
@@ -146,5 +133,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -177,6 +164,5 @@
 
 /*
- *  get_char -- ä¸æå­å
-¥åããã
+ *  get_char -- 一文字入力する。
  */
 
@@ -213,5 +199,5 @@
 
 /*
- *  flush_sbuf -- éä¿¡ãããã¡ããã©ãã·ã¥ããã
+ *  flush_sbuf -- 送信バッファをフラッシュする。
  */
 
@@ -228,5 +214,5 @@
 
 /*
- *  put_str -- æå­åãåºåããã
+ *  put_str -- 文字列を出力する。
  */
 
@@ -270,6 +256,5 @@
 
 /*
- *  get_char -- ä¸æå­å
-¥åããã
+ *  get_char -- 一文字入力する。
  */
 
@@ -303,5 +288,5 @@
 
 /*
- *  flush_sbuf -- éä¿¡ãããã¡ããã©ãã·ã¥ããã
+ *  flush_sbuf -- 送信バッファをフラッシュする。
  */
 
@@ -323,5 +308,5 @@
 
 /*
- *  put_str -- æå­åãåºåããã
+ *  put_str -- 文字列を出力する。
  */
 
@@ -355,6 +340,5 @@
 
 /*
- *  get_line -- ä¸è¡å
-¥åããã
+ *  get_line -- 一行入力する。
  */
 
@@ -396,5 +380,5 @@
 
 /*
- *  convert -- æ°å¤å¤æ
+ *  convert -- 数値変換
  */
 
@@ -426,5 +410,5 @@
 
 /*
- * split_fields -- ãã£ã¼ã«ãã«åå²ããã
+ * split_fields -- フィールドに分割する。
  */
 
@@ -450,5 +434,5 @@
 
 /*
- *  put_status -- status line ãåºåããã
+ *  put_status -- status line を出力する。
  */
 
@@ -465,5 +449,5 @@
 
 /*
- *  put_content_length -- Content-length ãåºåããã
+ *  put_content_length -- Content-length を出力する。
  */
 
@@ -484,5 +468,5 @@
 
 /*
- *  get_method -- GET ã¡ã½ããã®å¦ç
+ *  get_method -- GET メソッドの処理
  */
 
@@ -501,5 +485,5 @@
 
 /*
- *  parse_request -- ãªã¯ã¨ã¹ããè§£æããã
+ *  parse_request -- リクエストを解析する。
  */
 
@@ -534,5 +518,5 @@
 		}
 
-	while ((len = get_line(cepid, line, srbuf)) > 0) {	/* ããããã¹ã­ããããã*/
+	while ((len = get_line(cepid, line, srbuf)) > 0) {	/* ヘッダをスキップする。*/
 		split_fields(line, ": ");
 		if (strcmp("Content-Length", &line->buf[line->off[0]]) == 0)
@@ -540,5 +524,5 @@
 		}
 	while (blen > 0 && (len = get_line(cepid, line, srbuf)) > 0) {
-		/* ã¨ã³ãã£ãã£ã»ããã£ãã¹ã­ããããã*/
+		/* エンティティ・ボディをスキップする。*/
 		blen -= line->len;
 		}
@@ -562,5 +546,5 @@
 
 /*
- *  index_html -- /index.html ãã¡ã¤ã«
+ *  index_html -- /index.html ファイル
  */
 
@@ -580,17 +564,16 @@
 		"<title>TINET TCP/IP Protocol Stack</title>\r\n"
 		"</head><body bgcolor=\"#ffffbb\">\r\n"
-		"<hr>ãã® WWW ãµã¼ãã¯<br>"
+		"<hr>この WWW サーバは<br>"
 
 #ifdef TARGET_KERNEL_ASP
-		"ASP Kernel Release 1.3 (patchlevel = 2) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") ã¨<br>\r\n"
+		"ASP Kernel Release 1.3 (patchlevel = 2) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") と<br>\r\n"
 #endif
 
 #ifdef TARGET_KERNEL_JSP
-		"JSP Kernel Release 1.4 (patchlevel = 3) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") ã¨<br>\r\n"
+		"JSP Kernel Release 1.4 (patchlevel = 3) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") と<br>\r\n"
 #endif
 
-		"TINET TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ã«ãããµã¼ãã¹ãã¦ãã¾ãã<br><hr>\r\n"
-		"<ul><li type=\"square\"><a href=\"stat.html\">ãããã¯ã¼ã¯çµ±è¨æ
-å ±</a></ul><hr>\r\n"
+		"TINET TCP/IP プロトコルスタックによりサービスしています。<br><hr>\r\n"
+		"<ul><li type=\"square\"><a href=\"stat.html\">ネットワーク統計情報</a></ul><hr>\r\n"
 		"FreeBSD: Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995<br>\r\n"
 		"The Regents of the University of California.  All rights reserved.<br><br>\r\n"
@@ -643,5 +626,5 @@
 	get_tim(&start);
 	len += put_status(cepid, srbuf, ST_OK);
-	len += put_content_length(cepid, srbuf, strlen(response) - 2);	/* 2 ã¯æåã® \r\n */
+	len += put_content_length(cepid, srbuf, strlen(response) - 2);	/* 2 は最初の \r\n */
 	len += put_str(cepid, srbuf, response);
 	get_tim(&finish);
@@ -664,5 +647,5 @@
 
 static const char time_prefix[] =
-	"çµéæé: "
+	"経過時間: "
 	;
 
@@ -677,6 +660,5 @@
 static const char table_prefix_ip4[] =
 	"<h2>IPv4</h2><table border>\r\n"
-	"<tr><th>é 
-ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	"<tr><th>項目</th><th>カウント</th></tr>\r\n"
 	;
 
@@ -687,18 +669,15 @@
 static const char table_prefix_ip6[] =
 	"<h2>IPv6</h2><table border>\r\n"
-	"<tr><th>é 
-ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	"<tr><th>項目</th><th>カウント</th></tr>\r\n"
 	;
 
 static const char table_prefix_icmp6[] =
 	"<h2>ICMPv6</h2><table border>\r\n"
-	"<tr><th>é 
-ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	"<tr><th>項目</th><th>カウント</th></tr>\r\n"
 	;
 
 static const char table_prefix_nd6[] =
-	"<h2>è¿é£æ¢ç´¢</h2><table border>\r\n"
-	"<tr><th>é 
-ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	"<h2>近隣探索</h2><table border>\r\n"
+	"<tr><th>項目</th><th>カウント</th></tr>\r\n"
 	;
 
@@ -707,15 +686,14 @@
 static const char table_prefix_tcp[] =
 	"<h2>TCP</h2><table border>\r\n"
-	"<tr><th>é 
-ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	"<tr><th>項目</th><th>カウント</th></tr>\r\n"
 	;
 
 static const char table_prefix_net_buf[] =
-	"<h2>ãããã¯ã¼ã¯ãããã¡</h2><table border>\r\n"
-	"<tr><th>ãµã¤ãº</th>"
-	"<th>ç¨ææ°</th>"
-	"<th>å²å½è¦æ±æ°</th>"
-	"<th>å²å½æ°</th>"
-	"<th>å²å½ã¦<br>ã¨ã©ã¼æ°</th></tr>\r\n"
+	"<h2>ネットワークバッファ</h2><table border>\r\n"
+	"<tr><th>サイズ</th>"
+	"<th>用意数</th>"
+	"<th>割当要求数</th>"
+	"<th>割当数</th>"
+	"<th>割当て<br>エラー数</th></tr>\r\n"
 	;
 
@@ -723,17 +701,16 @@
 
 static const char table_prefix_ppp[] =
-	"<h2>PPP ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹</h2><table border>\r\n"
-	"<tr><th>é 
-ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	"<h2>PPP ネットワークインタフェース</h2><table border>\r\n"
+	"<tr><th>項目</th><th>カウント</th></tr>\r\n"
 	;
 
 static const char *ppp_item[NC_PPP_SIZE] = {
-	"åä¿¡ãªã¯ãããæ°",
-	"éä¿¡ãªã¯ãããæ°",
-	"åä¿¡ãã¬ã¼ã æ°",
-	"éä¿¡ãã¬ã¼ã æ°",
-	"åä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",
-	"éä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",
-	"ãããã¡å²ãå½ã¦å¤±ææ°",
+	"受信オクテット数",
+	"送信オクテット数",
+	"受信フレーム数",
+	"送信フレーム数",
+	"受信エラーフレーム数",
+	"送信エラーフレーム数",
+	"バッファ割り当て失敗数",
 	};
 
@@ -743,22 +720,21 @@
 
 static const char table_prefix_ether_nic[] =
-	"<h2>ã¤ã¼ãµãããã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹</h2><table border>\r\n"
-	"<tr><th>é 
-ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	"<h2>イーサネット・ネットワークインタフェース</h2><table border>\r\n"
+	"<tr><th>項目</th><th>カウント</th></tr>\r\n"
 	;
 
 static const char *ether_nic_item[NC_ETHER_NIC_SIZE] = {
-	"ãªã»ããæ°",
-	"éä¿¡ã»ããã©è³æºè¿å´ãªã¼ãã¼æ°",
-	"éä¿¡ã¿ã¤ã ã¢ã¦ãæ°",
-	"è¡çªæ°",
-	"éä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",
-	"éä¿¡ãã¬ã¼ã æ°",
-	"éä¿¡ãªã¯ãããæ°",
-	"åä¿¡ã»ããã©è³æºè¿å´ãªã¼ãã¼æ°",
-	"åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",
-	"åä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",
-	"åä¿¡ãã¬ã¼ã æ°",
-	"åä¿¡ãªã¯ãããæ°",
+	"リセット数",
+	"送信セマフォ資源返却オーバー数",
+	"送信タイムアウト数",
+	"衝突数",
+	"送信エラーフレーム数",
+	"送信フレーム数",
+	"送信オクテット数",
+	"受信セマフォ資源返却オーバー数",
+	"受信バッファ割り当て失敗数",
+	"受信エラーフレーム数",
+	"受信フレーム数",
+	"受信オクテット数",
 	};
 
@@ -768,25 +744,24 @@
 
 static const char *ip4_item[NC_IP4_SIZE] = {
-	"åå²éä¿¡ããã©ã°ã¡ã³ãæ°",
-	"åå²éä¿¡æ°",
-	"éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",
-	"éä¿¡ãã¼ã¿ã°ã©ã æ°",
-	"éä¿¡ãªã¯ãããæ°",
-	"åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°",
-	"åå²åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",
-	"åå²åä¿¡ç ´æ£æ°",
-	"åå²åä¿¡åæ§ææåæ°",
-	"åå²åä¿¡ãã©ã°ã¡ã³ãæ°",
-	"åå²åä¿¡æ°",
-	"ãªãã·ã§ã³å
-¥åæ°",
-	"ãã­ãã³ã«ã¨ã©ã¼æ°",
-	"ã¢ãã¬ã¹ã¨ã©ã¼æ°",
-	"ãã¼ã¸ã§ã³ã¨ã©ã¼æ°",
-	"é·ãã¨ã©ã¼æ°",
-	"ãã§ãã¯ãµã ã¨ã©ã¼æ°",
-	"åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",
-	"åä¿¡ãã¼ã¿ã°ã©ã æ°",
-	"åä¿¡ãªã¯ãããæ°",
+	"分割送信、フラグメント数",
+	"分割送信数",
+	"送信エラーデータグラム数",
+	"送信データグラム数",
+	"送信オクテット数",
+	"分割受信タイムアウト数",
+	"分割受信バッファ割り当て失敗数",
+	"分割受信破棄数",
+	"分割受信再構成成功数",
+	"分割受信フラグメント数",
+	"分割受信数",
+	"オプション入力数",
+	"プロトコルエラー数",
+	"アドレスエラー数",
+	"バージョンエラー数",
+	"長さエラー数",
+	"チェックサムエラー数",
+	"受信エラーデータグラム数",
+	"受信データグラム数",
+	"受信オクテット数",
 	};
 
@@ -796,42 +771,42 @@
 
 static const char *ip6_item[NC_IP6_SIZE] = {
-	"åå²éä¿¡ããã©ã°ã¡ã³ãæ°",
-	"åå²éä¿¡æ°",
-	"éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",
-	"éä¿¡ãã¼ã¿ã°ã©ã æ°",
-	"éä¿¡ãªã¯ãããæ°	",
-	"åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°",
-	"åå²åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",
-	"åå²åä¿¡ç ´æ£æ°",
-	"åå²åä¿¡åæ§ææåæ°",
-	"åå²åä¿¡ãã©ã°ã¡ã³ãæ°",
-	"åå²åä¿¡æ°",
-	"ãã­ãã³ã«ã¨ã©ã¼æ°	",
-	"ã¢ãã¬ã¹ã¨ã©ã¼æ°	",
-	"ãã¼ã¸ã§ã³ã¨ã©ã¼æ°	",
-	"é·ãã¨ã©ã¼æ°",
-	"åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",
-	"åä¿¡ãã¼ã¿ã°ã©ã æ°",
-	"åä¿¡ãªã¯ãããæ°	",
+	"分割送信、フラグメント数",
+	"分割送信数",
+	"送信エラーデータグラム数",
+	"送信データグラム数",
+	"送信オクテット数	",
+	"分割受信タイムアウト数",
+	"分割受信バッファ割り当て失敗数",
+	"分割受信破棄数",
+	"分割受信再構成成功数",
+	"分割受信フラグメント数",
+	"分割受信数",
+	"プロトコルエラー数	",
+	"アドレスエラー数	",
+	"バージョンエラー数	",
+	"長さエラー数",
+	"受信エラーデータグラム数",
+	"受信データグラム数",
+	"受信オクテット数	",
 	};
 
 static const char *icmp6_item[NC_ICMP6_SIZE] = {
-	"éä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°	",
-	"éä¿¡ ICMP ãã¼ã¿æ°",
-	"éä¿¡ ICMP ãªã¯ãããæ°",
-	"é·ãã¨ã©ã¼æ°",
-	"åä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°	",
-	"åä¿¡ ICMP ãã¼ã¿æ°",
-	"åä¿¡ ICMP ãªã¯ãããæ°",
+	"送信エラー ICMP データ数	",
+	"送信 ICMP データ数",
+	"送信 ICMP オクテット数",
+	"長さエラー数",
+	"受信エラー ICMP データ数	",
+	"受信 ICMP データ数",
+	"受信 ICMP オクテット数",
 	};
 
 static const char *nd6_item[NC_ND6_SIZE] = {
-	"éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°",
-	"è¿é£è¦è«éä¿¡æ°",
-	"è¿é£è¦è«åä¿¡æ°",
-	"è¿é£éç¥éä¿¡æ°",
-	"è¿é£éç¥åä¿¡æ°",
-	"ã«ã¼ã¿è¦è«åºåæ°",
-	"ã«ã¼ã¿éç¥åä¿¡æ°",
+	"重複アドレス検出送信数",
+	"近隣要請送信数",
+	"近隣要請受信数",
+	"近隣通知送信数",
+	"近隣通知受信数",
+	"ルータ要請出力数",
+	"ルータ通知受信数",
 	};
 
@@ -839,33 +814,32 @@
 
 static const char *tcp_item[NC_TCP_SIZE] = {
-	"è½åãªã¼ãã³æ°",
-	"ååãªã¼ãã³æ°",
-	"RTT æ´æ°æ°",
-	"éä¿¡ RST æ°",
-	"éä¿¡ ACK æ°",
-	"éä¿¡ç·æ¥ã»ã°ã¡ã³ãæ°",
-	"éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°",
-	"åéã»ã°ã¡ã³ãæ°",
-	"éä¿¡ã»ã°ã¡ã³ãæ°",
-	"éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°",
-	"éä¿¡ãã¼ã¿ãªã¯ãããæ°",
-	"åä¿¡ã­ã¥ã¼è§£æ¾æ°",
-	"åä¿¡å¤éæ°",
-	"åä¿¡ç ´æ£æ°",
-	"åä¿¡ RST æ°",
-	"åä¿¡å¤é ACK æ°",
-	"åä¿¡ ACK æ°",
-	"åä¿¡ãã§ãã¯ãµã ä¸æ­£æ°",
-	"åä¿¡ãããä¸æ­£æ°",
-	"åä¿¡ç·æ¥ã»ã°ã¡ã³ãæ°",
-	"åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°",
-	"åä¿¡ã»ã°ã¡ã³ãæ°",
-	"åä¿¡ãã¼ã¿ãªã¯ãããæ°",
-	"åä¿¡ãªã¯ãããæ°",
+	"能動オープン数",
+	"受動オープン数",
+	"RTT 更新数",
+	"送信 RST 数",
+	"送信 ACK 数",
+	"送信緊急セグメント数",
+	"送信データセグメント数",
+	"再送セグメント数",
+	"送信セグメント数",
+	"送信制御セグメント数",
+	"送信データオクテット数",
+	"受信キュー解放数",
+	"受信多重数",
+	"受信破棄数",
+	"受信 RST 数",
+	"受信多重 ACK 数",
+	"受信 ACK 数",
+	"受信チェックサム不正数",
+	"受信ヘッダ不正数",
+	"受信緊急セグメント数",
+	"受信データセグメント数",
+	"受信セグメント数",
+	"受信データオクテット数",
+	"受信オクテット数",
 	};
 
 /*
- *  put_count_item1 -- ã«ã¦ã³ã¿ã®å
-å®¹ãåºåãããã°ã«ã¼ã 1
+ *  put_count_item1 -- カウンタの内容を出力する。グループ 1
  */
 
@@ -910,6 +884,5 @@
 
 /*
- *  put_count_item2 -- ã«ã¦ã³ã¿ã®å
-å®¹ãåºåãããã°ã«ã¼ã 2
+ *  put_count_item2 -- カウンタの内容を出力する。グループ 2
  */
 
@@ -936,5 +909,5 @@
 
 /*
- *  td_len_ppp -- put_count_ppp ã§åºåããæå­æ°ã
+ *  td_len_ppp -- put_count_ppp で出力する文字数。
  */
 
@@ -951,6 +924,5 @@
 
 /*
- *  put_count_ppp -- ã«ã¦ã³ã¿ (PPP) ã®å
-å®¹ãåºåããã
+ *  put_count_ppp -- カウンタ (PPP) の内容を出力する。
  */
 
@@ -1023,5 +995,5 @@
 
 /*
- *  td_len_ip4 -- put_count_ip4 ã§åºåããæå­æ°ã
+ *  td_len_ip4 -- put_count_ip4 で出力する文字数。
  */
 
@@ -1038,6 +1010,5 @@
 
 /*
- *  put_count_ip4 -- ã«ã¦ã³ã¿ (IP4) ã®å
-å®¹ãåºåããã
+ *  put_count_ip4 -- カウンタ (IP4) の内容を出力する。
  */
 
@@ -1068,5 +1039,5 @@
 
 /*
- *  td_len_nd6 -- put_count_nd6 ã§åºåããæå­æ°ã
+ *  td_len_nd6 -- put_count_nd6 で出力する文字数。
  */
 
@@ -1083,6 +1054,5 @@
 
 /*
- *  put_count_nd6 -- ã«ã¦ã³ã¿ (ND6) ã®å
-å®¹ãåºåããã
+ *  put_count_nd6 -- カウンタ (ND6) の内容を出力する。
  */
 
@@ -1109,5 +1079,5 @@
 
 /*
- *  td_len_icmp6 -- put_count_icmp6 ã§åºåããæå­æ°ã
+ *  td_len_icmp6 -- put_count_icmp6 で出力する文字数。
  */
 
@@ -1124,6 +1094,5 @@
 
 /*
- *  put_count_icmp6 -- ã«ã¦ã³ã¿ (ICMP6) ã®å
-å®¹ãåºåããã
+ *  put_count_icmp6 -- カウンタ (ICMP6) の内容を出力する。
  */
 
@@ -1150,5 +1119,5 @@
 
 /*
- *  td_len_ip6 -- put_count_ip6 ã§åºåããæå­æ°ã
+ *  td_len_ip6 -- put_count_ip6 で出力する文字数。
  */
 
@@ -1165,6 +1134,5 @@
 
 /*
- *  put_count_ip6 -- ã«ã¦ã³ã¿ (IP6) ã®å
-å®¹ãåºåããã
+ *  put_count_ip6 -- カウンタ (IP6) の内容を出力する。
  */
 
@@ -1193,5 +1161,5 @@
 
 /*
- *  td_len_tcp -- put_count_tcp ã§åºåããæå­æ°ã
+ *  td_len_tcp -- put_count_tcp で出力する文字数。
  */
 
@@ -1208,6 +1176,5 @@
 
 /*
- *  put_count_tcp -- ã«ã¦ã³ã¿ (TCP) ã®å
-å®¹ãåºåããã
+ *  put_count_tcp -- カウンタ (TCP) の内容を出力する。
  */
 
@@ -1234,5 +1201,5 @@
 
 /*
- *  put_elapse_time -- çµéæéãåºåããã
+ *  put_elapse_time -- 経過時間を出力する。
  */
 
@@ -1266,6 +1233,5 @@
 
 /*
- *  put_count_net_buf -- ã«ã¦ã³ã¿ (TCP) ã®å
-å®¹ãåºåããã
+ *  put_count_net_buf -- カウンタ (TCP) の内容を出力する。
  */
 
@@ -1307,5 +1273,5 @@
 
 /*
- *  td_len_ether_nic -- put_count_ether_nic ã§åºåããæå­æ°ã
+ *  td_len_ether_nic -- put_count_ether_nic で出力する文字数。
  */
 
@@ -1322,6 +1288,5 @@
 
 /*
- *  put_count_ether_nic -- ã«ã¦ã³ã¿ (ETHER_NIC) ã®å
-å®¹ãåºåããã
+ *  put_count_ether_nic -- カウンタ (ETHER_NIC) の内容を出力する。
  */
 
@@ -1350,5 +1315,5 @@
 
 /*
- *  stat_html -- /stat.html ãã¡ã¤ã«
+ *  stat_html -- /stat.html ファイル
  */
 
@@ -1366,9 +1331,7 @@
 #endif
 
-		"<title>ãããã¯ã¼ã¯çµ±è¨æ
-å ±</title>\r\n"
+		"<title>ネットワーク統計情報</title>\r\n"
 		"</head><body bgcolor=\"#ffffbb\">\r\n"
-		"<hr><h1 align=\"center\">ãããã¯ã¼ã¯çµ±è¨æ
-å ±</h1><hr>\r\n"
+		"<hr><h1 align=\"center\">ネットワーク統計情報</h1><hr>\r\n"
 		;
 
@@ -1378,13 +1341,12 @@
 
 	static const char table_prefix1[] =
-		"<h2>ã°ã«ã¼ã 1</h2><table border>\r\n"
-		"<tr><th>é 
-ç®</th>\r\n"
-		"<th>åä¿¡ãªã¯ãããæ°</th>"
-		"<th>éä¿¡ãªã¯ãããæ°</th>\r\n"
-		"<th>åä¿¡ãã±ããæ°</th>"
-		"<th>éä¿¡ãã±ããæ°</th>\r\n"
-		"<th>åä¿¡ã¨ã©ã¼<br>ãã±ããæ°</th>"
-		"<th>éä¿¡ã¨ã©ã¼<br>ãã±ããæ°</th></tr>\r\n"
+		"<h2>グループ 1</h2><table border>\r\n"
+		"<tr><th>項目</th>\r\n"
+		"<th>受信オクテット数</th>"
+		"<th>送信オクテット数</th>\r\n"
+		"<th>受信パケット数</th>"
+		"<th>送信パケット数</th>\r\n"
+		"<th>受信エラー<br>パケット数</th>"
+		"<th>送信エラー<br>パケット数</th></tr>\r\n"
 		;
 
@@ -1392,9 +1354,8 @@
 
 	static const char table_prefix2[] =
-		"<h2>ã°ã«ã¼ã 2</h2><table border>\r\n"
-		"<tr><th>é 
-ç®</th>"
-		"<th>åä¿¡ãªã¯ãããæ°</th>"
-		"<th>åä¿¡ãã¬ã¼ã æ°</th></tr>\r\n"
+		"<h2>グループ 2</h2><table border>\r\n"
+		"<tr><th>項目</th>"
+		"<th>受信オクテット数</th>"
+		"<th>受信フレーム数</th></tr>\r\n"
 		;
 
@@ -1489,5 +1450,5 @@
 
 	                        + content_len
-	                        - 2);	/* 2 ã¯æåã® \r\n */
+	                        - 2);	/* 2 は最初の \r\n */
 
 	len += put_str(cepid, srbuf, res_prefix);
@@ -1577,5 +1538,5 @@
 
 /*
- *  WWW ãµã¼ã
+ *  WWW サーバ
  */
 
@@ -1653,5 +1614,5 @@
 
 /*
- *  get_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ *  get_tcp_rep -- TCP 受付口を獲得する。
  */
 
@@ -1680,5 +1641,5 @@
 
 /*
- *  get_tcp_cep -- TCP éä¿¡ç«¯ç¹ã¨ãç²å¾ããã
+ *  get_tcp_cep -- TCP 通信端点とを獲得する。
  */
 
@@ -1711,5 +1672,5 @@
 
 /*
- *  WWW ãµã¼ãã¿ã¹ã¯
+ *  WWW サーバタスク
  */
 
@@ -1751,5 +1712,5 @@
 
 /*
- *  WWW ãµã¼ãã¿ã¹ã¯
+ *  WWW サーバタスク
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  WWW サーバのシステムコンフィギュレーションファイル
  */
 
 #ifdef USE_WWW_SRV
 
-/* ã¿ã¹ã¯ */
+/* タスク */
 
 #ifdef USE_TCP_EXTENTIONS
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,5 +36,5 @@
 
 /* 
- *  WWW ãµã¼ã
+ *  WWW サーバ
  */
 
@@ -64,13 +52,12 @@
 
 #ifdef TOPPERS_S810_CLG3_85
-#define	WWW_SRV_STACK_SIZE		768		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define	WWW_SRV_STACK_SIZE		768		/* タスクのスタックサイズ	*/
 #else	/* of #ifdef TOPPERS_S810_CLG3_85 */
-#define	WWW_SRV_STACK_SIZE		1024		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define	WWW_SRV_STACK_SIZE		1024		/* タスクのスタックサイズ	*/
 #endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
-#define WWW_SRV_MAIN_PRIORITY		5		/* ã¿ã¹ã¯ã®åªå
-åº¦		*/
+#define WWW_SRV_MAIN_PRIORITY		5		/* タスクの優先度		*/
 
 /*
- *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ *  TCP 送受信ウインドバッファサイズ
  */
 
@@ -136,10 +123,10 @@
 	} T_WWW_RWBUF;
 
-/* ã¿ã¹ã¯ */
+/* タスク */
 
 extern void	www_srv_task (intptr_t exinf);
 
 /*
- *  TCP éåä¿¡ãããã¡
+ *  TCP 送受信バッファ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_asp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_asp.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_asp.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,9 @@
 
 /*
- *  ASP ç¨ WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ASP 用 WWW サーバのシステムコンフィギュレーションファイル
  */
 
 /*
- *  å
-±é WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ *  共通 WWW サーバのシステムコンフィギュレーションファイルのインクルード
  */
 
@@ -56,8 +43,8 @@
 
 /*
- * åºå®ã¡ã¢ãªãã¼ã«
+ * 固定メモリプール
  */
 
-/* åä¿¡ãããã¡ */
+/* 受信バッファ */
 
 CRE_MPF(MPF_WWW_RWBUF, {
@@ -69,5 +56,5 @@
 	});
 
-/* è¡ãããã¡ */
+/* 行バッファ */
 
 CRE_MPF(MPF_WWW_LINE, {
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_jsp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_jsp.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_jsp.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,9 @@
 
 /*
- *  JSP ç¨ WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  JSP 用 WWW サーバのシステムコンフィギュレーションファイル
  */
 
 /*
- *  å
-±é WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ *  共通 WWW サーバのシステムコンフィギュレーションファイルのインクルード
  */
 
@@ -58,8 +45,8 @@
 
 /*
- * åºå®ã¡ã¢ãªãã¼ã«
+ * 固定メモリプール
  */
 
-/* åä¿¡ãããã¡ */
+/* 受信バッファ */
 
 CRE_MPF(MPF_WWW_RWBUF, {
@@ -70,5 +57,5 @@
 	});
 
-/* è¡ãããã¡ */
+/* 行バッファ */
 
 CRE_MPF(MPF_WWW_LINE, {
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/Makefile.tinet
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/Makefile.tinet	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/Makefile.tinet	(revision 321)
@@ -5,45 +5,33 @@
 #                    Tomakomai National College of Technology, JAPAN
 # 
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
-#   ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
-#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
-#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
-#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+#   によって公表されている GNU General Public License の Version 2 に記
+#   述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+#   を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+#   利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次の条件を満たすこと．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 # 
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
-#   å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
-#   æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+#   含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+#   接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
 #  
-#   @(#) $Id: Makefile.tinet,v 1.6 2012/07/18 04:13:23 abe Exp abe $
+#   @(#) $Id$
 #
 
 #
-#  ã³ã³ãã¤ã«ãªãã·ã§ã³
+#  コンパイルオプション
 #
 INCLUDES	:= $(INCLUDES) -I$(TINET_ROOT)/netdev/$(NET_DEV)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.c	(revision 321)
@@ -6,47 +6,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -116,6 +101,5 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããã½ããã¦ã§ã¢æ
-å ±
+ *  ネットワークインタフェースに依存するソフトウェア情報
  */
 
@@ -127,27 +111,23 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
-å ±
- */
-
-/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããã½ããã¦ã§ã¢æ
-å ± */
+ *  ネットワークインタフェースのソフトウェア情報
+ */
+
+/* ネットワークインタフェースに依存するソフトウェア情報 */
 
 static T_MBED_SOFTC mbed_softc;
 
-/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããªãã½ããã¦ã§ã¢æ
-å ± */
+/* ネットワークインタフェースに依存しないソフトウェア情報 */
 
 T_IF_SOFTC if_softc = {
-	{0,},						/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-	0,							/* éä¿¡ã¿ã¤ã ã¢ã¦ã			*/
-	&mbed_softc,				/* ãã£ãã¤ã¹ä¾å­ã®ã½ããã¦ã§ã¢æ
-å ±	*/
-	SEM_IF_MBED_SBUF_READY,	/* éä¿¡ã»ããã©			*/
-	SEM_IF_MBED_RBUF_READY,	/* åä¿¡ã»ããã©			*/
+	{0,},						/* ネットワークインタフェースのアドレス	*/
+	0,							/* 送信タイムアウト			*/
+	&mbed_softc,				/* ディバイス依存のソフトウェア情報	*/
+	SEM_IF_MBED_SBUF_READY,	/* 送信セマフォ			*/
+	SEM_IF_MBED_RBUF_READY,	/* 受信セマフォ			*/
 
 #ifdef SUPPORT_INET6
 
-	IF_MADDR_INIT,				/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãªã¹ã	*/
+	IF_MADDR_INIT,				/* マルチキャストアドレスリスト	*/
 
 #endif	/* of #ifdef SUPPORT_INET6 */
@@ -155,5 +135,5 @@
 
 /*
- *  å±æå¤æ°
+ *  局所変数
  */
 
@@ -167,5 +147,5 @@
 
 /*
- *  ds_crc -- ã¤ã¼ãµãããã¢ãã¬ã¹ã® CRC ãè¨ç®ããã
+ *  ds_crc -- イーサネットアドレスの CRC を計算する。
  */
 
@@ -195,6 +175,6 @@
 
 /*
- *  ds_getmcaf -- ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ãªã¹ããããã«ãã­ã£ã¹ãã¢ãã¬ã¹
- *                ãã£ã«ã¿ãè¨ç®ããã
+ *  ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス
+ *                フィルタを計算する。
  */
 
@@ -214,5 +194,5 @@
 
 /*
- * mbed_setrcr -- åä¿¡æ§æã¬ã¸ã¹ã¿ (RCR) ãè¨­å®ããã
+ * mbed_setrcr -- 受信構成レジスタ (RCR) を設定する。
  */
 
@@ -224,5 +204,5 @@
 
 /*
- * mbed_addmulti -- ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãè¿½å ããã
+ * mbed_addmulti -- マルチキャストアドレスを追加する。
  */
 
@@ -237,8 +217,7 @@
 
 /*
- *  mbed_stop -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãåæ­¢ããã
+ *  mbed_stop -- ネットワークインタフェースを停止する。
  *
- *    æ³¨æ: NIC å²ãè¾¼ã¿ç¦æ­¢ç¶æ
-ã§å¼ã³åºããã¨ã
+ *    注意: NIC 割り込み禁止状態で呼び出すこと。
  */
 
@@ -278,5 +257,5 @@
 
 /*
- * mbed_reset -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããªã»ããããã
+ * mbed_reset -- ネットワークインタフェースをリセットする。
  */
 
@@ -294,6 +273,5 @@
 
 /*
- *  get_mbed_softc -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
-å ±ãè¿ãã
+ *  get_mbed_softc -- ネットワークインタフェースのソフトウェア情報を返す。
  */
 
@@ -305,5 +283,5 @@
 
 /*
- * mbed_watchdog -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¯ããããã°ã¿ã¤ã ã¢ã¦ã
+ * mbed_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト
  */
 
@@ -315,5 +293,5 @@
 
 /*
- * mbed_probe -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ¤åº
+ * mbed_probe -- ネットワークインタフェースの検出
  */
 
@@ -334,5 +312,5 @@
 
 /*
- * mbed_init -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åæå
+ * mbed_init -- ネットワークインタフェースの初期化
  */
 
@@ -342,5 +320,5 @@
 	T_MBED_SOFTC *sc = ic->sc;
 
-	/* mbed_init æ¬ä½ãå¼ã³åºãã*/
+	/* mbed_init 本体を呼び出す。*/
 	if_mbed_init_sub(ic);
 
@@ -389,5 +367,5 @@
 
 /*
- * mbed_read -- ãã¬ã¼ã ã®èª­ã¿è¾¼ã¿
+ * mbed_read -- フレームの読み込み
  */
 
@@ -422,5 +400,5 @@
 
 /*
- * mbed_start -- éä¿¡ãã¬ã¼ã ããããã¡ãªã³ã°ããã
+ * mbed_start -- 送信フレームをバッファリングする。
  */
 
@@ -445,5 +423,5 @@
 
 /*
- *  MBED Ethernet Controler éåä¿¡å²ãè¾¼ã¿ãã³ãã©
+ *  MBED Ethernet Controler 送受信割り込みハンドラ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.cfg	(revision 321)
@@ -6,47 +6,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -54,5 +39,5 @@
 
 /*
- *  if_mbed ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  if_mbed コンフィギュレーションファイル
  */
 
@@ -61,13 +46,12 @@
 INCLUDE("<ethernet_api.h>");
 
-/* PHYç¨ */
+/* PHY用 */
 CRE_TSK(IF_MBED_PHY_TASK, { TA_NULL, 1, if_mbed_phy_task, IF_MBED_PHY_PRIORITY, IF_MBED_PHY_STACK_SIZE, NULL });
 
-/* å²ãè¾¼ã¿ãã³ãã© */
+/* 割り込みハンドラ */
 
 DEF_INH(INHNO_IF_MBED, { TA_HLNG, if_mbed_eth_handler });
 
-/* å
-¥åºååæç¨ã»ããã© */
+/* 入出力同期用セマフォ */
 
 CRE_SEM(SEM_IF_MBED_SBUF_READY,	{ TA_TPRI, NUM_IF_MBED_TXBUF, NUM_IF_MBED_TXBUF });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.h	(revision 321)
@@ -6,47 +6,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -68,5 +53,5 @@
 
 /*
- *  NIC ã®é¸æãã¯ã­
+ *  NIC の選択マクロ
  */
 
@@ -81,8 +66,8 @@
 #define T_IF_ETHER_NIC_SOFTC		struct t_mbed_softc
 
-/* IPv6 é¢ä¿ */
+/* IPv6 関係 */
 
-#define IF_ETHER_NIC_IN6_IFID(i,a)	get_mac6_ifid(i,a)	/* ã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ã®è¨­å®		*/
-#define IF_ETHER_NIC_ADDMULTI(s)	if_mbed_addmulti(s)		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ç»é²		*/
+#define IF_ETHER_NIC_IN6_IFID(i,a)	get_mac6_ifid(i,a)	/* インタフェース識別子の設定		*/
+#define IF_ETHER_NIC_ADDMULTI(s)	if_mbed_addmulti(s)		/* マルチキャストアドレスの登録		*/
 
 #define PHY_TASK_WAIT				200000
@@ -93,6 +78,5 @@
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -114,5 +98,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic.cfg	(revision 321)
@@ -6,47 +6,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_asp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_asp.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_asp.cfg	(revision 321)
@@ -6,47 +6,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -54,5 +39,5 @@
 
 /*
- *  if_mbed ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  if_mbed コンフィギュレーションファイル
  */
 
@@ -62,14 +47,13 @@
 #include "tinet_target_config.h"
 
-/* PHYç¨ */
+/* PHY用 */
 CRE_TSK(IF_MBED_PHY_TASK, { TA_ACT, 1, if_mbed_phy_task, IF_MBED_PHY_PRIORITY, IF_MBED_PHY_STACK_SIZE, NULL });
 
-/* å²ãè¾¼ã¿ãã³ãã© */
+/* 割り込みハンドラ */
 
 DEF_INH(INHNO_IF_MBED, { TA_NULL, if_mbed_eth_handler });
 CFG_INT(INTNO_IF_MBED, { INTATR_IF_MBED, INTPRI_IF_MBED });
 
-/* å
-¥åºååæç¨ã»ããã© */
+/* 入出力同期用セマフォ */
 
 CRE_SEM(SEM_IF_MBED_SBUF_READY,	{ TA_TPRI, NUM_IF_MBED_TXBUF, NUM_IF_MBED_TXBUF });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_rename.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_rename.h	(revision 321)
@@ -6,47 +6,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -57,6 +42,5 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹å
-é¨åã®ãªãã¼ã 
+ *  ネットワークインタフェース内部名のリネーム
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_config.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_config.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_config.h	(revision 321)
@@ -6,47 +6,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -57,6 +42,5 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å
-é¨è­å¥åã®ãªãã¼ã 
+ *  ネットワークインタフェースの内部識別名のリネーム
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_defs.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_defs.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_defs.h	(revision 321)
@@ -6,47 +6,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -57,6 +42,6 @@
 
 /* 
- *  T_ETHER_HDR ã§ãã¢ã©ã¤ã³ãèª¿æ´ããå ´åã¯ãèª¿æ´éãæå®ããã
- *  èª¿æ´ããªãå ´åã¯ã0 ãæå®ããã
+ *  T_ETHER_HDR で、アラインを調整する場合は、調整量を指定する。
+ *  調整しない場合は、0 を指定する。
  */
 #define IF_ETHER_NIC_HDR_ALIGN		0
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp6.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp6.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp6.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -117,11 +105,11 @@
 
 /*
- *  ICMPv6 ããã
+ *  ICMPv6 ヘッダ
  */
 
 typedef struct t_icmp6_hdr {
-	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
-	uint8_t		code;		/* ãµãå		*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	uint8_t		type;		/* メッセージの型	*/
+	uint8_t		code;		/* サブ型		*/
+	uint16_t	sum;		/* チェックサム		*/
 	union {
 		uint32_t	data32;
@@ -134,8 +122,8 @@
 #define icmp6_data16			data.data16
 #define icmp6_data8			data.data8
-#define icmp6_pptr			data.data32		/* ãã©ã¡ã¼ã¿ç°å¸¸	*/
-#define icmp6_mtu			data.data32		/* ãã©ã¡ã¼ã¿ç°å¸¸	*/
-#define icmp6_id			data.data16[0]		/* ã¨ã³ã¼è¦æ±ã¨å¿ç­	*/
-#define icmp6_seq			data.data16[1]		/* ã¨ã³ã¼è¦æ±ã¨å¿ç­	*/
+#define icmp6_pptr			data.data32		/* パラメータ異常	*/
+#define icmp6_mtu			data.data32		/* パラメータ異常	*/
+#define icmp6_id			data.data16[0]		/* エコー要求と応答	*/
+#define icmp6_seq			data.data16[1]		/* エコー要求と応答	*/
 
 #define ICMP6_HDR_SIZE			(sizeof(T_ICMP6_HDR))
@@ -149,98 +137,79 @@
 
 /*
- *  ICMP6 ã¿ã¤ã
- */
-
-#define ICMP6_DST_UNREACH		UINT_C(1)	/* å®å
-å°éä¸å¯è½		*/
-#define ICMP6_PACKET_TOO_BIG		UINT_C(2)	/* ãã±ãããå¤§ããããã	*/
-#define ICMP6_TIME_EXCEEDED		UINT_C(3)	/* TTL ãè¶
-éããã		*/
-#define ICMP6_PARAM_PROB		UINT_C(4)	/* IPv6 ããããä¸æ­£ã		*/
-
-#define ICMP6_ECHO_REQUEST		UINT_C(128)	/* ã¨ã³ã¼è¦æ±			*/
-#define ICMP6_ECHO_REPLY		UINT_C(129)	/* ã¨ã³ã¼å¿ç­			*/
-
-#define ICMP6_MEMBERSHIP_QUERY		UINT_C(130)	/* ã°ã«ã¼ãã¡ã³ãç
-§ä¼		*/
-#define ICMP6_MEMBERSHIP_REPORT		UINT_C(131)	/* ã°ã«ã¼ãã¡ã³ãå ±å		*/
-#define ICMP6_MEMBERSHIP_REDUCTION	UINT_C(132)	/* ã°ã«ã¼ãã¡ã³ãçµäº		*/
-
-#define MLD_LISTENER_QUERY		UINT_C(130)	/* ãã«ãã­ã£ã¹ãåä¿¡è
-ç
-§ä¼	*/
-#define MLD_LISTENER_REPORT		UINT_C(131)	/* ãã«ãã­ã£ã¹ãåä¿¡è
-å ±å	*/
-#define MLD_LISTENER_DONE		UINT_C(132)	/* ãã«ãã­ã£ã¹ãåä¿¡è
-çµäº	*/
-
-#define ND_ROUTER_SOLICIT		UINT_C(133)	/* ã«ã¼ã¿è¦è«			*/
-#define ND_ROUTER_ADVERT		UINT_C(134)	/* ã«ã¼ã¿éç¥			*/
-#define ND_NEIGHBOR_SOLICIT		UINT_C(135)	/* è¿é£è¦è«			*/
-#define ND_NEIGHBOR_ADVERT		UINT_C(136)	/* è¿é£éç¥			*/
-#define ND_REDIRECT			UINT_C(137)	/* åãç´ã			*/
-
-#define ICMP6_ROUTER_RENUMBERING	UINT_C(138)	/* ã«ã¼ã¿çªå·åè¨­å®		*/
-
-#define ICMP6_WRU_REQUEST		UINT_C(139)	/* è¦æ±ãã¼ãæ¢ç´¢		*/
-#define ICMP6_WRU_REPLY			UINT_C(140)	/* å¿ç­ãã¼ãæ¢ç´¢		*/
-
-#define ICMP6_FQDN_QUERY		UINT_C(139)	/* FQDN ç
-§ä¼			*/
-#define ICMP6_FQDN_REPLY		UINT_C(140)	/* FQDN å¿ç­			*/
-
-#define ICMP6_NI_QUERY			UINT_C(139)	/* ãã¼ãæ
-å ±ç
-§ä¼		*/
-#define ICMP6_NI_REPLY			UINT_C(140)	/* ãã¼ãæ
-å ±å¿ç­		*/
-
-#define ICMP6_MAX_TYPE			UINT_C(203)	/* ICMP6 ã¿ã¤ãã®æå¤§å¤		*/
-
-/*
- *  ICMP6 ã³ã¼ã
- */
-
-/* å®å
-å°éä¸å¯è½ */
-
-#define ICMP6_DST_UNREACH_NOROUTE	UINT_C(0)	/* å°éã«ã¼ããªãã		*/
-#define ICMP6_DST_UNREACH_ADMIN		UINT_C(1)	/* ç®¡çè
-ã«ããç¡å¹åä¸­ã	*/
-#define ICMP6_DST_UNREACH_NOTEIGHBOR	UINT_C(2)	/* è¿é£è
-ã§ã¯ãªããªã£ãã	*/
-#define ICMP6_DST_UNREACH_BEYOND_SCOPE	UINT_C(2)	/* ã¹ã³ã¼ããè¶
-ãã¦ããã	*/
-#define ICMP6_DST_UNREACH_ADDR		UINT_C(3)	/* å®å
-ã¢ãã¬ã¹ã«å°éä¸å¯è½ã	*/
-#define ICMP6_DST_UNREACH_NOPORT	UINT_C(4)	/* å®å
-ãã¼ãã«å°éä¸å¯è½ã	*/
-
-/* TTL è¶
-é */
-
-#define ICMP6_TIME_EXCEED_TRANSIT	UINT_C(0)	/* è»¢éæã« TTL==0 ã«ãªã£ãã	*/
-#define ICMP6_TIME_EXCEED_REASSEMBLY	UINT_C(1)	/* IP åæ§æã§ã¿ã¤ã ã¢ã¦ãããã*/
-
-/* ãããä¸æ­£ */
-
-#define ICMP6_PARAMPROB_HEADER		UINT_C(0)	/* ãããã«ä¸æ­£ããã£ãã	*/
-#define ICMP6_PARAMPROB_NEXT_HEADER	UINT_C(1)	/* æ¬¡ããããèªè­ã§ããªãã	*/
-#define ICMP6_PARAMPROB_OPTION		UINT_C(2)	/* ãªãã·ã§ã³ãèªè­ã§ããªãã	*/
-
-/* å
-é¨ä½¿ç¨ */
-#define ND_REDIRECT_ONLINK		UINT_C(0)	/* ãªã³ãªã³ã¯ã¸ã®åãç´ã	*/
-#define ND_REDIRECT_ROUTER		UINT_C(1)	/* ã«ã¼ã¿ã¸ã®åãç´ã		*/
-
-/*
- *  å¶éå¤
- */
-
-							/* ICMPv6 ã®æå¤§ãã¤ã­ã¼ãé·	*/
+ *  ICMP6 タイプ
+ */
+
+#define ICMP6_DST_UNREACH		UINT_C(1)	/* 宛先到達不可能		*/
+#define ICMP6_PACKET_TOO_BIG		UINT_C(2)	/* パケットが大きすぎる。	*/
+#define ICMP6_TIME_EXCEEDED		UINT_C(3)	/* TTL を超過した。		*/
+#define ICMP6_PARAM_PROB		UINT_C(4)	/* IPv6 ヘッダが不正。		*/
+
+#define ICMP6_ECHO_REQUEST		UINT_C(128)	/* エコー要求			*/
+#define ICMP6_ECHO_REPLY		UINT_C(129)	/* エコー応答			*/
+
+#define ICMP6_MEMBERSHIP_QUERY		UINT_C(130)	/* グループメンバ照会		*/
+#define ICMP6_MEMBERSHIP_REPORT		UINT_C(131)	/* グループメンバ報告		*/
+#define ICMP6_MEMBERSHIP_REDUCTION	UINT_C(132)	/* グループメンバ終了		*/
+
+#define MLD_LISTENER_QUERY		UINT_C(130)	/* マルチキャスト受信者照会	*/
+#define MLD_LISTENER_REPORT		UINT_C(131)	/* マルチキャスト受信者報告	*/
+#define MLD_LISTENER_DONE		UINT_C(132)	/* マルチキャスト受信者終了	*/
+
+#define ND_ROUTER_SOLICIT		UINT_C(133)	/* ルータ要請			*/
+#define ND_ROUTER_ADVERT		UINT_C(134)	/* ルータ通知			*/
+#define ND_NEIGHBOR_SOLICIT		UINT_C(135)	/* 近隣要請			*/
+#define ND_NEIGHBOR_ADVERT		UINT_C(136)	/* 近隣通知			*/
+#define ND_REDIRECT			UINT_C(137)	/* 向け直し			*/
+
+#define ICMP6_ROUTER_RENUMBERING	UINT_C(138)	/* ルータ番号再設定		*/
+
+#define ICMP6_WRU_REQUEST		UINT_C(139)	/* 要求ノード探索		*/
+#define ICMP6_WRU_REPLY			UINT_C(140)	/* 応答ノード探索		*/
+
+#define ICMP6_FQDN_QUERY		UINT_C(139)	/* FQDN 照会			*/
+#define ICMP6_FQDN_REPLY		UINT_C(140)	/* FQDN 応答			*/
+
+#define ICMP6_NI_QUERY			UINT_C(139)	/* ノード情報照会		*/
+#define ICMP6_NI_REPLY			UINT_C(140)	/* ノード情報応答		*/
+
+#define ICMP6_MAX_TYPE			UINT_C(203)	/* ICMP6 タイプの最大値		*/
+
+/*
+ *  ICMP6 コード
+ */
+
+/* 宛先到達不可能 */
+
+#define ICMP6_DST_UNREACH_NOROUTE	UINT_C(0)	/* 到達ルートなし。		*/
+#define ICMP6_DST_UNREACH_ADMIN		UINT_C(1)	/* 管理者により無効化中。	*/
+#define ICMP6_DST_UNREACH_NOTEIGHBOR	UINT_C(2)	/* 近隣者ではなくなった。	*/
+#define ICMP6_DST_UNREACH_BEYOND_SCOPE	UINT_C(2)	/* スコープを超えている。	*/
+#define ICMP6_DST_UNREACH_ADDR		UINT_C(3)	/* 宛先アドレスに到達不可能。	*/
+#define ICMP6_DST_UNREACH_NOPORT	UINT_C(4)	/* 宛先ポートに到達不可能。	*/
+
+/* TTL 超過 */
+
+#define ICMP6_TIME_EXCEED_TRANSIT	UINT_C(0)	/* 転送時に TTL==0 になった。	*/
+#define ICMP6_TIME_EXCEED_REASSEMBLY	UINT_C(1)	/* IP 再構成でタイムアウトした。*/
+
+/* ヘッダ不正 */
+
+#define ICMP6_PARAMPROB_HEADER		UINT_C(0)	/* ヘッダに不正があった。	*/
+#define ICMP6_PARAMPROB_NEXT_HEADER	UINT_C(1)	/* 次ヘッダが認識できない。	*/
+#define ICMP6_PARAMPROB_OPTION		UINT_C(2)	/* オプションが認識できない。	*/
+
+/* 内部使用 */
+#define ND_REDIRECT_ONLINK		UINT_C(0)	/* オンリンクへの向け直し	*/
+#define ND_REDIRECT_ROUTER		UINT_C(1)	/* ルータへの向け直し		*/
+
+/*
+ *  制限値
+ */
+
+							/* ICMPv6 の最大ペイロード長	*/
 #define ICMPV6_PAYLOAD_MAXLEN		(IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE))
 
 /*
- *  è¿é£è¦è«
+ *  近隣要請
  */
 
@@ -248,5 +217,5 @@
 	T_ICMP6_HDR	hdr;
 	T_IN6_ADDR	target;
-	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	/* この後にオプションが続く */
 	} __attribute__((packed, aligned(2)))T_NEIGHBOR_SOLICIT_HDR;
 
@@ -266,5 +235,5 @@
 
 /*
- *  è¿é£éç¥
+ *  近隣通知
  */
 
@@ -272,8 +241,8 @@
 	T_ICMP6_HDR	hdr;
 	T_IN6_ADDR	target;
-	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	/* この後にオプションが続く */
 	} __attribute__((packed, aligned(2)))T_NEIGHBOR_ADVERT_HDR;
 
-/* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾© */
+/* ICMP6 ヘッダのデータ部の定義 */
 
 #define nd_na_flags_reserved		hdr.data.data32
@@ -297,37 +266,37 @@
 
 /*
- *  è¿é£éç¥ãã©ã°ãnd_na_flags_reserved (hdr.data32) ã«è¨­å®ããã
+ *  近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。
  */
 
 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
 
-#define ND_NA_FLG_OVERRIDE		ULONG_C(0x20000000)	/* è¿é£ã­ã£ãã·ã¥ä¸æ¸ã	*/
-#define ND_NA_FLG_SOLICITED		ULONG_C(0x40000000)	/* è¿é£è¦è«ã¸ã®å¿ç­	*/
-#define ND_NA_FLG_ROUTER		ULONG_C(0x80000000)	/* ã«ã¼ã¿éç¥		*/
+#define ND_NA_FLG_OVERRIDE		ULONG_C(0x20000000)	/* 近隣キャッシュ上書き	*/
+#define ND_NA_FLG_SOLICITED		ULONG_C(0x40000000)	/* 近隣要請への応答	*/
+#define ND_NA_FLG_ROUTER		ULONG_C(0x80000000)	/* ルータ通知		*/
 
 #elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
 
-#define ND_NA_FLG_OVERRIDE		ULONG_C(0x00000020)	/* è¿é£ã­ã£ãã·ã¥ä¸æ¸ã	*/
-#define ND_NA_FLG_SOLICITED		ULONG_C(0x00000040)	/* è¿é£è¦è«ã¸ã®å¿ç­	*/
-#define ND_NA_FLG_ROUTER		ULONG_C(0x00000080)	/* ã«ã¼ã¿éç¥		*/
+#define ND_NA_FLG_OVERRIDE		ULONG_C(0x00000020)	/* 近隣キャッシュ上書き	*/
+#define ND_NA_FLG_SOLICITED		ULONG_C(0x00000040)	/* 近隣要請への応答	*/
+#define ND_NA_FLG_ROUTER		ULONG_C(0x00000080)	/* ルータ通知		*/
 
 #endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
 
 /*
- *  ã«ã¼ã¿éç¥
+ *  ルータ通知
  */
 
 typedef struct t_router_advert_hdr {
 	T_ICMP6_HDR	hdr;
-	uint32_t	reachable;		/* [ms] å°éå¯è½æé	*/
-	uint32_t	retransmit;		/* [ms] è¿é£è¦è«éä¿¡éé	*/
-	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	uint32_t	reachable;		/* [ms] 到達可能時間	*/
+	uint32_t	retransmit;		/* [ms] 近隣要請送信間隔	*/
+	/* この後にオプションが続く */
 	} __attribute__((packed, aligned(2)))T_ROUTER_ADVERT_HDR;
 
-/* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾© */
+/* ICMP6 ヘッダのデータ部の定義 */
 
 #define nd_ra_current_hoplimit		hdr.data.data8[0]
 #define nd_ra_flags			hdr.data.data8[1]
-#define nd_ra_router_lifetime		hdr.data.data16[1]	/* [s] ã«ã¼ã¿æå¹æé	*/
+#define nd_ra_router_lifetime		hdr.data.data16[1]	/* [s] ルータ有効時間	*/
 
 #define ROUTER_ADVERT_HDR_SIZE		(sizeof(T_ROUTER_ADVERT_HDR))
@@ -347,5 +316,5 @@
 
 /*
- *  ã«ã¼ã¿éç¥ãããã®ãã©ã°
+ *  ルータ通知ヘッダのフラグ
  */
 
@@ -355,5 +324,5 @@
 
 /*
- *  ã«ã¼ã¿è¦è«
+ *  ルータ要請
  */
 
@@ -362,5 +331,5 @@
 	} __attribute__((packed, aligned(2)))T_ROUTER_SOLICIT_HDR;
 
-/* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾© */
+/* ICMP6 ヘッダのデータ部の定義 */
 
 #define nd_rs_reserved			hdr.data.data32
@@ -383,8 +352,8 @@
 
 /*
- *  è¿é£æ¢ç´¢ãªãã·ã§ã³
- */
-
-/* è¿é£æ¢ç´¢ããã */
+ *  近隣探索オプション
+ */
+
+/* 近隣探索ヘッダ */
 
 typedef struct t_neighbor_hdr {
@@ -393,50 +362,45 @@
 	} __attribute__((packed, aligned(2)))T_NEIGHBOR_HDR;
 
-/* è¿é£æ¢ç´¢ãªãã·ã§ã³ããã */
+/* 近隣探索オプションヘッダ */
 
 typedef struct t_nd_opt_hdr {
-	uint8_t		type;			/* ãªãã·ã§ã³ã¿ã¤ã			*/
-	uint8_t		len;			/* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã	*/
+	uint8_t		type;			/* オプションタイプ			*/
+	uint8_t		len;			/* オプション長、単位は 8 バイト	*/
 	} __attribute__((packed, aligned(2)))T_ND_OPT_HDR;
 
 #define ND_OPT_HDR_SIZE			(sizeof(T_ND_OPT_HDR))
 
-#define ND_OPT_SOURCE_LINKADDR		UINT_C(1)	/* éä¿¡å
-ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-#define ND_OPT_TARGET_LINKADDR		UINT_C(2)	/* å¯¾è±¡ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-#define ND_OPT_PREFIX_INFORMATION	UINT_C(3)	/* ãã¬ãã£ãã¯ã¹æ
-å ±				*/
-#define ND_OPT_REDIRECTED_HEADER	UINT_C(4)	/* ãªãã¤ã¬ã¯ãã»ããã				*/
+#define ND_OPT_SOURCE_LINKADDR		UINT_C(1)	/* 送信先ネットワークインタフェースのアドレス	*/
+#define ND_OPT_TARGET_LINKADDR		UINT_C(2)	/* 対象ネットワークインタフェースのアドレス	*/
+#define ND_OPT_PREFIX_INFORMATION	UINT_C(3)	/* プレフィックス情報				*/
+#define ND_OPT_REDIRECTED_HEADER	UINT_C(4)	/* リダイレクト・ヘッダ				*/
 #define ND_OPT_MTU			UINT_C(5)	/* MTU						*/
 
-#define ND_OPT_PREFIX_INFO_COUNT	UINT_C(6)	/* ãã¬ãã£ãã¯ã¹æ
-å ±ã®åæ°			*/
-#define ND_OPT_OFF_ARRAY_SIZE		UINT_C(7)	/* ND ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããé
-åãµã¤ãº*/
-
-#define ND_OPT_OFF_ARRAY_IX(t)		((t)-1)		/* ãªãã»ããé
-åã®ã¤ã³ããã¯ã¹			*/
-
-/* ãã¬ãã£ãã¯ã¹ãªãã·ã§ã³ */
+#define ND_OPT_PREFIX_INFO_COUNT	UINT_C(6)	/* プレフィックス情報の個数			*/
+#define ND_OPT_OFF_ARRAY_SIZE		UINT_C(7)	/* ND オプションのオフセットを記録する配列サイズ*/
+
+#define ND_OPT_OFF_ARRAY_IX(t)		((t)-1)		/* オフセット配列のインデックス			*/
+
+/* プレフィックスオプション */
 
 typedef struct t_nd_opt_prefix_info {
-	uint8_t		type;		/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¿ã¤ã = 3	*/
-	uint8_t		len;		/* ãªãã·ã§ã³é· = 8Ã4=32	*/
-	uint8_t		prefix_len;	/* ãã¬ãã£ãã¯ã¹é·		*/
-	uint8_t		flags;		/* ãã©ã°			*/
-	uint32_t	valid;		/* [s] æå¹æé			*/
-	uint32_t	preferred;	/* [s] æ¨å¥¨æå¹æé		*/
+	uint8_t		type;		/* 近隣探索オプションタイプ = 3	*/
+	uint8_t		len;		/* オプション長 = 8×4=32	*/
+	uint8_t		prefix_len;	/* プレフィックス長		*/
+	uint8_t		flags;		/* フラグ			*/
+	uint32_t	valid;		/* [s] 有効時間			*/
+	uint32_t	preferred;	/* [s] 推奨有効時間		*/
 	uint32_t	reserved;
-	T_IN6_ADDR	prefix;		/* ãã¬ãã£ãã¯ã¹		*/
+	T_IN6_ADDR	prefix;		/* プレフィックス		*/
 	} __attribute__((packed, aligned(2)))T_ND_OPT_PREFIX_INFO;
 
-#define ND_OPT_PI_FLAG_ONLINK	UINT_C(0x80)		/* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹	*/
-#define ND_OPT_PI_FLAG_AUTO	UINT_C(0x40)		/* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®*/
-
-/* MTU ãªãã·ã§ã³ããã */
+#define ND_OPT_PI_FLAG_ONLINK	UINT_C(0x80)		/* オンリンクプレフィックス	*/
+#define ND_OPT_PI_FLAG_AUTO	UINT_C(0x40)		/* ステートレス・アドレス自動設定*/
+
+/* MTU オプションヘッダ */
 
 typedef struct t_nd_opt_mtu_hdr {
-	uint8_t		type;		/* ãªãã·ã§ã³ã¿ã¤ã		*/
-	uint8_t		len;		/* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã*/
+	uint8_t		type;		/* オプションタイプ		*/
+	uint8_t		len;		/* オプション長、単位は 8 バイト*/
 	uint16_t	reserved;
 	uint32_t	mtu;		/* MTU				*/
@@ -444,12 +408,12 @@
 
 /*
- *  åãç´ã
+ *  向け直し
  */
 
 typedef struct t_nd_redirect_hdr {
 	T_ICMP6_HDR	hdr;
-	T_IN6_ADDR	target;		/* ã«ã¼ã¿ã®ã¢ãã¬ã¹		*/
-	T_IN6_ADDR	dst;		/* åãç´ãã®çµç¹ã¢ãã¬ã¹		*/
-	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	T_IN6_ADDR	target;		/* ルータのアドレス		*/
+	T_IN6_ADDR	dst;		/* 向け直しの終点アドレス		*/
+	/* この後にオプションが続く */
 	} __attribute__((packed, aligned(2)))T_ND_REDIRECT_HDR;
 
@@ -459,6 +423,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -505,5 +468,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -86,6 +74,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -121,5 +109,5 @@
 
 /*
- *  ARP ã­ã£ãã·ã¥ã¨ã³ããª
+ *  ARP キャッシュエントリ
  */
 
@@ -127,5 +115,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -135,8 +123,7 @@
 
 /*
- *  arp_lookup -- ARP ã­ã£ãã·ã¥ã®æ¢ç´¢ã¨ç»é²
- *
- *    æ³¨æ: SEM_ARP_CACHE_LOCK ãç²å¾ããç¶æ
-ã§å¼åºããã¨
+ *  arp_lookup -- ARP キャッシュの探索と登録
+ *
+ *    注意: SEM_ARP_CACHE_LOCK を獲得した状態で呼出すこと
  */
 
@@ -152,8 +139,8 @@
 		}
 
-	/* create ãçãªããæ°ããªã¨ã³ããªãç»é²ããã*/
+	/* create が真なら、新たなエントリを登録する。*/
 	if (create) {
 
-		/* ã¾ããç©ºããããã°ããã®ç©ºããå©ç¨ããã*/
+		/* まず、空きがあれば、その空きを利用する。*/
 		for (ix = NUM_ARP_ENTRY; ix -- > 0; ) {
 			if (arp_cache[ix].expire == 0) {
@@ -164,6 +151,6 @@
 
 		/*
-		 *  ç©ºãããªããã°ãã¿ã¤ã ã¢ã¦ãã¾ã§æéãæç­ã®
-		 *  ã¨ã³ããªã¼ãç ´æ£ãã¦å©ç¨ããã
+		 *  空きがなければ、タイムアウトまで時間が最短の
+		 *  エントリーを破棄して利用する。
 		 */
 		syslog(LOG_NOTICE, "[ARP] cache busy, size=%d", NUM_ARP_ENTRY);
@@ -183,6 +170,5 @@
 
 /*
- *  in_arpinput -- TCP/IP ç¨ ARP ã®å
-¥åé¢æ°
+ *  in_arpinput -- TCP/IP 用 ARP の入力関数
  */
 
@@ -200,12 +186,11 @@
 	et_arph = GET_ETHER_ARP_HDR(input);
 
-	ntoahl(saddr, et_arph->sproto);		/* éä¿¡å
- IP ã¢ãã¬ã¹	*/
-	ntoahl(taddr, et_arph->tproto);		/* è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹	*/
-
-	/*
-	 *  ä»¥ä¸ã®å ´åã¯ã¨ã©ã¼
-	 *    ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ãèªå
-	 *    ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+	ntoahl(saddr, et_arph->sproto);		/* 送信元 IP アドレス	*/
+	ntoahl(taddr, et_arph->tproto);		/* 解決対象 IP アドレス	*/
+
+	/*
+	 *  以下の場合はエラー
+	 *    ・送信ホストの物理アドレスが自分
+	 *    ・送信ホストの物理アドレスがブロードキャスト
 	 */
 	if (memcmp(et_arph->shost, ifaddr->lladdr,        ETHER_ADDR_LEN) == 0 ||
@@ -214,6 +199,6 @@
 
 	/*
-	 *  éä¿¡ãã¹ãã® IP ã¢ãã¬ã¹ãèªåã®å ´åã¯ãéè¤ãã¦ããã®ã§
-	 *  ç¸æã«ãç¥ãããã
+	 *  送信ホストの IP アドレスが自分の場合は、重複しているので
+	 *  相手にも知らせる。
 	 */
 	if (saddr == ifp->in_ifaddr.addr) {
@@ -240,12 +225,9 @@
 
 	/*
-	 *  ä»¥ä¸ã®å ´åã¯ä½ãããªãã
-	 *    ã»è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹ãèªåã§ã¯ãªããæ³¨: å
-ã® FreeBSD ã®
-	 *      å®è£
-ã§ã¯ãARP PROXY ç­ã®ãããèªåä»¥å¤ã® IP ã¢ãã¬ã¹ã®
-	 *      è§£æ±ºãè¡ã£ã¦ããããæ¬å®è£
-ã§ã¯ãèªåä»¥å¤ã® IP
-	 *      ã¢ãã¬ã¹ã®è§£æ±ºã¯è¡ããªãã
+	 *  以下の場合は何もしない。
+	 *    ・解決対象 IP アドレスが自分ではない、注: 元の FreeBSD の
+	 *      実装では、ARP PROXY 等のため、自分以外の IP アドレスの
+	 *      解決も行っているが、本実装では、自分以外の IP
+	 *      アドレスの解決は行わない。
 	 */
 	if (taddr != ifp->in_ifaddr.addr)
@@ -253,7 +235,6 @@
 
 	/*
-	 *  éä¿¡å
- IP ã¢ãã¬ã¹ã ARP ã­ã£ãã·ã¥ã«ãããèª¿ã¹ãã
-	 *  ã­ã£ãã·ã¥ã«ãªããã°ãæ°ãã«ã¨ã³ããªãç»é²ããã
+	 *  送信元 IP アドレスが ARP キャッシュにあるか調べる。
+	 *  キャッシュになければ、新たにエントリを登録する。
 	 */
 	syscall(wai_sem(SEM_ARP_CACHE_LOCK));
@@ -264,9 +245,9 @@
 
 	/*
-	 *  éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°éä¿¡ããã
+	 *  送信がペンデングされているフレームがあれば送信する。
 	 */
 	if (ent->hold) {
 
-		/* ãã¬ã¼ã ã® Ethernet ããããè¨­å®ããã*/
+		/* フレームの Ethernet ヘッダを設定する。*/
 		memcpy(GET_ETHER_HDR(ent->hold)->dhost, ent->mac_addr, ETHER_ADDR_LEN);
 
@@ -275,5 +256,5 @@
 		syscall(sig_sem(SEM_ARP_CACHE_LOCK));
 
-		/* ãã³ãã£ã³ã°ããã¦ãããã¬ã¼ã ãéä¿¡ããã*/
+		/* ペンディングされているフレームを送信する。*/
 		IF_RAW_OUTPUT(pending, TMO_FEVR);
 
@@ -286,9 +267,9 @@
 	arph = GET_ARP_HDR(input);
 
-	/* ã¢ãã¬ã¹è§£æ±ºè¦æ±ã§ãªããã°çµäº */
+	/* アドレス解決要求でなければ終了 */
 	if (ntohs(arph->opcode) != ARPOP_REQUEST)
 		goto buf_rel;
 
-	/* Ethernet ARP ããããè¨­å®ããã*/
+	/* Ethernet ARP ヘッダを設定する。*/
 	memcpy(et_arph->thost, et_arph->shost, ETHER_ADDR_LEN);
 	memcpy(et_arph->shost, ifaddr->lladdr, ETHER_ADDR_LEN);
@@ -296,13 +277,13 @@
 	ahtonl(et_arph->sproto, taddr);
 
-	/* Ethernet ARP ããããè¨­å®ããã*/
+	/* Ethernet ARP ヘッダを設定する。*/
 	arph->opcode = htons(ARPOP_REPLY);
 
-	/* Ethernet ããããè¨­å®ããã*/
+	/* Ethernet ヘッダを設定する。*/
 	eth = GET_ETHER_HDR(input);
 	memcpy(eth->dhost, eth->shost,     ETHER_ADDR_LEN);
 	memcpy(eth->shost, ifaddr->lladdr, ETHER_ADDR_LEN);
 
-	/* ARP å¿ç­ãéä¿¡ããã*/
+	/* ARP 応答を送信する。*/
 	IF_RAW_OUTPUT(input, TMO_FEVR);
 	return;
@@ -315,5 +296,5 @@
 
 /*
- *  arp_timer -- ARP ã­ã£ãã·ã¥ã®æ´æ°
+ *  arp_timer -- ARP キャッシュの更新
  */
 
@@ -329,5 +310,5 @@
 			arp_cache[ix].expire -= ARP_TIMER_TMO;
 			if (arp_cache[ix].expire == 0) {
-				/* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/
+				/* 送信がペンデングされているフレームがあれば捨てる。*/
 				if (arp_cache[ix].hold) {
 					NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
@@ -344,5 +325,5 @@
 
 /*
- *  arp_request -- MAC ã¢ãã¬ã¹è§£æ±ºè¦æ±
+ *  arp_request -- MAC アドレス解決要求
  */
 
@@ -362,5 +343,5 @@
 	if ((error = tget_net_buf(&arp_req, IF_ARP_ETHER_HDR_SIZE, TMO_ARP_GET_NET_BUF)) == E_OK) {
 
-		/* ã¤ã¼ãµãããããããè¨­å®ããã*/
+		/* イーサネットヘッダを設定する。*/
 		eth     = GET_ETHER_HDR(arp_req);
 		memcpy(eth->dhost, ether_broad_cast_addr, ETHER_ADDR_LEN);
@@ -368,5 +349,5 @@
 		eth->type = htons(ETHER_TYPE_ARP);
 
-		/* ARP ããããè¨­å®ããã*/
+		/* ARP ヘッダを設定する。*/
 		arph    = GET_ARP_HDR(arp_req);
 		arph->hrd_addr  = htons(ARPHRD_ETHER);
@@ -376,5 +357,5 @@
 		arph->opcode    = htons(ARPOP_REQUEST);
 
-		/* ã¤ã¼ãµããã ARP ããããè¨­å®ããã*/
+		/* イーサネット ARP ヘッダを設定する。*/
 		et_arph = GET_ETHER_ARP_HDR(arp_req);
 		src     = IF_GET_IFNET()->in_ifaddr.addr;
@@ -384,5 +365,5 @@
 		ahtonl(et_arph->tproto, dst);
 
-		/* éä¿¡ããã*/
+		/* 送信する。*/
 		error = IF_RAW_OUTPUT(arp_req, TMO_ARP_OUTPUT);
 		}
@@ -393,5 +374,5 @@
 
 /*
- *  arp_get_cache -- ARP ã­ã£ãã·ã¥ãç²å¾ããã
+ *  arp_get_cache -- ARP キャッシュを獲得する。
  */
 
@@ -403,6 +384,5 @@
 
 /*
- *  arp_input -- ARP ã®å
-¥åé¢æ°
+ *  arp_input -- ARP の入力関数
  */
 
@@ -415,5 +395,5 @@
 	NET_COUNT_ARP(net_count_arp.in_packets, 1);
 
-	/* ARP ãããã®é·ãããã§ãã¯ããã*/
+	/* ARP ヘッダの長さをチェックする。*/
 	if (input->len < IF_ARP_HDR_SIZE)
 		goto buf_rel;
@@ -422,6 +402,6 @@
 
 	/*
-	 *  ç©çã¢ãã¬ã¹ãã©ã¼ãããã Ehternet ä»¥å¤
-	 *  ã¾ãã¯ããã­ãã³ã«ã IP ä»¥å¤ã¯ã¨ã©ã¼ã
+	 *  物理アドレスフォーマットが Ehternet 以外
+	 *  または、プロトコルが IP 以外はエラー。
 	 */
 	if (ntohs(arph->hrd_addr) != ARPHRD_ETHER ||
@@ -429,5 +409,5 @@
 		goto buf_rel;
 
-	/* ARP ããã + Ether ARP ãããã®é·ãããã§ãã¯ããã*/
+	/* ARP ヘッダ + Ether ARP ヘッダの長さをチェックする。*/
 	if (input->len < IF_ARP_ETHER_HDR_SIZE)
 		goto buf_rel;
@@ -442,8 +422,8 @@
 
 /*
- *  arp_resolve -- MAC ã¢ãã¬ã¹è§£æ±º
- *
- *    ã¢ãã¬ã¹è§£æ±ºãã§ããã°ãæ»ãå¤ã¯ true ãè¿ããã§ããªããã°
- *    éä¿¡ããã³ãã£ã³ã°ãã¦ãæ»ãå¤ã¯ false ãè¿ãã
+ *  arp_resolve -- MAC アドレス解決
+ *
+ *    アドレス解決ができれば、戻り値は true を返し、できなければ
+ *    送信をペンディングして、戻り値は false を返す。
  */
 
@@ -458,10 +438,8 @@
 
 	/*
-	 *  æ¬¡ã®å ´åã¯ãã¤ã¼ãµãããã®ãã­ã¼ãã­ã£ã¹ãã¢ãã¬ã¹ãè¿ãã
+	 *  次の場合は、イーサネットのブロードキャストアドレスを返す。
 	 *
-	 *    ã»å
-¨ãããã 1
-	 *    ã»ãã¹ãé¨ã®å
-¨ãããã 1 ã§ããããã¯ã¼ã¯é¨ãã­ã¼ã«ã«ã¢ãã¬ã¹
+	 *    ・全ビットが 1
+	 *    ・ホスト部の全ビットが 1 で、ネットワーク部がローカルアドレス
 	 */
 	if (gw == IPV4_ADDR_BROADCAST ||
@@ -471,6 +449,5 @@
 		}
 
-	/* éä¿¡å
- GW ã® IP ã¢ãã¬ã¹ã ARP ã­ã£ãã·ã¥ã«ãããèª¿ã¹ãã*/
+	/* 送信先 GW の IP アドレスが ARP キャッシュにあるか調べる。*/
 	syscall(wai_sem(SEM_ARP_CACHE_LOCK));
 	ent = arp_lookup(gw, true);
@@ -481,5 +458,5 @@
 		}
 	else {
-	 	/* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/
+	 	/* 送信がペンデングされているフレームがあれば捨てる。*/
 		if (ent->hold) {
 			NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
@@ -488,7 +465,7 @@
 
 		/*
-		 *  éä¿¡ããã³ãã£ã³ã°ããã
-		 *  IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨­å®ããã¦ããã¨ãã¯ã
-		 *  éä¿¡ããã³ãã£ã³ã°ããªãã
+		 *  送信をペンディングする。
+		 *  IF でネットワークバッファを開放しないフラグが設定されているときは、
+		 *  送信をペンディングしない。
 		 */
 		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0)
@@ -500,5 +477,5 @@
 		syscall(sig_sem(SEM_ARP_CACHE_LOCK));
 
-		/* ã¢ãã¬ã¹è§£æ±ºè¦æ±ãéä¿¡ããã*/
+		/* アドレス解決要求を送信する。*/
 		arp_request(ifaddr, gw);
 		return false;
@@ -507,5 +484,5 @@
 
 /*
- *  arp_init -- ARP åæå
+ *  arp_init -- ARP 初期化
  */
 
@@ -518,5 +495,5 @@
 #ifdef ETHER_CFG_MULTICAST
 /*
- *  ether_map_ipv4_multicast -- IPv4 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ããã¤ã¼ãµãããã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ
+ *  ether_map_ipv4_multicast -- IPv4 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  Ethernet ARP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  Ethernet ARP コンフィギュレーションファイル
  */
 
 #ifdef SUPPORT_ETHER
 
-/* ARP ã­ã£ãã·ã¥æ´æ°ç¨ã»ããã© */
+/* ARP キャッシュ更新用セマフォ */
 
 CRE_SEM(SEM_ARP_CACHE_LOCK, { TA_TPRI, 1, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -88,13 +76,12 @@
  *  Ethernet Address Resolution Protocol.
  *
- *  RFC 826 åç
-§
+ *  RFC 826 参照
  */
 
 typedef struct t_ether_arp_hdr {
-	uint8_t		shost[ETHER_ADDR_LEN];	/* éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹	*/
-	uint8_t		sproto[IPV4_ADDR_LEN];	/* éä¿¡ãã¹ãã® IP ã¢ãã¬ã¹	*/
-	uint8_t		thost[ETHER_ADDR_LEN];	/* è§£æ±ºå¯¾è±¡ç©çã¢ãã¬ã¹		*/
-	uint8_t		tproto[IPV4_ADDR_LEN];	/* è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹		*/
+	uint8_t		shost[ETHER_ADDR_LEN];	/* 送信ホストの物理アドレス	*/
+	uint8_t		sproto[IPV4_ADDR_LEN];	/* 送信ホストの IP アドレス	*/
+	uint8_t		thost[ETHER_ADDR_LEN];	/* 解決対象物理アドレス		*/
+	uint8_t		tproto[IPV4_ADDR_LEN];	/* 解決対象 IP アドレス		*/
 	} __attribute__((packed, aligned(2)))T_ETHER_ARP_HDR;
 
@@ -105,17 +92,16 @@
 
 /*
- *  ARP ã­ã£ãã·ã¥ã¨ã³ããª
+ *  ARP キャッシュエントリ
  */
 
 typedef struct arp_entry {
-	T_NET_BUF	*hold;		/* ARP ã®è§£æ±ºå¾
-ã¡åºåãã¬ã¼ã 	*/
-	T_IN4_ADDR	ip_addr;	/* IP ã¢ãã¬ã¹			*/
-	uint16_t	expire;		/* ç ´æ£ã¾ã§ã®æéã0 ãªãæªä½¿ç¨	*/
-	uint8_t		mac_addr[ETHER_ADDR_LEN];	/* MAC ã¢ãã¬ã¹	*/
+	T_NET_BUF	*hold;		/* ARP の解決待ち出力フレーム	*/
+	T_IN4_ADDR	ip_addr;	/* IP アドレス			*/
+	uint16_t	expire;		/* 破棄までの時間、0 なら未使用	*/
+	uint8_t		mac_addr[ETHER_ADDR_LEN];	/* MAC アドレス	*/
 	} __attribute__((packed, aligned(2)))T_ARP_ENTRY;
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -131,5 +117,5 @@
 
 /*
- *  TINET ç¬èª API
+ *  TINET 独自 API
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -88,43 +76,39 @@
 
 /*
- *  TINET ã®ãã¼ã¸ã§ã³æ
-å ±
- */
-
-#define TINET_PRVER		UINT_C(0x1054)	/* TINET ã®ãã¼ã¸ã§ã³çªå· */
-
-/*
- *  ã¤ã³ã¿ã¼ãããã·ã¹ãã ã®å®ç¾©ãRFC790 åç
-§
- */
-
-/*
- *  ãã­ãã³ã« (RFC1700)
- */
-
-#define IPPROTO_IP		UINT_C(0)	/* IP ã®ããã¼				*/
-#define IPPROTO_HOPOPTS		UINT_C(0)	/* IPv6 ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³	*/
+ *  TINET のバージョン情報
+ */
+
+#define TINET_PRVER		UINT_C(0x1054)	/* TINET のバージョン番号 */
+
+/*
+ *  インターネットシステムの定義、RFC790 参照
+ */
+
+/*
+ *  プロトコル (RFC1700)
+ */
+
+#define IPPROTO_IP		UINT_C(0)	/* IP のダミー				*/
+#define IPPROTO_HOPOPTS		UINT_C(0)	/* IPv6 中継点 (Hop-by-Hop) オプション	*/
 #define IPPROTO_ICMP		UINT_C(1)	/* ICMP					*/
 #define IPPROTO_TCP		UINT_C(6)	/* TCP					*/
 #define IPPROTO_UDP		UINT_C(17)	/* UDP					*/
 #define IPPROTO_IPV6		UINT_C(41)	/* IPv6					*/
-#define IPPROTO_ROUTING		UINT_C(43)	/* çµè·¯å¶å¾¡ãªãã·ã§ã³			*/
-#define IPPROTO_FRAGMENT	UINT_C(44)	/* æ­çåãªãã·ã§ã³			*/
+#define IPPROTO_ROUTING		UINT_C(43)	/* 経路制御オプション			*/
+#define IPPROTO_FRAGMENT	UINT_C(44)	/* 断片化オプション			*/
 #define IPPROTO_RSVP		UINT_C(46)	/* RSVP					*/
-#define IPPROTO_ESP		UINT_C(50)	/* IPv6 æå·åãªãã·ã§ã³		*/
-#define IPPROTO_AH		UINT_C(51)	/* IPv6 èªè¨¼ãªãã·ã§ã³			*/
+#define IPPROTO_ESP		UINT_C(50)	/* IPv6 暗号化オプション		*/
+#define IPPROTO_AH		UINT_C(51)	/* IPv6 認証オプション			*/
 #define IPPROTO_ICMPV6		UINT_C(58)	/* ICMPv6				*/
-#define IPPROTO_NONE		UINT_C(59)	/* IPv6 æ¬¡ãããç¡ã			*/
-#define IPPROTO_DSTOPTS		UINT_C(60)	/* IPv6 çµç¹ãªãã·ã§ã³			*/
-#define IPPROTO_IPCOMP		UINT_C(108)	/* ãã¤ã­ã¼ãå§ç¸®			*/
-#define IPPROTO_DONE		UINT_C(257)	/* IPv6 ã§ä¸ä½ãã­ãã³ã«å
-¥åçµäº	*/
-
-/*
- *  IPv4 ã¢ãã¬ã¹
- */
-
-/* åæ¹åç
-§ */
+#define IPPROTO_NONE		UINT_C(59)	/* IPv6 次ヘッダ無し			*/
+#define IPPROTO_DSTOPTS		UINT_C(60)	/* IPv6 終点オプション			*/
+#define IPPROTO_IPCOMP		UINT_C(108)	/* ペイロード圧縮			*/
+#define IPPROTO_DONE		UINT_C(257)	/* IPv6 で上位プロトコル入力終了	*/
+
+/*
+ *  IPv4 アドレス
+ */
+
+/* 前方参照 */
 
 #ifndef T_IN4_ADDR_DEFINED
@@ -137,14 +121,14 @@
 
 /*
- *  ITRON TCP/IPv4 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©
+ *  ITRON TCP/IPv4 アドレス/ポート番号の定義
  */
 
 typedef struct t_ipv4ep {
-	uint32_t	ipaddr;		/* IPv4 ã¢ãã¬ã¹	*/
-	uint16_t	portno;		/* ãã¼ãçªå·		*/
+	uint32_t	ipaddr;		/* IPv4 アドレス	*/
+	uint16_t	portno;		/* ポート番号		*/
 	} T_IPV4EP;
 
 /*
- *  ã¢ãã¬ã¹/ãã¼ãã®é·ã
+ *  アドレス/ポートの長さ
  */
 
@@ -153,23 +137,23 @@
 
 /*
- *  ãã¼ãçªå·ã®å®ç¾©
- */
-
-#define TCP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP æ¨æº	*/
-#define UDP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP æ¨æº	*/
-
-#define TCP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known çµäºçªå·	*/
-#define TCP_PORT_FIRST_AUTO		UINT_C(1024)	/* èªåå²ãå½ã¦éå§çªå·	*/
-#define TCP_PORT_LAST_AUTO		UINT_C(4999)	/* èªåå²ãå½ã¦çµäºçªå·	*/
-
-#define UDP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known çµäºçªå·	*/
-#define UDP_PORT_FIRST_AUTO		UINT_C(1024)	/* èªåå²ãå½ã¦éå§çªå·	*/
-#define UDP_PORT_LAST_AUTO		UINT_C(4999)	/* èªåå²ãå½ã¦çµäºçªå·	*/
-
-/*
- *  IP ã¢ãã¬ã¹ã®å®ç¾©
- */
-
-#define IPV4_ADDRANY		ULONG_C(0x00000000)	/* ITRON TCP/IP æ¨æº	*/
+ *  ポート番号の定義
+ */
+
+#define TCP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP 標準	*/
+#define UDP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP 標準	*/
+
+#define TCP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known 終了番号	*/
+#define TCP_PORT_FIRST_AUTO		UINT_C(1024)	/* 自動割り当て開始番号	*/
+#define TCP_PORT_LAST_AUTO		UINT_C(4999)	/* 自動割り当て終了番号	*/
+
+#define UDP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known 終了番号	*/
+#define UDP_PORT_FIRST_AUTO		UINT_C(1024)	/* 自動割り当て開始番号	*/
+#define UDP_PORT_LAST_AUTO		UINT_C(4999)	/* 自動割り当て終了番号	*/
+
+/*
+ *  IP アドレスの定義
+ */
+
+#define IPV4_ADDRANY		ULONG_C(0x00000000)	/* ITRON TCP/IP 標準	*/
 
 #define IPV4_ADDR_LOOPBACK	ULONG_C(0x7f000001)
@@ -209,21 +193,20 @@
 
 /*
- *  åççæç¨ TCP éä¿¡ç«¯ç¹
+ *  動的生成用 TCP 通信端点
  */
 
 typedef struct t_tcp_ccep {
-	/* æ¨æº */
-	ATR		cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
-	void		*sbuf;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	void		*rbuf;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	FP		callback;	/* ã³ã¼ã«ããã¯			*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		cepatr;		/* 通信端点属性			*/
+	void		*sbuf;		/* 送信用ウィンドバッファ	*/
+	int_t		sbufsz;		/* 送信用ウィンドバッファサイズ	*/
+	void		*rbuf;		/* 受信用ウィンドバッファ	*/
+	int_t		rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+	FP		callback;	/* コールバック			*/
+	/* 実装依存 */
 	} T_TCP_CCEP;
 
 /*
- *  åççæç¨ TCP åä»å£
+ *  動的生成用 TCP 受付口
  */
 
@@ -231,9 +214,8 @@
 
 typedef struct t_tcp_crep {
-	/* æ¨æº */
-	ATR		repatr;		/* åä»å£å±æ§		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		repatr;		/* 受付口属性		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス	*/
+	/* 実装依存 */
 	} T_TCP_CREP;
 
@@ -241,5 +223,5 @@
 
 /*
- *  åççæç¨ UDP éä¿¡ç«¯ç¹
+ *  動的生成用 UDP 通信端点
  */
 
@@ -247,10 +229,9 @@
 
 typedef struct t_udp_ccep {
-	/* æ¨æº */
-	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	FP		callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		cepatr;		/* UDP 通信端点属性		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス		*/
+	FP		callback;	/* コールバック関数		*/
+	/* 実装依存 */
 	} T_UDP_CCEP;
 
@@ -258,5 +239,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
  */
 
@@ -278,5 +259,5 @@
 
 /*
- *  TINET ç¬èª API
+ *  TINET 独自 API
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_itron.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_itron.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_itron.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,8 +36,8 @@
 
 /*
- *  API æ©è½ã»äºè±¡ã³ã¼ã
+ *  API 機能・事象コード
  */
 
-/* TCP é¢ä¿ */
+/* TCP 関係 */
 
 #define TFN_TCP_CRE_REP		(-0x201)
@@ -76,5 +64,5 @@
 #define TEV_TCP_RCV_OOB		(-0x201)
 
-/* UDP é¢ä¿ */
+/* UDP 関係 */
 
 #define TFN_UDP_CRE_CEP		(-0x221)
@@ -89,7 +77,7 @@
 #define TEV_UDP_RCV_DAT		(-0x221)
 
-/* ä¸è¬ */
+/* 一般 */
 
-#define NADR			((void*)(-1))	/* ç¡å¹ã¢ãã¬ã¹ */
+#define NADR			((void*)(-1))	/* 無効アドレス */
 #define IS_PTR_DEFINED(a)	((void*)(a)!=NADR&&(void*)(a)!=NULL)
 #define TCP_REP_NONE		UINT_C(0)
@@ -98,10 +86,10 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
-/* TCP é¢ä¿ */
+/* TCP 関係 */
 
-/* ãæ¨æºæ©è½ã */
+/* 【標準機能】 */
 
 extern ER	tcp_acp_cep (ID cepid, ID repid, T_IPV4EP *p_dstaddr, TMO tmout);
@@ -120,5 +108,5 @@
 extern ER	tcp6_con_cep (ID cepid, T_IPV6EP *p_myaddr, T_IPV6EP *p_dstaddr, TMO tmout);
 
-/* ãæ¡å¼µæ©è½ã */
+/* 【拡張機能】 */
 
 extern ER	tcp_del_rep (ID cepid);
@@ -133,7 +121,7 @@
 extern ER	tcp6_cre_rep (ID repid, T_TCP6_CREP *pk_crep);
 
-/* UDP é¢ä¿ */
+/* UDP 関係 */
 
-/* ãæ¨æºæ©è½ã */
+/* 【標準機能】 */
 
 extern ER_UINT	udp_snd_dat (ID cepid, T_IPV4EP *p_dstaddr, void *data, int_t len, TMO tmout);
@@ -144,5 +132,5 @@
 extern ER_UINT	udp6_rcv_dat (ID cepid, T_IPV6EP *p_dstaddr, void *data, int_t len, TMO tmout);
 
-/* ãæ¡å¼µæ©è½ã */
+/* 【拡張機能】 */
 
 extern ER	udp_del_cep (ID cepid);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_rename.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_rename.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,6 +36,5 @@
 
 /*
- *  TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯å
-é¨åã®ãªãã¼ã 
+ *  TCP/IP プロトコルスタック内部名のリネーム
  */
 
@@ -154,6 +141,6 @@
 #define tmax_tcp_repid		_tinet_tmax_tcp_repid
 #define tmax_tcp_cepid		_tinet_tmax_tcp_cepid
-#define tmax_tcp_crepid		_tinet_tmax_tcp_repid	/* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾© */
-#define tmax_tcp_ccepid		_tinet_tmax_tcp_cepid	/* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾© */
+#define tmax_tcp_crepid		_tinet_tmax_tcp_repid	/* TINET 1.3 との互換性のための定義 */
+#define tmax_tcp_ccepid		_tinet_tmax_tcp_cepid	/* TINET 1.3 との互換性のための定義 */
 
 /* netinet/udp_input.c */
@@ -179,5 +166,5 @@
 #define udp_cep			_tinet_udp_cep
 #define tmax_udp_cepid		_tinet_tmax_udp_cepid
-#define tmax_udp_ccepid		_tinet_tmax_udp_cepid	/* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾© */
+#define tmax_udp_ccepid		_tinet_tmax_udp_cepid	/* TINET 1.3 との互換性のための定義 */
 
 /* netinet/ip_icmp.c */
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_subr.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_subr.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -122,5 +110,5 @@
 
 /*
- *  in4_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ããã¢ãã¬ã¹ãè¿ãã
+ *  in4_get_ifaddr -- インタフェースに設定されているアドレスを返す。
  */
 
@@ -134,5 +122,5 @@
 
 /*
- *  ip2str -- IPv4 ã¢ãã¬ã¹ãæå­åã«å¤æããã
+ *  ip2str -- IPv4 アドレスを文字列に変換する。
  */
 
@@ -166,5 +154,5 @@
 
 /*
- *  in4_set_header -- IPv4 ããããè¨­å®ããã
+ *  in4_set_header -- IPv4 ヘッダを設定する。
  */
 
@@ -176,5 +164,5 @@
 	T_IFNET		*ifp = IF_GET_IFNET();
 
-	/* IP ããããè¨­å®ããã*/
+	/* IP ヘッダを設定する。*/
 	ip4h->vhl	= IP4_MAKE_VHL(IPV4_VERSION, IP4_HDR_SIZE >> 2);
 	ip4h->len	= htons(IP4_HDR_SIZE + len);
@@ -184,5 +172,5 @@
 	ip4h->id	= ip4h->flg_off = ip4h->sum = 0;
 
-	/* IP ã¢ãã¬ã¹ãè¨­å®ããã*/
+	/* IP アドレスを設定する。*/
 	ip4h->dst	= htonl(*dstaddr);
 
@@ -196,5 +184,5 @@
 
 /*
- *  in4_get_datagram -- IPv4 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨­å®ããã
+ *  in4_get_datagram -- IPv4 データグラムを獲得し、ヘッダを設定する。
  */
 
@@ -207,8 +195,8 @@
 	uint_t	align;
 
-	/* ãã¼ã¿é·ã 4 ãªã¯ãããå¢çã«èª¿æ´ããã*/
+	/* データ長を 4 オクテット境界に調整する。*/
 	align = (len + 3) >> 2 << 2;
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+	/* ネットワークバッファを獲得する。*/
 	if ((error = tget_net_buf_ex(nbuf, (uint_t)(IF_IP4_HDR_SIZE + align),
 	                                   (uint_t)(IF_IP4_HDR_SIZE + maxlen), nbatr, tmout)) != E_OK)
@@ -216,16 +204,16 @@
 
 	/*
-	 *  ããå¤§ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ããèª¿æ´ããã
-	 *  ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®
-	 *  çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã
+	 *  より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。
+	 *  より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの
+	 *  省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。
 	 */
 	if ((nbatr & NBA_SEARCH_ASCENT) != 0)
 		(*nbuf)->len = (uint16_t)(IF_IP4_HDR_SIZE + len);
 
-	/* IP ããããè¨­å®ããã*/
+	/* IP ヘッダを設定する。*/
 	if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK)
 		return error;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((GET_IP4_SDU(*nbuf) + len), 0, (size_t)(align - len));
@@ -235,7 +223,7 @@
 
 /*
- *  in4_cksum -- IPv4 ã®ãã©ã³ã¹ãã¼ãå±¤ãããã®ãã§ãã¯ãµã ãè¨ç®ããã
- *
- *  æ³¨æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã
+ *  in4_cksum -- IPv4 のトランスポート層ヘッダのチェックサムを計算する。
+ *
+ *  注意: 戻り値はネットワークバイトオーダ
  */
 
@@ -246,8 +234,8 @@
 	uint_t		align;
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)nbuf->buf + off + len, 0, (size_t)(align - len));
@@ -262,16 +250,16 @@
 
 /*
- *  in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
- *
- *        æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã
+ *  in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
+ *
+ *        戻り値はネットワークバイトオーダ
  */
 
 uint16_t
-in_cksum (void *data, uint_t len /*ãªã¯ãããåä½*/)
+in_cksum (void *data, uint_t len /*オクテット単位*/)
 {
 	uint16_t	sum;
@@ -282,10 +270,9 @@
 
 /*
- *  in4_is_dstaddr_accept -- å®å
-ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
- *
- *    æ³¨æ: dstaddr ã¯ã
- *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
- *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ *  in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
+ *
+ *    注意: dstaddr は、
+ *          TINET-1.2 からネットワークバイトオーダ、
+ *          TINET-1.1 までは、ホストバイトオーダ
  */
 
@@ -300,10 +287,8 @@
 
 /*
- * in4_ifawithifp -- å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
- *                   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
- *                   in6_ifawithifp ãã·ãã¥ã¬ã¼ãããã ãã§ã
- *                   ã¨ã©ã¼ãè¿ããã¨ã¯ãªãã
+ * in4_ifawithifp -- 宛先アドレスにふさわしい送信元アドレスを、
+ *                   ネットワークインタフェースから探索する。
+ *                   in6_ifawithifp をシミュレートするだけで、
+ *                   エラーを返すことはない。
  */
 
@@ -315,5 +300,5 @@
 
 /*
- *  in4_add_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¨­å®ããã
+ *  in4_add_ifaddr -- インタフェースに IPv4 アドレスを設定する。
  */
 
@@ -331,5 +316,5 @@
 
 /*
- *  in4_add_route -- çµè·¯è¡¨ã«ã¨ã³ããªãè¨­å®ããã
+ *  in4_add_route -- 経路表にエントリを設定する。
  */
 
@@ -351,5 +336,5 @@
 
 /*
- *  in4_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã
+ *  in4_rtalloc -- ルーティング表を探索する。
  */
 
@@ -374,7 +359,7 @@
 
 /*
- *  in4_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã
- *
- *    æ³¨æ: å¼æ° tmo ã®åä½ã¯ [ms]ã
+ *  in4_rtredirect -- ルーティング表にエントリを登録する。
+ *
+ *    注意: 引数 tmo の単位は [ms]。
  */
 
@@ -393,8 +378,7 @@
 
 /*
- *  in4_timer -- IPv4 å
-±éã¿ã¤ãã¼
- *
- *    1ç§å¨æã§èµ·åãããã
+ *  in4_timer -- IPv4 共通タイマー
+ *
+ *    1秒周期で起動される。
  */
 
@@ -418,6 +402,5 @@
 
 /*
- *  in4_init -- IPv4 å
-±éæ©è½ãåæåããã
+ *  in4_init -- IPv4 共通機能を初期化する。
  */
 
@@ -439,5 +422,5 @@
 
 /*
- *  in_rtinit -- ã«ã¼ãã£ã³ã°è¡¨ãåæåããã
+ *  in_rtinit -- ルーティング表を初期化する。
  */
 
@@ -455,5 +438,5 @@
 
 /*
- *  in_rtnewentry -- æ°ããã¨ã³ããªãç²å¾ããã
+ *  in_rtnewentry -- 新しいエントリを獲得する。
  */
 
@@ -465,5 +448,5 @@
 	int_t		ix;
 
-	/* ç©ºãã¨ã³ããªãæ¢ãã*/
+	/* 空きエントリを探す。*/
 	for (ix = NUM_STATIC_ROUTE_ENTRY; ix < NUM_ROUTE_ENTRY; ix ++) {
 		rt = &routing_tbl[ix];
@@ -474,10 +457,10 @@
 		}
 
-	/* expire ã®åä½ã¯ [s]ã*/
+	/* expire の単位は [s]。*/
 	syscall(get_tim(&now));
 	now /= SYSTIM_HZ;
 
 	if (frt == NULL) {
-		/* ç©ºãããªããã°ãæå¹æéããã£ã¨ãç­ãã¨ã³ããªãç©ºãã«ããã*/
+		/* 空きがなければ、有効時間がもっとも短いエントリを空きにする。*/
 		T_IN_RTENTRY	*srt = NULL;
 		int_t		diff, sdiff = INT_MAX;
@@ -488,5 +471,5 @@
 			diff = (int_t)(rt->expire - now);
 			if (diff <= 0) {	/* rt->expire <= now */
-				/* æ¢ã«ãæå¹æéãéãã¦ããã*/
+				/* 既に、有効時間が過ぎている。*/
 				frt = rt;
 				break;
@@ -509,5 +492,5 @@
 
 /*
- *  in_rttimer -- ã«ã¼ãã£ã³ã°è¡¨ã®ç®¡çã¿ã¤ãã¼
+ *  in_rttimer -- ルーティング表の管理タイマー
  */
 
@@ -518,5 +501,5 @@
 	int_t	ix;
 
-	/* expire ã®åä½ã¯ [s]ã*/
+	/* expire の単位は [s]。*/
 	syscall(get_tim(&now));
 	now /= SYSTIM_HZ;
@@ -533,16 +516,16 @@
 
 /*
- *  in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
- *
- *        æ»ãå¤ã¯ãã¹ããã¤ããªã¼ã
+ *  in_cksum_sum -- チェックサムの合計計算関数
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
+ *
+ *        戻り値はホストバイトオーダ
  */
 
 uint32_t
-in_cksum_sum (void *data, uint_t len /*ãªã¯ãããåä½*/)
+in_cksum_sum (void *data, uint_t len /*オクテット単位*/)
 {
 	uint32_t sum = 0;
@@ -562,10 +545,10 @@
 
 /*
- *  in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ *  in_cksum_carry -- チェックサムの桁上げ計算関数
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
  */
 
@@ -584,5 +567,5 @@
 
 /*
- *  in_strtfn -- API æ©è½ã³ã¼ãã®æå­è¡¨ç¾ãè¿ãã
+ *  in_strtfn -- API 機能コードの文字表現を返す。
  */
 
@@ -592,5 +575,5 @@
 	switch (fncd) {
 
-	/* TCP é¢ä¿ */
+	/* TCP 関係 */
 
 	case TFN_TCP_CRE_REP:
@@ -655,5 +638,5 @@
 		break;
 
-	/* UDP é¢ä¿ */
+	/* UDP 関係 */
 
 	case TFN_UDP_CRE_CEP:
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -90,25 +78,23 @@
 
 /*
- *  ç¬èªã®ã¨ã©ã¼ã³ã¼ã
- */
-
-#define EV_NOPND		(-97)		/* ãã³ãã£ã³ã°ãã¦ããªã */
-
-/*
- *  ãããã¯ã¼ã¯ã¨ã©ã¼ã³ã¼ã
- */
-
-#define EV_MSIZE		(-98)		/* ãã¼ã¿ã°ã©ã é·è¶
-é	*/
-#define EV_NURCH		(-99)		/* ãããã¯ã¼ã¯å°éä¸è½	*/
-#define EV_HDOWN		(-100)		/* ãã¹ããã¦ã³		*/
-#define EV_HURCH		(-101)		/* ãã¹ãå°éä¸è½	*/
-#define EV_CNNRF		(-102)		/* æ¥ç¶ä¸è½		*/
-#define EV_CNRST		(-103)		/* æ¥ç¶ãªã»ãã		*/
-#define EV_REXMTMO		(-104)		/* åéã¿ã¤ã ã¢ã¦ã	*/
-
-/*
- *  å
-±éã¿ã¤ãã®èµ·åå¨æã®å®ç¾©
+ *  独自のエラーコード
+ */
+
+#define EV_NOPND		(-97)		/* ペンディングしていない */
+
+/*
+ *  ネットワークエラーコード
+ */
+
+#define EV_MSIZE		(-98)		/* データグラム長超過	*/
+#define EV_NURCH		(-99)		/* ネットワーク到達不能	*/
+#define EV_HDOWN		(-100)		/* ホストダウン		*/
+#define EV_HURCH		(-101)		/* ホスト到達不能	*/
+#define EV_CNNRF		(-102)		/* 接続不能		*/
+#define EV_CNRST		(-103)		/* 接続リセット		*/
+#define EV_REXMTMO		(-104)		/* 再送タイムアウト	*/
+
+/*
+ *  共通タイマの起動周期の定義
  */
 
@@ -116,26 +102,26 @@
 
 /*
- *  ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½
+ *  インタフェースアドレス構造体
  */
 
 typedef struct t_in4_ifaddr {
-	T_IN4_ADDR		addr;		/* IPv4 ã¢ãã¬ã¹	*/
-	T_IN4_ADDR		mask;		/* ãµãããããã¹ã¯	*/
+	T_IN4_ADDR		addr;		/* IPv4 アドレス	*/
+	T_IN4_ADDR		mask;		/* サブネットマスク	*/
 	} T_IN4_IFADDR;
 
 /*
- *  ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½
+ *  ルーティング表エントリ構造体
  */
 
 typedef struct t_in4_rtentry {
-	T_IN4_ADDR	target;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹			*/
-	T_IN4_ADDR	mask;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹ã®ãµãããããã¹ã¯	*/
-	T_IN4_ADDR	gateway;	/* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹			*/
-	uint32_t	expire;		/* æå¹æéãåããæå» [s]			*/
-	uint8_t		flags;		/* ãã©ã°					*/
+	T_IN4_ADDR	target;		/* 目標ネットワークアドレス			*/
+	T_IN4_ADDR	mask;		/* 目標ネットワークアドレスのサブネットマスク	*/
+	T_IN4_ADDR	gateway;	/* ゲートウェイの IP アドレス			*/
+	uint32_t	expire;		/* 有効時間が切れる時刻 [s]			*/
+	uint8_t		flags;		/* フラグ					*/
 	} T_IN4_RTENTRY;
 
 /*
- *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.1 との互換性のための定義
  */
 
@@ -150,18 +136,17 @@
 #define NUM_ROUTE_ENTRY			\
 	(NUM_STATIC_ROUTE_ENTRY + NUM_REDIRECT_ROUTE_ENTRY)
-					/* ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°	*/
+					/* ルーティング表のエントリ数	*/
 
 #endif	/* of #ifdef NUM_ROUTE_ENTRY */
 
 /*
- *  ã«ã¼ãã£ã³ã°ã¨ã³ããªç¶æ
-ãã©ã°
- */
-
-#define IN_RTF_DEFINED		UINT_C(0x01)	/* å®ç¾©æ¸ã¿			*/
-#define IN_RTF_REDIRECT		UINT_C(0x10)	/* åãç´ãã«ããèªåè¨­å®ããã	*/
-
-/*
- *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ *  ルーティングエントリ状態フラグ
+ */
+
+#define IN_RTF_DEFINED		UINT_C(0x01)	/* 定義済み			*/
+#define IN_RTF_REDIRECT		UINT_C(0x10)	/* 向け直しにより自動設定された	*/
+
+/*
+ *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
  */
 
@@ -182,5 +167,5 @@
 
 /*
- *  ã«ã¼ãã£ã³ã°è¡¨
+ *  ルーティング表
  */
 
@@ -188,6 +173,5 @@
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -203,5 +187,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -223,40 +207,39 @@
 
 /*
- *  in4_is_dstaddr_accept -- å®å
-ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
- *
- *    æ³¨æ: dstaddr ã¯ã
- *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
- *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ *  in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
+ *
+ *    注意: dstaddr は、
+ *          TINET-1.2 からネットワークバイトオーダ、
+ *          TINET-1.1 までは、ホストバイトオーダ
  */
 extern bool_t in4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_IN4_ADDR *dstaddr);
 
 /*
- *  in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
- */
-extern uint16_t in_cksum(void *data, uint_t len /*ãªã¯ãããåä½*/);
-
-/*
- *  in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
- */
-extern uint32_t in_cksum_sum (void *data, uint_t len /*ãªã¯ãããåä½*/);
-
-/*
- *  in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°
- *
- *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
- *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
- *        ä¾å¤ãçºçããå¯è½æ§ãããã
- *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ *  in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
+ */
+extern uint16_t in_cksum(void *data, uint_t len /*オクテット単位*/);
+
+/*
+ *  in_cksum_sum -- チェックサムの合計計算関数
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
+ */
+extern uint32_t in_cksum_sum (void *data, uint_t len /*オクテット単位*/);
+
+/*
+ *  in_cksum_carry -- チェックサムの桁上げ計算関数
+ *
+ *  注意: data は 4 オクテット単位でパディングすること。
+ *        data が 2 オクテット単位にアラインされていないと
+ *        例外が発生する可能性がある。
+ *        len  は 4 オクテット単位にアラインされていること。
  */
 extern uint32_t in_cksum_carry (uint32_t sum);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  IPv4 ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  IPv4 で使用するカーネルオブジェクト
  */
 
@@ -52,5 +40,5 @@
 #ifdef IP4_CFG_FRAGMENT
 
-/* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æ */
+/* データグラムの分割・再構成 */
 
 CRE_SEM(SEM_IP4_FRAG_QUEUE, { TA_TPRI, 1, 1 });
@@ -60,5 +48,5 @@
 #if NUM_REDIRECT_ROUTE_ENTRY > 0
 
-/* ã«ã¼ãã£ã³ã°è¡¨ï¼åãç´ãï¼*/
+/* ルーティング表（向け直し）*/
 
 CRE_SEM(SEM_IN_ROUTING_TBL, { TA_TPRI, 1, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,6 +72,5 @@
 
 /*
- *  IPv4 ã®å®ç¾©ãRFC791 åç
-§
+ *  IPv4 の定義、RFC791 参照
  */
 
@@ -91,10 +78,10 @@
 
 /*
- *  IPv4 ãããã®å®ç¾©
+ *  IPv4 ヘッダの定義
  */
 
 typedef struct t_ip4_hdr {
 	uint8_t		vhl;		/* version << 4 | header length >> 2	*/
-					/* length ã¯ 4 octets åä½		*/
+					/* length は 4 octets 単位		*/
 	uint8_t		type;		/* type of services			*/
 	uint16_t	len;		/* total length				*/
@@ -114,5 +101,5 @@
 
 /*
- *  IPv4 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã­
+ *  IPv4 ヘッダ構造体メンバアクセスマクロ
  */
 
@@ -126,24 +113,24 @@
 
 /*
- *  IPv4 ãããã®ãã£ã¼ã«ãã®å¤ã®å®ç¾©
+ *  IPv4 ヘッダのフィールドの値の定義
  */
 
-#define IP4_VHL_BORING	UINT_C(0x45)	/* ãªãã·ã§ã³ããªã VHL å¤	*/
-#define IP4_RF		UINT_C(0x8000)	/* off: äºç´			*/
-#define IP4_DF		UINT_C(0x4000)	/* off: åå²ç¦æ­¢			*/
-#define IP4_MF		UINT_C(0x2000)	/* off: åå²ãã			*/
-#define IP4_OFFMASK	UINT_C(0x1fff)	/* ãªãã»ããé¨ã®ãã¹ã¯å¤		*/
+#define IP4_VHL_BORING	UINT_C(0x45)	/* オプションがない VHL 値	*/
+#define IP4_RF		UINT_C(0x8000)	/* off: 予約			*/
+#define IP4_DF		UINT_C(0x4000)	/* off: 分割禁止			*/
+#define IP4_MF		UINT_C(0x2000)	/* off: 分割あり			*/
+#define IP4_OFFMASK	UINT_C(0x1fff)	/* オフセット部のマスク値		*/
 
 /*
- *  å¶éå¤
+ *  制限値
  */
 
-#define IP4_MAXPACKET	UINT_C(65535)	/* æå¤§ãã±ãããµã¤ãº		*/
-#define IP4_MAXTTL	UINT_C(255)	/* TTL æå¤§å¤			*/
-#define IP4_DEFTTL	UINT_C(64)	/* TTL è¦å®å¤ (RFC1340)		*/
-#define IP4_FRAGTTL	UINT_C(60)	/* åå²ããããã¼ã¿ã°ã©ã ã®çå­æéï¼ç§ï¼*/
-#define IP4_MSS		UINT_C(576)	/* æå¤§ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤	*/
+#define IP4_MAXPACKET	UINT_C(65535)	/* 最大パケットサイズ		*/
+#define IP4_MAXTTL	UINT_C(255)	/* TTL 最大値			*/
+#define IP4_DEFTTL	UINT_C(64)	/* TTL 規定値 (RFC1340)		*/
+#define IP4_FRAGTTL	UINT_C(60)	/* 分割されたデータグラムの生存時間（秒）*/
+#define IP4_MSS		UINT_C(576)	/* 最大セグメントサイズの規定値	*/
 
-/* IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­ */
+/* IPv4 と IPv6 をコンパイル時に選択するためのマクロ */
 
 #if defined(SUPPORT_INET4)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip6.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip6.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip6.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -117,6 +105,5 @@
 
 /*
- *  IPv6 ã®å®ç¾©ãRFC2460 åç
-§
+ *  IPv6 の定義、RFC2460 参照
  */
 
@@ -124,5 +111,5 @@
 
 /*
- *  IPv6 ãããã®å®ç¾©
+ *  IPv6 ヘッダの定義
  */
 
@@ -141,5 +128,5 @@
 
 /*
- *  IPv6 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã­
+ *  IPv6 ヘッダ構造体メンバアクセスマクロ
  */
 
@@ -151,41 +138,37 @@
 
 /*
- *  æ¡å¼µããã
+ *  拡張ヘッダ
  */
 
 typedef struct t_ip6_ext_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ã	*/
+	uint8_t		len;		/* 8 オクテット単位の長さ	*/
 	} __attribute__((packed, aligned(2)))T_IP6_EXT_HDR;
 
 /*
- *  ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ããã
+ *  中継点 (Hop-by-Hop) オプションヘッダ
  */
 
 typedef struct t_ip6_hbh_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
-					 * ãã®ãªãã·ã§ã³ãããå
-¨ä½ã®ãªã¯ãããæ°ã
-					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
-¥ãã
+	uint8_t		len;		/* 8 オクテット単位の長さ。ただし、
+					 * このオプションヘッダ全体のオクテット数を
+					 * 8 で割った値の - 1 が入る。
 					 */
 	} __attribute__((packed, aligned(2)))T_IP6_HBH_HDR;
 
 /*
- *  çµç¹ (Destination) ãªãã·ã§ã³ããã
+ *  終点 (Destination) オプションヘッダ
  */
 
 typedef struct t_ip6_dest_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
-					 * ãã®ãªãã·ã§ã³ãããå
-¨ä½ã®ãªã¯ãããæ°ã
-					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
-¥ãã
+	uint8_t		len;		/* 8 オクテット単位の長さ。ただし、
+					 * このオプションヘッダ全体のオクテット数を
+					 * 8 で割った値の - 1 が入る。
 					 */
 	} __attribute__((packed, aligned(2)))T_IP6_DEST_HDR;
 
-/* ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ */
+/* 中継点 (Hop-by-Hop) オプション */
 
 #define IP6OPT_PAD1		UINT_C(0x00)	/* 00 0 00000 */
@@ -196,51 +179,47 @@
 #define IP6OPT_RTR_ALERT	UINT_C(0x05)	/* 00 0 00101 */
 
-#define IP6OPT_MINLEN		2	/* ãªãã·ã§ã³ã®æç­é·		*/
-
-/* æªç¥ã®ãªãã·ã§ã³ã®å¦çã®æå® */
-
-#define IP6OPT_TYPE_SKIP	UINT_C(0x00)	/* ç¡è¦ããã			*/
-#define IP6OPT_TYPE_DISCARD	UINT_C(0x40)	/* ãã¼ã¿ã°ã©ã ãç ´æ£ããã	*/
-#define IP6OPT_TYPE_FORCEICMP	UINT_C(0x80)	/* ç ´æ£ãã¦ãICMP ãè¿éããã	*/
+#define IP6OPT_MINLEN		2	/* オプションの最短長		*/
+
+/* 未知のオプションの処理の指定 */
+
+#define IP6OPT_TYPE_SKIP	UINT_C(0x00)	/* 無視する。			*/
+#define IP6OPT_TYPE_DISCARD	UINT_C(0x40)	/* データグラムを破棄する。	*/
+#define IP6OPT_TYPE_FORCEICMP	UINT_C(0x80)	/* 破棄して、ICMP を返送する。	*/
 #define IP6OPT_TYPE_ICMP	UINT_C(0xc0)
-		/* ç ´æ£ãã¦ããã«ãã­ã£ã¹ãã§ãªããã° ICMP ãè¿éããã	*/
+		/* 破棄して、マルチキャストでなければ ICMP を返送する。	*/
 
 #define IP6OPT_TYPE(o)		((o)&UINT_C(0xc0))
 
 /*
- *  çµè·¯å¶å¾¡ããã
+ *  経路制御ヘッダ
  */
 
 typedef struct t_ip6_rt_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
-					 * ãã®ãªãã·ã§ã³ãããå
-¨ä½ã®ãªã¯ãããæ°ã
-					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
-¥ãã
-					 */
-	uint8_t		type;		/* çµè·¯å¶å¾¡ã¿ã¤ã		*/
-	uint8_t		segleft;	/* ã»ã°ã¡ã³ãã®æ®ã		*/
+	uint8_t		len;		/* 8 オクテット単位の長さ。ただし、
+					 * このオプションヘッダ全体のオクテット数を
+					 * 8 で割った値の - 1 が入る。
+					 */
+	uint8_t		type;		/* 経路制御タイプ		*/
+	uint8_t		segleft;	/* セグメントの残り		*/
 	} __attribute__((packed, aligned(2)))T_IP6_RT_HDR;
 
 /*
- *  ã¿ã¤ã 0 çµè·¯å¶å¾¡ããã
+ *  タイプ 0 経路制御ヘッダ
  */
 
 typedef struct t_ip6_rt0_hdr {
 	uint8_t		next;		/* Next Header			*/
-	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
-					 * ãã®ãªãã·ã§ã³ãããå
-¨ä½ã®ãªã¯ãããæ°ã
-					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
-¥ãã
-					 */
-	uint8_t		type;		/* çµè·¯å¶å¾¡ã¿ã¤ã		*/
-	uint8_t		segleft;	/* ã»ã°ã¡ã³ãã®æ®ã		*/
-	uint32_t	reserved;	/* äºç´				*/
+	uint8_t		len;		/* 8 オクテット単位の長さ。ただし、
+					 * このオプションヘッダ全体のオクテット数を
+					 * 8 で割った値の - 1 が入る。
+					 */
+	uint8_t		type;		/* 経路制御タイプ		*/
+	uint8_t		segleft;	/* セグメントの残り		*/
+	uint32_t	reserved;	/* 予約				*/
 	} __attribute__((packed, aligned(2)))T_IP6_RT0_HDR;
 
 /*
- *  æ­çããã
+ *  断片ヘッダ
  */
 
@@ -248,9 +227,9 @@
 	uint8_t		next;		/* Next Header			*/
 	uint8_t		reserved;
-	uint16_t	off_flag;	/* ãªãã»ããã¨ãã©ã°		*/
-	uint32_t	ident;		/* åå²è­å¥å­			*/
+	uint16_t	off_flag;	/* オフセットとフラグ		*/
+	uint32_t	ident;		/* 分割識別子			*/
 	} __attribute__((packed, aligned(2)))T_IP6_FRAG_HDR;
 
-/* æ­çãããã®ãªãã»ããã¨ãã©ã° */
+/* 断片ヘッダのオフセットとフラグ */
 
 #ifdef _NET_CFG_BYTE_ORDER
@@ -258,13 +237,13 @@
 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
 
-#define IP6F_OFF_MASK		UINT_C(0xfff8)		/* ãªãã»ãããååºããã¹ã¯	*/
-#define IP6F_RESERVED_MASK	UINT_C(0x0006)		/* äºç´ãååºããã¹ã¯		*/
-#define IP6F_MORE_FRAG		UINT_C(0x0001)		/* ä¸­éãã©ã°ã¡ã³ã		*/
+#define IP6F_OFF_MASK		UINT_C(0xfff8)		/* オフセットを取出すマスク	*/
+#define IP6F_RESERVED_MASK	UINT_C(0x0006)		/* 予約を取出すマスク		*/
+#define IP6F_MORE_FRAG		UINT_C(0x0001)		/* 中間フラグメント		*/
 
 #elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
 
-#define IP6F_OFF_MASK		UINT_C(0xf8ff)		/* ãªãã»ãããååºããã¹ã¯	*/
-#define IP6F_RESERVED_MASK	UINT_C(0x0600)		/* äºç´ãååºããã¹ã¯		*/
-#define IP6F_MORE_FRAG		UINT_C(0x0100)		/* ä¸­éãã©ã°ã¡ã³ã		*/
+#define IP6F_OFF_MASK		UINT_C(0xf8ff)		/* オフセットを取出すマスク	*/
+#define IP6F_RESERVED_MASK	UINT_C(0x0600)		/* 予約を取出すマスク		*/
+#define IP6F_MORE_FRAG		UINT_C(0x0100)		/* 中間フラグメント		*/
 
 #endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
@@ -273,24 +252,24 @@
 
 /*
- *  å¶éå¤
- */
-
-#define IPV6_MAXHLIM	UINT_C(255)	/* ããããªãããã®æå¤§å¤				*/
-#define IPV6_DEFHLIM	UINT_C(64)	/* ããããªãããã®è¦å®å¤				*/
-#define IPV6_FRAGTTL	UINT_C(60)	/* åå²ããããã¼ã¿ã°ã©ã ã®çå­æéï¼ç§ï¼	*/
-#define IPV6_MMTU	UINT_C(1280)	/* æå° MTUããã¤ã­ã¼ã (1024) + ããã (256)	*/
-#define IPV6_MAXPACKET	UINT_C(65535)	/* ã¸ã£ã³ããã¤ã­ã¼ããé¤ãæå¤§ãã±ãããµã¤ãº	*/
-
-/*
- *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
- */
-
-/*
- *  ããããªãããã®è¦å®å¤ã¯ãã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ããã
+ *  制限値
+ */
+
+#define IPV6_MAXHLIM	UINT_C(255)	/* ホップリミットの最大値				*/
+#define IPV6_DEFHLIM	UINT_C(64)	/* ホップリミットの規定値				*/
+#define IPV6_FRAGTTL	UINT_C(60)	/* 分割されたデータグラムの生存時間（秒）	*/
+#define IPV6_MMTU	UINT_C(1280)	/* 最小 MTU。ペイロード (1024) + ヘッダ (256)	*/
+#define IPV6_MAXPACKET	UINT_C(65535)	/* ジャンボペイロードを除く最大パケットサイズ	*/
+
+/*
+ *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
+ */
+
+/*
+ *  ホップリミットの規定値は、ルータ通知により変更されることがある
  */
 
 #if NUM_ND6_DEF_RTR_ENTRY > 0
 
-/* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤ */
+/* ルータ通知を受信する場合は、通知された値 */
 
 #define IP_DEFTTL	ip6_defhlim
@@ -298,5 +277,5 @@
 #else	/* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
 
-/* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤ */
+/* ルータ通知を受信しない場合の値は既定値 */
 
 #define IP_DEFTTL	IPV6_DEFHLIM
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -122,5 +110,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -128,6 +116,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -137,5 +124,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -150,7 +137,7 @@
 
 /*
- *  icmp_echo -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç
- *
- *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ *  icmp_echo -- エコー要求を受信したときの処理
+ *
+ *    input には IF ヘッダと IP ヘッダも含まれている。
  */
 
@@ -164,13 +151,11 @@
 	NET_COUNT_MIB(icmp_stats.icmpInEchos, 1);
 
-	/* ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (8) ãã ã¨ã³ã¼å¿ç­ (0) ã«	*/
-	/* å¤æ´ãã¦éãè¿ãã					*/
+	/* メッセージの型をエコー要求 (8) から エコー応答 (0) に	*/
+	/* 変更して送り返す。					*/
 
 	icmp4h = GET_ICMP4_HDR(input, ihoff);
 	icmp4h->type = ICMP4_ECHO_REPLY;
 
-	/* IP ãããã®å®å
-ã¨çºä¿¡å
-ãäº¤æããã*/
+	/* IP ヘッダの宛先と発信元を交換する。*/
 	ip4h      = GET_IP4_HDR(input);
 	addr      = ip4h->src;
@@ -178,10 +163,10 @@
 	ip4h->dst = addr;
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	icmp4h->sum = 0;
 	icmp4h->sum = in_cksum(icmp4h,
 	                       (uint_t)(((input->len - GET_IF_IP4_HDR_SIZE(input)) + 3) >> 2 << 2));
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP4(net_count_icmp4.out_octets,
 	               input->len - GET_IF_IP4_HDR_SIZE(input));
@@ -193,5 +178,5 @@
 
 /*
- *  icmp_unreach -- ICMP4_UNREACH ãåä¿¡ããã¨ãã®å¦ç
+ *  icmp_unreach -- ICMP4_UNREACH を受信したときの処理
  */
 
@@ -245,7 +230,7 @@
 
 /*
- *  icmp_redirect -- åãç´ãã¡ãã»ã¼ã¸ãåä¿¡ããã¨ãã®å¦ç
- *
- *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ *  icmp_redirect -- 向け直しメッセージを受信したときの処理
+ *
+ *    input には IF ヘッダと IP ヘッダも含まれている。
  */
 
@@ -261,11 +246,10 @@
 
 	/*
-	 *  å
-å®¹ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ã¨ã©ã¼
+	 *  内容チェック、以下の場合はエラー
 	 *
-	 *    ã»ICMP ã³ã¼ãããICMP4_REDIRECT_PORT_AND_HOST (3) ä»¥ä¸
-	 *    ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æå°é·ããç­ã (IP ããã + ICMP ããã + IP ããã + 8)
-	 *    ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æå¤§é·ããç­ã
-	 *    ã»
+	 *    ・ICMP コードが、ICMP4_REDIRECT_PORT_AND_HOST (3) 以上
+	 *    ・データグラム長が、ICMP の最小長より短い (IP ヘッダ + ICMP ヘッダ + IP ヘッダ + 8)
+	 *    ・データグラム長が、ICMP の最大長より短い
+	 *    ・
 	 */
 	if (icmp4h->code > ICMP4_REDIRECT_PORT_AND_HOST ||
@@ -282,8 +266,7 @@
 
 /*
- *  icmp_input -- ICMP ã®å
-¥åé¢æ°
- *
- *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ *  icmp_input -- ICMP の入力関数
+ *
+ *    input には IF ヘッダと IP ヘッダも含まれている。
  */
 
@@ -300,5 +283,5 @@
 	NET_COUNT_ICMP4(net_count_icmp4.in_packets, 1);
 
-	/* ICMP ãããã®é·ãããã§ãã¯ããã*/
+	/* ICMP ヘッダの長さをチェックする。*/
 	if (input->len < IF_IP4_ICMP4_HDR_SIZE) {
 		NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
@@ -309,13 +292,13 @@
 	icmp4h = (T_ICMP4_HDR *)(input->buf + *offp);
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	len   = input->len - *offp;
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)input->buf + input->len, 0, (size_t)(align - len));
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	if (in_cksum(icmp4h, align) != 0) {
 		NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
@@ -323,5 +306,5 @@
 		}
 
-	/* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/
+	/* メッセージの型により分岐する。*/
 	switch (icmp4h->type) {
 	case ICMP4_ECHO_REQUEST:
@@ -371,9 +354,9 @@
 
 /*
- *  icmp_error -- ICMP ã¨ã©ã¼éä¿¡é¢æ°ã
- *
- *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
- *    icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ã
- *    å¼åºãå´ã§ãéæ¾ãã¦ããçµäºããã	
+ *  icmp_error -- ICMP エラー送信関数。
+ *
+ *    input には IF ヘッダと IP ヘッダも含まれている。
+ *    icmp_error では、ネットワークバッファ input を返却しないので、
+ *    呼出し側で、開放してから終了する。	
  */
 
@@ -390,5 +373,5 @@
 	ip4hl = GET_IP4_HDR_SIZE(ip4h);
 
-	/* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	/* 送信用の IP データグラムを獲得する。*/
 	if (input->len - ip4hl < 8)
 		len = input->len - ip4hl;
@@ -402,5 +385,5 @@
 		return;
 
-	/* ICMP ããããè¨­å®ããã*/
+	/* ICMP ヘッダを設定する。*/
 	icmp4h		= GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET);
 	icmp4h->type	= ICMP4_UNREACH;
@@ -408,21 +391,21 @@
 	icmp4h->data.addr= 0;
 
-	/* ã¨ã©ã¼ãçºçãã IP ãããã¨ ãã¼ã¿ 8 ãªã¯ããããã³ãã¼ããã*/
+	/* エラーが発生した IP ヘッダと データ 8 オクテットをコピーする。*/
 	memcpy(GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET),
 	       GET_IP4_HDR(input), (size_t)(ip4hl + len));
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + ip4hl + len,
 		       0, (size_t)(align - len));
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	icmp4h->sum = 0;
 	icmp4h->sum = in_cksum(icmp4h, (uint_t)(ICMP4_HDR_SIZE + ip4hl + align));
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP4(net_count_icmp4.out_octets,
 	               output->len - GET_IF_IP4_HDR_SIZE(output));
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,11 +72,11 @@
 
 /*
- *  ICMP ãããã®å®ç¾©ãRFC 792
+ *  ICMP ヘッダの定義、RFC 792
  */
 
 typedef struct t_icmp_hdr {
-	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
-	uint8_t		code;		/* ãµãå		*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	uint8_t		type;		/* メッセージの型	*/
+	uint8_t		code;		/* サブ型		*/
+	uint16_t	sum;		/* チェックサム		*/
 	union {
 		struct id_seq {
@@ -114,38 +102,38 @@
 
 /*
- *  ã¡ãã»ã¼ã¸ã®å
+ *  メッセージの型
  */
 
-#define ICMP4_ECHO_REPLY	UINT_C(0)	/* ã¨ã³ã¼å¿ç­		*/
-#define ICMP4_UNREACH		UINT_C(3)	/* ã¨ã©ã¼		*/
-#define ICMP4_SOURCE_QUENCH	UINT_C(4)	/* çºä¿¡å¶é		*/
-#define ICMP4_REDIRECT		UINT_C(5)	/* æ¹åå¤æ´		*/
-#define ICMP4_ECHO_REQUEST	UINT_C(8)	/* ã¨ã³ã¼è¦æ±		*/
-#define ICMP4_TIME_EXCEEDED	UINT_C(11)	/* çºä¿¡å¶é		*/
-#define ICMP4_PARAMETER		UINT_C(12)	/* ãã©ã¡ã¼ã¿ç°å¸¸	*/
-#define ICMP4_TIME_REQUEST	UINT_C(13)	/* ã¿ã¤ã ã¹ã¿ã³ãè¦æ±	*/
-#define ICMP4_TIME_REPLY	UINT_C(14)	/* ã¿ã¤ã ã¹ã¿ã³ãå¿ç­	*/
-#define ICMP4_MASK_REQUEST	UINT_C(17)	/* ã¢ãã¬ã¹ãã¹ã¯è¦æ±	*/
-#define ICMP4_MASK_REPLY	UINT_C(18)	/* ã¢ãã¬ã¹ãã¹ã¯å¿ç­	*/
+#define ICMP4_ECHO_REPLY	UINT_C(0)	/* エコー応答		*/
+#define ICMP4_UNREACH		UINT_C(3)	/* エラー		*/
+#define ICMP4_SOURCE_QUENCH	UINT_C(4)	/* 発信制限		*/
+#define ICMP4_REDIRECT		UINT_C(5)	/* 方向変更		*/
+#define ICMP4_ECHO_REQUEST	UINT_C(8)	/* エコー要求		*/
+#define ICMP4_TIME_EXCEEDED	UINT_C(11)	/* 発信制限		*/
+#define ICMP4_PARAMETER		UINT_C(12)	/* パラメータ異常	*/
+#define ICMP4_TIME_REQUEST	UINT_C(13)	/* タイムスタンプ要求	*/
+#define ICMP4_TIME_REPLY	UINT_C(14)	/* タイムスタンプ応答	*/
+#define ICMP4_MASK_REQUEST	UINT_C(17)	/* アドレスマスク要求	*/
+#define ICMP4_MASK_REPLY	UINT_C(18)	/* アドレスマスク応答	*/
 
 /*
- *  ãµãå
+ *  サブ型
  */
 
 /* ICMP4_UNREACH (3)	*/
 
-#define ICMP4_UNREACH_NET		UINT_C(0)	/* ãããã¯ã¼ã¯		*/
-#define ICMP4_UNREACH_HOST		UINT_C(1)	/* ãã¹ã		*/
-#define ICMP4_UNREACH_PROTOCOL		UINT_C(2)	/* ãã­ãã³ã«		*/
-#define ICMP4_UNREACH_PORT		UINT_C(3)	/* ãã¼ã		*/
-#define ICMP4_UNREACH_FLAG		UINT_C(4)	/* åå²			*/
-#define ICMP4_UNREACH_SRC_FAIL		UINT_C(5)	/* ã½ã¼ã¹çµè·¯		*/
-#define ICMP4_UNREACH_NET_UNKNOWN	UINT_C(6)	/* ãããã¯ã¼ã¯ä¸æ	*/
-#define ICMP4_UNREACH_HOST_UNKNOWN	UINT_C(7)	/* ãã¹ãä¸æ		*/
-#define ICMP4_UNREACH_ISOLATED		UINT_C(8)	/* åé¢			*/
+#define ICMP4_UNREACH_NET		UINT_C(0)	/* ネットワーク		*/
+#define ICMP4_UNREACH_HOST		UINT_C(1)	/* ホスト		*/
+#define ICMP4_UNREACH_PROTOCOL		UINT_C(2)	/* プロトコル		*/
+#define ICMP4_UNREACH_PORT		UINT_C(3)	/* ポート		*/
+#define ICMP4_UNREACH_FLAG		UINT_C(4)	/* 分割			*/
+#define ICMP4_UNREACH_SRC_FAIL		UINT_C(5)	/* ソース経路		*/
+#define ICMP4_UNREACH_NET_UNKNOWN	UINT_C(6)	/* ネットワーク不明	*/
+#define ICMP4_UNREACH_HOST_UNKNOWN	UINT_C(7)	/* ホスト不明		*/
+#define ICMP4_UNREACH_ISOLATED		UINT_C(8)	/* 分離			*/
 #define ICMP4_UNREACH_NET_PROHIB	UINT_C(9)	/* 			*/
 #define ICMP4_UNREACH_HOST_PROHIB	UINT_C(10)	/* 			*/
-#define ICMP4_UNREACH_TOS_NET		UINT_C(11)	/* ãããã¯ã¼ã¯ã¸ã®ä¸æ­£TOS*/
-#define ICMP4_UNREACH_TOS_HOST		UINT_C(12)	/* ãã¹ãã¸ã®ä¸æ­£TOS	*/
+#define ICMP4_UNREACH_TOS_NET		UINT_C(11)	/* ネットワークへの不正TOS*/
+#define ICMP4_UNREACH_TOS_HOST		UINT_C(12)	/* ホストへの不正TOS	*/
 #define ICMP4_UNREACH_FILTER_PROHIB	UINT_C(13)	/* 			*/
 #define ICMP4_UNREACH_HOST_PRECEDENCE	UINT_C(14)	/* 			*/
@@ -154,16 +142,15 @@
 /* ICMP4_REDIRECT (5)	*/
 
-#define ICMP4_REDIRECT_NET		UINT_C(0)	/* ãããã¯ã¼ã¯		*/
-#define ICMP4_REDIRECT_HOST		UINT_C(1)	/* ãã¹ã		*/
-#define ICMP4_REDIRECT_PORT_AND_NET	UINT_C(2)	/* ãã¼ãçªå·ã¨ããã	*/
-#define ICMP4_REDIRECT_PORT_AND_HOST	UINT_C(3)	/* ãã¼ãçªå·ã¨ãã¹ã	*/
+#define ICMP4_REDIRECT_NET		UINT_C(0)	/* ネットワーク		*/
+#define ICMP4_REDIRECT_HOST		UINT_C(1)	/* ホスト		*/
+#define ICMP4_REDIRECT_PORT_AND_NET	UINT_C(2)	/* ポート番号とネット	*/
+#define ICMP4_REDIRECT_PORT_AND_HOST	UINT_C(3)	/* ポート番号とホスト	*/
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -175,5 +162,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -187,5 +174,5 @@
 
 /*
- *  TINET ç¬èª API
+ *  TINET 独自 API
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_input.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_input.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_input.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -136,5 +124,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -142,6 +130,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -153,5 +140,5 @@
 
 /*
- *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼
+ *  データグラム再構成キュー
  */
 
@@ -160,5 +147,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -167,5 +154,5 @@
 
 /*
- *  ip_get_frag_queue -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãç²å¾ããã
+ *  ip_get_frag_queue -- データグラム再構成キューを獲得する。
  */
 
@@ -177,5 +164,5 @@
 
 /*
- *  ip_freef -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã
+ *  ip_freef -- データグラム再構成キューを解放する。
  */
 
@@ -195,5 +182,5 @@
 
 /*
- *  ip_frag_timer -- ãã¼ã¿ã°ã©ã åæ§æç®¡çã¿ã¤ã
+ *  ip_frag_timer -- データグラム再構成管理タイマ
  */
 
@@ -218,5 +205,5 @@
 
 /*
- *  ip_reass -- ãã¼ã¿ã°ã©ã ãåæ§æããã
+ *  ip_reass -- データグラムを再構成する。
  */
 
@@ -242,5 +229,5 @@
 
 	/*
-	 *  IDãIPã¢ãã¬ã¹ãä¸ä½ãã­ãã³ã«ãç°ãªããã©ã°ã¡ã³ããã­ã¥ã¼ã«æãã°ç ´æ£ããã
+	 *  ID、IPアドレス、上位プロトコルが異なるフラグメントがキューに有れば破棄する。
 	 */
 	frag = ip_frag_queue[ix];
@@ -259,6 +246,5 @@
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN], 1);
 
-		/* æ°è¦ã® ID ãªããå®å
-ã¢ãã¬ã¹ãä¿å­ãã¦ãã­ã¥ã¼ã«ã¤ãªãã*/
+		/* 新規の ID なら、宛先アドレスを保存して、キューにつなぐ。*/
 		frag_dst  [ix] = dst;
 		ip_frag_queue[ix] = input;
@@ -266,11 +252,10 @@
 		input = NULL;
 
-		/* åæ§æã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+		/* 再構成タイムアウトを設定する。*/
 		ip4h->ttl = IP4_FRAGTTL;
 		}
 	else {
 
-		/* æ­£ããä½ç½®ã«æ¿å
-¥ããã*/
+		/* 正しい位置に挿入する。*/
 		prev = NULL;
 		while (frag != NULL &&
@@ -289,10 +274,9 @@
 		input = NULL;
 
-		/* å
-¨ã¦ã®ãã©ã°ã¡ã³ããæã£ã¦ãããèª¿ã¹ãã*/
+		/* 全てのフラグメントが揃っているか調べる。*/
 		off = 0;
 		for (frag = ip_frag_queue[ix]; frag != NULL; frag = GET_QIP4_HDR(frag)->next) {
 			if ((IP4_FLGOFF_OFF(GET_QIP4_HDR(frag)->flg_off) << 3) != off) {
-				/* éä¸­ãæãã¦ãããçµäºããã*/
+				/* 途中が抜けていたら終了する。*/
 				syscall(sig_sem(SEM_IP4_FRAG_QUEUE));
 				return NULL;
@@ -302,14 +286,13 @@
 			}
 
-		/* å
-¨ã¦ã®ãã©ã°ã¡ã³ããæã£ããåæ§æããã*/
+		/* 全てのフラグメントが揃ったら再構成する。*/
 		if ((GET_QIP4_HDR(prev)->flg_off & IP4_MF) == 0) {
 
-			/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+			/* ネットワークバッファを獲得する。*/
 			if (tget_net_buf(&input, IF_IP4_HDR_SIZE + off, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) {
 				NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_OK], 1);
 				NET_COUNT_MIB(ip_stats.ipReasmOKs, 1);
 
-				/* IPv4 ããããè¨­å®ããã*/
+				/* IPv4 ヘッダを設定する。*/
 				frag  = ip_frag_queue[ix];
 				ip4h  = GET_IP4_HDR(input);
@@ -321,5 +304,5 @@
 				ip4h->flg_off = ip4h->id = 0;
 
-				/* ãã¼ã¿ã°ã©ã ãåæ§æããã*/
+				/* データグラムを再構成する。*/
 				off = IP4_HDR_SIZE;
 				while (frag != NULL) {
@@ -335,5 +318,5 @@
 				NET_COUNT_MIB(ip_stats.ipReasmFails, 1);
 				}
-			/* ã­ã¥ã¼ãç©ºã«ããã*/
+			/* キューを空にする。*/
 			ip_freef(ix);
 			}
@@ -346,5 +329,5 @@
 
 /*
- *  ip_init -- IP ã®åæå
+ *  ip_init -- IP の初期化
  */
 
@@ -356,5 +339,5 @@
 
 /*
- *  ip_remove_options -- IPv4 ãããã®ãªãã·ã§ã³ãåé¤ããä»¥éãåã«è©°ããã
+ *  ip_remove_options -- IPv4 ヘッダのオプションを削除し、以降を前に詰める。
  */
 
@@ -378,12 +361,10 @@
 
 /*
- *  ip_input -- IP ã®å
-¥åé¢æ°
+ *  ip_input -- IP の入力関数
  */
 
 #if defined(SUPPORT_IPSEC)
 /*
- * TODO: IPsec SPãæ¤ç´¢ãããã±ããããªã¸ã§ã¯ããããã©ããå¤å®ããå¦çãå®è£
-ãã
+ * TODO: IPsec SPを検索し、パケットをリジェクトするかどうか判定する処理を実装する
  */
 #endif /* of defined(SUPPORT_IPSEC) */
@@ -401,5 +382,5 @@
 	NET_COUNT_MIB(ip_stats.ipInReceives, 1);
 
-	/* IP ãããã®é·ãããã§ãã¯ããã*/
+	/* IP ヘッダの長さをチェックする。*/
 	if (input->len < IF_IP4_HDR_SIZE) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1);
@@ -411,5 +392,5 @@
 	hlen = GET_IP4_HDR_SIZE(ip4h);
 
-	/* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/
+	/* バージョンをチェックする。*/
 	if (IP4_VHL_V(ip4h->vhl) != IPV4_VERSION) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_VER], 1);
@@ -418,11 +399,11 @@
 		}
 
-	/* IP ãããã®é·ãããã§ãã¯ãããªãã·ã§ã³ãè§£æããã*/
+	/* IP ヘッダの長さをチェックし、オプションを解析する。*/
 	if (hlen > IP4_HDR_SIZE) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_OPTS], 1);
-		/* %%% ãªãã·ã§ã³ã®è§£æ %%% */
-		}
-
-	/* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/
+		/* %%% オプションの解析 %%% */
+		}
+
+	/* データグラム長をチェックする。*/
 	if (ntohs(ip4h->len) > input->len - IF_HDR_SIZE) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1);
@@ -431,8 +412,8 @@
 		}
 
-	/* ãããã¯ã¼ã¯ãããã¡ã®é·ãããã¼ã¿ã°ã©ã é·ã«èª¿æ´ããã*/
+	/* ネットワークバッファの長さをデータグラム長に調整する。*/
 	input->len = (uint16_t)(ntohs(ip4h->len) + IF_HDR_SIZE);
 
-	/* ãã§ãã¯ãµã ããã§ãã¯ããã*/
+	/* チェックサムをチェックする。*/
 	if (in_cksum(ip4h, hlen) != 0) {
 		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_CKSUM], 1);
@@ -441,11 +422,10 @@
 		}
 
-	/* IP ãããã®é·ãããã§ãã¯ããä¸ä½ã ICMP ä»¥å¤ã¯ãªãã·ã§ã³ãæ¶å»ããã*/
+	/* IP ヘッダの長さをチェックし、上位が ICMP 以外はオプションを消去する。*/
 	if (hlen > IP4_HDR_SIZE && ip4h->proto != IPPROTO_ICMP) {
 		memset((uint8_t*)ip4h + IP4_HDR_SIZE, 0, hlen - IP4_HDR_SIZE);
 		}
 
-	/* éä¿¡å
-ã¢ãã¬ã¹ããã§ãã¯ããã*/
+	/* 送信元アドレスをチェックする。*/
 	src = ntohl(ip4h->src);
 	bc  = (ifp->in_ifaddr.addr & ifp->in_ifaddr.mask) | ~ifp->in_ifaddr.mask;
@@ -469,6 +449,5 @@
 #endif	/* of #ifdef SUPPORT_LOOP */
 
-	/* ãã¦å
-ã¢ãã¬ã¹ããã§ãã¯ããã*/
+	/* あて先アドレスをチェックする。*/
 	dst = ntohl(ip4h->dst);
 
@@ -476,6 +455,6 @@
 
 	/*
-	 *  DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ãã­ã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©ã®
-	 *  å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+	 *  DHCP_CFG が定義されているときは、ローカルアドレスが未定義の
+	 *  場合もデータグラムを受信する。
 	 */
 
@@ -511,5 +490,5 @@
 #ifdef IP4_CFG_FRAGMENT
 
-	/* åå²ããã¦ããããã§ãã¯ããã*/
+	/* 分割されているかチェックする。*/
 	if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) {
 		if ((input = ip_reass(ip4h, input)) == NULL)
@@ -519,5 +498,5 @@
 #else	/* of #ifdef IP4_CFG_FRAGMENT */
 
-	/* åå²ããã¦ããããã§ãã¯ããã*/
+	/* 分割されているかチェックする。*/
 	if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) {
 		T_IN4_ADDR	src;
@@ -537,5 +516,5 @@
 
 #if defined(SUPPORT_IPSEC)
-	/* ããã§ipsec4_in_rejectãå®è¡ãã */
+	/* ここでipsec4_in_rejectを実行する */
 	if ((ip4h->proto != IPPROTO_ESP) && ipsec4_in_reject (input)) {
 		goto buf_rel;
@@ -543,5 +522,5 @@
 #endif /* of #if defined(SUPPORT_IPSEC) */
 
-	/* ãã­ãã³ã«ãé¸æãã */
+	/* プロトコルを選択する */
 	switch (ip4h->proto) {
 
@@ -580,5 +559,5 @@
 		NET_COUNT_MIB(ip_stats.ipInUnknownProtos, 1);
 
-		/* ã­ã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/
+		/* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/
 		if (dst == ifp->in_ifaddr.addr) {
 			T_IN4_ADDR	src;
@@ -589,6 +568,6 @@
 			}
 		/*
-		 *  icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§
-		 *  éæ¾ãã¦ããçµäºããã
+		 *  icmp_error では、ネットワークバッファ input を返却しないので
+		 *  開放してから終了する。
 		 */
 		break;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_output.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_output.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_output.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -120,7 +108,7 @@
 
 /*
- *  IP output -- IP ã®åºåé¢æ°
- *
- *    æ³¨æ: ãã¼ã¸ã§ã³ã¨ãããé·ã¯ä¸ä½å±¤ã§è¨­å®ããã
+ *  IP output -- IP の出力関数
+ *
+ *    注意: バージョンとヘッダ長は上位層で設定する。
  */
 
@@ -141,7 +129,7 @@
 
 #ifdef SUPPORT_IPSEC
-        /* XXX: IPsecã®å¦çã¯ãã±ããæ­çåã®åã«è¡ããã */
-
-	/* SPDãåå¾ãã */
+        /* XXX: IPsecの処理はパケット断片化の前に行われる */
+
+	/* SPDを取得する */
 	sp = ipsec4_getpolicybyaddr(output, IPSEC_DIR_OUTBOUND, &ipsec_error);
 	if (sp==NULL) {
@@ -150,5 +138,5 @@
         }
 
-        /* ããªã·ããã§ãã¯ãã*/
+        /* ポリシをチェックする*/
 #if 0
         switch (sp->policy) {
@@ -162,7 +150,7 @@
 
         case  IPSEC_POLICY_IPSEC:
-                /* XXX: SH2ã§ã¯ããã§illegal Instructionãçºçãããã³ã³ãã¤ã©ã®ãã°? */
+                /* XXX: SH2ではここでillegal Instructionが発生する。コンパイラのバグ? */
                 if (sp->req == NULL) {
-                        /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã */
+                        /* 鍵交換デーモンに対してSAの取得を要求する */
                         goto bad;
                 }
@@ -170,11 +158,10 @@
 
         default:
-                /* ä¸æ­£ãªããªã· */
+                /* 不正なポリシ */
                 goto bad;
                 break;
         }
 #else /* 0 */
-        /* XXX: ã³ã³ãã¤ã©ã®ä¸å
-·ååé¿ã®ãã switchãããifæã§æ¸ãç´ãã */
+        /* XXX: コンパイラの不具合回避のため switchをやめif文で書き直した */
         policy = sp->spinitb->policy;
 
@@ -185,5 +172,5 @@
         else if (policy == IPSEC_POLICY_IPSEC) {
                 if (sp->req == NULL)
-                        /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã */
+                        /* 鍵交換デーモンに対してSAの取得を要求する */
                         goto bad;
         } else
@@ -196,11 +183,10 @@
 
 			state.m = output;
-			/* XXX: ipsec4_output()å
-ã§ã¯ãip->{len,off}ããããã¯ã¼ã¯ãã¤ããªã¼ãã¨ãã */
+			/* XXX: ipsec4_output()内では、ip->{len,off}をネットワークバイトオーダとする */
 			error = ipsec4_output (&state, sp, 0 /* flags */ );
 			output = state.m;
 
 			if (error) {
-				/* net_buf ã¯ipsec4_outputã«ãã£ã¦æ¢ã«è§£æ¾ããã¦ãã */
+				/* net_buf はipsec4_outputによって既に解放されている */
 				switch (error) {
 				default:
@@ -210,7 +196,6 @@
 		}
 
-        /* ipsec4_outputã«å½±é¿ãåããå¤ãæ´æ°ãã */
-        /* XXX: å¿
-è¦ã? */
+        /* ipsec4_outputに影響を受けた値を更新する */
+        /* XXX: 必要か? */
 
 skip_ipsec:
@@ -224,7 +209,6 @@
 
 	/*
-	 *  ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶
-ãã¦ããã°ã
-	 *  åå²ãã¦éä¿¡ããã
+	 *  データグラムサイズがネットワークの MTU を超えていれば、
+	 *  分割して送信する。
 	 */
 	if (ntohs(ip4h->len) > IF_MTU) {
@@ -244,14 +228,14 @@
 				flen = len - off;
 
-			/* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã	*/
+			/* データ長は 4 オクテット境界に調整する。	*/
 			align = (flen + 3) >> 2 << 2;
 
-			/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+			/* ネットワークバッファを獲得する。*/
 			if (tget_net_buf(&frag, align + IF_IP4_HDR_SIZE, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) {
 
-				/* ãã©ã°ã¡ã³ããã³ãã¼ããã*/
+				/* フラグメントをコピーする。*/
 				memcpy(GET_IP4_SDU(frag), (uint8_t *)ip4h + off, flen);
 
-				/* ããããåããã*/
+				/* ヘッダを埋める。*/
 				fip4h		= GET_IP4_HDR(frag);
 				*fip4h		= *ip4h;
@@ -276,5 +260,5 @@
 				}
 			else {
-				/* ç²å¾ã§ããªããã°ãéä¿¡ããããããã*/
+				/* 獲得できなければ、送信をあきらめる。*/
 				syscall(rel_net_buf(output));
 				NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
@@ -291,5 +275,5 @@
 	else {
 
-		/* ããããåããã*/
+		/* ヘッダを埋める。*/
 		ip4h->id  = htons(frag_id);
 		frag_id ++;
@@ -309,10 +293,9 @@
 	ip4h = GET_IP4_HDR(output);
 
-	/* ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶
-ãã¦ããã°ã¨ã©ã¼ */
+	/* データグラムサイズがネットワークの MTU を超えていればエラー */
 	if (ntohs(ip4h->len) > IF_MTU)
 		return E_PAR;
 
-	/* ããããåããã*/
+	/* ヘッダを埋める。*/
 	ip4h->id  = htons(frag_id);
 	frag_id ++;
@@ -324,5 +307,5 @@
 
 #ifdef ETHER_CFG_MULTICAST
-	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®å ´åã¯IPã¢ãã¬ã¹ã¯ãã®ã¾ã¾ */
+	/* マルチキャストアドレスの場合はIPアドレスはそのまま */
 	gw = ntohl(ip4h->dst);
 	if(!IN4_IS_ADDR_MULTICAST(gw))
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  IPv4 ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ *  IPv4 ヘッダ・ペイロードアクセスマクロ
  */
 
@@ -99,5 +87,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
  */
 
@@ -124,11 +112,11 @@
 
 /*
- *  IP ã® MSS ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  IP の MSS サイズのネットワークバッファ
  */
 
 typedef struct t_net_buf_ip_mss {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -138,15 +126,15 @@
 #endif
 	uint8_t		buf[IF_HDR_SIZE + IP4_MSS];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} T_NET_BUF_IP_MSS;
 
 /*
- *  65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  65536 オクテットサイズのネットワークバッファ
  */
 
 typedef struct t_net_buf4_65536 {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -156,8 +144,8 @@
 #endif
 	uint8_t		buf[IF_IP4_HDR_SIZE + 65536];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 #if defined(IF_PDU_HDR_PADDING)
 	uint8_t		padding[IF_PDU_HDR_PADDING];
-#endif				/* ãããã®ä½å		*/
+#endif				/* ヘッダの余分		*/
 	} T_NET_BUF4_65536;
 
@@ -165,10 +153,10 @@
 
 /*
- *  åæ§æã­ã¥ã¼ç¨ IPv4 ãããã®å®ç¾©
+ *  再構成キュー用 IPv4 ヘッダの定義
  */
 
 typedef struct t_qip4_hdr {
 	uint8_t		vhl;		/* version << 4 | header length >> 2	*/
-					/* length ã¯ 4 octets åä½		*/
+					/* length は 4 octets 単位		*/
 	uint8_t		type;		/* type of services			*/
 	uint16_t	len;		/* total length				*/
@@ -183,5 +171,5 @@
 	uint32_t	src;		/* source address			*/
 
-	T_NET_BUF	*next;		/* æ¬¡ã® IPv4 ãã©ã°ã¡ã³ã			*/
+	T_NET_BUF	*next;		/* 次の IPv4 フラグメント			*/
 	} __attribute__((packed, aligned(2)))T_QIP4_HDR;
 
@@ -196,11 +184,11 @@
 
 /*
- *  ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡
+ *  データグラム再構成用ネットワークバッファ
  */
 
 typedef struct t_net_buf4_reassm {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -210,5 +198,5 @@
 #endif
 	uint8_t		buf[IP4_CFG_FRAG_REASSM_SIZE];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} T_NET_BUF4_REASSM;
 
@@ -216,10 +204,10 @@
 
 /*
- *  TCP ã®åæ§æã­ã¥ã¼ã«ããã IPv4 ãããã®å®ç¾©
+ *  TCP の再構成キューにおける IPv4 ヘッダの定義
  */
 
 typedef struct t_tcp_ip4_q_hdr {
 	uint8_t		vhl;		/* version << 4 | header length >> 2	*/
-					/* length ã¯ 4 octets åä½		*/
+					/* length は 4 octets 単位		*/
 	uint8_t		type;		/* type of services			*/
 	uint16_t	len;		/* total length				*/
@@ -230,5 +218,5 @@
 	uint8_t		ttl;		/* time to live				*/
 	uint8_t		proto;		/* protocol				*/
-	uint16_t	thoff;		/* TCP ãããã®ãªãã»ãã		*/
+	uint16_t	thoff;		/* TCP ヘッダのオフセット		*/
 
 	T_IN4_ADDR	src;		/* source address			*/
@@ -239,6 +227,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -282,5 +269,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  TCP ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  TCP で使用するカーネルオブジェクト
  */
 
 #ifdef SUPPORT_TCP
 
-/* åºåã¿ã¹ã¯ */
+/* 出力タスク */
 
 CRE_TSK(TCP_OUTPUT_TASK, {
@@ -61,5 +49,5 @@
 	});
 
-/* ã»ããã© */
+/* セマフォ */
 
 CRE_SEM(SEM_TCP_POST_OUTPUT,	{ TA_TPRI, 0, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,24 +72,21 @@
 
 /*
- *  TCP ããããRFC 793 åç
-§
+ *  TCP ヘッダ、RFC 793 参照
  */
 
 typedef struct t_tcp_hdr {
-	uint16_t	sport;		/* éä¿¡å
-ãã¼ãçªå·			*/
-	uint16_t	dport;		/* å®å
-ãã¼ãçªå·			*/
+	uint16_t	sport;		/* 送信元ポート番号			*/
+	uint16_t	dport;		/* 宛先ポート番号			*/
 
-	uint32_t	seq;		/* SEQ çªå·				*/
+	uint32_t	seq;		/* SEQ 番号				*/
 
-	uint32_t	ack;		/* ACK çªå·				*/
+	uint32_t	ack;		/* ACK 番号				*/
 
-	uint8_t		doff;		/* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã)	*/
-	uint8_t		flags;		/* ãã©ã°(ä¸ä½6ããã)			*/
-	uint16_t	win;		/* ã¦ã£ã³ããµã¤ãº			*/
+	uint8_t		doff;		/* データオフセット(上位4ビット)	*/
+	uint8_t		flags;		/* フラグ(下位6ビット)			*/
+	uint16_t	win;		/* ウィンドサイズ			*/
 
-	uint16_t	sum;		/* ãã§ãã¯ãµã 				*/
-	uint16_t	urp;		/* ç·æ¥ãã¤ã³ã¿				*/
+	uint16_t	sum;		/* チェックサム				*/
+	uint16_t	urp;		/* 緊急ポインタ				*/
 	} __attribute__((packed, aligned(2)))T_TCP_HDR;
 
@@ -109,5 +94,5 @@
 
 /*
- *  TCP ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã­
+ *  TCP ヘッダ構造体メンバアクセスマクロ
  */
 
@@ -117,51 +102,50 @@
 
 /*
- *  TCP ãããã®ãã©ã°ãã£ã¼ã«ãã®å¤ã®å®ç¾©
+ *  TCP ヘッダのフラグフィールドの値の定義
  */
 
-#define TCP_FLG_FIN		UINT_C(0x01)	/* FIN:	æçµ			*/
-#define TCP_FLG_SYN		UINT_C(0x02)	/* SYN:	åæ			*/
-#define TCP_FLG_RST		UINT_C(0x04)	/* RST:	ã³ãã¯ã·ã§ã³ã®ãªã»ãã	*/
-#define TCP_FLG_PUSH		UINT_C(0x08)	/* PUSH:ããã·ã¥æ©è½		*/
-#define TCP_FLG_ACK		UINT_C(0x10)	/* ACK:	è¯å®å¿ç­		*/
-#define TCP_FLG_URG		UINT_C(0x20)	/* URG:	ç·æ¥æ
-å ±		*/
+#define TCP_FLG_FIN		UINT_C(0x01)	/* FIN:	最終			*/
+#define TCP_FLG_SYN		UINT_C(0x02)	/* SYN:	同期			*/
+#define TCP_FLG_RST		UINT_C(0x04)	/* RST:	コネクションのリセット	*/
+#define TCP_FLG_PUSH		UINT_C(0x08)	/* PUSH:プッシュ機能		*/
+#define TCP_FLG_ACK		UINT_C(0x10)	/* ACK:	肯定応答		*/
+#define TCP_FLG_URG		UINT_C(0x20)	/* URG:	緊急情報		*/
 
 /*
- *  TCP ãªãã·ã§ã³ã®å®ç¾©
+ *  TCP オプションの定義
  */
 
-/* ãªãã·ã§ã³ã®å */
+/* オプションの型 */
 
-#define TCP_OPT_EOL		UINT_C(0)	/* æçµ				*/
-#define TCP_OPT_NOP		UINT_C(1)	/* ä½ãããªã			*/
-#define TCP_OPT_MAXSEG		UINT_C(2)	/* æå¤§ã»ã°ã¡ã³ãé·		*/
-#define TCP_OPT_WINDOW		UINT_C(3)	/* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°		*/
-#define TCP_OPT_SACK_PERM	UINT_C(4)	/* é¸æ ACK è¨±å¯		*/
-#define TCP_OPT_SACK		UINT_C(5)	/* é¸æ ACK			*/
-#define TCP_OPT_TIMESTAMP	UINT_C(8)	/* ã¿ã¤ã ã¹ã¿ã³ã		*/
-#define TCP_OPT_CC		UINT_C(11)	/* æ¥ç¶ã«ã¦ã³ã			*/
-#define TCP_OPT_CCNEW		UINT_C(12)	/* æ¥ç¶ã«ã¦ã³ã			*/
-#define TCP_OPT_CCECHO		UINT_C(13)	/* æ¥ç¶ã«ã¦ã³ã			*/
+#define TCP_OPT_EOL		UINT_C(0)	/* 最終				*/
+#define TCP_OPT_NOP		UINT_C(1)	/* 何もしない			*/
+#define TCP_OPT_MAXSEG		UINT_C(2)	/* 最大セグメント長		*/
+#define TCP_OPT_WINDOW		UINT_C(3)	/* ウィンドスケーリング		*/
+#define TCP_OPT_SACK_PERM	UINT_C(4)	/* 選択 ACK 許可		*/
+#define TCP_OPT_SACK		UINT_C(5)	/* 選択 ACK			*/
+#define TCP_OPT_TIMESTAMP	UINT_C(8)	/* タイムスタンプ		*/
+#define TCP_OPT_CC		UINT_C(11)	/* 接続カウント			*/
+#define TCP_OPT_CCNEW		UINT_C(12)	/* 接続カウント			*/
+#define TCP_OPT_CCECHO		UINT_C(13)	/* 接続カウント			*/
 
-/* ãªãã·ã§ã³ã®é·ã */
+/* オプションの長さ */
 
-#define TCP_OPT_LEN_MAXSEG	4		/* æå¤§ã»ã°ã¡ã³ãé·		*/
-#define TCP_OPT_LEN_WINDOW	3		/* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°		*/
-#define TCP_OPT_LEN_SACK_PERM	4		/* é¸æ ACK è¨±å¯		*/
-#define TCP_OPT_LEN_SACK	5		/* é¸æ ACK			*/
-#define TCP_OPT_LEN_TIMESTAMP	10		/* ã¿ã¤ã ã¹ã¿ã³ã		*/
-#define TCP_OPT_LEN_CC		6		/* æ¥ç¶ã«ã¦ã³ã			*/
-#define TCP_OPT_LEN_CCNEW	6		/* æ¥ç¶ã«ã¦ã³ã			*/
-#define TCP_OPT_LEN_CCECHO	6		/* æ¥ç¶ã«ã¦ã³ã			*/
+#define TCP_OPT_LEN_MAXSEG	4		/* 最大セグメント長		*/
+#define TCP_OPT_LEN_WINDOW	3		/* ウィンドスケーリング		*/
+#define TCP_OPT_LEN_SACK_PERM	4		/* 選択 ACK 許可		*/
+#define TCP_OPT_LEN_SACK	5		/* 選択 ACK			*/
+#define TCP_OPT_LEN_TIMESTAMP	10		/* タイムスタンプ		*/
+#define TCP_OPT_LEN_CC		6		/* 接続カウント			*/
+#define TCP_OPT_LEN_CCNEW	6		/* 接続カウント			*/
+#define TCP_OPT_LEN_CCECHO	6		/* 接続カウント			*/
 
 /*
- *  TCP æå¤§ã»ã°ã¡ã³ããµã¤ãº
+ *  TCP 最大セグメントサイズ
  */
 
 /*
- *  IPv4 ã® TCP æå¤§ã»ã°ã¡ã³ããµã¤ãº
- *  IP4_MSS ã¯ 576 ã§ãæ¨æºã® IPv4 ãããé· (20) ã¨
- *  TCP ãããé· (20) ãå¼ããå¤ 536 ã§ãããã512 ãæ¨æºã¨ããã
+ *  IPv4 の TCP 最大セグメントサイズ
+ *  IP4_MSS は 576 で、標準の IPv4 ヘッダ長 (20) と
+ *  TCP ヘッダ長 (20) を引いた値 536 であるが、512 を標準とする。
  */
 
@@ -169,7 +153,7 @@
 
 /*
- *  IPv6 ã® TCP æå¤§ã»ã°ã¡ã³ããµã¤ãº
- *  IPV6_MMTU ã¯ 1280 ã§ãæ¨æºã® IPv6 ãããé· (40) ã¨
- *  TCP ãããé· (20) ãå¼ããå¤ 1220 ã§ãããã1024 ãæ¨æºã¨ããã
+ *  IPv6 の TCP 最大セグメントサイズ
+ *  IPV6_MMTU は 1280 で、標準の IPv6 ヘッダ長 (40) と
+ *  TCP ヘッダ長 (20) を引いた値 1220 であるが、1024 を標準とする。
  */
 
@@ -177,7 +161,7 @@
 
 /*
- *  TCP æå°ã»ã°ã¡ã³ããµã¤ãº
+ *  TCP 最小セグメントサイズ
  *
- *  256ï¼æå°ãªã³ã¯ MTUï¼- 40 = 216
+ *  256（最小リンク MTU）- 40 = 216
  */
 
@@ -185,5 +169,5 @@
 
 /*
- *  TCP æå¤§ã¦ã£ã³ãã¦ãµã¤ãº
+ *  TCP 最大ウィンドウサイズ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_fsm.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_fsm.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_fsm.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,29 +72,21 @@
 
 /*
- *  TCP FSM ç¶æ
-ã®å®ç¾©ãRFC 793 åç
-§
+ *  TCP FSM 状態の定義、RFC 793 参照
  */
 
-#define TCP_FSM_CLOSED		0	/* ã¯ã­ã¼ãº				*/
-#define TCP_FSM_LISTEN		1	/* ååãªã¼ãã³				*/
-#define TCP_FSM_SYN_SENT	2	/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿		*/
-#define TCP_FSM_SYN_RECVD	3	/* ååãªã¼ãã³ãSYN åä¿¡æ¸ã¿		*/
-#define TCP_FSM_ESTABLISHED	4	/* ã³ãã¯ã·ã§ã³éè¨­å®äº			*/
-#define TCP_FSM_CLOSE_WAIT	5	/* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾
-ã¡	*/
-#define TCP_FSM_FIN_WAIT_1	6	/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
-ã¡	*/
-#define TCP_FSM_CLOSING		7	/* åæã¯ã­ã¼ãºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡	*/
-#define TCP_FSM_LAST_ACK	8	/* APP ãçµäºãACK å¾
-ã¡			*/
-#define TCP_FSM_FIN_WAIT_2	9	/* ç¸æããã® FIN å¾
-ã¡			*/
-#define TCP_FSM_TIME_WAIT	10	/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
-ã¡	*/
+#define TCP_FSM_CLOSED		0	/* クローズ				*/
+#define TCP_FSM_LISTEN		1	/* 受動オープン				*/
+#define TCP_FSM_SYN_SENT	2	/* 能動オープン、SYN 送信済み		*/
+#define TCP_FSM_SYN_RECVD	3	/* 受動オープン、SYN 受信済み		*/
+#define TCP_FSM_ESTABLISHED	4	/* コネクション開設完了			*/
+#define TCP_FSM_CLOSE_WAIT	5	/* 相手から FIN 受信、APP の終了待ち	*/
+#define TCP_FSM_FIN_WAIT_1	6	/* APP が終了、FIN 送信済み、ACK 待ち	*/
+#define TCP_FSM_CLOSING		7	/* 同時クローズ、FIN 交換済み、ACK 待ち	*/
+#define TCP_FSM_LAST_ACK	8	/* APP が終了、ACK 待ち			*/
+#define TCP_FSM_FIN_WAIT_2	9	/* 相手からの FIN 待ち			*/
+#define TCP_FSM_TIME_WAIT	10	/* 相手からの FIN 受信済み、時間待ち	*/
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_input.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_input.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_input.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -132,9 +120,9 @@
 
 /*
- *  æ»ãå¤
+ *  戻り値
  *
- *      RET_OK		æ­£å¸¸
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *      RET_OK		正常
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -146,5 +134,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -165,10 +153,9 @@
 
 /*
- *  ã¿ã¹ã¯ããã® Time Wait ç¶æ
- CEP åé¢æ©è½
- */
-
-/*
- *  é¢æ°
+ *  タスクからの Time Wait 状態 CEP 分離機能
+ */
+
+/*
+ *  関数
  */
 
@@ -177,5 +164,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -183,7 +170,7 @@
 
 /*
- *  tcp_find_twcep -- ãã¼ãçªå·ãã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ãå¾ãã
+ *  tcp_find_twcep -- ポート番号から Time Wait 用 TCP 通信端点を得る。
  *
- *    æ³¨æ: dstaddr ã¯ããããã¯ã¼ã¯ãã¤ããªã¼ã
+ *    注意: dstaddr は、ネットワークバイトオーダ
  */
 
@@ -194,7 +181,6 @@
 	
 	/*
-	 *  ç¶æ
-ã TIME WAIT ã§ã
-	 *  IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããéä¿¡ç«¯ç¹ãæ¢ç´¢ããã
+	 *  状態が TIME WAIT で、
+	 *  IP アドレスとポート番号が一致する通信端点を探索する。
 	 */
 	for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
@@ -211,8 +197,6 @@
 
 /*
- *  å¿
-è¦ãªæ
-å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã¦ã
- *  æ¨æºã® TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+ *  必要な情報を Time Wait 用 TCP 通信端点に移して、
+ *  標準の TCP 通信端点を開放する。
  */
 
@@ -222,13 +206,11 @@
 	T_TCP_TWCEP*	twcep;
 
-	/* ç©ºãã® Time Wait ç¨ TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ããã*/
+	/* 空きの Time Wait 用 TCP 通信端点を探索する。*/
 	for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
 		if (twcep->fsm_state != TCP_FSM_TIME_WAIT) {
 
 			/*
-			 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-			 *  å¿
-è¦ãªæ
-å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã
+			 *  通信端点をロックし、
+			 *  必要な情報を Time Wait 用 TCP 通信端点に移す。
 			 */
 			syscall(wai_sem(cep->semid_lock));
@@ -242,8 +224,8 @@
 			twcep->timer_2msl	= cep->timer[TCP_TIM_2MSL];
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 
-			/* æ¨æº TCP éä¿¡ç«¯ç¹ãéæ¾ããã*/
+			/* 標準 TCP 通信端点を開放する。*/
 			tcp_close(cep);
 
@@ -256,5 +238,5 @@
 
 /*
- *  parse_option -- TCP ãããã®ãªãã·ã§ã³ãè§£æããã
+ *  parse_option -- TCP ヘッダのオプションを解析する。
  */
 
@@ -311,5 +293,5 @@
 
 /*
- *  set_rexmt_timer -- æ°ããå¾å¾©æéãåéããåéã¿ã¤ããæ´æ°ããã
+ *  set_rexmt_timer -- 新しい往復時間を収集し、再送タイマを更新する。
  */
 
@@ -322,20 +304,20 @@
 	if (cep->srtt != 0) {
 		/*
-		 *  srtt: å¹³æ»åããã RTT
+		 *  srtt: 平滑化された RTT
 		 *
-		 *  è¨æ¸¬ããã RTT (rtt) ã¨ç¾å¨ã®å¹³æ»åããã RTT (srtt) ã®å·® (delta) ãæ±ããã
+		 *  計測された RTT (rtt) と現在の平滑化された RTT (srtt) の差 (delta) を求める。
 		 *
-		 *  delta ã¯ 2 ãããå·¦ã·ãã ( 4 å) ããå¤ã§ä¿æããã
-		 *  srtt  ã¯ 5 ãããå·¦ã·ãã (32 å) ããå¤ã§ä¿æããã¦ããã
+		 *  delta は 2 ビット左シフト ( 4 倍) した値で保持する。
+		 *  srtt  は 5 ビット左シフト (32 倍) した値で保持されている。
 		 *
 		 *    delta = rtt / 8 - srtt / 8
 		 *
-		 *  æ°ãã srtt ã¯
+		 *  新しい srtt は
 		 *
 		 *    srtt = rtt / 8 + srtt * 7 / 8
 		 *         = srtt + (rtt / 8 - srtt / 8)
 		 *
-		 *  ã§è¨ç®ããã
-		 *  ãã®ãããrtt ã 2 ãããå·¦ã·ããããsrtt ã (5 - 2) ãããå³ã·ãããã¦ delta ãæ±ããã
+		 *  で計算する。
+		 *  このため、rtt を 2 ビット左シフトし、srtt を (5 - 2) ビット右シフトして delta を求める。
 		 */
 		delta = ((rtt - 1) << TCP_DELTA_SHIFT) - (cep->srtt >> (TCP_SRTT_SHIFT - TCP_DELTA_SHIFT));
@@ -345,5 +327,5 @@
 
 		/*
-		 *  delta ã®çµ¶å¯¾å¤ | delta | ãæ±ããã
+		 *  delta の絶対値 | delta | を求める。
 		 */
 		if (delta < 0)
@@ -351,16 +333,16 @@
 
 		/*
-		 *  rttvar: å¹³æ»åãããåæ£
+		 *  rttvar: 平滑化された分散
 		 *
-		 *  rttvar ã¯ 4 ãããå·¦ã·ãã (16 å) ããå¤ã§ä¿æããã¦ããã
+		 *  rttvar は 4 ビット左シフト (16 倍) した値で保持されている。
 		 *
 		 *    delta = |delta| / 4 - rttvar / 4
 		 *
-		 *  æ°ãã rttvar ã¯
+		 *  新しい rttvar は
 		 *
 		 *    rttvar = |delta|/ 4 + rttvar * 3 /4
 		 *           = rttvar + (|delta| / 4 - rttvar / 4)
 		 *
-		 *  ã§è¨ç®ããã
+		 *  で計算する。
 		 */
 		delta -= cep->rttvar >> (TCP_RTTVAR_SHIFT - TCP_DELTA_SHIFT);
@@ -371,7 +353,7 @@
 	else {
 		/*
-		 *  ã¾ã  srtt ã®è¨­å®ãè¡ããã¦ããªãã¨ãã¯ãä»åè¨æ¸¬ããã RTT ãä½¿ç¨ããã
-		 *  å¹³æ»åããã RTT (srtt) ã«ã¯ãRTT ã 5 ãããå·¦ã·ãã (32å) ããå¤ã
-		 *  å¹³æ»åãããåæ£ (rttvar) ã«ã¯ãRTT ã® 1/2 ã 4 ãããå·¦ã·ãã (16å) ããå¤ã
+		 *  まだ srtt の設定が行われていないときは、今回計測された RTT を使用する。
+		 *  平滑化された RTT (srtt) には、RTT を 5 ビット左シフト (32倍) した値。
+		 *  平滑化された分散 (rttvar) には、RTT の 1/2 を 4 ビット左シフト (16倍) した値。
 		 */
 		cep->srtt   = rtt <<  TCP_SRTT_SHIFT;
@@ -380,10 +362,10 @@
 
 	/*
-	 *  rtt ã®æ¸¬å®ãçµäºããåéåæ°ããªã»ããããã
+	 *  rtt の測定を終了し、再送回数をリセットする。
 	 */
 	cep->rtt = cep->rxtshift = 0;
 
 	/*
-	 *  RTT ã«è¨±ãããæå°å¤ ã¨ rtt + 2 ã®å¤§ããªå¤ã®æ¹ãåéã¿ã¤ã ã¢ã¦ãã®æå°å¤ã«ããã
+	 *  RTT に許される最小値 と rtt + 2 の大きな値の方を再送タイムアウトの最小値にする。
 	 */
 	if (rtt + 2 < TCP_TVAL_MIN)
@@ -398,5 +380,5 @@
 
 /*
- *  reassemble -- åä¿¡ã»ã°ã¡ã³ããåæ§æãããé çªéãã«åä¿¡ããã¨ãã®å¦ç
+ *  reassemble -- 受信セグメントを再構成する。順番通りに受信したときの処理
  */
 
@@ -410,5 +392,5 @@
 	if (tcph->sum > cep->rbufsz - cep->rwbuf_count) {
 		/*
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã«ç©ºãããªãã¨ãã¯ç ´æ£ããã
+		 *  受信ウィンドバッファに空きがないときは破棄する。
 		 */
 		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DROP_SEGS], 1);
@@ -421,7 +403,7 @@
 	         cep->fsm_state == TCP_FSM_ESTABLISHED) {
 		/*
-		 *  é çªéãã«ã»ã°ã¡ã³ããåä¿¡ããæã®å¦ç
-		 *  åä¿¡ã»ã°ã¡ã³ãã®ä¸¦ã¹æ¿ãã¯ä¸è¦ãªã®ã§
-		 *  ãã®ã¾ã¾åä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã
+		 *  順番通りにセグメントを受信した時の処理
+		 *  受信セグメントの並べ替えは不要なので
+		 *  そのまま受信ウィンドバッファに書き込む。
 		 */
 
@@ -438,12 +420,11 @@
 		qhdr = GET_TCP_Q_HDR(input, thoff);
 
-		/*  TCP ãããã®ä½ç½®ãä¿å­ããã*/
+		/*  TCP ヘッダの位置を保存する。*/
 		GET_TCP_IP_Q_HDR(input)->thoff = thoff;
 
-		/* SDU ã®ãªãã»ããï¼å
-ã¯ã¦ã£ã³ããµã¤ãºï¼ããªã»ããããã*/
+		/* SDU のオフセット（元はウィンドサイズ）をリセットする。*/
 		qhdr->soff = 0;
 
-		/* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/
+		/* データを受信ウィンドバッファに書き込む。*/
 		TCP_WRITE_RWBUF(cep, input, thoff);
 		}
@@ -456,11 +437,10 @@
 
 /*
- *  listening -- ååãªã¼ãã³ãã¦ï¼ç¶æ
-ã LISTEN ã®å¦ç
+ *  listening -- 受動オープンして，状態が LISTEN の処理
  *
- *    æ»ãå¤:
- *      RET_OK		æ­£å¸¸
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *    戻り値:
+ *      RET_OK		正常
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -475,5 +455,5 @@
 
 	/* 
-	 *  ãã©ã°ã« RST ãã»ããããã¦ããã°ç ´æ£ããã
+	 *  フラグに RST がセットされていれば破棄する。
 	 */
 	if (tcph->flags & TCP_FLG_RST)
@@ -481,6 +461,6 @@
 
 	/*  
-	 *  ãã©ã°ã« ACK ãã»ãããã¦ãããã°ã
-	 *  ãªã»ãããéã£ã¦ç ´æ£ããã
+	 *  フラグに ACK がセットさてれいれば、
+	 *  リセットを送って破棄する。
 	 */
 	if (tcph->flags & TCP_FLG_ACK)
@@ -488,5 +468,5 @@
 
 	/* 
-	 *  ãã©ã°ã« SYN ãã»ããããã¦ããªããã°ãã°ç ´æ£ããã
+	 *  フラグに SYN がセットされていなければれば破棄する。
 	 */
 	if ((tcph->flags & TCP_FLG_SYN) == 0)
@@ -498,8 +478,8 @@
 
 	/*
-	 *  æ¬¡ã®ã¨ãã¯ç ´æ£ããã
-	 *    ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã
-	 *      ãã ããã­ã¼ã«ã«ã«ã¼ãããã¯ (127.0.0.1) ãªãè¯ãã
-	 *    ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹
+	 *  次のときは破棄する。
+	 *    ・ポート番号が同一で、送受信 IP アドレス が同一。
+	 *      ただし、ローカルループバック (127.0.0.1) なら良い。
+	 *    ・マルチキャストアドレス
 	 */
 
@@ -511,7 +491,7 @@
 
 	/*
-	 *  æ¬¡ã®ã¨ãã¯ç ´æ£ããã
-	 *    ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã
-	 *    ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹
+	 *  次のときは破棄する。
+	 *    ・ポート番号が同一で、送受信 IP アドレス が同一。
+	 *    ・マルチキャストアドレス
 	 */
 
@@ -526,7 +506,7 @@
 
 	/*
-	 *  æ¬¡ã®ã¨ãã¯ç ´æ£ããã
-	 *    ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã
-	 *    ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹
+	 *  次のときは破棄する。
+	 *    ・ポート番号が同一で、送受信 IP アドレス が同一。
+	 *    ・マルチキャストアドレス
 	 */
 
@@ -539,16 +519,16 @@
 		return RET_DROP;
 
-	/* ç¸æã®ã¢ãã¬ã¹ãè¨é²ããã*/
+	/* 相手のアドレスを記録する。*/
 	IN_COPY_TO_HOST(&cep->dstaddr.ipaddr, &iph->src);
 	cep->dstaddr.portno = tcph->sport;
 
-	/* ãªãã·ã§ã³ãå¦çããã*/
+	/* オプションを処理する。*/
 	parse_option(tcph, cep);
 
-	/* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/
+	/* シーケンス番号を初期化する。*/
 	if (tcp_iss == 0)
 		tcp_init_iss();
 
-	/* èªåã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/
+	/* 自分のシーケンス番号の初期値を記録する。*/
 	if (iss != 0)
 		cep->iss = iss;
@@ -558,15 +538,15 @@
 	tcp_iss += TCP_ISS_INCR() / 4;
 
-	/* ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/
+	/* 相手のシーケンス番号の初期値を記録する。*/
 	cep->irs = tcph->seq;
 
-	/* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/
+	/* 送受信シーケンス番号を初期化する。*/
 	init_send_seq(cep);
 	init_receive_seq(cep);
 
-	/* éä¿¡ã¦ã¤ã³ããµã¤ãºãè¨­å®ããã*/
+	/* 送信ウインドサイズを設定する。*/
 	cep->snd_wnd = tcph->win;
 
-	/* æçµè¨­å® */
+	/* 最終設定 */
 	cep->flags    |= TCP_CEP_FLG_ACK_NOW;
 	cep->fsm_state = TCP_FSM_SYN_RECVD;
@@ -577,11 +557,10 @@
 
 /*
- *  syn_sent -- è½åãªã¼ãã³ãã¦ãç¶æ
-ã SYN éä¿¡æ¸ã®å¦ç
+ *  syn_sent -- 能動オープンして、状態が SYN 送信済の処理
  *
- *    æ»ãå¤:
- *      RET_OK		æ­£å¸¸
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *    戻り値:
+ *      RET_OK		正常
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -592,9 +571,9 @@
 
 	/*
-	 *  ç¸æããåä¿¡ç¢ºèªãéããã¦æ¥ã¦ãã
+	 *  相手から受信確認が送られて来ても、
 	 *
-	 *    ACK <= iss && éä¿¡ããæå¤§ SEQ (snd_max) < ACK
+	 *    ACK <= iss && 送信した最大 SEQ (snd_max) < ACK
 	 *
-	 *  ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã
+	 *  なら、リセットを送ってセグメントを破棄する。
 	 */
 	if ((tcph->flags & TCP_FLG_ACK) &&
@@ -603,6 +582,6 @@
 
 	/*
-	 *  RST/ACK ãã©ã°ã®å¿ç­ãããã°ããã¼ããéãã¦ããªã
-	 *  ãã¨ãæå³ãã¦ããã
+	 *  RST/ACK フラグの応答があれば、ポートが開いていない
+	 *  ことを意味している。
 	 */
 	if (tcph->flags & TCP_FLG_RST) {
@@ -615,31 +594,29 @@
 
 	/*
-	 *  SYN ãã©ã°ããªããã°ã»ã°ã¡ã³ããç ´æ£ããã
+	 *  SYN フラグがなければセグメントを破棄する。
 	 */
 	if ((tcph->flags & TCP_FLG_SYN) == 0)
 		return RET_DROP;
 
-	cep->snd_wnd = tcph->win;	/* snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº	*/
-	cep->irs     = tcph->seq;	/* irs:     ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤	*/
-	init_receive_seq(cep);		/* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã		*/
+	cep->snd_wnd = tcph->win;	/* snd_wnd: 相手の受信可能ウィンドサイズ	*/
+	cep->irs     = tcph->seq;	/* irs:     相手のシーケンス番号の初期値	*/
+	init_receive_seq(cep);		/* 送受信シーケンス番号を初期化する。		*/
 
 	if (tcph->flags & TCP_FLG_ACK) {
 		/*
-		 *  ACK ãã©ã°ãããã¨ãã®å¦ç
+		 *  ACK フラグがあるときの処理
 		 *
-		 *  åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ (rcv_adv) ã
-		 *  åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº (rcv_wnd) åé²ããã
-		 */
-		cep->rcv_adv += cep->rcv_wnd;	/* rcv_adv: åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ	*/
-						/* rcv_wnd: åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº		*/
-
-		/* æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã SYN å (1 ãªã¯ããã) é²ããã*/
+		 *  受信を期待している最大の SEQ (rcv_adv) を
+		 *  受信可能なウィンドサイズ (rcv_wnd) 分進める。
+		 */
+		cep->rcv_adv += cep->rcv_wnd;	/* rcv_adv: 受信を期待している最大の SEQ	*/
+						/* rcv_wnd: 受信可能なウィンドサイズ		*/
+
+		/* 未確認の最小送信 SEQ (snd_una) を SYN 分 (1 オクテット) 進める。*/
 		cep->snd_una ++;
 
 #ifdef TCP_CFG_DELAY_ACK
 
-		if (tcph->sum != 0)		/* tcph->sum ã¯ SDU é· */
+		if (tcph->sum != 0)		/* tcph->sum は SDU 長 */
 			cep->flags |= TCP_CEP_FLG_DEL_ACK;
 		else
@@ -654,8 +631,7 @@
 		if (cep->flags & TCP_CEP_FLG_NEED_FIN) {
 			/*
-			 *  CEP ã§ FIN éä¿¡ãè¦æ±ããã¦ããã°ã
-			 *  åæ­å¦çãéå§ãã
-			 *  CEP ã®ç¶æ
-ã FIN Wait 1 ã«ããã
+			 *  CEP で FIN 送信が要求されていれば、
+			 *  切断処理を開始し、
+			 *  CEP の状態を FIN Wait 1 にする。
 			 */
 			cep->fsm_state = TCP_FSM_FIN_WAIT_1;
@@ -665,8 +641,6 @@
 		else {
 			/*
-			 *  ç¸æãã ACK ãå¿ç­ãããã®ã§ã
-			 *  CEP ã®ç¶æ
-ã ã³ãã¯ã·ã§ã³éè¨­å®äºç¶æ
-ã«ããã
+			 *  相手から ACK が応答されたので、
+			 *  CEP の状態を コネクション開設完了状態にする。
 			 */
 			cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE;
@@ -679,5 +653,5 @@
 			if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) {
 
-				/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+				/* 相手のアドレスをコピーする。*/
 				*cep->p_dstaddr = cep->dstaddr;
 
@@ -715,6 +689,5 @@
 		}
 	else {
-		/* ACK ãã©ã°ããªãã¨ãã¯ãACK ãéã£ã¦ãCEP ã®ç¶æ
-ã SYN åä¿¡æ¸ã¿ã«ããã*/
+		/* ACK フラグがないときは、ACK を送って、CEP の状態を SYN 受信済みにする。*/
 		cep->flags |= TCP_CEP_FLG_ACK_NOW;
 		cep->timer[TCP_TIM_REXMT] = 0;
@@ -726,5 +699,5 @@
 
 /*
- *  trim_length -- åä¿¡ãã SDU é·ãèª¿æ´ããã
+ *  trim_length -- 受信した SDU 長を調整する。
  */
 
@@ -733,28 +706,28 @@
 {
 	tcph->seq ++;
-	if (tcph->sum > cep->rcv_wnd) {		/* æ³¨æ: tcph->sum ã¯ SDU é· */
-		/*
-		 *  SDU é·ãåä¿¡ã¦ã£ã³ããµã¤ãºããå¤§ããã¨ãã¯ãåä¿¡ã¦ã£ã³ããµã¤ãºä»¥éã¯
-		 *  ç ´æ£ããFIN ã«å¿ç­ããªããã¨ã§ãç ´æ£ãããã¼ã¿ãåéãããã
+	if (tcph->sum > cep->rcv_wnd) {		/* 注意: tcph->sum は SDU 長 */
+		/*
+		 *  SDU 長が受信ウィンドサイズより大きいときは、受信ウィンドサイズ以降は
+		 *  破棄し、FIN に応答しないことで、破棄したデータを再送させる。
 		 */
 		tcph->sum    = (uint16_t)cep->rcv_wnd;
 		tcph->flags &= ~TCP_FLG_FIN;
 		}
-	cep->snd_wl1 = tcph->seq - 1;		/* cep->snd_wl1: ã¦ã£ã³ãæ´æ° SEQ çªå·	*/
+	cep->snd_wl1 = tcph->seq - 1;		/* cep->snd_wl1: ウィンド更新 SEQ 番号	*/
 
 #ifdef TCP_CFG_EXTENTIONS
-	cep->rcv_up  = tcph->seq;		/* cep->rcv_up : åä¿¡ããç·æ¥ãã¤ã³ã¿	*/
+	cep->rcv_up  = tcph->seq;		/* cep->rcv_up : 受信した緊急ポインタ	*/
 #endif
 	}
 
 /*
- *  proc_ack2 -- ACK ã®å¦ç (2)
+ *  proc_ack2 -- ACK の処理 (2)
  *
- *    æ»ãå¤
+ *    戻り値
  *
- *      RET_OK		æ­£å¸¸
- *      RET_RETURN	æ­£å¸¸ããªã¿ã¼ã³ããã
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *      RET_OK		正常
+ *      RET_RETURN	正常、リターンする。
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -770,7 +743,7 @@
 
 	/*
-	 *  ç¸æã«åä¿¡ç¢ºèªããã ACK ãããã¾ã ç¢ºèªããã¦ããªã
-	 *  æå°éä¿¡ SEQ (snd_una) ãå¼ãã¨ãéä¿¡ã¦ã£ã³ããããã¡ãã
-	 *  åé¤ãã¦ãããªã¯ãããæ° (acked) ã«ãªãã
+	 *  相手に受信確認された ACK から、まだ確認されていない
+	 *  最小送信 SEQ (snd_una) を引くと、送信ウィンドバッファから
+	 *  削除してよいオクテット数 (acked) になる。
 	 */
 	acked = tcph->ack - cep->snd_una;
@@ -778,7 +751,7 @@
 
 	/*
-	 *  å¾å¾©æéè¨æ¸¬ (rtt) ãè¨­å®ããã¦ãã¦ãè¨æ¸¬éå§ SEQ ãã
-	 *  å¾ã® ACK ãåä¿¡ããããã¿ã¤ãããã¯ãªããã­ã£ã³ã»ã«ãã
-	 *  åéã¿ã¤ããåè¨­å®ããã
+	 *  往復時間計測 (rtt) が設定されていて、計測開始 SEQ より
+	 *  後の ACK を受信したら、タイマバックオフをキャンセルし、
+	 *  再送タイマを再設定する。
 	 */
 	if (cep->rtt && SEQ_GT(tcph->ack, cep->rtseq)) {
@@ -787,17 +760,16 @@
 
 	/*
-	 *  å
-¨ã¦ã®æªç¢ºèªãã¼ã¿ã ACK ãããããåéã¿ã¤ããåæ­¢ãã
-	 *  åéãè¨æ¶ãã (ããã«åºåãæç¶)ã
-	 *  ãããACK ãã¹ããããã«å¤ãã®ãã¼ã¿ããããªããåéã¿ã¤ãã«
-	 *  ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ããè¨­å®ããã
-	 */
-	if (tcph->ack == cep->snd_max) {	/* cep->snd_max: éä¿¡ããæå¤§ SEQ */
+	 *  全ての未確認データが ACK されたら、再送タイマを停止し、
+	 *  再開を記憶する (さらに出力か持続)。
+	 *  もし、ACK すべき、さらに多くのデータがあるなら、再送タイマに
+	 *  現在の再送タイムアウトを設定する。
+	 */
+	if (tcph->ack == cep->snd_max) {	/* cep->snd_max: 送信した最大 SEQ */
 
 #ifdef TCP_CFG_SWBUF_CSAVE
 
 		/*
-		 * éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã¯ã
-		 * éä¿¡æ¸ã¿ã§ãACKãå®äºããã¾ã§åéã¿ã¤ããå¤æ´ããªãã
+		 * 送信ウィンドバッファの省コピー機能が有効の場合は、
+		 * 送信済みで、ACKが完了するまで再送タイマを変更しない。
 		 */
 		if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_ACKED)
@@ -813,22 +785,22 @@
 		}
 	else if (cep->timer[TCP_TIM_PERSIST] == 0) {
-	 	cep->timer[TCP_TIM_REXMT] = cep->rxtcur;	/* cep->rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã */
-		}
-
-	/* ç¸æãåä¿¡ç¢ºèªãããã¼ã¿ãããã¨ãã®å¦ç */
+	 	cep->timer[TCP_TIM_REXMT] = cep->rxtcur;	/* cep->rxtcur: 現在の再送タイムアウト */
+		}
+
+	/* 相手が受信確認したデータがあるときの処理 */
 	if (acked) {
-		uint32_t cw   = cep->snd_cwnd;	/* cep->snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº	*/
-		uint32_t incr = cep->maxseg;		/* cep->maxseg:   æå¤§ã»ã°ã¡ã³ããµã¤ãº	*/
-
-		/*
-		 *  æ°ãã«ç¸æãåä¿¡ç¢ºèªãããã¼ã¿ããã£ãã¨ãã¯ã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºãå¤§ããããã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ããå¤§ããã¨ãã¯
-		 *  è¼»è¼³åé¿å¶å¾¡ãè¡ãã
+		uint32_t cw   = cep->snd_cwnd;	/* cep->snd_cwnd: 輻輳ウィンドサイズ	*/
+		uint32_t incr = cep->maxseg;		/* cep->maxseg:   最大セグメントサイズ	*/
+
+		/*
+		 *  新たに相手が受信確認したデータがあったときは、
+		 *  輻輳ウィンドサイズを大きくする。
+		 *  輻輳ウィンドサイズ (snd_cwnd) が
+		 *  輻輳ウィンドサイズのしきい値 (snd_ssthresh) より大きいときは
+		 *  輻輳回避制御を行い。
 		 *
 		 *    snd_cwnd = snd_cwnd + maxseg * maxseg / snd_cwnd;
 		 *
-		 *  ç­ãããå°ããã¨ãã¯ãã¹ã­ã¼ã¹ã¿ã¼ãå¶å¾¡ãè¡ãã
+		 *  等しいか小さいときは、スロースタート制御を行う。
 		 *
 		 *    snd_cwnd = snd_cwnd + maxseg
@@ -836,5 +808,5 @@
 		 */
 		if (cw > cep->snd_ssthresh)
-			/* è¼»è¼³åé¿å¶å¾¡ */
+			/* 輻輳回避制御 */
 			incr = incr * incr / cw;
 
@@ -845,5 +817,5 @@
 
 		/*
-		 *  éä¿¡ã¦ã£ã³ããããã¡ãããç¸æãåä¿¡ç¢ºèªãããã¼ã¿æ° (acked) ã®ãã¼ã¿ãåé¤ããã
+		 *  送信ウィンドバッファから、相手が受信確認したデータ数 (acked) のデータを削除する。
 		 */
 		if (acked > cep->swbuf_count) {
@@ -858,13 +830,13 @@
 			}
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/
+		/* 送信ウィンドバッファに空きができたことを知らせる。*/
 		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
 
 		/*
-		 *  ééç¢ºèªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ã
-		 *  ä»åééç¢ºèªããã ACK ã¾ã§é²ãã
-		 *  æ¬¡ã®éä¿¡ãã¼ã¿ã® SEQ (snd_nxt) ããæ°ãã
-		 *  ééç¢ºèªããã¦ããªãæå°éä¿¡ SEQ (snd_una)
-		 *  ã¾ã§é²ããã
+		 *  送達確認されていない最小送信 SEQ (snd_una) を
+		 *  今回送達確認された ACK まで進め、
+		 *  次の送信データの SEQ (snd_nxt) も、新しい
+		 *  送達確認されていない最小送信 SEQ (snd_una)
+		 *  まで進める。
 		 */
 		cep->snd_una += acked;
@@ -873,10 +845,8 @@
 
 		/*
-		 *  ç¶æ
-ã«ããåå²
+		 *  状態により分岐
 		 */
 		switch (cep->fsm_state) {
-		case TCP_FSM_FIN_WAIT_1:	/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
-ã¡ */
+		case TCP_FSM_FIN_WAIT_1:	/* APP が終了、FIN 送信済み、ACK 待ち */
 			if (ourfinisacked) {
 				cep->fsm_state = TCP_FSM_FIN_WAIT_2;
@@ -884,11 +854,9 @@
 				}
 			break;
-		case TCP_FSM_CLOSING:		/* åæã¯ã­ã¼ãºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡ */
+		case TCP_FSM_CLOSING:		/* 同時クローズ、FIN 交換済み、ACK 待ち */
 			if (ourfinisacked) {
 				/*
-				 *  éä¿¡ãã FIN ãç¢ºèªããã¦ããã°ç¶æ
-ãå¤æ´ãã
-				 *  ãã¹ã¦ã®ã¿ã¤ãããªã»ããããå¾ã2MSL ã¿ã¤ããè¨­å®ããã
+				 *  送信した FIN が確認されていれば状態を変更し、
+				 *  すべてのタイマをリセットした後、2MSL タイマを設定する。
 				 */
 				cep->fsm_state = TCP_FSM_TIME_WAIT;
@@ -897,10 +865,9 @@
 				}
 			break;
-		case TCP_FSM_LAST_ACK:		/* APP ãçµäºãACK å¾
-ã¡ */
+		case TCP_FSM_LAST_ACK:		/* APP が終了、ACK 待ち */
 			if (ourfinisacked) {
 				/*
-				 *  éä¿¡ãã FIN ãç¢ºèªããã¦ããã°ãcep ãã¯ã­ã¼ãºãã
-				 *  ã»ã°ã¡ã³ããç ´æ£ããã
+				 *  送信した FIN が確認されていれば、cep をクローズし、
+				 *  セグメントを破棄する。
 				 */
 				cep = tcp_close(cep);
@@ -908,9 +875,8 @@
 				}
 			break;
-		case TCP_FSM_TIME_WAIT:		/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
-ã¡ */
+		case TCP_FSM_TIME_WAIT:		/* 相手からの FIN 受信済み、時間待ち */
 			/*
-			 *  ç¸æãã FIN ãåéããããããä¸åº¦2MSL ã¿ã¤ããè¨­å®ãã
-			 *  ACK éä¿¡å¾ãã»ã°ã¡ã³ããç ´æ£ããã
+			 *  相手から FIN が再送された。もう一度2MSL タイマを設定し、
+			 *  ACK 送信後、セグメントを破棄する。
 			 */
 			cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
@@ -923,11 +889,11 @@
 
 /*
- *  proc_ack1 -- ACK ã®å¦ç (1)
+ *  proc_ack1 -- ACK の処理 (1)
  *
- *    æ»ãå¤:
- *      RET_OK		æ­£å¸¸
- *      RET_RETURN	æ­£å¸¸ããªã¿ã¼ã³ããã
- *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *    戻り値:
+ *      RET_OK		正常
+ *      RET_RETURN	正常、リターンする。
+ *	RET_DROP	エラー、セグメントを破棄する。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  *
  */
@@ -939,8 +905,7 @@
 
 	switch (cep->fsm_state) {
-	case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
-
-		/* ç¶æ
-ãå¤æ´ããã*/
+	case TCP_FSM_SYN_RECVD:		/* SYN を受信し、SYN 送信済み	*/
+
+		/* 状態を変更する。*/
 		if (cep->flags & TCP_CEP_FLG_NEED_FIN) {
 			cep->fsm_state  = TCP_FSM_FIN_WAIT_1;
@@ -951,5 +916,5 @@
 			cep->fsm_state  = TCP_FSM_ESTABLISHED;
 
-			/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+			/* TCP 通信端点からTCP 受付口を解放する。*/
 			cep->rep = NULL;
 
@@ -960,5 +925,5 @@
 			if (cep->rcv_nblk_tfn == TFN_TCP_ACP_CEP) {
 
-				/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+				/* 相手のアドレスをコピーする。*/
 				*cep->p_dstaddr = cep->dstaddr;
 
@@ -996,5 +961,5 @@
 			if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) {
 
-				/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+				/* 相手のアドレスをコピーする。*/
 				*cep->p_dstaddr = cep->dstaddr;
 
@@ -1044,40 +1009,35 @@
 
 		/*
-		 *  SDU ããªã FIN ãã¤ãã¦ããªããã°ãtcp_move_ra2rw() ãå¼åºãã
-		 */
-		if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0)		/* tcph->sum ã¯ SDU é· */
+		 *  SDU がなく FIN がついていなければ、tcp_move_ra2rw() を呼出す。
+		 */
+		if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0)		/* tcph->sum は SDU 長 */
 			tcph->flags = tcp_move_ra2rw(cep, tcph->flags);
 		
-		cep->snd_wl1 = tcph->seq - 1;	/* snd_wl1: ã¦ã£ã³ãæ´æ° SEQ */
-
-		/* break; ä¸ã«è½ã¡ãã*/
+		cep->snd_wl1 = tcph->seq - 1;	/* snd_wl1: ウィンド更新 SEQ */
+
+		/* break; 下に落ちる。*/
 	
-	case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
-	case TCP_FSM_FIN_WAIT_1:	/* çµäºãã¦ãFIN éä¿¡æ¸ã¿		*/
-	case TCP_FSM_FIN_WAIT_2:	/* çµäºãFIN ä¼éç¢ºèªåä¿¡ãFINå¾
-ã¡*/
-	case TCP_FSM_CLOSE_WAIT:	/* FIN åä¿¡ãã¯ã­ã¼ãºå¾
-ã¡		*/
-	case TCP_FSM_CLOSING:		/* çµäºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡	*/
-	case TCP_FSM_LAST_ACK:		/* FIN åä¿¡ãçµäºãACK å¾
-ã¡	*/
-	case TCP_FSM_TIME_WAIT:		/* çµäºãæéå¾
-ã¡		*/
+	case TCP_FSM_ESTABLISHED:	/* コネクション開設完了		*/
+	case TCP_FSM_FIN_WAIT_1:	/* 終了して、FIN 送信済み		*/
+	case TCP_FSM_FIN_WAIT_2:	/* 終了、FIN 伝達確認受信、FIN待ち*/
+	case TCP_FSM_CLOSE_WAIT:	/* FIN 受信、クローズ待ち		*/
+	case TCP_FSM_CLOSING:		/* 終了、FIN 交換済み、ACK 待ち	*/
+	case TCP_FSM_LAST_ACK:		/* FIN 受信、終了、ACK 待ち	*/
+	case TCP_FSM_TIME_WAIT:		/* 終了、時間待ち		*/
 
 		if (SEQ_LE(tcph->ack, cep->snd_una)) {
 
 			/*
-			 *  åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã¨åããä»¥åã®ã¨ãã®å¦ç
-			 *  ã¤ã¾ããå¤éã« ACK ãåä¿¡ãããã¨ãæå³ãã¦ããã
+			 *  受信確認 ACK が 未確認の最小送信 SEQ (snd_una) と同じか以前のときの処理
+			 *  つまり、多重に ACK を受信したことを意味している。
 			 */
 
-			if (tcph->sum == 0 && tcph->win == cep->snd_wnd) {	/* tcph->sum ã¯ SDU é· */
+			if (tcph->sum == 0 && tcph->win == cep->snd_wnd) {	/* tcph->sum は SDU 長 */
 
 				/*
-				 *  SDU ããªããç¸æã®ã¦ã£ã³ããµã¤ãºãå¤æ´ããã¦ããªããã°ã
-				 *  ãã§ã«éä¿¡ããã»ã°ã¡ã³ãã®ä¸­ã§ãACK (tcph->ack) ã¨
-				 *  åã SEQ ããå§ã¾ãã»ã°ã¡ã³ãããéä¸­ã§æ¶å¤±ããå¯è½æ§ãããã
-				 *  ãã®å ´åã¯ãé«éåè»¢éã¨é«éãªã«ããªãè¡ãã
+				 *  SDU がなく、相手のウィンドサイズが変更されていなければ、
+				 *  すでに送信したセグメントの中で、ACK (tcph->ack) と
+				 *  同じ SEQ から始まるセグメントが、途中で消失した可能性がある。
+				 *  この場合は、高速再転送と高速リカバリを行う。
 				 */
 				NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DUP_ACKS], 1);
@@ -1086,7 +1046,7 @@
 
 					/*
-					 *  åéã¿ã¤ããã»ããããã¦ããªãã¨ãã
-					 *  ã¾ãã¯ãACK (tcph->ack) ã¨æªç¢ºèªã®æå°éä¿¡ SEQã
-					 *  ä¸è´ããªãã¨ãã¯ãå¤é ACK æ°ã 0 ã«ããã
+					 *  再送タイマがセットされていないとき、
+					 *  または、ACK (tcph->ack) と未確認の最小送信 SEQが
+					 *  一致しないときは、多重 ACK 数を 0 にする。
 					 */
 					cep->dupacks = 0;
@@ -1096,15 +1056,15 @@
 
 					/*
-					 *  å¤é ACK æ°ããããå¤ (æ¨æº 3) ã«ãªã£ãã
-					 *  é«éåè»¢éå¦çãéå§ããã
+					 *  多重 ACK 数がしきい値 (標準 3) になったら
+					 *  高速再転送処理を開始する。
 					 */
 					uint_t		win;
 
 					/*
-					 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã®ãããå¤ãè¨­å®ããã
+					 *  輻輳ウィンドサイズ(snd_cwnd)のしきい値を設定する。
 					 *
-					 *    ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã
-					 *    è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã® 1/2ã
-					 *    ãã ãã2 * maxseg ä»¥ä¸ã
+					 *    相手の受信可能ウィンドサイズ (snd_wnd) か
+					 *    輻輳ウィンドサイズ (snd_cwnd) の 1/2。
+					 *    ただし、2 * maxseg 以上。
 					 *
 					 */
@@ -1117,9 +1077,9 @@
 					cep->snd_ssthresh = win * cep->maxseg;
 
-					/* åéã¿ã¤ãã¨å¾å¾©æéããªã»ããããã*/
+					/* 再送タイマと往復時間をリセットする。*/
 					cep->timer[TCP_TIM_REXMT] = 0;
 					cep->rtt = 0;
 
-					/* æ¶å¤±ããã»ã°ã¡ã³ããéä¿¡ããã*/
+					/* 消失したセグメントを送信する。*/
 					cep->snd_old_nxt = cep->snd_nxt;
 					cep->snd_nxt     = tcph->ack;
@@ -1127,7 +1087,6 @@
 
 					/*
-					 *  snd_nxt ãå
-ã«æ»ãããã«è¨­å®ãã¦
-					 *  éä¿¡ãæç¤ºããã
+					 *  snd_nxt を元に戻すように設定して
+					 *  送信を指示する。
 					 */
 					cep->flags |=  TCP_CEP_FLG_POST_OUTPUT |
@@ -1137,5 +1096,5 @@
 					sig_sem(SEM_TCP_POST_OUTPUT);
 
-					/* è¼»è¼³ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/
+					/* 輻輳ウィンドサイズを更新する。*/
 					cep->snd_cwnd = (uint16_t)(cep->snd_ssthresh
 					                   + cep->maxseg * cep->dupacks);
@@ -1147,11 +1106,10 @@
 
 					/*
-					 *  å¤é ACK æ°ããããå¤ (æ¨æº 3) ãè¶
-ããã
-					 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºãå¢å ããªããåéããã
+					 *  多重 ACK 数がしきい値 (標準 3) を超えたら
+					 *  輻輳ウィンドサイズを増加しながら再送する。
 					 */
 					cep->snd_cwnd += cep->maxseg;
 
-					/* éä¿¡ãæç¤ºããã*/
+					/* 送信を指示する。*/
 					cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
 					sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1166,9 +1124,9 @@
 
 		/*
-		 *  åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ä»¥éã®ã¨ãã®å¦ç
+		 *  受信確認 ACK が 未確認の最小送信 SEQ (snd_una) 以降のときの処理
 		 */
 		if (cep->dupacks >= MAX_TCP_REXMT_THRESH && cep->snd_cwnd > cep->snd_ssthresh)
 		 	/*
-			 *  é«éåè»¢éãè¡ã£ã¦ããã¨ãã¯ãè¼»è¼³ã¦ã£ã³ããµã¤ãºããããå¤ã¾ã§æ»ãã
+			 *  高速再転送を行っていたときは、輻輳ウィンドサイズをしきい値まで戻す。
 			 */
 			cep->snd_cwnd = (uint16_t)cep->snd_ssthresh;
@@ -1178,6 +1136,5 @@
 		if (SEQ_GT(tcph->ack, cep->snd_max))
 			/*
-			 *  åä¿¡ãã ACK ãéä¿¡ããæå¤§ SEQ ãè¶
-ãã¦ããã¨ãã®å¦ç
+			 *  受信した ACK が送信した最大 SEQ を超えていたときの処理
 			 */
 			return drop_after_ack(input, cep, thoff);
@@ -1185,5 +1142,5 @@
 		if (cep->flags & TCP_CEP_FLG_NEED_SYN) {
 			/*
-			 *  SYN éä¿¡è¦æ±ãåãæ¶ãã¦ãæªç¢ºèªã®æå°éä¿¡ SEQ ãé²ããã
+			 *  SYN 送信要求を取り消して、未確認の最小送信 SEQ を進める。
 			 */
 			cep->flags &= ~TCP_CEP_FLG_NEED_SYN;
@@ -1198,8 +1155,7 @@
 
 /*
- *  update_wnd -- ã¦ã£ã³ããµã¤ãºãæ´æ°ããã
+ *  update_wnd -- ウィンドサイズを更新する。
  *
- *    æ»ãå¤: éä¿¡ãå¿
-è¦ãªã true ãè¿ãã
+ *    戻り値: 送信が必要なら true を返す。
  */
 
@@ -1209,12 +1165,12 @@
 
 	/*
-	 *  æ´æ°æ¡ä»¶
+	 *  更新条件
 	 *
-	 *    ACK ãã©ã°ãã»ããããã¦ãã &&
-	 *    (ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ããå ||
-	 *     ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ã¨åã &&
-	 *     (ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ããå ||
-	 *      (ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ã¨åã &&
-	 *       WIN ãç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ããå¤§ãã
+	 *    ACK フラグがセットされている &&
+	 *    (前回ウィンドを更新した SEQ (snd_wl1) が SEQ より前 ||
+	 *     前回ウィンドを更新した SEQ (snd_wl1) が SEQ と同じ &&
+	 *     (前回ウィンドを更新した ACK (snd_wl2) が ACK より前 ||
+	 *      (前回ウィンドを更新した ACK (snd_wl2) が ACK と同じ &&
+	 *       WIN が相手の受信可能ウィンドサイズ (snd_wnd) より大きい
 	 *       )
 	 *      )
@@ -1232,5 +1188,5 @@
 
 		if (cep->snd_wnd > cep->max_sndwnd)
-			/* ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/
+			/* 今までの最大送信ウィンドサイズを更新する。*/
 			cep->max_sndwnd = cep->snd_wnd;
 
@@ -1240,13 +1196,12 @@
 
 			/*
-			 *  éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ä¸­ã§ã
-			 *  ç¸æã®åä¿¡ã¦ã£ã³ããç©ºãã®ãå¾
-ã£ã¦ããã¨ãã®å¦ç
+			 *  送信ウィンドバッファ用のネットワークバッファ割り当て中で、
+			 *  相手の受信ウィンドが空くのを待っているときの処理
 			 */
 			if (cep->snd_wnd > 0) {
 
 				/*
-				 *  ç¸æã®åä¿¡ã¦ã£ã³ããç©ºããã¨ãã¯ã
-				 *  éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ãåéããã
+				 *  相手の受信ウィンドが空いたときは、
+				 *  送信ウィンドバッファ用のネットワークバッファ割り当てを再開する。
 				 */
 				cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK)
@@ -1265,5 +1220,5 @@
 
 /*
- *  proc_urg -- ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç
+ *  proc_urg -- 緊急データつきのセグメントの処理
  */
 
@@ -1276,5 +1231,5 @@
 	    TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) {
 
-		/* ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç */
+		/* 緊急データつきのセグメントの処理 */
 
 		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_URG_SEGS], 1);
@@ -1282,7 +1237,6 @@
 
 			/*
-			 *  ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ãåä¿¡ã¦ã£ã³ããããã¡ã®
-			 *  ç¯å²ãè¶
-ããã¨ãã¯ä½ãããªãã
+			 *  緊急ポインタの位置が受信ウィンドバッファの
+			 *  範囲を超えるときは何もしない。
 			 */
 			tcph->urp    = 0;
@@ -1291,13 +1245,12 @@
 
 		if (SEQ_GT(tcph->seq + tcph->urp, cep->rcv_up))
-			/* ç·æ¥ãã¤ã³ã¿ãæ´æ°ãããã¨ãã®å¦ç */
+			/* 緊急ポインタが更新されたときの処理 */
 			cep->rcv_up = tcph->seq + tcph->urp;
 
-		if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) {	/* tcph->sum ã¯ TCP ã® SDU é· */
+		if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) {	/* tcph->sum は TCP の SDU 長 */
 
 			/*
-			 *  ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ããä»ååä¿¡ããã»ã°ã¡ã³ãå
-ã®å ´åã¯ã
-			 *  ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã
+			 *  緊急ポインタの位置が、今回受信したセグメント内の場合は、
+			 *  コールバック関数を呼び出す。
 			 */
 			cep->urg_tcph = tcph;
@@ -1322,6 +1275,5 @@
 
 			if (cep->urg_tcph != NULL) {
-				/* ã³ã¼ã«ããã¯é¢æ°å
-ã§ tcp_rcv_oob() ãå¼åºããªãã£ãã*/
+				/* コールバック関数内で tcp_rcv_oob() を呼出さなかった。*/
 				cep->urg_tcph = NULL;
 				tcph->urp = 0;
@@ -1329,7 +1281,6 @@
 			else {
 				/* 
-				 *  ã³ã¼ã«ããã¯é¢æ°å
-ã§ tcp_rcv_oob() ãå¼åºããæã¯ã
-				 *  SDU é·ã®è£æ­£å¤ãè¨­å®ããã
+				 *  コールバック関数内で tcp_rcv_oob() を呼出した時は、
+				 *  SDU 長の補正値を設定する。
 				 */
 				tcph->urp = 1;
@@ -1358,9 +1309,9 @@
 
 /*
- *  drop_after_ack -- åä¿¡ã»ã°ã¡ã³ããç ´æ£ããå¾ãACK ãè¿ã (æ³¨æ: ååã¨ã¯åã£ã¦ããªã)ã
+ *  drop_after_ack -- 受信セグメントを破棄した後、ACK を返す (注意: 名前とは合っていない)。
  *
- *    æ»ãå¤:
- *      RET_RETURN	æ­£å¸¸ããªã¿ã¼ã³ããã
- *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *    戻り値:
+ *      RET_RETURN	正常、リターンする。
+ *	RET_RST_DROP	エラー、RST を送信し、セグメントを破棄する。
  */
 
@@ -1371,9 +1322,8 @@
 
 	/*
-	 *    SYN åä¿¡ç¶æ
-ã§ãACK ãééç¢ºèªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ãã
-	 *    åã®å¤ããéä¿¡ãããæå¤§ SEQ (snd_max) ããå¾ã®å¤ã®å ´åã¯ãç¸æã« RST ã
-	 *    éã£ã¦çµäºãããããã¯ã"LAND" DoS æ»æã¸ã®é²å¾¡ã§ãããå½é ããã SYN
-	 *    ã»ã°ã¡ã³ããéä¿¡ãã¤ã¥ãããã¼ãéã§ã® ACK ã¹ãã¼ã ãé²ãã
+	 *    SYN 受信状態で、ACK が送達確認されていない最小送信 SEQ (snd_una) より
+	 *    前の値か、送信された最大 SEQ (snd_max) より後の値の場合は、相手に RST を
+	 *    送って終了する。これは、"LAND" DoS 攻撃への防御であり、偽造された SYN
+	 *    セグメントを送信しつづけるポート間での ACK ストームを防ぐ。
 	 */
 	if (cep->fsm_state == TCP_FSM_SYN_RECVD && (tcph->flags & TCP_FLG_ACK) &&
@@ -1384,5 +1334,5 @@
 	syscall(rel_net_buf(input));
 
-	/* éä¿¡ãæç¤ºããã*/
+	/* 送信を指示する。*/
 	cep->flags |=  TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_POST_OUTPUT;
 	sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1391,5 +1341,5 @@
 
 /*
- *  close_connection -- ã³ãã¯ã·ã§ã³éæ¾å¦çãç¸æãã FIN ãåä¿¡ããã
+ *  close_connection -- コネクション開放処理、相手から FIN を受信した。
  */
 
@@ -1416,16 +1366,14 @@
 
 	switch (cep->fsm_state) {
-	case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
-	case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
+	case TCP_FSM_SYN_RECVD:		/* SYN を受信し、SYN 送信済み	*/
+	case TCP_FSM_ESTABLISHED:	/* コネクション開設完了		*/
 		cep->fsm_state = TCP_FSM_CLOSE_WAIT;
 		break;
 
-	case TCP_FSM_FIN_WAIT_1:	/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
-ã¡ */
+	case TCP_FSM_FIN_WAIT_1:	/* APP が終了、FIN 送信済み、ACK 待ち */
 		cep->fsm_state = TCP_FSM_CLOSING;
 		break;
 
-	case TCP_FSM_FIN_WAIT_2:	/* ç¸æããã® FIN å¾
-ã¡ */
+	case TCP_FSM_FIN_WAIT_2:	/* 相手からの FIN 待ち */
 		cep->fsm_state = TCP_FSM_TIME_WAIT;
 		tcp_cancel_timers(cep);
@@ -1433,9 +1381,7 @@
 
 		/*
-		 *  FIN WAIT 2 ç¶æ
-ã§ã¯ã
-		 *  åä¿¡ã¯å¯è½ã§ãããããã§ã«éä¿¡ã¯çµäºãã¦ããã
-		 *  ç¸æã®éä¿¡ãçµäºããã®ã§ãå
-¥åã¿ã¹ã¯ã®ã¿èµ·åºããã
+		 *  FIN WAIT 2 状態では、
+		 *  受信は可能であるが、すでに送信は終了している。
+		 *  相手の送信も終了したので、入力タスクのみ起床する。
 		 */
 		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
@@ -1443,5 +1389,5 @@
 #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
 
-		/* ç¸æããã® FIN ã«å¯¾ãã¦å¿ç­ãè¿ãã*/
+		/* 相手からの FIN に対して応答を返す。*/
 		tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una,
 		            cep->rbufsz - cep->rwbuf_count, TCP_FLG_ACK);
@@ -1450,8 +1396,6 @@
 
 		/*
-		 *  å¿
-è¦ãªæ
-å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã¦ã
-		 *  æ¨æºã® TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+		 *  必要な情報を Time Wait 用 TCP 通信端点に移して、
+		 *  標準の TCP 通信端点を開放する。
 		 */
 		tcp_move_twcep(cep);
@@ -1461,6 +1405,5 @@
 		break;
 
-	case TCP_FSM_TIME_WAIT:		/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
-ã¡ */
+	case TCP_FSM_TIME_WAIT:		/* 相手からの FIN 受信済み、時間待ち */
 		cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
 		break;
@@ -1469,9 +1412,7 @@
 
 /*
- *  tcp_input -- TCP ã®å
-¥åé¢æ°
+ *  tcp_input -- TCP の入力関数
  *
- *	æ³¨æ: input ã«ã¯ IF ãããã¨ IP ããããå
-é ­ã«ããã
+ *	注意: input には IF ヘッダと IP ヘッダが先頭にある。
  */
 
@@ -1500,5 +1441,5 @@
 	NET_COUNT_MIB(tcp_stats.tcpInSegs, 1);
 
-	/* ãããé·ããã§ãã¯ããã*/
+	/* ヘッダ長をチェックする。*/
 	if (input->len < IF_IP_TCP_HDR_SIZE) {
 		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1);
@@ -1509,5 +1450,5 @@
 	tcph = GET_TCP_HDR(input, *offp);
 
-	seglen  = input->len - *offp;				/* TCP ã®ã»ã°ã¡ã³ãé· */
+	seglen  = input->len - *offp;				/* TCP のセグメント長 */
 
 	if (IN_CKSUM(input, IPPROTO_TCP, *offp, (uint_t)seglen) != 0) {
@@ -1516,19 +1457,19 @@
 		}
 
-	/* TCP ãããé·ããã§ãã¯ããã*/
+	/* TCP ヘッダ長をチェックする。*/
 	if (TCP_HDR_LEN(tcph->doff) < TCP_HDR_SIZE || TCP_HDR_LEN(tcph->doff) > seglen) {
 		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1);
 		goto drop;
 		}
-	tcph->sum = seglen - TCP_HDR_LEN(tcph->doff);		/* ãããã tcph->sum ã¯ TCP ã® SDU é· */
-
-	/*
-	 *  SYN ã¨ FIN ã®ä¸¡ããããã»ããããã¦ããã°ç ´æ£ãããnmap ç­ã®å¯¾ç­
-	 *  ãã ããRFC1644 T/TCP æ¡å¼µæ©è½ã¨ç«¶åããã
+	tcph->sum = seglen - TCP_HDR_LEN(tcph->doff);		/* ここから tcph->sum は TCP の SDU 長 */
+
+	/*
+	 *  SYN と FIN の両ビットがセットされていれば破棄する。nmap 等の対策
+	 *  ただし、RFC1644 T/TCP 拡張機能と競合する。
 	 */
 	if ((tcph->flags & (TCP_FLG_SYN | TCP_FLG_FIN)) == (TCP_FLG_SYN | TCP_FLG_FIN))
 		goto drop;
 
-	/* ãããã¯ã¼ã¯ãªã¼ãã¼ãããã¹ããªã¼ãã¼ã«å¤æããã*/
+	/* ネットワークオーダーからホストオーダーに変換する。*/
 
 	NTOHL(tcph->seq);
@@ -1544,21 +1485,20 @@
 
 	/*
-	 *  ç¶æ
-ã Time Wait ä¸­ã® CEP ãæ¢ç´¢ããã
+	 *  状態が Time Wait 中の CEP を探索する。
 	 */
 	twcep = tcp_find_twcep(&iph->dst, tcph->dport, &iph->src, tcph->sport);
 	if (twcep != NULL) {
 
-		if (tcph->flags & TCP_FLG_RST)		/* RST ãã©ã°ãåä¿¡ããã¨ãã¯ç¡è¦ããã*/
+		if (tcph->flags & TCP_FLG_RST)		/* RST フラグを受信したときは無視する。*/
 			goto drop;
 		else {
 
 			/*
-			 *    TCP éä¿¡ç«¯ç¹ã Time Wait ã®æãç¸æãã¹ãããã»ã°ã¡ã³ããæ¥ãã¨ãã¯ã
-			 *    ç¸æãã¹ãã® FIN ã«å¯¾ããèªãã¹ãã® ACK ã»ã°ã¡ã³ããéä¸­ã§
-			 *    æå¤±ãããã¨ãæå³ãã¦ããã®ã§ãACK ã»ã°ã¡ã³ããåéããã
+			 *    TCP 通信端点が Time Wait の時、相手ホストからセグメントが来たときは、
+			 *    相手ホストの FIN に対する自ホストの ACK セグメントが途中で
+			 *    損失したことを意味しているので、ACK セグメントを再送する。
 			 */
 
-			/* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/
+			/* ホストオーダーからネットワークオーダーに戻す。*/
 			HTONS(tcph->sport);
 			HTONS(tcph->dport);
@@ -1569,10 +1509,10 @@
 		}
 	else
-		/* æ¨æºã® TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+		/* 標準の TCP 通信端点を得る。*/
 		cep = tcp_find_cep(&iph->dst, tcph->dport, &iph->src, tcph->sport);
 
 #else	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = tcp_find_cep(&iph->dst, tcph->dport, &iph->src, tcph->sport);
 
@@ -1580,6 +1520,5 @@
 
 	/*
-	 *  TCP éä¿¡ç«¯ç¹ããªãå ´åã¨ CEP ã®ç¶æ
-ãã¯ã­ã¼ãºãªãç ´æ£ããã
+	 *  TCP 通信端点がない場合と CEP の状態がクローズなら破棄する。
 	 */
 	if (cep == NULL) {
@@ -1599,6 +1538,6 @@
 
 	/*
-	 *  ã³ãã¯ã·ã§ã³éè¨­æ¸ã¿ã§ã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã
-	 *  ã¢ã¤ãã«æéã¨çå­ç¢ºèªã¿ã¤ãããªã»ããããã
+	 *  コネクション開設済みでセグメントを受信したときは、
+	 *  アイドル時間と生存確認タイマをリセットする。
 	 */
 	cep->idle = 0;
@@ -1607,23 +1546,19 @@
 		}
 
-	/* CEP ã®ç¶æ
-ã LISTEN ä»¥å¤ã®æã¯ããªãã·ã§ã³ãå¦çããã*/
+	/* CEP の状態が LISTEN 以外の時は、オプションを処理する。*/
 	if (cep->fsm_state != TCP_FSM_LISTEN)
 		parse_option(tcph, cep);
 
 	/*
-	 *  åä¿¡å¯è½ã¦ã£ã³ããµã¤ãºãè¨ç®ããã
+	 *  受信可能ウィンドサイズを計算する。
 	 *
-	 *  rcv_nxt:     åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQï¼ããä»¥åã¯åä¿¡æ¸ã¿ï¼
-	 *  rcv_adv:     åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ
-	 *  rbufsz:      åä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº
-	 *  rwbuf_count:  åä¿¡ã¦ã£ã³ããããã¡ã«ãããã¼ã¿é
-	 *  tcph->sum:   ä»ååä¿¡ãã SDU ãµã¤ãº
+	 *  rcv_nxt:     受信を期待している最小の SEQ（これ以前は受信済み）
+	 *  rcv_adv:     受信を期待している最大の SEQ
+	 *  rbufsz:      受信ウィンドバッファサイズ
+	 *  rwbuf_count:  受信ウィンドバッファにあるデータ量
+	 *  tcph->sum:   今回受信した SDU サイズ
 	 *
-	 *  ä»ååä¿¡ããã»ã°ã¡ã³ããé åºæ´åã­ã¥ã¼ã«é£çµãã
-	 *  å¯è½æ§ãããã®ã§ tcph->sum ãèæ
-®ããã
+	 *  今回受信したセグメントを順序整列キューに連結する
+	 *  可能性があるので tcph->sum を考慮する。
 	 *
 	 */
@@ -1636,15 +1571,14 @@
 		cep->rcv_wnd = cep->rcv_adv - cep->rcv_nxt;
 
-	/* CEP ã®ç¶æ
-ã«ããå¦çãè¡ãã*/
-
-	if (cep->fsm_state == TCP_FSM_LISTEN) {		/* ååãªã¼ãã³ (LISTEN) ã®å¦çã*/
+	/* CEP の状態により処理を行う。*/
+
+	if (cep->fsm_state == TCP_FSM_LISTEN) {		/* 受動オープン (LISTEN) の処理。*/
 		if ((ret = listening(input, cep, *offp, iss)) == RET_RST_DROP)
 			goto reset_drop;
 		else if (ret == RET_DROP)
 			goto drop;
-		trim_length(tcph, cep);			/* åä¿¡ãã SDU é·ãèª¿æ´ããã*/
-
-		if (tcph->flags & TCP_FLG_ACK) {	/* ACK ãã©ã°ã®å¦ç */
+		trim_length(tcph, cep);			/* 受信した SDU 長を調整する。*/
+
+		if (tcph->flags & TCP_FLG_ACK) {	/* ACK フラグの処理 */
 			if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP)
 				goto drop;
@@ -1655,12 +1589,12 @@
 			}
 		}
-	else if (cep->fsm_state == TCP_FSM_SYN_SENT) {	/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
+	else if (cep->fsm_state == TCP_FSM_SYN_SENT) {	/* 能動オープン、SYN 送信済み	*/
 		if ((ret = syn_sent(tcph, cep)) == RET_RST_DROP)
 			goto reset_drop;
 		else if (ret == RET_DROP)
 			goto drop;
-		trim_length(tcph, cep);			/* åä¿¡ãã SDU é·ãèª¿æ´ããã*/
-
-		if (tcph->flags & TCP_FLG_ACK) {	/* ACK ãã©ã°ã®å¦ç */
+		trim_length(tcph, cep);			/* 受信した SDU 長を調整する。*/
+
+		if (tcph->flags & TCP_FLG_ACK) {	/* ACK フラグの処理 */
 			if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP)
 				goto drop;
@@ -1672,12 +1606,12 @@
 		}
 	else {
-		if (cep->fsm_state == TCP_FSM_SYN_RECVD) {	/* SYN ãåä¿¡ãSYN éä¿¡æ¸ã¿	*/
+		if (cep->fsm_state == TCP_FSM_SYN_RECVD) {	/* SYN を受信、SYN 送信済み	*/
 			/*
-			 *  ç¸æããåä¿¡ç¢ºèªãéããã¦æ¥ã¦ãã
+			 *  相手から受信確認が送られて来ても、
 			 *
-			 *    ACK <= æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) &&
-			 *           éä¿¡ããæå¤§     SEQ (snd_max) < ACK
+			 *    ACK <= 未確認の最小送信 SEQ (snd_una) &&
+			 *           送信した最大     SEQ (snd_max) < ACK
 			 *
-			 *  ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã
+			 *  なら、リセットを送ってセグメントを破棄する。
 			 */
 			if ((tcph->flags & TCP_FLG_ACK) &&
@@ -1688,5 +1622,5 @@
 
 		/* 
-		 *  RST ãã©ã°ãåä¿¡ããã¨ãã®å¦ç (ç°å¸¸åæ­)
+		 *  RST フラグを受信したときの処理 (異常切断)
 		 */
 		if (tcph->flags & TCP_FLG_RST) {
@@ -1694,11 +1628,11 @@
 			    SEQ_LT(tcph->seq, cep->last_ack_sent + cep->rcv_wnd)) {
 				/*
-				 *  åä¿¡ããã»ã°ã¡ã³ãã® SEQ ããæå¾ã«éä¿¡ãã ACK (last_ack_sent)
-				 *  ãããåä¿¡ã¦ã¤ã³ãã¦ãµã¤ãºã¾ã§ã®éã®å¦ç
+				 *  受信したセグメントの SEQ が、最後に送信した ACK (last_ack_sent)
+				 *  から、受信ウインドウサイズまでの間の処理
 				 */
 				switch (cep->fsm_state) {
-				case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿		*/
-
-					cep->net_error = EV_CNNRF;	/* æ¥ç¶ä¸è½ */
+				case TCP_FSM_SYN_RECVD:		/* SYN を受信し、SYN 送信済み		*/
+
+					cep->net_error = EV_CNNRF;	/* 接続不能 */
 					cep->error     = E_CLS;
 					NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1);
@@ -1707,23 +1641,19 @@
 					break;
 
-				case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº			*/
-				case TCP_FSM_CLOSE_WAIT:	/* FIN åä¿¡ãã¯ã­ã¼ãºå¾
-ã¡		*/
+				case TCP_FSM_ESTABLISHED:	/* コネクション開設完了			*/
+				case TCP_FSM_CLOSE_WAIT:	/* FIN 受信、クローズ待ち		*/
 					NET_COUNT_MIB(tcp_stats.tcpEstabResets, 1);
 					/* fallthrough */
 
-				case TCP_FSM_FIN_WAIT_1:	/* çµäºãã¦ãFIN éä¿¡æ¸ã¿		*/
-				case TCP_FSM_FIN_WAIT_2:	/* çµäºãFIN ä¼éç¢ºèªåä¿¡ãFINå¾
-ã¡	*/
-
-					cep->net_error = EV_CNRST;	/* æ¥ç¶ãªã»ãã */
+				case TCP_FSM_FIN_WAIT_1:	/* 終了して、FIN 送信済み		*/
+				case TCP_FSM_FIN_WAIT_2:	/* 終了、FIN 伝達確認受信、FIN待ち	*/
+
+					cep->net_error = EV_CNRST;	/* 接続リセット */
 					cep->error     = E_CLS;
 					NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1);
 					/* no break; */
 
-				case TCP_FSM_CLOSING:		/* çµäºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡	*/
-				case TCP_FSM_LAST_ACK:		/* FIN åä¿¡ãçµäºãACK å¾
-ã¡	*/
+				case TCP_FSM_CLOSING:		/* 終了、FIN 交換済み、ACK 待ち	*/
+				case TCP_FSM_LAST_ACK:		/* FIN 受信、終了、ACK 待ち	*/
 
 					cep = tcp_close(cep);
@@ -1735,12 +1665,11 @@
 
 		/*
-		 *  CEP ã®ç¶æ
-ã SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿ã®å ´åã¯ã
-		 *  åä¿¡ã¦ã£ã³ãã«åã¾ãããã«ãã¼ã¿ã
-		 *  èª¿æ´ããåã«ããã®æ¥ç¶ã«ãããã±ãããã©ãããæ¤è¨¼ããã
+		 *  CEP の状態が SYN を受信し、SYN 送信済みの場合は、
+		 *  受信ウィンドに収まるようにデータを
+		 *  調整する前に、この接続によるパケットかどうかを検証する。
 		 *
-		 *    åä¿¡ããç¸æã® SEQ < ç¸æã® SEQ ã®åæå¤ (irs)
+		 *    受信した相手の SEQ < 相手の SEQ の初期値 (irs)
 		 *
-		 *  ããã¯ã"LAND" DoS æ»æã®é²å¾¡ã§ããã
+		 *  これは、"LAND" DoS 攻撃の防御である。
 		 */
 		if (cep->fsm_state == TCP_FSM_SYN_RECVD && SEQ_LT(tcph->seq, cep->irs)) {
@@ -1749,8 +1678,7 @@
 
 		/*
-		 *  åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ (rcv_nxt) - åä¿¡ããç¸æã® SEQ ã
-		 *  æ­£ãªããrcv_nxt ä»¥åã®ãã¼ã¿ã¯ãã§ã«åä¿¡ãã¦ããã®ã§ããã®é¨åã
-		 *  åé¤ããã
+		 *  受信を期待している最小の SEQ (rcv_nxt) - 受信した相手の SEQ が
+		 *  正なら、rcv_nxt 以前のデータはすでに受信しているので、その部分を
+		 *  削除する。
 		 *                           <---------- rcv_wnd --------->
 		 *                           rcv_nxt                      rcv_nxt + rcv_wnd
@@ -1764,5 +1692,5 @@
 		 *           ^                      ^
 		 *           seq                    seq + len
-		 *           <---------------> åé¤ããã
+		 *           <---------------> 削除する。
 		 */
 		todrop = cep->rcv_nxt - tcph->seq;
@@ -1770,6 +1698,6 @@
 
 			/*
-			 *  SYN ãã©ã°ãã¤ãã¦ããã¨ãã¯ããã®å (1 ãªã¯ããã)
-			 *  SEQ ãé²ããç·æ¥ãã¤ã³ã¿ã¨åé¤ããé·ããèª¿æ´ããã
+			 *  SYN フラグがついているときは、その分 (1 オクテット)
+			 *  SEQ を進め、緊急ポインタと削除する長さを調整する。
 			 */
 			if (tcph->flags & TCP_FLG_SYN) {
@@ -1784,22 +1712,20 @@
 
 			/*
-			 *  åé¤ããé·ãã SDU ããé·ããã¤ã¾ããåä¿¡ãæå¾
-ãã¦ãã
-			 *  æå°ã® SEQ (rcv_nxt) ã«éãã¦ããªããã
-			 *  åé¤ããé·ãã SDU ã¨åãã§ãFIN ãã©ã°ãã¤ãã¦ãªããã°
-			 *  å
-¨ã¦åé¤ããã
+			 *  削除する長さが SDU より長い、つまり、受信を期待している
+			 *  最小の SEQ (rcv_nxt) に達していないか、
+			 *  削除する長さが SDU と同じで、FIN フラグがついてなければ
+			 *  全て削除する。
 			 */
-			if ( todrop >  tcph->sum ||		/* tcph->sum ã¯ TCP ã® SDU é· */
+			if ( todrop >  tcph->sum ||		/* tcph->sum は TCP の SDU 長 */
 			    (todrop == tcph->sum && (tcph->flags & TCP_FLG_FIN) == 0)) {
 				tcph->flags &= ~TCP_FLG_FIN;
 				cep->flags |= TCP_CEP_FLG_ACK_NOW;
-				todrop = tcph->sum;		/* tcph->sum ã¯ TCP ã® SDU é· */
+				todrop = tcph->sum;		/* tcph->sum は TCP の SDU 長 */
 				}
 
 			/*
-			 *  SDU ãåã«è©°ããã
+			 *  SDU を前に詰める。
 			 */
-			if (todrop < tcph->sum) {		/* tcph->sum ã¯ TCP ã® SDU é· */
+			if (todrop < tcph->sum) {		/* tcph->sum は TCP の SDU 長 */
 				memcpy(GET_TCP_SDU(input, *offp),
 				       GET_TCP_SDU(input, *offp) + todrop, (size_t)(tcph->sum - todrop));
@@ -1807,11 +1733,11 @@
 
 			/*
-			 *  SEQ ã¨ SDU é·ãèª¿æ´ããã
+			 *  SEQ と SDU 長を調整する。
 			 */
 			tcph->seq +=     todrop;
-			tcph->sum -= (uint16_t)todrop;	/* tcph->sum ã¯ TCP ã® SDU é· */
+			tcph->sum -= (uint16_t)todrop;	/* tcph->sum は TCP の SDU 長 */
 
 			/*
-			 *  ç·æ¥ãã¤ã³ã¿ãèª¿æ´ããã
+			 *  緊急ポインタを調整する。
 			 */
 			if (tcph->urp > todrop)
@@ -1826,8 +1752,8 @@
 
 		/*  
-		 *  ããã¦ã¼ã¶ã¿ã¹ã¯ãçµäºããå¾ã«ããã¼ã¿ãåä¿¡ãã
-		 *  å ´åã¯ãRST ãéãã
-		 */
-		if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) {	/* tcph->sum ã¯ TCP ã® SDU é· */
+		 *  もしユーザタスクが終了した後に、データを受信した
+		 *  場合は、RST を送る。
+		 */
+		if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) {	/* tcph->sum は TCP の SDU 長 */
 			cep = tcp_close(cep);
 			goto reset_drop;
@@ -1835,8 +1761,6 @@
 
 		/*
-		 *  åä¿¡ã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããè¶
-ããå ´åã¯ã
-		 *  è¶
-ããåãåãã
+		 *  受信セグメントが受信ウィンドを超える場合は、
+		 *  超えた分を削る。
 		 *
 		 *       <---------- rcv_wnd --------->
@@ -1851,17 +1775,15 @@
 		 *                    ^                      ^
 		 *                    seq                    seq + len
-		 *                                     <-----> åé¤ããã
-		 */
-		todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd);	/* tcph->sum ã¯ TCP ã® SDU é· */
+		 *                                     <-----> 削除する。
+		 */
+		todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd);	/* tcph->sum は TCP の SDU 長 */
 		if (todrop > 0) {
-			if (todrop > tcph->sum) {					/* tcph->sum ã¯ TCP ã® SDU é· */
+			if (todrop > tcph->sum) {					/* tcph->sum は TCP の SDU 長 */
 				/*
-				 *  åä¿¡ãã SDU ã®å
-¨ã¦ãåä¿¡ã¦ã£ã³ããè¶
-ããå ´åã
+				 *  受信した SDU の全てが受信ウィンドを超える場合。
 				 *
-				 *  TIME_WAIT ä¸­ã«ãæ°ããªæ¥ç¶è¦æ±ãåä¿¡ããã
-				 *  å¤ãæ¥ç¶ãç ´æ£ããæ°ããªæ¥ç¶ãéå§ããã
-				 *  ãã ããSEQ ã¯åããé²ãã§ããªããã°ãªããªãã
+				 *  TIME_WAIT 中に、新たな接続要求を受信したら
+				 *  古い接続を破棄し、新たな接続を開始する。
+				 *  ただし、SEQ は前より進んでいなければならない。
 				 */
 				if ((tcph->flags & TCP_FLG_SYN) &&
@@ -1875,8 +1797,7 @@
 
 				/*
-				 *  åä¿¡ã¦ã£ã³ãã 0 ã§ãåä¿¡ãã SEQ ã¨
-				 *  åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ ãä¸è´ããã¨ãã¯
-				 *  ACK ãè¿ããããä»¥å¤ã¯ãã¼ã¿ãç ´æ£ããACK ãè¿ãã
+				 *  受信ウィンドが 0 で、受信した SEQ と
+				 *  受信を期待している最小の SEQ が一致したときは
+				 *  ACK を返す。それ以外はデータを破棄し、ACK を返す。
 				 */
 				if (cep->rcv_wnd == 0 && (tcph->seq == cep->rcv_nxt || tcph->sum == 0)) {
@@ -1889,11 +1810,11 @@
 					}
 				}
-			tcph->sum -= (uint16_t)todrop;	/* tcph->sum ã¯ TCP ã® SDU é· */
+			tcph->sum -= (uint16_t)todrop;	/* tcph->sum は TCP の SDU 長 */
 			tcph->flags &= ~(TCP_FLG_PUSH | TCP_FLG_FIN);
 			}
 
 		/*
-		 *  ãããSYN ãã»ããããã¦ããã°ã
-		 *  ã¨ã©ã¼ãªã®ã§ RST ãéããæ¥ç¶ãç ´æ£ããã
+		 *  もし、SYN がセットされていれば、
+		 *  エラーなので RST を送り、接続を破棄する。
 		 */
 		if (tcph->flags & TCP_FLG_SYN) {
@@ -1904,9 +1825,8 @@
 
 		/*
-		 *  ãããACK ãã»ããããã¦ããªãå ´åã¯ã
-		 *  ç¶æ
-ã SYN åä¿¡æ¸ã¿ã
-		 *  SYN ãéä¿¡ãããã¨ãã¦ããã°ãå¦çãç¶ãããã
-		 *  ããä»¥å¤ã¯ã»ã°ã¡ã³ããç ´æ£ãã¦çµäºããã
+		 *  もし、ACK がセットされていない場合は、
+		 *  状態が SYN 受信済みか
+		 *  SYN を送信しようとしていれば、処理を続けるが、
+		 *  それ以外はセグメントを破棄して終了する。
 		 */
 		if ((tcph->flags & TCP_FLG_ACK) == 0) {
@@ -1916,5 +1836,5 @@
 		else {
 			/*
-			 * ACK ã®å¦ç
+			 * ACK の処理
 			 */
 			ret = proc_ack1(input, cep, *offp, &needoutput);
@@ -1930,9 +1850,9 @@
 /* step 6 */
 
-	/* éä¿¡ã¦ã£ã³ããæ´æ°ããã*/
+	/* 送信ウィンドを更新する。*/
 	if (update_wnd(tcph, cep) == true)
 		needoutput = true;
 
-	/* ç·æ¥ãã¼ã¿ãå¦çããã*/
+	/* 緊急データを処理する。*/
 	proc_urg(tcph, cep);
 
@@ -1940,11 +1860,10 @@
 
 	/*
-	 *  SDU ãããããFIN ãæªåä¿¡ã®ç¶æ
-ã§ãæåã« FIN ãåä¿¡ããã¨ãã
-	 *  åä¿¡ã»ã°ã¡ã³ãã­ã¥ã¼ã« net_buf ãè¿½å ããã
-	 *  ããä»¥å¤ã®å ´åã¯ãã»ã°ã¡ã³ããç ´æ£ããã
+	 *  SDU があるか、FIN を未受信の状態で、最初に FIN を受信したとき、
+	 *  受信セグメントキューに net_buf を追加する。
+	 *  それ以外の場合は、セグメントを破棄する。
 	 */
 	flags = tcph->flags;
-	if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) &&		/* tcph->sum ã¯ TCP ã® SDU é· */
+	if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) &&		/* tcph->sum は TCP の SDU 長 */
 	    TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) {
 		flags = reassemble(input, cep, *offp, flags);
@@ -1956,12 +1875,12 @@
 
 	/*
-	 *  FIN ãåä¿¡ãããã³ãã¯ã·ã§ã³ãã¯ã­ã¼ãºããã
+	 *  FIN を受信したらコネクションをクローズする。
 	 */
 	if (flags & TCP_FLG_FIN)
 		close_connection(cep, &needoutput);
 
-	/* åºåãè¡ã£ãå¾çµäºããã*/
+	/* 出力を行った後終了する。*/
 	if (needoutput == true || (cep->flags & TCP_CEP_FLG_ACK_NOW)) {
-		/* éä¿¡ãæç¤ºããã*/
+		/* 送信を指示する。*/
 		cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1972,5 +1891,5 @@
 reset_drop:
 	/*
-	 *  RST éä¿¡å¦ç
+	 *  RST 送信処理
 	 */
 
@@ -1978,5 +1897,5 @@
 		goto drop;
 
-	/* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/
+	/* ホストオーダーからネットワークオーダーに戻す。*/
 
 	HTONS(tcph->sport);
@@ -1993,9 +1912,9 @@
 	else {
 		if (tcph->flags & TCP_FLG_SYN)
-			tcph->sum ++;		/* tcph->sum ã¯ SDU é· */
+			tcph->sum ++;		/* tcph->sum は SDU 長 */
 		tcp_respond(input, cep, tcph->seq + tcph->sum, 0, rbfree, TCP_FLG_RST | TCP_FLG_ACK);
 		}
 
-	/* input ã¯ tcp_respoond ã§è¿å´ãããã*/
+	/* input は tcp_respoond で返却される。*/
 	NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_RSTS], 1);
 	NET_COUNT_MIB(tcp_stats.tcpOutRsts, 1);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_output.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_output.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_output.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -127,5 +115,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -134,31 +122,25 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
-/* åºåæã®ãã©ã°ã FSM ç¶æ
-ã«ããé¸æããããã®è¡¨ */
+/* 出力時のフラグを FSM 状態により選択するための表 */
 
 const static uint8_t tcp_outflags[] = {
-	TCP_FLG_RST | TCP_FLG_ACK,	/*  0, ã¯ã­ã¼ãº				*/
-	0,				/*  1, ååãªã¼ãã³			*/
-	TCP_FLG_SYN,			/*  2, è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
-	TCP_FLG_SYN | TCP_FLG_ACK,	/*  3, SYM ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
-	TCP_FLG_ACK,			/*  4, ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
-	TCP_FLG_ACK,			/*  5, FIN åä¿¡ãã¯ã­ã¼ãºå¾
-ã¡		*/
-	TCP_FLG_FIN | TCP_FLG_ACK,	/*  6, çµäºãã¦ãFIN éä¿¡æ¸ã¿		*/
-	TCP_FLG_FIN | TCP_FLG_ACK,	/*  7, çµäºãFIN äº¤ææ¸ã¿ãACK å¾
-ã¡	*/
-	TCP_FLG_FIN | TCP_FLG_ACK,	/*  8, FIN åä¿¡ãçµäºãACK å¾
-ã¡		*/
-	TCP_FLG_ACK,			/*  9, çµäºãFIN ä¼éç¢ºèªåä¿¡ãFINå¾
-ã¡	*/
-	TCP_FLG_ACK,			/* 10, çµäºãæéå¾
-ã¡			*/
+	TCP_FLG_RST | TCP_FLG_ACK,	/*  0, クローズ				*/
+	0,				/*  1, 受動オープン			*/
+	TCP_FLG_SYN,			/*  2, 能動オープン、SYN 送信済み	*/
+	TCP_FLG_SYN | TCP_FLG_ACK,	/*  3, SYM を受信し、SYN 送信済み	*/
+	TCP_FLG_ACK,			/*  4, コネクション開設完了		*/
+	TCP_FLG_ACK,			/*  5, FIN 受信、クローズ待ち		*/
+	TCP_FLG_FIN | TCP_FLG_ACK,	/*  6, 終了して、FIN 送信済み		*/
+	TCP_FLG_FIN | TCP_FLG_ACK,	/*  7, 終了、FIN 交換済み、ACK 待ち	*/
+	TCP_FLG_FIN | TCP_FLG_ACK,	/*  8, FIN 受信、終了、ACK 待ち		*/
+	TCP_FLG_ACK,			/*  9, 終了、FIN 伝達確認受信、FIN待ち	*/
+	TCP_FLG_ACK,			/* 10, 終了、時間待ち			*/
 	};
 
 /*
- *  send_segment -- TCP åºåå¦ç
+ *  send_segment -- TCP 出力処理
  */
 
@@ -190,13 +172,10 @@
 
 	/*
-	 *  ã»ã°ã¡ã³ãé·ããç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ãé·ã«èª¿æ´ããã
-	 *  ãããè¶
-ãã¦ããå ´åã¯ãè¶
-ããåãå¾ã§éä¿¡ããã
-	 *  ãã®ãããFIN ããããã¯ãªã¢ããã
+	 *  セグメント長を、相手の最大受信セグメント長に調整する。
+	 *  もし、超えている場合は、超えた分を後で送信する。
+	 *  このため、FIN ビットをクリアする。
 	 *
-	 *  ãªãªã¸ãã«ã§ã¯ãt_maxopd ãå¶éé·ã«ãã¦ãããã
-	 *  æ¬å®è£
-ã§ã¯ãç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ãã«ããã
+	 *  オリジナルでは、t_maxopd を制限長にしているが、
+	 *  本実装では、相手の最大受信セグメントにする。
 	 */
 	if (len + optlen > cep->maxseg) {
@@ -207,5 +186,5 @@
 
 	/*
-	 *  éä¿¡ãããã¡ãç©ºã«ãªãã¨ãã¯ PUSH ãã©ã°ãè¨­å®ããã
+	 *  送信バッファが空になるときは PUSH フラグを設定する。
 	 */
 	if (len && doff + len >= cep->swbuf_count)
@@ -218,6 +197,6 @@
 
 		/*
-		 *  éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã
-		 *  ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã
+		 *  送信ウインドバッファが開放されないようにして、
+		 *  ネットワークバッファを出力に移す。
 		 */
 		cep->swbufq->flags |= NB_FLG_NOREL_IFOUT;
@@ -227,7 +206,6 @@
 
 		/*
-		 *  ACK å®äºç¶æ
-ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã
-		 *  ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã
+		 *  ACK 完了状態で、この関数が呼び出されることもある。
+		 *  この時は、len を 0 にして、処理を継続する。
 		 */
 		len = 0;
@@ -256,6 +234,6 @@
 
 		/*
-		 *  éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã
-		 *  ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã
+		 *  送信ウインドバッファが開放されないようにして、
+		 *  ネットワークバッファを出力に移す。
 		 */
 		cep->swbufq->flags |= NB_FLG_NOREL_IFOUT;
@@ -265,7 +243,6 @@
 
 		/*
-		 *  ACK å®äºç¶æ
-ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã
-		 *  ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã
+		 *  ACK 完了状態で、この関数が呼び出されることもある。
+		 *  この時は、len を 0 にして、処理を継続する。
 		 */
 		len = 0;
@@ -292,7 +269,6 @@
 
 	/*
-	 *  TCP ãªãã·ã§ã³ã®è¨­å®ãè¡ãã
-	 *  æ¬å®è£
-ã§ã¯ãæå¤§ã»ã°ã¡ã³ããµã¤ãºã®ã¿è¨­å®ããã
+	 *  TCP オプションの設定を行う。
+	 *  本実装では、最大セグメントサイズのみ設定する。
 	 */
 	if (flags & TCP_FLG_SYN) {
@@ -310,5 +286,5 @@
 		}
 
-	/* TCP SDU ã«éä¿¡ãã¼ã¿ãã³ãã¼ããã*/
+	/* TCP SDU に送信データをコピーする。*/
 
 	if (len > 0) {
@@ -336,10 +312,10 @@
 
 	/*
-	 * snd_max: éä¿¡ããæå¤§ SEQ
-	 * snd_nxt: æ¬¡ã«éä¿¡ãã SEQ
+	 * snd_max: 送信した最大 SEQ
+	 * snd_nxt: 次に送信する SEQ
 	 *
-	 *  ç¸æãã FIN ãåä¿¡ããã¾ã  FIN ãéä¿¡ãã¦ããªããã
-	 *  éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã
-	 *  ã»ã°ã¡ã³ããéä¿¡ããããSEQ ã¯é²ããªãã
+	 *  相手から FIN を受信し、まだ FIN を送信していないか、
+	 *  送るデータがないときは、FIN を相手に届けるため、
+	 *  セグメントを送信するが、SEQ は進めない。
 	 */
 	if ((flags & TCP_FLG_FIN) && (cep->flags & TCP_CEP_FLG_SENT_FIN) &&
@@ -351,5 +327,5 @@
 
 	/*
-	 *  SEQãACKããã©ã°ã®è¨­å®ã
+	 *  SEQ、ACK、フラグの設定。
 	 */
 	if (len > 0 || (flags & (TCP_FLG_SYN | TCP_FLG_FIN)) || cep->timer[TCP_TIM_PERSIST] != 0)
@@ -359,6 +335,5 @@
 
 	/*
-	 *  rcv_nxt: åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ
+	 *  rcv_nxt: 受信を期待している最小の SEQ
 	 */
 	tcph->ack   = htonl(cep->rcv_nxt);
@@ -366,8 +341,8 @@
 
 	/*
-	 *  åä¿¡ã¦ã£ã³ãã®è¨ç®
+	 *  受信ウィンドの計算
 	 *
-	 *  rbufsz: åä¿¡ç¨ãããã¡ãµã¤ãº
-	 *  maxseg: ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº	
+	 *  rbufsz: 受信用バッファサイズ
+	 *  maxseg: 相手の最大受信セグメントサイズ	
 	 */
 	if (win < (cep->rbufsz / 4) && win < cep->maxseg)
@@ -375,8 +350,6 @@
 
 	/*
-	 *  rcv_nxt: åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ
-	 *  rcv_adv: åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ
+	 *  rcv_nxt: 受信を期待している最小の SEQ
+	 *  rcv_adv: 受信を期待している最大の SEQ
 	 */
 	if ((int32_t)win < (int32_t)(cep->rcv_adv - cep->rcv_nxt))
@@ -388,5 +361,5 @@
 
 	/*
-	 *  ç·æ¥ãã¤ã³ã¿ã®è¨­å®
+	 *  緊急ポインタの設定
 	 */
 	if (SEQ_GT(cep->snd_up, cep->snd_nxt)) {
@@ -403,5 +376,5 @@
 
 	/*
-	 *  ãã§ãã¯ãµã ãè¨­å®ããã
+	 *  チェックサムを設定する。
 	 */
 	tcph->sum = 0;
@@ -409,9 +382,9 @@
 		             GET_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET) + len);
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	/* ネットワークバッファ長を調整する。*/
 	output->len = (uint16_t)(GET_IF_IP_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET) + len);
 
 	/*
-	 *  ã¿ã¤ãã®èª¿æ´
+	 *  タイマの調整
 	 */
 	if ((cep->flags & TCP_CEP_FLG_FORCE) == 0 || cep->timer[TCP_TIM_PERSIST] == 0) {
@@ -419,5 +392,5 @@
 
 		/*
-		 *  æ¬¡ã«éä¿¡ãã SEQ (snd_nxt) ãä»åéä¿¡ãããã¼ã¿æ°åé²ããã
+		 *  次に送信する SEQ (snd_nxt) を今回送信するデータ数分進める。
 		 */
 		if (flags & TCP_FLG_SYN)
@@ -431,25 +404,25 @@
 
 		/*
-		 *  æ¬¡ã«éä¿¡ãã SEQ (snd_nxt) ã
-		 *  éä¿¡ããæå¤§ SEQ (snd_max) ããé²ãã§ããã°ã
-		 *  éä¿¡ããæå¤§ SEQ (snd_max) ãæ´æ°ããã
+		 *  次に送信する SEQ (snd_nxt) が
+		 *  送信した最大 SEQ (snd_max) より進んでいれば、
+		 *  送信した最大 SEQ (snd_max) を更新する。
 		 */
 		if (SEQ_GT(cep->snd_nxt, cep->snd_max)) {
 			cep->snd_max = cep->snd_nxt;
 			/*
-			 *  ãããå¾å¾©æéè¨æ¸¬ãè¡ã£ã¦ããªããã°ã
-			 *  ãã®éä¿¡ã«æéãåãããã
+			 *  もし、往復時間計測を行っていなければ、
+			 *  この送信に時間を合わせる。
 			 */
 			if (cep->rtt == 0) {
 				cep->rtt   = 1;
-				cep->rtseq = startseq;	/* æ´æ°åã® cep->snd_nxt */
-				}
-			}
-
-		/*
-		 *  ããè¨­å®ããã¦ããªãããACK ã¾ãã¯ä¿çãçºçãã¦ããªããã°ã
-		 *  åéã¿ã¤ããè¨­å®ãããè¨­å®ããåæå¤ã¯ã
-		 * ãæ»ãããªå¾å¾©æé + 2 Ã å¾å¾©æéå¤åãã§ããã
-		 *  åéæéã®ããã¯ãªãã«ä½¿ãããã·ããã«ã¦ã³ããåæåããã
+				cep->rtseq = startseq;	/* 更新前の cep->snd_nxt */
+				}
+			}
+
+		/*
+		 *  もし設定されていないか、ACK または保留が発生していなければ、
+		 *  再送タイマを設定する。設定する初期値は、
+		 * 「滑らかな往復時間 + 2 × 往復時間変動」である。
+		 *  再送時間のバックオフに使われるシフトカウントも初期化する。
 		 */
 		if (cep->timer[TCP_TIM_REXMT] == 0 && cep->snd_nxt != cep->snd_una) {
@@ -463,7 +436,7 @@
 
 	/*
-	 *  æ¬¡ã«éä¿¡ãã SEQ (snd_nxt) + ä»åéä¿¡ãããã¼ã¿æ° (len) ã
-	 *  éä¿¡ããæå¤§ SEQ (snd_max) ããé²ãã§ããã°ã
-	 *  éä¿¡ããæå¤§ SEQ (snd_max) ãæ´æ°ããã
+	 *  次に送信する SEQ (snd_nxt) + 今回送信するデータ数 (len) が
+	 *  送信した最大 SEQ (snd_max) より進んでいれば、
+	 *  送信した最大 SEQ (snd_max) を更新する。
 	 */
 	else if (SEQ_GT(cep->snd_nxt + len, cep->snd_max))
@@ -483,16 +456,13 @@
 #endif	/* of #ifdef TCP_CFG_TRACE */
 
-	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	/* ネットワーク層 (IP) の出力関数を呼び出す。*/
 	if ((error = IP_OUTPUT(output, TMO_TCP_OUTPUT)) != E_OK)
 		goto err_ret;
 
 	/*
-	 *  ç¸æã«ä¼ããã¦ã£ã³ãã¦ãµã¤ãº (win) ã 0 ä»¥ä¸ã§ã
-	 *  åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ (rcv_nxt) + win ã
-	 *  åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ (rcv_adv) ããé²ãã§ããã°
-	 *  åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ ãæ´æ°ããã
+	 *  相手に伝えたウィンドウサイズ (win) が 0 以上で、
+	 *  受信を期待している最小の SEQ (rcv_nxt) + win が
+	 *  受信を期待している最大の SEQ (rcv_adv) より進んでいれば
+	 *  受信を期待している最大の SEQ を更新する。
 	 */
 	if (win > 0 && SEQ_GT(cep->rcv_nxt + win, cep->rcv_adv)) {
@@ -501,10 +471,10 @@
 
 	/*
-	 *  æå¾ã«éä¿¡ãã ACK (last_ack_sent) ãæ´æ°ããã
+	 *  最後に送信した ACK (last_ack_sent) を更新する。
 	 */
 	cep->last_ack_sent = cep->rcv_nxt;
 
 	/*
-	 *  ãã©ã°ã®è¨­å®ãè¡ãã
+	 *  フラグの設定を行う。
 	 */
 	cep->flags &= ~(TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_DEL_ACK);
@@ -516,7 +486,7 @@
 err_ret:
 	/*
-	 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
-	 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
-	 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+	 * 以下に関係しないフラグをクリアーする。
+	 * ・送受信ウィンドバッファの省コピー機能
+	 * ・動的な通信端点の生成・削除機能
 	 */
 	cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK | 
@@ -527,5 +497,5 @@
 
 /*
- *  tcp_output -- TCP åºåå¦ç
+ *  tcp_output -- TCP 出力処理
  */
 
@@ -540,20 +510,20 @@
 
 	/*
-	 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ	 ã¾ãã¯ãç¢ºèªãããæå¤§éä¿¡ SEQ
-	 *  snd_max: éä¿¡ããæå¤§ SEQ
+	 *  snd_una: 未確認の最小送信 SEQ	 または、確認された最大送信 SEQ
+	 *  snd_max: 送信した最大 SEQ
 	 */
 	idle = (cep->snd_max == cep->snd_una);
 
 	/*
-	 *  idle:   ã¢ã¤ãã«æé
-	 *  rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã
+	 *  idle:   アイドル時間
+	 *  rxtcur: 現在の再送タイムアウト
 	 */
 	if (idle && cep->idle >= cep->rxtcur)
 
 		/*
-		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
-		 *  maxseg  : ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº
+		 *  snd_cwnd: 輻輳ウィンドサイズ
+		 *  maxseg  : 相手の最大受信セグメントサイズ
 		 *
-		 *  é·æéã¢ã¤ãã«ã ã£ãã®ã§ã¹ã­ã¼ã¹ã¿ã¼ãå¶å¾¡ã«è¨­å®ããã
+		 *  長時間アイドルだったのでスロースタート制御に設定する。
 		 */
 		cep->snd_cwnd = cep->maxseg;
@@ -563,9 +533,9 @@
 
 		/*
-		 *  snd_nxt: æ¬¡ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ãã SEQ
-		 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæå¤§éä¿¡ SEQ
+		 *  snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ
+		 *  snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ
 		 *
-		 *  doff: éä¿¡ãéå§ãããªãã»ããã
-		 *                                    swbuf_count (éä¿¡ãããã¡ã«ãããªã¯ãããæ°)
+		 *  doff: 送信を開始するオフセット。
+		 *                                    swbuf_count (送信バッファにあるオクテット数)
 		 *    0                               V
 		 *    +-------------------------------------------+
@@ -573,19 +543,19 @@
 		 *    +-------------------------------------------+
 		 *    ^               ^
-		 *    |<------------->snd_nxt (ååéä¿¡ãã SEQ)
+		 *    |<------------->snd_nxt (前回送信した SEQ)
 		 *    |       doff
-		 *    snd_una (ã¾ã ç¢ºèªããã¦ããªã)
+		 *    snd_una (まだ確認されていない)
 		 */
 		doff = (uint_t)(cep->snd_nxt - cep->snd_una);
 
 		/*
-		 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
-		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+		 *  snd_wnd:  相手の受信可能ウィンドサイズ
+		 *  snd_cwnd: 輻輳ウィンドサイズ
 		 *
-		 *  win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨­å®ããã
+		 *  win: どちらか小さいウィンドサイズに設定する。
 		 */
 		win   = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
 	
-		/* åºåãã©ã°ã®è¨­å® */
+		/* 出力フラグの設定 */
 		flags = tcp_outflags[cep->fsm_state];
 		if (cep->flags & TCP_CEP_FLG_NEED_FIN)
@@ -596,17 +566,17 @@
 
 			/*
-			 *  ãããéä¿¡ã¦ã¤ã³ããµã¤ãº (win) ã 0 ãªã 1 ãªã¯ãããéä¿¡ããã
-			 *  ããã§ãªããã°ãæç¶ã¿ã¤ã ã¢ã¦ããã­ã£ã³ã»ã«ãã
-			 *  åéä¿¡åæ° (rxtshift) ã 0 ã«ããã
+			 *  もし、送信ウインドサイズ (win) が 0 なら 1 オクテット送信する。
+			 *  そうでなければ、持続タイムアウトをキャンセルし、
+			 *  再送信回数 (rxtshift) を 0 にする。
 			 */
 			if (win == 0) {
 
 				/*
-				 *  doff:        éä¿¡ãããªã¯ãããæ°ã
-				 *  swbuf_count: éä¿¡ãããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº
+				 *  doff:        送信するオクテット数。
+				 *  swbuf_count: 送信バッファの使用中サイズ
 				 *
-				 *  éä¿¡ãããã¡ã«æ®ã£ã¦ãããªã¯ããããããããã
-				 *  éä¿¡ãããã¨ãã¦ãããªã¯ãããæ°ããå¤ããã°
-				 *  FIN ãã©ã°ãã¯ãªã¢ããã
+				 *  送信バッファに残っているオクテットが、これから
+				 *  送信しようとしているオクテット数より多ければ
+				 *  FIN フラグをクリアする。
 				 */
 				if (doff < cep->swbuf_count)
@@ -616,6 +586,6 @@
 			else {
 				/*
-				 *  TCP_TIM_PERSIST: æç¶ã¿ã¤ã
-				 *  rxtshift:        åéä¿¡åæ°ã® log(2)
+				 *  TCP_TIM_PERSIST: 持続タイマ
+				 *  rxtshift:        再送信回数の log(2)
 				 */
 				cep->timer[TCP_TIM_PERSIST] = 0;
@@ -625,6 +595,6 @@
 
 		/*
-		 *  len: ä»åéä¿¡ãããªã¯ãããæ°
-		 *        swbuf_count (éä¿¡ãããã¡ã«ãããªã¯ãããæ°)
+		 *  len: 今回送信するオクテット数
+		 *        swbuf_count (送信バッファにあるオクテット数)
 		 *                                    |
 		 *    0                               V
@@ -634,7 +604,7 @@
 		 *    ^               ^<------------->
 		 *    |               |      len
-		 *    |<------------->snd_nxt (ååéä¿¡ãã SEQ)
+		 *    |<------------->snd_nxt (前回送信した SEQ)
 		 *    |       doff
-		 *    snd_una (ã¾ã ç¢ºèªããã¦ããªã)
+		 *    snd_una (まだ確認されていない)
 		 */
 		if (cep->swbuf_count < win)
@@ -644,15 +614,14 @@
 
 		/*
-		 *  ãã§ã«éä¿¡ããã¦ããã°ãSYN ãããããªãããã
-		 *  ããããä»¥ä¸ã®æ¡ä»¶ã§ã¯éä¿¡ãæ§ããã
+		 *  すでに送信されていれば、SYN ビットをオフする。
+		 *  しかし、以下の条件では送信を控える。
 		 *
-		 *    ã»ç¶æ
-ã SYN éä¿¡ã
-		 *    ã»ã»ã°ã¡ã³ãããã¼ã¿ãå«ãã§ããã
+		 *    ・状態が SYN 送信。
+		 *    ・セグメントがデータを含んでいる。
 		 */
 		if ((flags & TCP_FLG_SYN) && SEQ_GT(cep->snd_nxt, cep->snd_una)) {
 			flags &= ~TCP_FLG_SYN;
-			doff --;		/* -1 ã¯ SYN ãã©ã°å */
-			len ++;			/* +1 ã¯ SYN ãã©ã°å */
+			doff --;		/* -1 は SYN フラグ分 */
+			len ++;			/* +1 は SYN フラグ分 */
 			if (len > 0 && cep->fsm_state == TCP_FSM_SYN_SENT)
 				break;
@@ -667,10 +636,10 @@
 
 			/*
-			 *  len ã 0 ä»¥ä¸ãªãã0 ã«è¨­å®ããã
-			 *  ãããéä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ãªãã
-			 *  åéä¿¡ã¿ã¤ããã­ã£ã³ã»ã«ãã
-			 *  ååéä¿¡ãã SEQ (snd_nxt) ã
-			 *  ç¢ºèªãããæå¤§éä¿¡ SEQ (snd_una) ã«æ»ãã
-			 *  ããã¦ãæç¶ã¿ã¤ãã¼ãæ­¢ã¾ã£ã¦ããã°ãåè¨­å®ããã
+			 *  len が 0 以下なら、0 に設定する。
+			 *  もし、送信ウィンドウサイズが 0 なら、
+			 *  再送信タイマをキャンセルし、
+			 *  前回送信した SEQ (snd_nxt) を
+			 *  確認された最大送信 SEQ (snd_una) に戻す。
+			 *  そして、持続タイマーが止まっていれば、再設定する。
 			 */
 			len = 0;
@@ -686,7 +655,6 @@
 
 		/*
-		 *  ä»åéä¿¡ãããªã¯ãããæ° (len) ã¯ã
-		 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶
-ããªãããã«ããã
+		 *  今回送信するオクテット数 (len) は、
+		 *  相手の最大受信セグメントサイズ (maxseg) を超えないようにする。
 		 */
 		if (len > cep->maxseg) {
@@ -696,5 +664,5 @@
 
 		/*
-                 *        swbuf_count (éä¿¡ãããã¡ã«ãããªã¯ãããæ°)
+                 *        swbuf_count (送信バッファにあるオクテット数)
                  *                                           |
 		 *    0                                      V
@@ -704,10 +672,10 @@
 		 *    ^               ^<------------->
 		 *    |               |      len
-		 *    |<------------->snd_nxt (ååéä¿¡ãã SEQ)
+		 *    |<------------->snd_nxt (前回送信した SEQ)
 		 *    |       doff
-		 *    snd_una (ã¾ã ç¢ºèªããã¦ããªã)
+		 *    snd_una (まだ確認されていない)
 		 *
-		 *  ä»åéä¿¡å¾ããéä¿¡ãããã¡ã«ãã¼ã¿ãæ®ã£ã¦ããã°
-		 *  FIN ãã©ã°ãã¯ãªã¢ããã
+		 *  今回送信後も、送信バッファにデータが残っていれば
+		 *  FIN フラグをクリアする。
 		 */
 		if (SEQ_LT(cep->snd_nxt + len, cep->snd_una + cep->swbuf_count))
@@ -715,26 +683,25 @@
 
 		/*
-		 *  ãããã win ã¯ãåä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã
-		 *  åä¿¡ãããã¡ã®ç©ºãå®¹é
+		 *  ここから win は、受信ウィンドウサイズ。
+		 *  受信バッファの空き容量
 		 */
 		win = cep->rbufsz - cep->rwbuf_count;
 
 		/*
-		 *  æããªã¦ã£ã³ãã¦ã»ã·ã³ãã­ã¼ã ã®åé¿å¦ç (éä¿¡å´)
+		 *  愚かなウィンドウ・シンドロームの回避処理 (送信側)
 		 *
-		 *  ä»¥ä¸ã®æ¡ä»¶ã§ãéä¿¡ãè¡ãã
+		 *  以下の条件で、送信を行う。
 		 *
-		 *    ã»ãã«ãµã¤ãº (maxseg) ã®ã»ã°ã¡ã³ããéããã¨ãã§ããã
-		 *    ã»ç¸æã®æå¤§ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 ã®ãã¼ã¿ã
-		 *      éããã¨ãã§ããã
-		 *    ã»éä¿¡ãããã¡ãç©ºã«ã§ããã¢ã¤ãã«ãéé
-å»¶ãªãã·ã§ã³ãæå¹ãªã¨ãã
+		 *    ・フルサイズ (maxseg) のセグメントを送ることができる。
+		 *    ・相手の最大の受信ウィンドウサイズの 1/2 のデータを
+		 *      送ることができる。
+		 *    ・送信バッファを空にでき、アイドルか非遅延オプションが有効なとき。
 		 */
 		if (len) {
 
 			/*
-			 *  ä»åéä¿¡ãããªã¯ãããæ° (len) ã
-			 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã«
-			 *  ä¸è´ããã¨ãã¯éä¿¡ããã
+			 *  今回送信するオクテット数 (len) が
+			 *  相手の最大受信セグメントサイズ (maxseg) に
+			 *  一致するときは送信する。
 			 */
 			if (len == cep->maxseg) {
@@ -744,6 +711,6 @@
 
 			/*
-			 *  ä»åã®éä¿¡ã§ãéä¿¡ãããã¡ãç©ºã«ã§ãã
-			 *  ã¢ã¤ãã«ãé PUSH ãªãã·ã§ã³ãæå¹ãªã¨ãã
+			 *  今回の送信で、送信バッファを空にでき、
+			 *  アイドルか非 PUSH オプションが有効なとき。
 			 */
 			if ((idle || (cep->flags & TCP_CEP_FLG_NO_DELAY)) &&
@@ -755,15 +722,15 @@
 
 			/*
-			 *  max_sndwnd: ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãº
-			 *  snd_nxt:    æ¬¡ã«éä¿¡ãã SEQ
-			 *  snd_max:    éä¿¡ããæå¤§ SEQ
+			 *  max_sndwnd: 今までの最大送信ウィンドサイズ
+			 *  snd_nxt:    次に送信する SEQ
+			 *  snd_max:    送信した最大 SEQ
 			 *
-			 *  æ¬¡ã®æ¡ä»¶ã§ã¯éä¿¡ãè¡ãã
+			 *  次の条件では送信を行う。
 			 *
-			 *    ã»å¼·å¶éä¿¡ãã©ã°ãã»ããããã¦ããã
-			 *    ã»ãã¼ã¿é·ãç¸æã®æå¤§ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 ä»¥ä¸ã§ã
-			 *      ç¸æã®æå¤§ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ããå¤§ããã
-			 *    ã»æ¬¡ã«éä¿¡ãã SEQ ãéä¿¡ããæå¤§ SEQ ããå°ããã
-			 *      ã¤ã¾ããåéããã¨ãã
+			 *    ・強制送信フラグがセットされている。
+			 *    ・データ長が相手の最大の受信ウィンドウサイズの 1/2 以上で、
+			 *      相手の最大の受信ウィンドウサイズが 0 より大きい。
+			 *    ・次に送信する SEQ が送信した最大 SEQ より小さい、
+			 *      つまり、再送するとき。
 			 */
 			if ((cep->flags & TCP_CEP_FLG_FORCE) ||
@@ -777,9 +744,9 @@
 
 		/*
-		 *  æããªã¦ã£ã³ãã¦ã»ã·ã³ãã­ã¼ã ã®åé¿å¦ç (åä¿¡å´)
+		 *  愚かなウィンドウ・シンドロームの回避処理 (受信側)
 		 *
-		 *  ã¦ã£ã³ãã¦ãµã¤ãºããã«ãµã¤ãºã® 2 åã®ã»ã°ã¡ã³ãããããã¯
-		 *  åä¿¡ãããã¡å®¹éã® 1/2 ã®ãããããå°ããã»ãã®
-		 *  ãµã¤ãºã§å¢å ãããå ´åã¯ãã¦ã£ã³ãã¦ãµã¤ãºã®æ´æ°ãè¡ãã
+		 *  ウィンドウサイズがフルサイズの 2 倍のセグメント、あるいは
+		 *  受信バッファ容量の 1/2 の、いずれか小さいほうの
+		 *  サイズで増加される場合は、ウィンドウサイズの更新を行う。
 		 */
 		if (win > 0) {
@@ -787,10 +754,8 @@
 
 			/*
-			 *  win:              åä¿¡ãããã¡ã®ç©ºãå®¹é
-			 *  MAX_TCP_WIN_SIZE: TCP ãããã® win ãã£ã¼ã«ãã«è¨­å®ã§ããæå¤§å¤
-			 *  rcv_adv:          åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ
-			 *  rcv_nxt:          åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ
+			 *  win:              受信バッファの空き容量
+			 *  MAX_TCP_WIN_SIZE: TCP ヘッダの win フィールドに設定できる最大値
+			 *  rcv_adv:          受信を期待している最大の SEQ
+			 *  rcv_nxt:          受信を期待している最小の SEQ
 			 */
 			if (win < MAX_TCP_WIN_SIZE)
@@ -807,5 +772,5 @@
 	
 		/*
-		 *  ACK ãéä¿¡ããã
+		 *  ACK を送信する。
 		 */
 		if (cep->flags & TCP_CEP_FLG_ACK_NOW) {
@@ -830,10 +795,10 @@
 
 		/*
-		 *  snd_nxt: æ¬¡ã«éä¿¡ãã SEQ
-		 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæå¤§éä¿¡ SEQ
+		 *  snd_nxt: 次に送信する SEQ
+		 *  snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ
 		 *
-		 *  ç¸æãã FIN ãåä¿¡ããã¾ã  FIN ãéä¿¡ãã¦ããªããã
-		 *  éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã
-		 *  ã»ã°ã¡ã³ããéä¿¡ããã
+		 *  相手から FIN を受信し、まだ FIN を送信していないか、
+		 *  送るデータがないときは、FIN を相手に届けるため、
+		 *  セグメントを送信する。
 		 */
 		if ((flags & TCP_FLG_FIN) &&
@@ -844,6 +809,6 @@
 
 		/*
-		 *  éä¿¡ãã¹ããã¼ã¿ããããåéã¿ã¤ãã¨æç¶ã¿ã¤ããåãã¦ããã¨ãã¯
-		 *  æç¶ã¿ã¤ããè¨­å®ããã
+		 *  送信すべきデータがあり、再送タイマと持続タイマが切れているときは
+		 *  持続タイマを設定する。
 		 */
 		if (cep->swbuf_count && cep->timer[TCP_TIM_REXMT  ] == 0 &&
@@ -860,5 +825,5 @@
 
 /*
- *  tcptsk_alloc_swbufq -- éä¿¡ã¦ã£ã³ããããã¡å²ãå½ã¦
+ *  tcptsk_alloc_swbufq -- 送信ウィンドバッファ割り当て
  */
 
@@ -870,14 +835,13 @@
 
 	/*
-	 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
-	 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+	 *  snd_wnd:  相手の受信可能ウィンドサイズ
+	 *  snd_cwnd: 輻輳ウィンドサイズ
 	 *
-	 *  win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨­å®ããã
+	 *  win: どちらか小さいウィンドサイズに設定する。
 	 */
 	win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
 
 	/*
-	 *  ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾
-æ©ããã
+	 *  相手の受信ウィンドが閉じている場合は、開くまで待機する。
 	 */
 	if (win == 0) {
@@ -888,9 +852,9 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* ノンブロッキングコール */
 		if (!IS_PTR_DEFINED(cep->callback)) {
 			syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
 
-			/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+			/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 			cep->snd_tskid = TA_NULL;
 			cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -907,10 +871,10 @@
 		                                   (GET_TCP_CEPID(cep) & NBA_ID_MASK)), TMO_POL)) != E_OK) {
 
-			/* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
+			/* ネットワークバッファを予約する。*/
 			cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_PEND;
 			}
 		else {
 
-			/* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/
+			/* 送信ウィンドバッファを初期化する。*/
 			tcp_init_swbuf(cep);
 
@@ -921,15 +885,15 @@
 				uint_t len;
 
-				/* éä¿¡ã¦ã£ã³ããããã¡ã®æ¸ãè¾¼ã¿ã¢ãã¬ã¹ãè¨­å®ããã*/
+				/* 送信ウィンドバッファの書き込みアドレスを設定する。*/
 				len = TCP_GET_SWBUF_ADDR(cep, cep->snd_p_buf);
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
 
@@ -937,5 +901,5 @@
 
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->snd_tskid = TA_NULL;
 				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -947,10 +911,10 @@
 				uint_t len;
 
-				/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+				/* 送信ウィンドバッファにデータを書き込む。*/
 				len = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len);
 
 #ifdef TCP_CFG_EXTENTIONS
 
-				/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+				/* 送信緊急ポインタを設定する。*/
 			        if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB)
 					cep->snd_up = cep->snd_una + len;
@@ -958,14 +922,14 @@
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-				/* ãã©ã°ããéä¿¡å¯è½ã«è¨­å®ããå¼·å¶çã«éä¿¡ããã*/
+				/* フラグを、送信可能に設定し、強制的に送信する。*/
 				cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR | TCP_CEP_FLG_POST_OUTPUT;
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
 
@@ -973,5 +937,5 @@
 
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->snd_tskid = TA_NULL;
 				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -985,5 +949,5 @@
 
 /*
- *  tcptsk_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡éæ¾
+ *  tcptsk_free_swbufq -- 送信ウィンドバッファ開放
  */
 
@@ -992,23 +956,22 @@
 {
 	/*
-	 *  åä¿¡ç¢ºèªãå®äºãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããã®
-	 *  åºåãå®äºããã¨ãã¯ãéä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
-	 */
-
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãºããªã»ããããã*/
+	 *  受信確認が完了し、ネットワークインタフェースからの
+	 *  出力も完了したときは、送信ウィンドバッファキューを解放する。
+	 */
+
+	/* 送信ウィンドバッファの使用中サイズをリセットする。*/
 	cep->swbuf_count = 0;
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+	/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 	syscall(rel_net_buf(cep->swbufq));
 	cep->swbufq = NULL;
 
-	/* ãã©ã°ãç©ºãã«è¨­å®ããã*/
+	/* フラグを空きに設定する。*/
 	cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_FREE;
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/
+	/* 送信ウィンドバッファに空きができたことを知らせる。*/
 	syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾
-ã¡ã®ã¨ãã¯ãTCP åºåã¿ã¹ã¯ãèµ·åããã*/
+	/* 送信ウィンドバッファの空き待ちのときは、TCP 出力タスクを起動する。*/
 	if ((cep->flags & TCP_CEP_FLG_WBCS_NBUF_REQ) != 0) {
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1019,5 +982,5 @@
 
 /*
- *  TCP åºåã¿ã¹ã¯
+ *  TCP 出力タスク
  */
 
@@ -1038,5 +1001,5 @@
 #ifdef SUPPORT_INET6
 
-	/* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ãå®è¡ããã*/
+	/* IPv6 のステートレス・アドレス自動設定を実行する。*/
 	in6_if_up(IF_GET_IFNET());
 
@@ -1045,6 +1008,5 @@
 	while (true) {
 
-		/* åºåããã¹ããããã¾ã§å¾
-ã¤ã*/
+		/* 出力がポストされるまで待つ。*/
 		syscall(wai_sem(SEM_TCP_POST_OUTPUT));
 
@@ -1071,6 +1033,6 @@
 
 			/*
-			 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµãã£ã¦ããªãã¨ãã¯ã
-			 *  éä¿¡ãäºç´ããã
+			 *  ネットワークインタフェースから送信が終わっていないときは、
+			 *  送信を予約する。
 			 */
 			if (cep->flags & TCP_CEP_FLG_POST_OUTPUT &&
@@ -1087,7 +1049,6 @@
 
 			/*
-			 *  éä¿¡äºç´ä¸­ã«ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµäºãããã
-			 *  éä¿¡ãéå§ããããã ããå®å
-¨ã«éä¿¡ãçµäºããã¨ãã¯ä½ãããªãã
+			 *  送信予約中に、ネットワークインタフェースから送信が終了したら、
+			 *  送信を開始する。ただし、完全に送信が終了したときは何もしない。
 			 */
 			if (cep->flags & TCP_CEP_FLG_RESERVE_OUTPUT) {
@@ -1112,8 +1073,8 @@
 
 					/*
-					 *  tcp_con_cep ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ã
-					 *  æªå²å½ã®ã®å ´åã¯ããã¼ãçªå·ãå²ãå½ã¦ãã
-					 *  p_myaddr ã NADR (-1) ãã
-					 *  èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+					 *  tcp_con_cep のノンブロッキングコールで、
+					 *  未割当のの場合は、ポート番号を割り当てる。
+					 *  p_myaddr が NADR (-1) か、
+					 *  自ポート番号が TCP_PORTANY なら、自動で割り当てる。
 					 */
 					if (cep->p_myaddr == NADR || cep->p_myaddr->portno == TCP_PORTANY)
@@ -1136,5 +1097,5 @@
 							syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
 
-						/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+						/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 						cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
 						cep->snd_tskid = TA_NULL;
@@ -1148,5 +1109,5 @@
 
 				if (cep->flags & TCP_CEP_FLG_CLOSE_AFTER_OUTPUT) {
-					/* ã³ãã¯ã·ã§ã³ãéããã*/
+					/* コネクションを閉じる。*/
 					tcp_close(cep);
 					cep->flags &= ~TCP_CEP_FLG_CLOSE_AFTER_OUTPUT;
@@ -1154,6 +1115,5 @@
 
 				if (cep->flags & TCP_CEP_FLG_RESTORE_NEXT_OUTPUT) {
-					/* snd_nxt ãå
-ã«æ»ãã*/
+					/* snd_nxt を元に戻す。*/
 					if (SEQ_GT(cep->snd_old_nxt, cep->snd_nxt))
 						cep->snd_nxt = cep->snd_old_nxt;
@@ -1168,5 +1128,5 @@
 			} while (ix != last_ix);
 
-		/* æ¬¡åã¯ãå¦çããéä¿¡ç«¯ç¹ãå¾åãã«ããã*/
+		/* 次回は、処理した通信端点を後回しにする。*/
 		last_ix = sel_ix;
 		}
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_seq.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_seq.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_seq.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  SEQ ã¨ ACK çªå·ã¯ã32 ãããç¬¦å·ä»æ´æ°ã§æ¯è¼ããã
+ *  SEQ と ACK 番号は、32 ビット符号付整数で比較する。
  */
 
@@ -93,5 +81,5 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -99,16 +87,15 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
-extern T_TCP_SEQ tcp_iss;		/* TCP ã® SEQ ã®åæå¤ */
+extern T_TCP_SEQ tcp_iss;		/* TCP の SEQ の初期値 */
 
 /*
- *  ã¤ã³ã©ã¤ã³é¢æ°
+ *  インライン関数
  */
 
 /*
- *  init_receive_seq -- åä¿¡ SEQ çªå·ãåæåããã
+ *  init_receive_seq -- 受信 SEQ 番号を初期化する。
  */
 
@@ -120,5 +107,5 @@
 
 /*
- *  init_send_seq -- éä¿¡ SEQ çªå·ãåæåããã
+ *  init_send_seq -- 送信 SEQ 番号を初期化する。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -135,11 +123,10 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-/*
- *  TCP ã® SEQ ã®åæå¤ããã­ã°ã©ã ãèµ·åãã¦ãæåã« TCP ã»ã°ã¡ã³ãã
- *  éåä¿¡ããã¨ãã«ãget_tim() ã«ããåæåããã
+ *  全域変数
+ */
+
+/*
+ *  TCP の SEQ の初期値、プログラムが起動して、最初に TCP セグメントを
+ *  送受信するときに、get_tim() により初期化する。
  */
 T_TCP_SEQ tcp_iss = 0;
@@ -148,6 +135,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -157,17 +143,15 @@
 
 /*
- *  å±æå¤æ°
- */
-
-static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO;	/* èªåå²ãå½ã¦çªå·	*/
-
-/*
- *  tcp_free_reassq -- åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+ *  局所変数
+ */
+
+static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO;	/* 自動割り当て番号	*/
+
+/*
+ *  tcp_free_reassq -- 受信再構成キューのネットワークバッファを解放する。
  *
- *    æ³¨æ:
- *      å¿
-è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãéä¿¡ç«¯ç¹ãã­ãã¯ãã
- *      æ»ã£ãå¾ãè§£é¤ããå¿
-è¦ãããã
+ *    注意:
+ *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
+ *      戻った後、解除する必要がある。
  */
 
@@ -186,5 +170,5 @@
 
 /*
- *  tcp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨­å®ããã
+ *  tcp_alloc_auto_port -- 自動割り当てポート番号を設定する。
  */
 
@@ -245,5 +229,5 @@
 
 /*
- *  tcp_alloc_port -- æå®ããããã¼ãçªå·ãè¨­å®ããã
+ *  tcp_alloc_port -- 指定されたポート番号を設定する。
  */
 
@@ -265,5 +249,5 @@
 
 /*
- *  tcp_init -- TCP ã¢ã¸ã¥ã¼ã«ã®åæå
+ *  tcp_init -- TCP モジュールの初期化
  */
 
@@ -281,5 +265,5 @@
 
 /*
- * tcp_init_iss ã·ã¼ã±ã³ã¹çªå·ãåæåããã
+ * tcp_init_iss シーケンス番号を初期化する。
  */
 
@@ -311,5 +295,5 @@
 
 /*
- *  tcp_close -- ã³ãã¯ã·ã§ã³ãéæ¾ããã
+ *  tcp_close -- コネクションを開放する。
  */
 
@@ -317,10 +301,10 @@
 tcp_close (T_TCP_CEP *cep)
 {
-	/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+	/* タイマーを停止する。*/
 	tcp_cancel_timers(cep);
 
 	/* 
-	 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-	 *  åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+	 *  通信端点をロックし、
+	 *  受信再構成キューのネットワークバッファを解放する。
 	 */
 	syscall(wai_sem(cep->semid_lock));
@@ -328,12 +312,11 @@
 	syscall(sig_sem(cep->semid_lock));
 
-	/* ç¶æ
-ãæªä½¿ç¨ã«ããã*/
+	/* 状態を未使用にする。*/
 	cep->fsm_state = TCP_FSM_CLOSED;
 
 	/*
-	 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
-	 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
-	 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+	 * 以下に関係しないフラグをクリアーする。
+	 * ・送受信ウィンドバッファの省コピー機能
+	 * ・動的な通信端点の生成・削除機能
 	 */
 	cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK | 
@@ -343,5 +326,5 @@
 
 	if (cep->snd_nblk_tfn != TFN_TCP_UNDEF || cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {
-		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* ノンブロッキングコール */
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
@@ -356,5 +339,5 @@
 
 				case TFN_TCP_ACP_CEP:
-					/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+					/* TCP 通信端点からTCP 受付口を解放する。*/
 					cep->rep = NULL;
 					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)E_CLS);
@@ -363,8 +346,8 @@
 				case TFN_TCP_RCV_BUF:
 
-					/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+					/* 受信ウィンドバッファの空アドレスを獲得する。*/
 					len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
 
-					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 異常切断等のエラーを設定する。*/
 					if (cep->error == E_TMOUT)
 						len = E_CLS;
@@ -377,8 +360,8 @@
 				case TFN_TCP_RCV_DAT:
 
-					/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+					/* 受信ウィンドバッファからデータを取り出す。*/
 					len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
 
-					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 異常切断等のエラーを設定する。*/
 					if (cep->error == E_TMOUT)
 						len = E_CLS;
@@ -402,5 +385,5 @@
 					}
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->rcv_tskid = TA_NULL;
 				cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
@@ -412,5 +395,5 @@
 
 				case TFN_TCP_CON_CEP:
-					/* TCP éä¿¡ç«¯ç¹ãã TCP åä»å£ãè§£æ¾ããã*/
+					/* TCP 通信端点から TCP 受付口を解放する。*/
 					cep->rep = NULL;
 					(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)E_CLS);
@@ -430,5 +413,5 @@
 					}
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->snd_tskid = TA_NULL;
 				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -448,5 +431,5 @@
 
 				case TFN_TCP_ACP_CEP:
-					/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+					/* TCP 通信端点からTCP 受付口を解放する。*/
 					cep->rep = NULL;
 					len      = E_CLS;
@@ -456,8 +439,8 @@
 				case TFN_TCP_RCV_BUF:
 
-					/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+					/* 受信ウィンドバッファの空アドレスを獲得する。*/
 					len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
 
-					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 異常切断等のエラーを設定する。*/
 					if (cep->error == E_TMOUT)
 						len = E_CLS;
@@ -470,8 +453,8 @@
 				case TFN_TCP_RCV_DAT:
 
-					/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+					/* 受信ウィンドバッファからデータを取り出す。*/
 					len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
 
-					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					/* 異常切断等のエラーを設定する。*/
 					if (cep->error == E_TMOUT)
 						len = E_CLS;
@@ -495,5 +478,5 @@
 					}
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->rcv_tskid = TA_NULL;
 				cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
@@ -506,5 +489,5 @@
 
 				case TFN_TCP_CON_CEP:
-					/* TCP éä¿¡ç«¯ç¹ãã TCP åä»å£ãè§£æ¾ããã*/
+					/* TCP 通信端点から TCP 受付口を解放する。*/
 					cep->rep = NULL;
 					len      = E_CLS;
@@ -526,5 +509,5 @@
 					}
 
-				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 				cep->snd_tskid = TA_NULL;
 				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -536,6 +519,6 @@
 
 		/* 
-		 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-		 *  éåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+		 *  通信端点をロックし、
+		 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
 		 */
 		syscall(wai_sem(cep->semid_lock));
@@ -544,18 +527,18 @@
 		syscall(sig_sem(cep->semid_lock));
 
-		/* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/
+		/* 未使用になったことを知らせる。*/
 		syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
 		}
-	else {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else {	/* 非ノンブロッキングコール */
 
 #endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->snd_tskid = cep->rcv_tskid = TA_NULL;
 		cep->snd_tfn   = cep->rcv_tfn   = TFN_TCP_UNDEF;
 
 		/* 
-		 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-		 *  éåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+		 *  通信端点をロックし、
+		 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
 		 */
 		syscall(wai_sem(cep->semid_lock));
@@ -564,11 +547,10 @@
 		syscall(sig_sem(cep->semid_lock));
 
-		/* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/
+		/* 未使用になったことを知らせる。*/
 		syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
 
 		/*
-		 * å
-¥åºåã¿ã¹ã¯ãèµ·åºãã¦ã
-		 * éåä¿¡ä¸å¯ã«ãªã£ããã¨ãç¥ãããã
+		 * 入出力タスクを起床して、
+		 * 送受信不可になったことを知らせる。
 		 */
 		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
@@ -585,5 +567,5 @@
 
 /*
- *  tcp_drop -- TCP æ¥ç¶ãç ´æ£ããã
+ *  tcp_drop -- TCP 接続を破棄する。
  */
 
@@ -603,5 +585,5 @@
 		cep->fsm_state = TCP_FSM_CLOSED;
 
-		/* éä¿¡ã¨ãéä¿¡å¾ã³ãã¯ã·ã§ã³ã®åæ­ãæç¤ºããã*/
+		/* 送信と、送信後コネクションの切断を指示する。*/
 		cep->flags |=  TCP_CEP_FLG_POST_OUTPUT | TCP_CEP_FLG_CLOSE_AFTER_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -613,5 +595,5 @@
 
 /*
- *  tcp_respond -- TCP ã®åä¸ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *  tcp_respond -- TCP の単一メッセージを送信する。
  */
 
@@ -628,7 +610,6 @@
 
 	/*
-	 *  output ã NULL ã§ãªããã°ãããã¯å
-¥åããã»ã°ã¡ã³ãã®
-	 *  net_buf ã§ããã®ã¾ã¾åå©ç¨ããã
+	 *  output が NULL でなければ、これは入力したセグメントの
+	 *  net_buf で、そのまま再利用する。
 	 */
 	if (output != NULL) {
@@ -637,6 +618,6 @@
 
 		/*
-		 * IPv4 ã§ã¯ãIP ãããã®ãªãã·ã§ã³ãåé¤ããã
-		 * IPv6 ã§ã¯ãæ¡å¼µããããåé¤ããã
+		 * IPv4 では、IP ヘッダのオプションを削除する。
+		 * IPv6 では、拡張ヘッダを削除する。
 		 */
 		if (IP_REMOVE_OPTIONS(output) != E_OK) {
@@ -647,5 +628,5 @@
 		iph  = GET_IP_HDR(output);
 
-		/* IP ã¢ãã¬ã¹ãäº¤æããã*/
+		/* IP アドレスを交換する。*/
 		ipaddr = iph->src;
 		iph->src = iph->dst;
@@ -654,25 +635,24 @@
 #if defined(SUPPORT_INET6)
 
-		/* ãã©ããã¯ã¯ã©ã¹ã¨ãã­ã¼ã©ãã«ãã¯ãªã¢ããã*/
+		/* トラヒッククラスとフローラベルをクリアする。*/
 		iph->vcf = htonl(IP6_MAKE_VCF(IP6_VCF_V(ntohl(iph->vcf)), 0));
 
 #endif	/* of #if defined(SUPPORT_INET6) */
 
-		/* TCP SDU é·ã 0 ã«ããã*/
+		/* TCP SDU 長を 0 にする。*/
 		SET_IP_SDU_SIZE(iph, TCP_HDR_SIZE);
 
 		tcph = GET_TCP_HDR(output, IF_IP_TCP_HDR_OFFSET);
 
-		/* ãã¼ãçªå·ãäº¤æããã*/
+		/* ポート番号を交換する。*/
 		portno = tcph->sport;
 		tcph->sport = tcph->dport;
 		tcph->dport = portno;
 
-		/* TCP ãããã«æ
-å ±ãè¨­å®ããã*/
+		/* TCP ヘッダに情報を設定する。*/
 		tcph->doff = TCP_MAKE_DATA_OFF(TCP_HDR_SIZE);
 		}
 	
-	/* cep ã NULL ã§ããã°ãä½ãããªãã§çµäºããã*/
+	/* cep が NULL であれば、何もしないで終了する。*/
 	else if (cep == NULL)
 		return;
@@ -693,10 +673,10 @@
 
 	/*
-	 *  ãã§ãã¯ãµã ãè¨­å®ããã
+	 *  チェックサムを設定する。
 	 */
 	tcph->sum = IN_CKSUM(output, IPPROTO_TCP, IF_IP_TCP_HDR_OFFSET, 
 	                     (uint_t)GET_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET));
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	/* ネットワークバッファ長を調整する。*/
 	output->len = (uint16_t)GET_IF_IP_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET);
 
@@ -707,10 +687,10 @@
 #endif	/* of #ifdef TCP_CFG_TRACE */
 
-	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	/* ネットワーク層 (IP) の出力関数を呼び出す。*/
 	IP_OUTPUT(output, TMO_TCP_OUTPUT);
 	}
 
 /*
- *  tcp_set_header -- TCP ããããè¨­å®ããã
+ *  tcp_set_header -- TCP ヘッダを設定する。
  */
 
@@ -720,6 +700,5 @@
 	T_TCP_HDR	*tcph = GET_TCP_HDR(nbuf, thoff);
 
-	/* TCP ãããã«æ
-å ±ãè¨­å®ããã*/
+	/* TCP ヘッダに情報を設定する。*/
 	tcph->sport	= htons(cep->myaddr.portno);
 	tcph->dport	= htons(cep->dstaddr.portno);
@@ -729,9 +708,9 @@
 
 /*
- *  tcp_get_segment -- TCP ã»ã°ã¡ã³ããç²å¾ããããããè¨­å®ããã
+ *  tcp_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。
  *
- *    æ»ãå¤	ã¨ã©ã¼ã³ã¼ã
- *    optlen	ãªãã·ã§ã³ãµã¤ãºã4 ãªã¯ãããåä½
- *    len	TCP SDU ãµã¤ãº
+ *    戻り値	エラーコード
+ *    optlen	オプションサイズ、4 オクテット単位
+ *    len	TCP SDU サイズ
  */
 
@@ -742,5 +721,5 @@
 	ER		error;
 
-	/* IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	/* IP データグラムを獲得する。*/
 	if ((error = IN_GET_DATAGRAM(nbuf,
 	                             (uint_t)(TCP_HDR_SIZE + optlen + len),
@@ -754,6 +733,5 @@
 		}
 
-	/* TCP ãããã«æ
-å ±ãè¨­å®ããã*/
+	/* TCP ヘッダに情報を設定する。*/
 	tcp_set_header(*nbuf, cep, IF_IP_TCP_HDR_OFFSET, optlen);
 
@@ -762,6 +740,5 @@
 
 /*
- *  tcp_can_send_more -- éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã
+ *  tcp_can_send_more -- 送信できるか、通信端点の状態を見る。
  */
 
@@ -771,6 +748,5 @@
 	ER	error;
 
-	/* éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、CEP の FSM 状態を見る。*/
 	if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
 		if ((error = cep->error) == E_OK)
@@ -779,6 +755,6 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-		/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-		if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* タイムアウトをチェックする。*/
+		if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
 
 			if (!IS_PTR_DEFINED(cep->callback))
@@ -788,10 +764,10 @@
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)&error);
 
@@ -817,6 +793,6 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-			/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-			if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+			/* タイムアウトをチェックする。*/
+			if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
 				if (!IS_PTR_DEFINED(cep->callback))
 					error = E_OBJ;
@@ -825,10 +801,10 @@
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-					/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+					/* コールバック関数を呼び出す。*/
 					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)E_OBJ);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-					/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+					/* コールバック関数を呼び出す。*/
 					error = E_OBJ;
 					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)&error);
@@ -856,11 +832,10 @@
 
 /*
- *  tcp_can_recv_more -- åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã
+ *  tcp_can_recv_more -- 受信できるか、通信端点の状態を見る。
  *
- *  æ³¨æ: æ»ãå¤
+ *  注意: 戻り値
  *
- *	E_OK	åä¿¡å¯è½
- *	E_OBJ	ç¸æããåæ­ãããããã¨ã©ã¼ãçºçããã
+ *	E_OK	受信可能
+ *	E_OBJ	相手から切断されたか、エラーが発生した。
  */
 
@@ -869,6 +844,6 @@
 {
 	/*
-	 *  åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãå ´åã¯
-	 *  é·ã 0ãã¾ãã¯ã¨ã©ã¼ãè¿ãã
+	 *  受信できるか、fsm_state を見る。受信できない場合は
+	 *  長さ 0、またはエラーを返す。
 	 */
 	if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
@@ -878,6 +853,6 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-		/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-		if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* タイムアウトをチェックする。*/
+		if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
 
 			if (!IS_PTR_DEFINED(cep->callback))
@@ -886,10 +861,10 @@
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
 
@@ -903,6 +878,6 @@
 
 		/*
-		 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+		 *  通信端点をロックして、
+		 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 		 */
 		syscall(wai_sem(cep->semid_lock));
@@ -920,6 +895,6 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-			/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-			if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+			/* タイムアウトをチェックする。*/
+			if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
 				if (!IS_PTR_DEFINED(cep->callback))
 					*error = E_OBJ;
@@ -928,10 +903,10 @@
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-					/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+					/* コールバック関数を呼び出す。*/
 					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)E_OBJ);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-					/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+					/* コールバック関数を呼び出す。*/
 					*error = E_OBJ;
 					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
@@ -958,7 +933,5 @@
 
 /*
- *  tcp_wait_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå
-¥ãã®ãå¾
-ã¤ã
+ *  tcp_wait_rwbuf -- 受信ウィンドバッファにデータが入るのを待つ。
  */
 
@@ -970,7 +943,5 @@
 
 	if (cep->rwbuf_count == 0) {
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå
-¥åãããã¾ã§å¾
-ã¤ã*/
+		/* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
 		while (cep->rwbuf_count == 0) {
 			if ((error = twai_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY, TWF_ORW, &flag, tmout)) != E_OK) {
@@ -980,7 +951,6 @@
 
 			/*
-			 *  åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãç¶æ
-ã§ã
-			 *  åä¿¡ã¦ã£ã³ããããã¡ã«æå­ããªãå ´åã¯çµäºããã
+			 *  受信できるか、fsm_state を見る。受信できない状態で、
+			 *  受信ウィンドバッファに文字がない場合は終了する。
 			 */
 			if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
@@ -988,6 +958,6 @@
 
 				/*
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-				 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックして、
+				 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 				 */
 #ifdef TCP_CFG_RWBUF_CSAVE
@@ -1008,5 +978,5 @@
 
 /*
- *  tcp_move_ra2rw -- åä¿¡åæ§æã­ã¥ã¼ã§åæ§æããã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã
+ *  tcp_move_ra2rw -- 受信再構成キューで再構成したセグメントを受信ウィンドバッファに書き込む。
  */
 
@@ -1018,6 +988,6 @@
 
 	/*
-	 *  åä¿¡ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ã¿ã
-	 *  rcv_nxt ãå®äºãã SEQ ã ãé²ããã
+	 *  受信データを受信ウィンドバッファに書き込み、
+	 *  rcv_nxt を完了した SEQ だけ進める。
 	 */
 	if (TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
@@ -1028,11 +998,11 @@
 				break;
 
-			/* æ¬¡ã®ã»ã°ã¡ã³ãã«é²ãã*/
+			/* 次のセグメントに進む。*/
 			cep->reassq = qhdr->next;
 
-			/* FIN ãã©ã°ã®ã¿æ®ãã*/
+			/* FIN フラグのみ残す。*/
 			flags &= TCP_FLG_FIN;
 
-			/* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/
+			/* データを受信ウィンドバッファに書き込む。*/
 			TCP_WRITE_RWBUF(cep, q, (uint_t)(GET_TCP_IP_Q_HDR(q)->thoff));
 			}
@@ -1046,5 +1016,5 @@
 
 /*
- *  tcp_write_raque -- åä¿¡ã»ã°ã¡ã³ããåæ§æãã¦ãåä¿¡åæ§æã­ã¥ã¼ã«ç¹ãã
+ *  tcp_write_raque -- 受信セグメントを再構成して、受信再構成キューに繋ぐ。
  */
 
@@ -1057,11 +1027,11 @@
 	int32_t		len;
 
-	/*  TCP ãããã®ä½ç½®ãä¿å­ããã*/
+	/*  TCP ヘッダの位置を保存する。*/
 	GET_TCP_IP_Q_HDR(input)->thoff = thoff;
 
 	/*
-	 *  MAX_TCP_REALLOC_SIZE ä»¥ä¸ã®å ´åã¯ãæ°ãã«ãããã¯ã¼ã¯ãããã¡ã
-	 *  å²å½ã¦ã¦ããã¼ã¿ãã³ãã¼ããã
-	 *  ãã®ã¨ããIP ã®ãªãã·ã§ã³ï¼æ¡å¼µãããï¼ã¨ TCP ã®ãªãã·ã§ã³ã¯åé¤ããã
+	 *  MAX_TCP_REALLOC_SIZE 以下の場合は、新たにネットワークバッファを
+	 *  割当てて、データをコピーする。
+	 *  このとき、IP のオプション（拡張ヘッダ）と TCP のオプションは削除する。
 	 */
 	len  = IF_IP_TCP_HDR_SIZE + inqhdr->slen;
@@ -1070,5 +1040,5 @@
 
 		/*
-		 *  ãããã¯ã¼ã¯ãããã¡ãç¢ºä¿ã§ããªãã¨ãã¯å²å½ã¦ãªãã
+		 *  ネットワークバッファが確保できないときは割当てない。
 		 */
 		if (tget_net_buf(&new, (uint_t)len, TMO_TCP_GET_NET_BUF) != E_OK)
@@ -1095,5 +1065,5 @@
 
 	/*
-	 *  ä»åè¿½å ããã»ã°ã¡ã³ãããå(p)ã¨å¾(q)ã®ã»ã°ã¡ã³ããæ¢ãã
+	 *  今回追加するセグメントより前(p)と後(q)のセグメントを探す。
 	 *
 	 *    +-------------------------+
@@ -1118,7 +1088,6 @@
 
 	/*
-	 *  å(p)ã®ã»ã°ã¡ã³ããããã°ãæ¢ã«ãä»åã¨åãã»ã°ã¡ã³ãã
-	 *  ãããã¨ãããããã®å ´åã¯ããã®é¨åã¾ãã¯å
-¨ã¦ãç ´æ£ããã
+	 *  前(p)のセグメントがあれば、既に、今回と同じセグメントが
+	 *  あることもある。その場合は、その部分または全てを破棄する。
 	 *
 	 *    qhdr->seq
@@ -1142,12 +1111,12 @@
 
 			/*
-			 *  len ãæ­£ã§ããã°ãå(p) ã®ã»ã°ã¡ã³ãã¨ä»åã®
-			 *  ã»ã°ã¡ã³ããéãªã£ã¦ããã
+			 *  len が正であれば、前(p) のセグメントと今回の
+			 *  セグメントが重なっている。
 			 */
 			if (len >= inqhdr->slen) {
 
 				/*
-				 *  len ãä»åã®ã»ã°ã¡ã³ãã¨åããªã
-				 *  ã¾ã£ããåãã»ã°ã¡ã³ããªã®ã§ä½ãããªãã
+				 *  len が今回のセグメントと同じなら
+				 *  まったく同じセグメントなので何もしない。
 				 */
 				if (new != NULL) {
@@ -1160,5 +1129,5 @@
 
 			/*
-			 *  è¿½å ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã
+			 *  追加するセグメントの SDU を len 分前に詰める。
 			 */
 			inqhdr->seq  += len;
@@ -1169,6 +1138,6 @@
 
 	/*
-	 *  ã­ã¥ã¼ã«ã¤ãªãåã«ãæ°ãããããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ãç§»ãã
-	 *  TCP ã®ãªãã·ã§ã³ã¯åé¤ããã
+	 *  キューにつなぐ前に、新しいネットワークバッファにデータを移す。
+	 *  TCP のオプションは削除する。
 	 */
 	if (new != NULL) {
@@ -1183,5 +1152,5 @@
 
 	/*
-	 *  éãªãå¾(q)ã®ã»ã°ã¡ã³ããèª¿æ´ããã
+	 *  重なる後(q)のセグメントを調整する。
 	 *
 	 *    inqhdr->seq
@@ -1203,10 +1172,10 @@
 		len = inqhdr->seq + inqhdr->slen - qhdr->seq;
 		if (len <= 0)
-			/* len ãè² ãªãéãªã£ã¦ããªãã*/
+			/* len が負なら重なっていない。*/
 			break;
 		else if (len < qhdr->slen) {
 
 			/*
-			 *  å¾ãã§éãªã£ã¦ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã
+			 *  後ろで重なっているセグメントの SDU を len 分前に詰める。
 			 *
 			 *    inqhdr->seq
@@ -1252,5 +1221,5 @@
 
 /*
- *  tcp_rexmt_val -- åéã¿ã¤ã ã¢ã¦ãå¤ãè¿ãã
+ *  tcp_rexmt_val -- 再送タイムアウト値を返す。
  */
 
@@ -1268,5 +1237,5 @@
 
 /*
- *  tcp_init_cep -- éä¿¡ç«¯ç¹ãåæåããã
+ *  tcp_init_cep -- 通信端点を初期化する。
  */
 
@@ -1276,8 +1245,7 @@
 #ifdef TCP_CFG_RWBUF_CSAVE
 	/*
-	 * åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããå ´åã
-	 * åä¿¡ã¦ã£ã³ããããã¡ãå
-¨ã¦è§£æ¾ãããªããã¨ãããã®ã§ã
-	 * ããã§è§£æ¾ããã
+	 * 受信ウィンドバッファの省コピー機能を有効にした場合、
+	 * 受信ウィンドバッファが全て解放されないことがあるので、
+	 * ここで解放する。
 	 */
 	if (cep->rwbufq != NULL) {
@@ -1293,24 +1261,24 @@
 	cep->rbuf_rptr	= cep->rbuf_wptr = cep->rbuf;
 
-	cep->maxseg	= DEF_TCP_SND_SEG;		/* éä¿¡æå¤§ã»ã°ã¡ã³ããµã¤ãº		*/
-	cep->srtt	= TCP_TVAL_SRTT_BASE;		/* æ»ãããªç§»åå¹³å			*/
+	cep->maxseg	= DEF_TCP_SND_SEG;		/* 送信最大セグメントサイズ		*/
+	cep->srtt	= TCP_TVAL_SRTT_BASE;		/* 滑らかな移動平均			*/
 	cep->rttvar	= ((TCP_TVAL_RTO_BASE - TCP_TVAL_SRTT_BASE) << TCP_RTTVAR_SHIFT) / 4;
-							/* æ»ãããªåæ£				*/
-	cep->rxtcur	= TCP_TVAL_RTO_BASE;		/* ç¾å¨ã®åéå¤				*/
-	cep->snd_cwnd	=  MAX_TCP_WIN_SIZE;		/* è¼»è¼³ã¦ã£ã³ããµã¤ãº			*/
-	cep->snd_ssthresh= MAX_TCP_WIN_SIZE;		/* è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã®	å¶éå¤	*/
+							/* 滑らかな分散				*/
+	cep->rxtcur	= TCP_TVAL_RTO_BASE;		/* 現在の再送値				*/
+	cep->snd_cwnd	=  MAX_TCP_WIN_SIZE;		/* 輻輳ウィンドサイズ			*/
+	cep->snd_ssthresh= MAX_TCP_WIN_SIZE;		/* 輻輳ウィンドサイズ(snd_cwnd)の	制限値	*/
 
 	/*
-	 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
-	 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
-	 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+	 * 以下に関係しないフラグをクリアーする。
+	 * ・送受信ウィンドバッファの省コピー機能
+	 * ・動的な通信端点の生成・削除機能
 	 */
 	cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK | 
 	               TCP_CEP_FLG_DYNAMIC       | TCP_CEP_FLG_VALID);
 
-	/* ã»ããã©ãåæåããã*/
+	/* セマフォを初期化する。*/
 	sig_sem (cep->semid_lock);
 
-	/* ãã©ã°ãåæåããã*/
+	/* フラグを初期化する。*/
 	syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
 	syscall(clr_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY));
@@ -1318,5 +1286,5 @@
 
 /*
- *  tcp_notify -- ICMP ã¨ã©ã¼ã®å¦ç
+ *  tcp_notify -- ICMP エラーの処理
  */
 
@@ -1334,6 +1302,6 @@
 
 		/*
-		 *  ã³ãã¯ã·ã§ã³éè¨­æ¸ã§ããã¹ãå°éä¸è½ã¨ã©ã¼ã®å ´åã¯ã
-		 *  åéã«ããå¦çããã
+		 *  コネクション開設済で、ホスト到達不能エラーの場合は、
+		 *  再送により処理する。
 		 */
 		if (cep->fsm_state == TCP_FSM_ESTABLISHED &&
@@ -1342,8 +1310,6 @@
 
 		/*
-		 *  ã³ãã¯ã·ã§ã³éè¨­ä¸­ãåãã¨ã©ã¼ãä½åº¦ãåä¿¡ããå ´åã¯ã
-		 *  å¾
-ã¡ç¶æ
-ãè§£é¤ããå¯¾å¿ããé¢æ°ã«ã¨ã©ã¼ãè¿ãããã
+		 *  コネクション開設中、同じエラーを何度か受信した場合は、
+		 *  待ち状態を解除し、対応する関数にエラーを返させる。
 		 */
 		if (cep->fsm_state < TCP_FSM_ESTABLISHED && cep->rxtshift > 3 && cep->net_error != E_OK) {
@@ -1354,5 +1320,5 @@
 			cep->net_error = error;
 
-			/* éä¿¡ãæç¤ºããã*/
+			/* 送信を指示する。*/
 			cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1362,9 +1328,9 @@
 
 /*
- *  tcp_find_cep -- ãã¼ãçªå·ãã TCP éä¿¡ç«¯ç¹ãå¾ãã
+ *  tcp_find_cep -- ポート番号から TCP 通信端点を得る。
  *
- *    æ³¨æ: dstaddr ã¯ã
- *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
- *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ *    注意: dstaddr は、
+ *          TINET-1.2 からネットワークバイトオーダ、
+ *          TINET-1.1 までは、ホストバイトオーダ
  */
 
@@ -1375,7 +1341,6 @@
 	
 	/*
-	 *  ç¶æ
-ã SYN éä¿¡æ¸ã¿ä»¥å¾ã¯ã
-	 *  IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããéä¿¡ç«¯ç¹ãæ¢ç´¢ããã
+	 *  状態が SYN 送信済み以後は、
+	 *  IP アドレスとポート番号が一致する通信端点を探索する。
 	 */
 	for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
@@ -1388,5 +1353,5 @@
 		}
 
-	/* ååãªã¼ãã³ä¸­ã®éä¿¡ç«¯ç¹ãæ¢ç´¢ããã*/	
+	/* 受動オープン中の通信端点を探索する。*/	
 	for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
 		if (cep->fsm_state == TCP_FSM_LISTEN &&
@@ -1400,5 +1365,5 @@
 
 /*
- *  tcp_lock_cep -- TCP éä¿¡ç«¯ç¹ãã­ãã¯ããã
+ *  tcp_lock_cep -- TCP 通信端点をロックする。
  */
 
@@ -1411,15 +1376,15 @@
 	*p_cep = NULL;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VAID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* TCP 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* TCP 通信端点をチェックする。*/
 	if (!VALID_TCP_CEP(cep)) {
 		syscall(sig_sem(cep->semid_lock));
@@ -1428,6 +1393,6 @@
 
 	/*
-	 *  API æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if (IS_TFN_TCP_RCV(tfn)) {
@@ -1451,5 +1416,5 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -1465,6 +1430,5 @@
 
 /*
- *  ã³ãã¯ã·ã§ã³ã®ç¶æ
-
+ *  コネクションの状態
  */
 
@@ -1484,5 +1448,5 @@
 
 /*
- *  trace_putchar -- ã·ãªã¢ã«ãã¼ãã¸ã®æå­åºå
+ *  trace_putchar -- シリアルポートへの文字出力
  */
 
@@ -1495,9 +1459,9 @@
 
 /*
- *  ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºåã©ã¤ãã©ãª
- */
-
-/*
- *  æ°å¤å¤æã®ããã®å¤æè¡¨
+ *  シリアルポートへの書式付文字列出力ライブラリ
+ */
+
+/*
+ *  数値変換のための変換表
  */
 
@@ -1506,5 +1470,5 @@
 
 /*
- *  convert -- trace_printf ã®æ°å¤å¤æ
+ *  convert -- trace_printf の数値変換
  */
 
@@ -1543,5 +1507,5 @@
 
 /*
- *  trace_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºå
+ *  trace_printf -- シリアルポートへの書式付文字列出力
  */
 
@@ -1556,5 +1520,5 @@
 	va_start(ap, fmt);
 	while ((ch = *fmt ++) != '\0') {
-		if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+		if (ch != '%') {		/* 書式指定以外 */
 			trace_putchar(portid, (char)ch);
 			continue;
@@ -1563,16 +1527,15 @@
 		width = longflag = 0;
 		padchar = ' ';
-		if ((ch = *fmt ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+		if ((ch = *fmt ++) == '0') {	/* 上位桁の 0 */
 			padchar = '0';
 			ch = *fmt ++;
 			}
 
-		while ('0' <= ch && ch <= '9') {	/* åºåå¹
- */
+		while ('0' <= ch && ch <= '9') {	/* 出力幅 */
 			width = width * 10 + ch - '0';
 			ch = *fmt ++;
 			}
 
-		while (ch == 'l') {		/* long (long) ã®æå® */
+		while (ch == 'l') {		/* long (long) の指定 */
 			longflag ++;
 			ch = *fmt ++;
@@ -1635,5 +1598,5 @@
 
 /*
- *  TCP ãã©ã°æå­å
+ *  TCP フラグ文字列
  */
 
@@ -1654,5 +1617,5 @@
 
 /*
- *  éä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå
+ *  送信 TCP ヘッダのトレース出力
  */
 
@@ -1705,8 +1668,7 @@
 
 /*
- *  åä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå
+ *  受信 TCP ヘッダのトレース出力
  *
- *    æ³¨æ: TCP ãããå
-ã¯ããã§ã«ãã¹ããã¤ããªã¼ã
+ *    注意: TCP ヘッダ内は、すでにホストバイトオーダ
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_cs.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_cs.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_cs.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -137,12 +125,12 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å
- *  ãã ããéä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ï¼cep->sbufï¼ã®å¤ã«ããã
- *  TCP éä¿¡ç«¯ç¹æ¯ã«éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ãããã
- *  ä½¿ç¨ããªãããåãæ¿ããã
- */
-
-/*
- *  tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼é¸æï¼ã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効な場合
+ *  ただし、通信端点の送信ウィンドバッファ（cep->sbuf）の値により、
+ *  TCP 通信端点毎に送信ウィンドバッファの省コピー機能を使用するか、
+ *  使用しないかを切り替える。
+ */
+
+/*
+ *  tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する（選択）。
  */
 
@@ -157,5 +145,5 @@
 
 /*
- *  tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼é¸æï¼ã
+ *  tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む（選択）。
  */
 
@@ -170,5 +158,5 @@
 
 /*
- *  tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèª­ã¿åºãï¼é¸æï¼ã
+ *  tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す（選択）。
  */
 
@@ -181,6 +169,5 @@
 
 /*
- *  tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾
-ã¤ï¼é¸æï¼ã
+ *  tcp_wait_swbuf -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ（選択）。
  */
 
@@ -195,5 +182,5 @@
 
 /*
- *  tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼é¸æï¼ã
+ *  tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する（選択）。
  */
 
@@ -208,5 +195,5 @@
 
 /*
- *  tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼é¸æï¼ã
+ *  tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする（選択）。
  */
 
@@ -221,5 +208,5 @@
 
 /*
- *  tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®è§£æ¾ãæç¤ºããï¼é¸æï¼ã
+ *  tcp_free_swbufq -- 送信ウィンドバッファキューの解放を指示する（選択）。
  */
 
@@ -232,5 +219,5 @@
 
 /*
- *  tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããï¼é¸æï¼ã
+ *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する（選択）。
  */
 
@@ -243,5 +230,5 @@
 
 /*
- *  tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼é¸æï¼ã
+ *  tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする（選択）。
  */
 
@@ -258,5 +245,5 @@
 
 /*
- *  tcp_drop_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼å°ç¨ï¼ã
+ *  tcp_drop_swbuf_cs -- 送信ウィンドバッファから指定されたオクテット分削除する（専用）。
  */
 
@@ -265,9 +252,8 @@
 {
 
-	/*éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã*/
+	/*送信ウィンドバッファから指定されたオクテット分削除する。*/
 	cep->swbuf_count -= (uint16_t)len;
 
-	/* éä¿¡æ¸ã¿ã§ãACKå¾
-ã¡ã®æã¯ãACKå®äºã«å¤æ´ããã*/
+	/* 送信済みで、ACK待ちの時は、ACK完了に変更する。*/
 	if (len > 0 && (cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SENT) {
 		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED;
@@ -277,5 +263,5 @@
 
 /*
- *  tcp_write_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼å°ç¨ï¼ã
+ *  tcp_write_swbuf_cs -- 送信ウィンドバッファにデータを書き込む（専用）。
  */
 
@@ -285,5 +271,5 @@
 	ER_UINT	error;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -298,11 +284,10 @@
 		 *   <---------------- error --------------->
 		 *              ^
-		 *              net_buf ã§ 4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã
+		 *              net_buf で 4 オクテット境界にアラインされている。
 		 *
-		 *  tcp_output ã¨ ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã
-		 *  n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã
-		 *  ãããã£ã³ã°ããããã®åãèæ
-®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã®
-		 *  ç©ºããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã
+		 *  tcp_output と ip_output で、チェックサムを計算するとき、
+		 *  n が 4 オクテット境界になるように SDU の後ろに 0 を
+		 *  パッディングする。その分を考慮して送信ウィンドバッファの
+		 *  空きサイズを 4 オクテット境界に調整する。
 		 */
 		error = (uint_t)(((error - IF_IP_TCP_HDR_SIZE) >> 2 << 2) + IF_IP_TCP_HDR_SIZE);
@@ -313,5 +298,5 @@
 			len = (uint_t)(error - IF_IP_TCP_HDR_SIZE);
 
-		/* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºãèª¿æ´ããã*/
+		/* 送信ウインドサイズによりサイズを調整する。*/
 		if (len > cep->snd_wnd) 
 			len = cep->snd_wnd;
@@ -319,10 +304,9 @@
 			len = cep->snd_cwnd;
 
-		/* ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶
-ããªãããã«ããã*/
+		/* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/
 		if (len > cep->maxseg) 
 			len = cep->maxseg;
 
-		/* ãã¼ã¿ãç§»ãã*/
+		/* データを移す。*/
 		memcpy(cep->sbuf_wptr, (void*)((uint8_t*)data), (size_t)len);
 		cep->sbuf_wptr   += len;
@@ -330,21 +314,21 @@
 		error             = len;
 
-		/* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨­å®ããã*/
+		/* ネットワークバッファ長と IP データグラム長を設定する。*/
 		cep->swbufq->len = (uint16_t)(cep->swbuf_count + IF_IP_TCP_HDR_SIZE);
 		SET_IP_SDU_SIZE(GET_IP_HDR(cep->swbufq), cep->swbuf_count + TCP_HDR_SIZE);
 
-		/* ãã©ã°ããéä¿¡å¯è½ã«è¨­å®ããã*/
+		/* フラグを、送信可能に設定する。*/
 		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY;
 		}
 
-	else {	/* éä¿¡ã¦ã¤ã³ããããã¡ãä¸æ­£ */
+	else {	/* 送信ウインドバッファが不正 */
 		syslog(LOG_WARNING, "[TCP] illegal window buff for send, CEP: %d, %4d < %4d.",
 		                    GET_TCP_CEPID(cep), error, IF_IP_TCP_HDR_SIZE);
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 		tcp_free_swbufq_cs(cep);
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -353,6 +337,5 @@
 
 /*
- *  tcp_wait_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾
-ã¤ï¼å°ç¨ï¼ã
+ *  tcp_wait_swbuf_cs -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ（専用）。
  */
 
@@ -366,15 +349,13 @@
 
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ãå²å½ã¦æ¸ã¿ã§ãç©ºããããã°çµäºããã*/
+	/* 送信ウィンドバッファが割当て済みで、空きがあれば終了する。*/
 	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_READY &&
 	    (cep->swbuf_count + IF_IP_TCP_HDR_SIZE) < net_buf_siz(cep->swbufq))
 		return E_OK;
 
-	/* éä¿¡ä¸­ã§ããã°ãçµäºããã¾ã§å¾
-æ©ããã*/
+	/* 送信中であれば、終了するまで待機する。*/
 	while ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) {
 
-		/* éä¿¡å¾
-ã¡ã®æéã tmout ããæ¸ããã*/
+		/* 送信待ちの時間を tmout から減ずる。*/
 		if (!(tmout == TMO_POL || tmout == TMO_FEVR))
 			syscall(get_tim(&before));
@@ -385,6 +366,5 @@
 		syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY)));
 
-		/* éä¿¡å¾
-ã¡ã®æéã tmout ããæ¸ããã*/
+		/* 送信待ちの時間を tmout から減ずる。*/
 		if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
 			syscall(get_tim(&after));
@@ -395,9 +375,7 @@
 
 		/*
-		 *  éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã
-		 *  éä¿¡ã¦ã¤ã³ããããã¡ãç©ºãã¾ã§å¾
-ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããããã¨ãæå³ãã¦ããã
+		 *  送信できるか、CEP の FSM 状態を見る。
+		 *  送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、
+		 *  コネクションが切断されたことを意味している。
 		 */
 		if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state))
@@ -405,13 +383,12 @@
 		}
 
-	/* ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾
-æ©ããã*/
+	/* 相手の受信ウィンドが閉じている場合は、開くまで待機する。*/
 	while (true) {
 
 		/*
-		 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
-		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+		 *  snd_wnd:  相手の受信可能ウィンドサイズ
+		 *  snd_cwnd: 輻輳ウィンドサイズ
 		 *
-		 *  win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨­å®ããã
+		 *  win: どちらか小さいウィンドサイズに設定する。
 		 */
 		win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
@@ -419,6 +396,5 @@
 			break;
 
-		/* éãå¾
-ã¡ã®æéã tmout ããæ¸ããã*/
+		/* 開き待ちの時間を tmout から減ずる。*/
 		if (!(tmout == TMO_POL || tmout == TMO_FEVR))
 			syscall(get_tim(&before));
@@ -429,6 +405,5 @@
 		syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY)));
 
-		/* éãå¾
-ã¡ã®æéã tmout ããæ¸ããã*/
+		/* 開き待ちの時間を tmout から減ずる。*/
 		if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
 			syscall(get_tim(&after));
@@ -439,9 +414,7 @@
 
 		/*
-		 *  éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã
-		 *  éä¿¡ã¦ã¤ã³ããããã¡ãç©ºãã¾ã§å¾
-ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããããã¨ãæå³ãã¦ããã
+		 *  送信できるか、CEP の FSM 状態を見る。
+		 *  送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、
+		 *  コネクションが切断されたことを意味している。
 		 */
 		if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state))
@@ -449,5 +422,5 @@
 		}
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+	/* ネットワークバッファを獲得する。*/
 	if ((error = tcp_get_segment(&cep->swbufq, cep, 0,
 	                             TCP_CFG_SWBUF_CSAVE_MIN_SIZE,
@@ -456,5 +429,5 @@
 		return error;
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/
+	/* 送信ウィンドバッファを初期化する。*/
 	tcp_init_swbuf(cep);
 
@@ -463,5 +436,5 @@
 
 /*
- *  tcp_get_swbuf_addr_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼å°ç¨ï¼ã
+ *  tcp_get_swbuf_addr_cs -- 送信ウィンドバッファの空きアドレスを獲得する（専用）。
  */
 
@@ -471,5 +444,5 @@
 	ER_UINT	error;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -483,15 +456,14 @@
 		 *   <---------------- error --------------->
 		 *              ^
-		 *              net_buf ã§ 4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã
+		 *              net_buf で 4 オクテット境界にアラインされている。
 		 *
-		 *  tcp_output ã¨ ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã
-		 *  n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã
-		 *  ãããã£ã³ã°ããããã®åãèæ
-®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã®
-		 *  ç©ºããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã
+		 *  tcp_output と ip_output で、チェックサムを計算するとき、
+		 *  n が 4 オクテット境界になるように SDU の後ろに 0 を
+		 *  パッディングする。その分を考慮して送信ウィンドバッファの
+		 *  空きサイズを 4 オクテット境界に調整する。
 		 */
 		error = (uint_t)(((error - IF_IP_TCP_HDR_SIZE) >> 2 << 2) - cep->swbuf_count);
 
-		/* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºãèª¿æ´ããã*/
+		/* 送信ウインドサイズによりサイズを調整する。*/
 		if (error > cep->snd_wnd) 
 			error = cep->snd_wnd;
@@ -499,24 +471,22 @@
 			error = cep->snd_cwnd;
 
-		/* ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶
-ããªãããã«ããã*/
+		/* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/
 		if (error > cep->maxseg) 
 			error = cep->maxseg;
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+		/* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/
 		cep->get_buf_len = error;
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å
-é ­ãè¨­å®ããã*/
+		/* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/
 		*p_buf = cep->sbuf_wptr;
 		}
 
-	else {	/* ãããã¯ã¼ã¯ãããã¡ãä¸æ­£ */
-
-		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+	else {	/* ネットワークバッファが不正 */
+
+		/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 		tcp_free_swbufq_cs(cep);
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -525,5 +495,5 @@
 
 /*
- *  tcp_send_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼å°ç¨ï¼ã
+ *  tcp_send_swbuf_cs -- 送信ウィンドバッファのデータを送信可能にする（専用）。
  */
 
@@ -531,5 +501,5 @@
 tcp_send_swbuf_cs (T_TCP_CEP *cep, uint_t len)
 {
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -537,15 +507,15 @@
 	cep->swbuf_count += len;
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨­å®ããã*/
+	/* ネットワークバッファ長と IP データグラム長を設定する。*/
 	cep->swbufq->len = (uint16_t)(cep->swbuf_count + IF_IP_TCP_HDR_SIZE);
 	SET_IP_SDU_SIZE(GET_IP_HDR(cep->swbufq), len + TCP_HDR_SIZE);
 
-	/* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/
+	/* tcp_get_buf の割当て長をリセットする。*/
 	cep->get_buf_len = 0;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* ãã©ã°ããéä¿¡å¯è½ã«è¨­å®ããå¼·å¶çã«éä¿¡ããã*/
+	/* フラグを、送信可能に設定し、強制的に送信する。*/
 	cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY
 	                                               | TCP_CEP_FLG_FORCE
@@ -555,11 +525,9 @@
 
 /*
- *  tcp_free_swbufq_cs -- éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®è§£æ¾ãæç¤ºããï¼å°ç¨ï¼ã
+ *  tcp_free_swbufq_cs -- 送信ウィンドバッファキューの解放を指示する（専用）。
  *
- *    æ³¨æ:
- *      å¿
-è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãéä¿¡ç«¯ç¹ãã­ãã¯ãã
- *      æ»ã£ãå¾ãè§£é¤ããå¿
-è¦ãããã
+ *    注意:
+ *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
+ *      戻った後、解除する必要がある。
  */
 
@@ -567,12 +535,11 @@
 tcp_free_swbufq_cs (T_TCP_CEP *cep)
 {
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾
-ã¡ãåãæ¶ãã*/
+	/* 送信ウィンドバッファの空き待ちを取り消す。*/
 	cep->flags &= ~TCP_CEP_FLG_WBCS_NBUF_REQ;
 
 	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) {
 		/*
-		 *  éä¿¡ã¦ã£ã³ããããã¡ãåé¤ããããã«ããã©ã°ã ACK å®äºã«è¨­å®ãã
-		 *  TCP åºåã¿ã¹ã¯ãèµ·åããã
+		 *  送信ウィンドバッファを削除するために、フラグを ACK 完了に設定し、
+		 *  TCP 出力タスクを起動する。
 		 */
 		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED;
@@ -582,5 +549,5 @@
 
 /*
- *  tcp_alloc_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããï¼å°ç¨ï¼ã
+ *  tcp_alloc_swbuf_cs -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する（専用）。
  */
 
@@ -591,6 +558,6 @@
 
 	/*
-	 *  éä¿¡ã¦ã£ã³ããããã¡ãæªä½¿ç¨ã®å ´åã®ã¿ã
-	 *  éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããã
+	 *  送信ウィンドバッファが未使用の場合のみ、
+	 *  送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
 	 */
 	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_FREE)
@@ -599,5 +566,5 @@
 
 /*
- *  tcp_is_swbuf_full_cs -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼å°ç¨ï¼ã
+ *  tcp_is_swbuf_full_cs -- 送信ウィンドバッファが満杯かチェックする（専用）。
  */
 
@@ -610,8 +577,8 @@
 
 /*
- *  tcp_init_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãåæåããï¼å°ç¨ï¼ã
+ *  tcp_init_swbuf -- 送信ウィンドバッファを初期化する（専用）。
  *
- *    æ³¨æ: tcp_get_segment ã§ãããã¯ã¼ã¯ãããã¡ãç²å¾ãã
- *          ç´å¾ã«å¼ã³åºããã¨ã
+ *    注意: tcp_get_segment でネットワークバッファを獲得した
+ *          直後に呼び出すこと。
  */
 
@@ -619,11 +586,11 @@
 tcp_init_swbuf (T_TCP_CEP *cep)
 {
-	/* éä¿¡ã¦ã¤ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãºããªã»ããããã*/
+	/* 送信ウインドバッファの使用中サイズをリセットする。*/
 	cep->swbuf_count = 0;
 
-	/* éä¿¡ã¦ã¤ã³ããããã¡ã®ã¢ãã¬ã¹ãè¨­å®ããã*/
+	/* 送信ウインドバッファのアドレスを設定する。*/
 	cep->sbuf_wptr = cep->sbuf_rptr = GET_TCP_SDU(cep->swbufq, IF_IP_TCP_HDR_OFFSET);
 
-	/* ãã©ã°ãããããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿ã«è¨­å®ããã*/
+	/* フラグを、ネットワークバッファ割当て済みに設定する。*/
 	cep->flags = (cep->flags & ~(TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK))
 	                         |   TCP_CEP_FLG_WBCS_NBUF_READY;
@@ -631,5 +598,5 @@
 
 /*
- *  tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããï¼å°ç¨ï¼ã
+ *  tcp_push_res_nbuf -- ネットワークバッファを予約する（専用）。
  */
 
@@ -649,9 +616,9 @@
 		if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_PEND) {
 
-			/* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
+			/* ネットワークバッファを予約する。*/
 			cep->swbufq = nbuf;
 			nbuf = NULL;
 
-			/* ãã©ã°ãäºç´ã«è¨­å®ããã*/
+			/* フラグを予約に設定する。*/
 			cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_RSVD;
 			sel_ix = ix;
@@ -668,5 +635,5 @@
 
 /*
- *  tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãï¼å°ç¨ï¼ã
+ *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す（専用）。
  */
 
@@ -680,9 +647,9 @@
 	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_RSVD) {
 
-		/* äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡ãè¿ãã*/
+		/* 予約してあるネットワークバッファを返す。*/
 		nbuf = cep->swbufq;
 		cep->swbufq = NULL;
 
-		/* TCP åºåã¿ã¹ã¯ãèµ·åããã*/
+		/* TCP 出力タスクを起動する。*/
 		sig_sem(SEM_TCP_POST_OUTPUT);
 		}
@@ -700,12 +667,12 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å
- *  ãã ããéä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ï¼cep->rbufï¼ã®å¤ã«ããã
- *  TCP éä¿¡ç«¯ç¹æ¯ã«åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ãããã
- *  ä½¿ç¨ããªãããåãæ¿ããã
- */
-
-/*
- *  tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効な場合
+ *  ただし、通信端点の受信ウィンドバッファ（cep->rbuf）の値により、
+ *  TCP 通信端点毎に受信ウィンドバッファの省コピー機能を使用するか、
+ *  使用しないかを切り替える。
+ */
+
+/*
+ *  tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。
  */
 
@@ -720,5 +687,5 @@
 
 /*
- *  tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèª­ã¿åºãã
+ *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
  */
 
@@ -733,5 +700,5 @@
 
 /*
- *  tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
  */
 
@@ -746,5 +713,5 @@
 
 /*
- *  tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
  */
 
@@ -757,5 +724,5 @@
 
 /*
- *  tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
  */
 
@@ -772,9 +739,9 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹
- */
-
-/*
- *  tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効
+ */
+
+/*
+ *  tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。
  */
 
@@ -789,5 +756,5 @@
 		cep->rwbuf_count -= len;
 
-		/* ãããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ãç¡ããªã£ããè§£æ¾ããã*/
+		/* ネットワークバッファにデータが無くなったら解放する。*/
 		if (len == qhdr->slen) {
 			T_NET_BUF *next;
@@ -811,5 +778,5 @@
 
 /*
- *  tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèª­ã¿åºãã
+ *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
  */
 
@@ -821,10 +788,10 @@
 	uint8_t		*buf = (uint8_t*)data;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã«ãããã¯ã¼ã¯ãããã¡ãç¡ããªãã
-	 *  len ã 0 ã«ãªãã¾ã§ç¶ããã
+	 *  受信ウィンドバッファキューにネットワークバッファが無くなるか
+	 *  len が 0 になるまで続ける。
 	 */
 	while (cep->rwbufq != NULL && len > 0) {
@@ -832,7 +799,6 @@
 
 		/*
-		 *  len ã¨åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®å
-é ­ãããã¯ã¼ã¯ãããã¡ã®
-		 *  ãã¼ã¿æ°ã®å°ããæ¹ãç§»ããã¼ã¿æ°ã«ããã
+		 *  len と受信ウィンドバッファキューの先頭ネットワークバッファの
+		 *  データ数の小さい方を移すデータ数にする。
 		 */
 		if (len > qhdr->slen)
@@ -846,6 +812,6 @@
 
 		/*
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã«
-		 *  ãã¼ã¿ãç¡ããªã£ããè§£æ¾ããã
+		 *  受信ウィンドバッファキューのネットワークバッファに
+		 *  データが無くなったら解放する。
 		 */
 		tcp_drop_rwbuf_cs(cep, blen);
@@ -856,5 +822,5 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -863,5 +829,5 @@
 
 /*
- *  tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
  */
 
@@ -872,11 +838,10 @@
 	uint_t		len;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	if (cep->rwbufq == NULL) {
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ãå
-¨ã¦éæ¾ããã¦ããã¨ãã*/
+		/* 受信ウィンドバッファが全て開放されているとき。*/
 		*p_buf = NULL;
 		len = 0;
@@ -884,17 +849,16 @@
 	else {
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å
-é ­ãè¨­å®ããã*/
+		/* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/
 		qhdr = GET_TCP_Q_HDR(cep->rwbufq, GET_TCP_IP_Q_HDR(cep->rwbufq)->thoff);
 		*p_buf = GET_TCP_SDU(cep->rwbufq, GET_TCP_IP_Q_HDR(cep->rwbufq)->thoff) + qhdr->soff;
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/
+		/* 受信ウィンドバッファのデータ長を計算する。*/
 		len = qhdr->slen;
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+	/* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/
 	cep->rcv_buf_len = len;
 	return len;
@@ -902,11 +866,9 @@
 
 /*
- *  tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
  *
- *    æ³¨æ:
- *      å¿
-è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãéä¿¡ç«¯ç¹ãã­ãã¯ãã
- *      æ»ã£ãå¾ãè§£é¤ããå¿
-è¦ãããã
+ *    注意:
+ *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
+ *      戻った後、解除する必要がある。
  */
 
@@ -930,5 +892,5 @@
 			}
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãºããªã»ããããã*/
+		/* 受信ウィンドバッファの使用中サイズをリセットする。*/
 		cep->rwbuf_count = 0;
 		}
@@ -936,11 +898,10 @@
 
 /*
- *  tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
  *
- *    æ³¨æ:
- *	å
-¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã
- *	ä¸¦ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã
- *	è¿½å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã
+ *    注意:
+ *	入力 input は、T_TCP_Q_HDR によりリンクされ、
+ *	並べ替えが終了していなければならない。また、
+ *	追加するデータは、受信ウィンドバッファに収まること。
  */
 
@@ -952,5 +913,5 @@
 	uint_t		inlen, last;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -965,14 +926,13 @@
 
 		/*
-		 *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ãè¶
-ããã¨ãã¯ã
-		 *  åä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
-		 *  ãã ããSDU é·ã 0 ã®ã»ã°ã¡ã³ãã¨ FIN ã»ã°ã¡ã³ãã¯ç ´æ£ããªãã
-		 *  ãªããæ­£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã
+		 *  TCP 通信端点の受信ウィンドバッファの省コピー機能の、
+		 *  受信ウィンドバッファキューの最大エントリ数を超えるときは、
+		 *  受信したセグメントを破棄する。
+		 *  ただし、SDU 長が 0 のセグメントと FIN セグメントは破棄しない。
+		 *  なお、正常に受信したセグメントも破棄するため、再送回数が増加する。
 		 */
 		syscall(rel_net_buf(input));
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 		return;
@@ -985,8 +945,8 @@
 	qhdr  = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff);
 
-	/* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/
+	/* 受信済みシーケンス番号を更新する。*/
 	cep->rcv_nxt += inlen;
 
-	/* ç·æ¥ãã¼ã¿ã® SDU è£æ­£ãè¡ãã*/
+	/* 緊急データの SDU 補正を行う。*/
 	if (qhdr->urp > 0 && inlen > 0) {
 		inlen      -= qhdr->urp;
@@ -997,5 +957,5 @@
 	last  = cep->rwbuf_count;
 
-	/* ãããã¯ã¼ã¯ãããã¡ãåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¾ã«é£çµããã*/
+	/* ネットワークバッファを受信ウィンドバッファキューの最後に連結する。*/
 	qhdr->next = NULL;
 	nextp = &cep->rwbufq;
@@ -1005,7 +965,7 @@
 
 	/*
-	 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-	 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-	 *  ããªããã¨ãç¥ãããããã§ããã
+	 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+	 *  これは、アプリケーションに、相手からこれ以上データが送られて
+	 *  こないことを知らせるためである。
 	 */
 	if (inlen > 0) {
@@ -1015,10 +975,10 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ノンブロッキングコール */
 
 		int_t	len;
@@ -1028,14 +988,14 @@
 
 		/*
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if (len > 0 || inlen == 0) {
 
-			/* tcp_rcv_buf ã®å²å½ã¦é·ãè¨­å®ããã*/
+			/* tcp_rcv_buf の割当て長を設定する。*/
 			cep->rcv_buf_len = len;
 
-			/* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/
+			/* 受信ウィンドバッファのアドレスを返す。*/
 			*cep->rcv_p_buf = GET_TCP_SDU(cep->rwbufq,
 			                  GET_TCP_IP_Q_HDR(cep->rwbufq)->thoff) + qhdr->soff;
@@ -1059,6 +1019,6 @@
 
 				/*
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-				 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックして、
+				 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 				 */
 				syscall(wai_sem(cep->semid_lock));
@@ -1068,15 +1028,15 @@
 			}
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->rcv_tskid = TA_NULL;
 		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
 		}
 
-	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ノンブロッキングコール */
 		int_t	len;
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+		/* 受信ウィンドバッファからデータを取り出す。*/
 		if ((len = tcp_read_rwbuf_cs(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) {
-			/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+			/* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1084,7 +1044,7 @@
 
 		/*
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if (len > 0 || inlen == 0) {
@@ -1106,5 +1066,5 @@
 			}
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->rcv_tskid = TA_NULL;
 		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
@@ -1116,9 +1076,8 @@
 		if (inlen == 0 && cep->rwbuf_count == 0) {
 			/*
-			 *  åä¿¡ã¦ã£ã³ããããã¡å
-ã®ãã¼ã¿æ°ã 0 ã§ã
-			 *  ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã
-			 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-			 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+			 *  受信ウィンドバッファ内のデータ数が 0 で、
+			 *  相手から FIN フラグが付いたセグメントを受信したときは、
+			 *  通信端点をロックして、
+			 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 			 */
 			syscall(wai_sem(cep->semid_lock));
@@ -1128,10 +1087,8 @@
 
 		/*
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå
-¥ããã inlen == 0 ã®æãå
-¥åã¿ã¹ã¯ãèµ·åºããã
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0) {
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_ncs.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_ncs.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_ncs.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -135,9 +123,9 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹
- */
-
-/*
- *  tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèª­ã¿åºãã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能が無効
+ */
+
+/*
+ *  tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す。
  */
 
@@ -147,5 +135,5 @@
 	uint8_t	*wptr, *rptr;
 
-	/* SDU ã®å¤§ããããã§ãã¯ããã*/
+	/* SDU の大きさをチェックする。*/
 	if (GET_IP_SDU_SIZE(GET_IP_HDR(output)) < GET_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET) + len) {
 		syslog(LOG_INFO, "[TCP] shrink SUD len: %d -> %d",
@@ -156,5 +144,5 @@
 	wptr = GET_TCP_SDU(output, IF_IP_TCP_HDR_OFFSET);
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -162,6 +150,5 @@
 	if (rptr - (uint8_t*)cep->sbuf > cep->sbufsz) {
 
-		/* è»¢ééå§ãéä¿¡ã¦ã£ã³ããããã¡ã®çµãããè¶
-ããã¨ãã®å¦çã*/
+		/* 転送開始が送信ウィンドバッファの終わりを超えるときの処理　*/
 		rptr = (uint8_t*)cep->sbuf_rptr - (cep->sbufsz - doff);
 		}
@@ -169,5 +156,5 @@
 		uint_t sub;
 
-		/* è»¢éç¯å²ãã©ã¦ã³ãããã¨ãã®å¦ç */
+		/* 転送範囲がラウンドするときの処理 */
 		sub = (uint_t)(cep->sbufsz - (rptr - (uint8_t*)cep->sbuf));
 		memcpy((void*)wptr, rptr, (size_t)sub);
@@ -181,10 +168,10 @@
 	NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_DATA_OCTETS], len);
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 	}
 
 /*
- *  tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã
+ *  tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する。
  */
 
@@ -194,5 +181,5 @@
 	uint_t	last;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -200,5 +187,5 @@
 
 	if (cep->sbuf_rptr + len > (uint8_t*)cep->sbuf + cep->sbufsz)
-		/* ã©ã¦ã³ãããã¨ãã®è¨ç® */
+		/* ラウンドするときの計算 */
 		cep->sbuf_rptr -= cep->sbufsz - len;
 	else
@@ -206,30 +193,30 @@
 	cep->swbuf_count -= (uint16_t)len;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-	if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) {	/* ノンブロッキングコール */
+
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
-		/* éä¿¡ãã¼ã¿é·ãè¨ç®ããã*/
+		/* 送信データ長を計算する。*/
 		if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf))
-			/* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+			/* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */
 			len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf));
 		else
 			len = cep->sbufsz - cep->swbuf_count;
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
 		if (len > 0) {
 
-			/* tcp_get_buf ã®å²å½ã¦é·ãè¨­å®ããã*/
+			/* tcp_get_buf の割当て長を設定する。*/
 			cep->get_buf_len = len;
 
-			/* éä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/
+			/* 送信ウィンドバッファのアドレスを返す。*/
 			*cep->snd_p_buf = cep->sbuf_wptr;
 
@@ -248,5 +235,5 @@
 				syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
 
-			/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+			/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 			cep->snd_tskid = TA_NULL;
 			cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -257,9 +244,9 @@
 
 	else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT ||
-	         cep->snd_nblk_tfn == TFN_TCP_SND_OOB) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	         cep->snd_nblk_tfn == TFN_TCP_SND_OOB) {	/* ノンブロッキングコール */
 
 #else	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-	else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) {	/* ノンブロッキングコール */
 
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
@@ -267,10 +254,10 @@
 		ER_UINT	error;
 
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+	 	/* 送信ウィンドバッファにデータを書き込む。*/
 		error = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len);
 
 #ifdef TCP_CFG_EXTENTIONS
 
-		/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+		/* 送信緊急ポインタを設定する。*/
 	        if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB)
 			cep->snd_up = cep->snd_una + error;
@@ -293,5 +280,5 @@
 			syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->snd_tskid = TA_NULL;
 		cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
@@ -301,5 +288,5 @@
 #endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããåºæ¥ããåºåã¿ã¹ã¯ãèµ·åºããã*/
+		/* 送信ウィンドバッファに空きが出来たら出力タスクを起床する。*/
 		if (last == cep->sbufsz && cep->swbuf_count < cep->sbufsz)
 			syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
@@ -312,5 +299,5 @@
 
 	if (cep->swbuf_count > 0) {
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°åºåããã¹ãããã*/
+		/* 送信ウィンドバッファにデータがあれば出力をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -319,5 +306,5 @@
 
 /*
- *  tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *  tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む。
  */
 
@@ -327,12 +314,12 @@
 	uint_t	offset;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* len ã¨éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã®å°ããæ¹ãç§»ããã¼ã¿æ°ã«ããã*/
+	/* len と送信ウィンドバッファの空きの小さい方を移すデータ数にする。*/
 	if (len > (cep->sbufsz - cep->swbuf_count))
 		len = cep->sbufsz - cep->swbuf_count;
 
-	/* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	/* 書き込みポインタがラウンドするときの処理 */
 	if (len > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) {
 		offset = (uint_t)(cep->sbufsz - (cep->sbuf_wptr -(uint8_t*)cep->sbuf));
@@ -348,5 +335,5 @@
 	cep->swbuf_count += len - offset;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -355,6 +342,5 @@
 
 /*
- *  tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
-ã¤ã
+ *  tcp_wait_swbuf -- 送信ウィンドバッファが空くのを待つ。
  */
 
@@ -367,7 +353,6 @@
 	while (cep->swbuf_count >= cep->sbufsz) {
 		/*
-		 *  éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãããªããã°ãåºåããã¹ããã¦ã
-		 *  éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã¾ã§å¾
-ã¤ã
+		 *  送信ウィンドバッファの空きがなければ、出力をポストして、
+		 *  送信ウィンドバッファが空くまで待つ。
 		 */
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
@@ -380,9 +365,7 @@
 
 		/*
-		 *  éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã
-		 *  éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã¾ã§å¾
-ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããããã¨ãæå³ãã¦ããã
+		 *  送信できるか、CEP の FSM 状態を見る。
+		 *  送信ウィンドバッファが空くまで待つ間に、送信不能になった場合は、
+		 *  コネクションが切断されたことを意味している。
 		 */
 		if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
@@ -394,5 +377,5 @@
 	}
 /*
- *  tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ *  tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する。
  */
 
@@ -402,22 +385,21 @@
 	uint_t	len;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å
-é ­ãè¨­å®ããã*/
+	/* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/
 	*p_buf = cep->sbuf_wptr;
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããµã¤ãºãè¨ç®ããã*/
+	/* 送信ウィンドバッファの空きサイズを計算する。*/
 	if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf))
-		/* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+		/* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */
 		len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf));
 	else
 		len = cep->sbufsz - cep->swbuf_count;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+	/* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/
 	cep->get_buf_len = len;
 	return (ER_UINT)len;
@@ -425,5 +407,5 @@
 
 /*
- *  tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã
+ *  tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする。
  */
 
@@ -431,5 +413,5 @@
 tcp_send_swbuf_ncs (T_TCP_CEP *cep, uint_t len)
 {
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
@@ -437,15 +419,15 @@
 	cep->swbuf_count += len;
 
-	/* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	/* 書込みポインタがラウンドするときの処理 */
 	if (cep->sbuf_wptr >= (uint8_t*)cep->sbuf + cep->sbufsz)
 		cep->sbuf_wptr  = (uint8_t*)cep->sbuf;
 
-	/* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/
+	/* tcp_get_buf の割当て長をリセットする。*/
 	cep->get_buf_len = 0;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/
+	/* 送信ウィンドバッファがフルのときは強制的に送信する。*/
 	if (cep->swbuf_count >= cep->sbufsz)
 		cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
@@ -453,5 +435,5 @@
 
 /*
- *  tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããã
+ *  tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする。
  */
 
@@ -467,9 +449,9 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹
- */
-
-/*
- *  tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が無効
+ */
+
+/*
+ *  tcp_drop_rwbuf -- 受信ウィンドバッファから指定されたオクテット分削除する。
  */
 
@@ -480,5 +462,5 @@
 	cep->rbuf_rptr  += len;
 
-	/* èª­ã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	/* 読み出しポインタがラウンドするときの処理 */
 	if (cep->rbuf_rptr >= (uint8_t*)cep->rbuf + cep->rbufsz)
 		cep->rbuf_rptr  = (uint8_t*)cep->rbuf;
@@ -486,5 +468,5 @@
 
 /*
- *  tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèª­ã¿åºãã
+ *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
  */
 
@@ -494,12 +476,12 @@
 	uint_t	offset;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* len ã¨åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿æ°ã®å°ããæ¹ãåãåºããã¼ã¿æ°ã«ããã*/
+	/* len と受信ウィンドバッファのデータ数の小さい方を取り出すデータ数にする。*/
 	if (len > cep->rwbuf_count)
 		len = cep->rwbuf_count;
 
-	/* èª­ã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	/* 読み出しポインタがラウンドするときの処理 */
 	if (len > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) {
 		offset = (uint_t)(cep->rbufsz - (cep->rbuf_rptr -(uint8_t*)cep->rbuf));
@@ -515,5 +497,5 @@
 	cep->rbuf_rptr  += len - offset;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -522,5 +504,5 @@
 
 /*
- *  tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
  */
 
@@ -530,22 +512,21 @@
 	uint_t	len;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/
+	/* 受信ウィンドバッファのデータ長を計算する。*/
 	if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf))
-		/* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+		/* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */
 		len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf));
 	else
 		len = cep->rwbuf_count;
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å
-é ­ãè¨­å®ããã*/
+	/* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/
 	*p_buf = cep->rbuf_rptr;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+	/* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/
 	cep->rcv_buf_len = len;
 	return len;
@@ -553,11 +534,10 @@
 
 /*
- *  tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
  *
- *    æ³¨æ:
- *	å
-¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã
- *	ä¸¦ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã
- *	è¿½å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã
+ *    注意:
+ *	入力 input は、T_TCP_Q_HDR によりリンクされ、
+ *	並べ替えが終了していなければならない。また、
+ *	追加するデータは、受信ウィンドバッファに収まること。
  */
 
@@ -568,10 +548,10 @@
 	uint_t		offset, inlen, last;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	qhdr  = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff);
 
-	/* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/
+	/* 受信済みシーケンス番号を更新する。*/
 	cep->rcv_nxt += qhdr->slen;
 
@@ -579,5 +559,5 @@
 	inlen = qhdr->slen;
 
-	/* ç·æ¥ãã¼ã¿ã® SDU è£æ­£ãè¡ãã*/
+	/* 緊急データの SDU 補正を行う。*/
 	if (qhdr->urp > 0 && inlen > 0) {
 		inlen      -= qhdr->urp;
@@ -587,11 +567,11 @@
 
 	/*
-	 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-	 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-	 *  ããªããã¨ãç¥ãããããã§ããã
+	 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+	 *  これは、アプリケーションに、相手からこれ以上データが送られて
+	 *  こないことを知らせるためである。
 	 */
 	if (inlen > 0) {
 
-		/* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+		/* 書き込みポインタがラウンドするときの処理 */
 		if (inlen > cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf)) {
 			offset = (uint_t)(cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf));
@@ -616,11 +596,11 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ノンブロッキングコール */
 
 		int_t	len;
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨ç®ããã*/
+		/* 受信ウィンドバッファの空きデータ長を計算する。*/
 		if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) {
-			/* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+			/* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */
 			len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf));
 			}
@@ -628,18 +608,18 @@
 			len = cep->rwbuf_count;
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
 		/*
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if (len > 0 || inlen == 0) {
 
-			/* tcp_rcv_buf ã®å²å½ã¦é·ãè¨­å®ããã*/
+			/* tcp_rcv_buf の割当て長を設定する。*/
 			cep->rcv_buf_len = len;
 
-			/* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/
+			/* 受信ウィンドバッファのアドレスを返す。*/
 			*cep->rcv_p_buf = cep->rbuf_rptr;
 
@@ -663,6 +643,6 @@
 
 				/*
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-				 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックして、
+				 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 				 */
 				syscall(wai_sem(cep->semid_lock));
@@ -672,18 +652,18 @@
 			}
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->rcv_tskid = TA_NULL;
 		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
 		}
 
-	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ノンブロッキングコール */
 		ER_UINT	len;
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+		/* 受信ウィンドバッファからデータを取り出す。*/
 		if ((len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) {
-			/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+			/* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -691,7 +671,7 @@
 
 		/*
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if (len > 0 || inlen == 0) {
@@ -713,5 +693,5 @@
 			}
 
-		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		/* 記憶されているタスク ID と API 機能コードをクリアーする。*/
 		cep->rcv_tskid = TA_NULL;
 		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
@@ -722,14 +702,13 @@
 #endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点のロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
 		if (inlen == 0 && cep->rwbuf_count == 0) {
 			/*
-			 *  åä¿¡ã¦ã£ã³ããããã¡å
-ã®ãã¼ã¿æ°ã 0 ã§ã
-			 *  ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã
-			 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
-			 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+			 *  受信ウィンドバッファ内のデータ数が 0 で、
+			 *  相手から FIN フラグが付いたセグメントを受信したときは、
+			 *  通信端点をロックして、
+			 *  受信ウィンドバッファキューのネットワークバッファを解放する。
 			 */
 			syscall(wai_sem(cep->semid_lock));
@@ -739,10 +718,8 @@
 
 		/*
-		 *  åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå
-¥ããã inlen == 0 ã®æãå
-¥åã¿ã¹ã¯ãèµ·åºããã
-		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
-		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
-		 *  ããªããã¨ãç¥ãããããã§ããã
+		 *  受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。
+		 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
+		 *  これは、アプリケーションに、相手からこれ以上データが送られて
+		 *  こないことを知らせるためである。
 		 */
 		if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -123,5 +111,5 @@
 
 /*
- *  å±æé¢æ°
+ *  局所関数
  */
 
@@ -135,7 +123,7 @@
 
 /*
- *  ããã¯ãªãæé
+ *  バックオフ時間
  *
- *  åéãè¡ããã³ã«ãã¿ã¤ã ã¢ã¦ãã®æéãå»¶é·ããã
+ *  再送を行うたびに、タイムアウトの時間を延長する。
  */
 
@@ -147,8 +135,8 @@
 	};
 
-#define TCP_TOTAL_BACK_OFF	511	/* ããã¯ãªãæéã®åè¨ */
-
-/*
- *  tcp_timers -- ã¿ã¤ã ã¢ã¦ãå¦ç
+#define TCP_TOTAL_BACK_OFF	511	/* バックオフ時間の合計 */
+
+/*
+ *  tcp_timers -- タイムアウト処理
  */
 
@@ -162,11 +150,11 @@
 
 	/*
-	 *  åéã¿ã¤ã
+	 *  再送タイマ
 	 */
 	case TCP_TIM_REXMT:
 	
 		/*
-		 *  æå¤§åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ã«ãªã£ãã¨ãã¯ã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããã
+		 *  最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) になったときは、
+		 *  コネクションを切断する。
 		 */
 		if (++ cep->rxtshift > TCP_MAX_REXMT_SHIFT) {
@@ -178,5 +166,5 @@
 
 		/*
-		 *  åéã¿ã¤ã ã¢ã¦ããè¨ç®ããã
+		 *  再送タイムアウトを計算する。
 		 */
 		cep->rxtcur = tcp_range_set((T_TCP_TIME)(tcp_rexmt_val(cep) * tcp_back_off[cep->rxtshift]),
@@ -186,10 +174,10 @@
 
 		/*
-		 *  srtt:   å¹³æ»åããã RTT
-		 *  rttvar: å¹³æ»åãããåæ£
+		 *  srtt:   平滑化された RTT
+		 *  rttvar: 平滑化された分散
 		 *
-		 *  åéåæ°ãæå¤§åéåæ°ã® 1/4 ã«ãªã£ãã¨ãã¯ã
-		 *  å¹³æ»åãããåæ£ (rttvar) ã« srtt ãå ç®ãã
-		 *  å¹³æ»åããã RTT ã 0 ã«ããã
+		 *  再送回数が最大再送回数の 1/4 になったときは、
+		 *  平滑化された分散 (rttvar) に srtt を加算し、
+		 *  平滑化された RTT を 0 にする。
 		 *  
 		 */
@@ -200,9 +188,9 @@
 
 		/*
-		 *  snd_nxt: æ¬¡ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ãã SEQ
-		 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ	 ã¾ãã¯ãç¢ºèªãããæå¤§éä¿¡ SEQ
+		 *  snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ
+		 *  snd_una: 未確認の最小送信 SEQ	 または、確認された最大送信 SEQ
 		 *
-		 *  ååéä¿¡ãã SEQ (snd_nxt) ã 
-		 *  ç¢ºèªãããæå¤§éä¿¡ SEQ (snd_una) ã¾ã§æ»ãã
+		 *  前回送信した SEQ (snd_nxt) を 
+		 *  確認された最大送信 SEQ (snd_una) まで戻す。
 		 */
 		cep->snd_nxt = cep->snd_una;
@@ -210,20 +198,20 @@
 
 		/*
-		 *  rtt: å¾å¾©æéã®è¨æ¸¬ãä¸­æ­¢ããã
+		 *  rtt: 往復時間の計測を中止する。
 		 */
 		cep->rtt     = 0;
 
 		/*
-		 *  éä¿¡ã¦ã¤ã³ãã®è¨­å®
+		 *  送信ウインドの設定
 		 *
-		 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
-		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
-		 *  maxseg  : ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº
+		 *  snd_wnd:  相手の受信可能ウィンドサイズ
+		 *  snd_cwnd: 輻輳ウィンドサイズ
+		 *  maxseg  : 相手の最大受信セグメントサイズ
 		 *
-		 *  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ãã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã®
-		 *  ã©ã¡ããå°ãããµã¤ãºã® 1/2 ããæ´ã«
-		 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã§å²ã£ãå¤ã
-		 *  ãã ãã2 ä»¥ä¸
+		 *  相手の受信可能ウィンドサイズ (snd_wnd) か、
+		 *  輻輳ウィンドサイズ (snd_cwnd) の
+		 *  どちらか小さいサイズの 1/2 を、更に
+		 *  相手の最大受信セグメントサイズ (maxseg) で割った値。
+		 *  ただし、2 以上
 		 */
 		if (cep->snd_wnd < cep->snd_cwnd)
@@ -236,9 +224,9 @@
 
 		/*
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã¯
-		 *  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã«ã
-		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ã¯
-		 *  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã® win åã«
-		 *  è¨­å®ããã
+		 *  輻輳ウィンドサイズ (snd_cwnd) は
+		 *  相手の受信可能ウィンドサイズ (snd_wnd) に、
+		 *  輻輳ウィンドサイズのしきい値 (snd_ssthresh) は
+		 *  相手の受信可能ウィンドサイズ (snd_wnd) の win 倍に
+		 *  設定する。
 		 */
 		cep->snd_cwnd     = cep->maxseg;
@@ -246,5 +234,5 @@
 		cep->dupacks      = 0;
 
-		/* åºåããã¹ãããã*/
+		/* 出力をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -252,15 +240,14 @@
 
 	/*
-	 *  æç¶ã¿ã¤ã	
+	 *  持続タイマ	
 	 */
 	case TCP_TIM_PERSIST:
 
 		/*
-		 *  æå¤§åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ãè¶
-ãã¦ãã¦ã
-		 *  ã¢ã¤ãã«æéããä¿çã¿ã¤ãã®æ¨æºå¤ (TCP_TVAL_KEEP_IDLEã
-		 *  æ¨æº 2 * 60 * 60 ç§) ä»¥ä¸ãã
-		 *  åéã¿ã¤ã ã¢ã¦ãå¤ * ããã¯ãªãæéã®åè¨ä»¥ä¸ãªã
-		 *  ã³ãã¯ã·ã§ã³ãåæ­ããã
+		 *  最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) を超えていて、
+		 *  アイドル時間が、保留タイマの標準値 (TCP_TVAL_KEEP_IDLE、
+		 *  標準 2 * 60 * 60 秒) 以上か、
+		 *  再送タイムアウト値 * バックオフ時間の合計以上なら
+		 *  コネクションを切断する。
 		 */
 		if (cep->rxtshift > TCP_MAX_REXMT_SHIFT &&
@@ -272,5 +259,5 @@
 			}
 
-		/* æç¶ã¿ã¤ããåè¨­å®ããåºåããã¹ãããã*/
+		/* 持続タイマを再設定し、出力をポストする。*/
 		tcp_set_persist_timer(cep);
 
@@ -280,11 +267,11 @@
 
 	/*
-	 *  ä¿ç (keep alive) ã¿ã¤ã
+	 *  保留 (keep alive) タイマ
 	 */
 	case TCP_TIM_KEEP:
 
 		/*
-		 *  ã³ãã¯ã·ã§ã³ãéè¨­ãããã¾ã§ã«ã¿ã¤ã ã¢ã¦ãããã
-		 *  ã³ãã¯ã·ã§ã³ã®éè¨­ãä¸­æ­¢ããã
+		 *  コネクションが開設されるまでにタイムアウトしたら
+		 *  コネクションの開設を中止する。
 		 */
 		if (cep->fsm_state < TCP_FSM_ESTABLISHED) {
@@ -320,5 +307,5 @@
 
 	/*
-	 *  2MSL ã¿ã¤ã		
+	 *  2MSL タイマ		
 	 */
 	case TCP_TIM_2MSL:
@@ -336,6 +323,5 @@
 
 /*
- *  tcp_cancel_timers -- å
-¨ã¦ã®ã¿ã¤ããã­ã£ã³ã»ã«ããã
+ *  tcp_cancel_timers -- 全てのタイマをキャンセルする。
  */
 
@@ -352,5 +338,5 @@
 
 /*
- *  tcp_tw_timo -- Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã®ã¿ã¤ã ã¢ã¦ãå¦ç
+ *  tcp_tw_timo -- Time Wait 用 TCP 通信端点のタイムアウト処理
  */
 
@@ -364,6 +350,6 @@
 
 	/*
-	 *  Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã§ã¿ã¤ã ã¢ã¦ãã®ã¨ã³ããªãæ¢ç´¢ãã
-	 *  æ¢ç´¢ããã¨ã³ããªãç©ºãã«ããã
+	 *  Time Wait 用 TCP 通信端点でタイムアウトのエントリを探索し、
+	 *  探索したエントリを空きにする。
 	 */
 	frees = 0;
@@ -375,10 +361,8 @@
 
 	/*
-	 *  Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã®ç©ºãã¨ã³ããªãçºçããã
-	 *  æ¨æº TCP éä¿¡ç«¯ç¹ã§ Time Wait ä¸­ã® TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ãã
-	 *  å¿
-è¦ãªæ
-å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã¦ã
-	 *  æ¨æºã® TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+	 *  Time Wait 用 TCP 通信端点の空きエントリが発生したら
+	 *  標準 TCP 通信端点で Time Wait 中の TCP 通信端点を探索し、
+	 *  必要な情報を Time Wait 用 TCP 通信端点に移して、
+	 *  標準の TCP 通信端点を開放する。
 	 */
 	if (frees > 0) {
@@ -391,5 +375,5 @@
 
 		/*
-		 *  ãã£ã¨ãé·ãé Time Wait ãã¦ãã TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+		 *  もっとも長い間 Time Wait している TCP 通信端点を開放する。
 		 */
 		while (waits > 0) {
@@ -414,5 +398,5 @@
 
 /*
- *  tcp_slow_timo -- 500 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°
+ *  tcp_slow_timo -- 500 [ms] 毎に呼出される TCP タイムアウト関数
  */
 
@@ -456,5 +440,5 @@
 
 /*
- *  tcp_fast_timo -- 200 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°
+ *  tcp_fast_timo -- 200 [ms] 毎に呼出される TCP タイムアウト関数
  */
 
@@ -480,5 +464,5 @@
 
 /*
- *  tcp_range_set -- æéãæå®ããç¯å²ã«è¨­å®ããã
+ *  tcp_range_set -- 時間を指定した範囲に設定する。
  */
 
@@ -495,5 +479,5 @@
 
 /*
- *  tcp_set_persist_timer -- æç¶ã¿ã¤ãã®è¨­å®
+ *  tcp_set_persist_timer -- 持続タイマの設定
  */
 
@@ -504,11 +488,11 @@
 
 	/*
-	 *  srtt:   å¹³æ»åããã RTT
-	 *  rttvar: å¹³æ»åãããåæ£
+	 *  srtt:   平滑化された RTT
+	 *  rttvar: 平滑化された分散
 	 */
 	time = ((cep->srtt >> 2) + cep->rttvar) >> 1;
 
 	/*
-	 *  åéã¿ã¤ããè¨­å®ããã¦ããã°åå¾©ä¸è½ã¨ã©ã¼
+	 *  再送タイマも設定されていれば回復不能エラー
 	 */
 	if (cep->timer[TCP_TIM_REXMT])
@@ -516,5 +500,5 @@
 
 	/*
-	 *  æç¶ã¿ã¤ããè¨­å®ããã
+	 *  持続タイマを設定する。
 	 */
 	cep->timer[TCP_TIM_PERSIST] = tcp_range_set((T_TCP_TIME)(time * tcp_back_off[cep->rxtshift]),
@@ -523,5 +507,5 @@
 
 	/*
-	 *  åéåæ°ãæ´æ°ããã
+	 *  再送回数を更新する。
 	 */
 	if (cep->rxtshift < TCP_MAX_REXMT_SHIFT)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -83,17 +71,17 @@
 #define _TCP_TIMER_H_
 
-/* TCP ã¿ã¤ãå¤æ° */
+/* TCP タイマ変数 */
 
-#define NUM_TCP_TIMERS		4	/* TCP ã®ã¿ã¤ãæ°	*/
+#define NUM_TCP_TIMERS		4	/* TCP のタイマ数	*/
 
-#define TCP_TIM_REXMT		0	/* åéã¿ã¤ã		*/
-#define TCP_TIM_PERSIST		1	/* æç¶ã¿ã¤ã		*/
-#define TCP_TIM_KEEP		2	/* ä¿ç (keep alive) ã¿ã¤ã*/
-#define TCP_TIM_2MSL		3	/* 2MSL ã¿ã¤ã		*/
+#define TCP_TIM_REXMT		0	/* 再送タイマ		*/
+#define TCP_TIM_PERSIST		1	/* 持続タイマ		*/
+#define TCP_TIM_KEEP		2	/* 保留 (keep alive) タイマ*/
+#define TCP_TIM_2MSL		3	/* 2MSL タイマ		*/
 
-/* MSL: Maximum Segment Lifetime, æå¤§ã»ã°ã¡ã³ãçå­æé 		*/
+/* MSL: Maximum Segment Lifetime, 最大セグメント生存時間 		*/
 
 /*
- *  TCP/IP ã®ã¿ã¤ãã®å®ç¾©
+ *  TCP/IP のタイマの定義
  */
 
@@ -103,35 +91,34 @@
 #define TCP_SLOW_HZ		(ULONG_C(1000)/TCP_SLOW_TMO/NET_TIMER_CYCLE)	/* Hz	*/
 
-/* TCP ã¿ã¤ãå¤ */
+/* TCP タイマ値 */
 
 #define TCP_TVAL_MSL		(TCP_SLOW_HZ * 30)
-					/* æå¤§ã»ã°ã¡ã³ãçå­æé	*/
+					/* 最大セグメント生存時間	*/
 
-#define TCP_TVAL_SRTT_BASE	0	/* æ»ãããªå¾å¾©æéã®åºæºå¤*/
+#define TCP_TVAL_SRTT_BASE	0	/* 滑らかな往復時間の基準値*/
 
 #define TCP_TVAL_RTO_BASE	(TCP_SLOW_HZ * 3)
-		/* æ
-å ±ãå¾ãããªãå ´åã®åéã¿ã¤ã ã¢ã¦ãã®åºæºå¤	*/
+		/* 情報が得られない場合の再送タイムアウトの基準値	*/
 
 #define TCP_TVAL_MIN_PERSIST	(TCP_SLOW_HZ * 5)
-				/* æç¶ã¿ã¤ã ã¢ã¦ãã®æå°å¤	*/
+				/* 持続タイムアウトの最小値	*/
 #define TCP_TVAL_MAX_PERSIST	(TCP_SLOW_HZ * 60)
-				/* æç¶ã¿ã¤ã ã¢ã¦ãã®æå¤§å¤	*/
+				/* 持続タイムアウトの最大値	*/
 
 #define TCP_TVAL_KEEP_INIT	(TCP_SLOW_HZ * 75)
-					/* ä¿çã¿ã¤ãã®åæå¤	*/
+					/* 保留タイマの初期値	*/
 #define TCP_TVAL_KEEP_IDLE	(TCP_SLOW_HZ * 2 * 60 * 60)
-					/* ä¿çã¿ã¤ãèµ·åã¾ã§ã®æ¨æºå¤*/
+					/* 保留タイマ起動までの標準値*/
 #define TCP_TVAL_KEEP_INTERVAL	(TCP_SLOW_HZ * 75)
-					/* ä¿çã¿ã¤ãã¤ã³ã¿ã¼ãã«ã®æ¨æºå¤*/
-#define TCP_TVAL_KEEP_COUNT	8	/* ä¿çã¿ã¤ã ã¢ã¦ãã®æå¤§å¤*/
+					/* 保留タイマインターバルの標準値*/
+#define TCP_TVAL_KEEP_COUNT	8	/* 保留タイムアウトの最大値*/
 
 #define TCP_TVAL_MIN		(TCP_SLOW_HZ * 3)
-					/* æéã®æå°åä½	*/
+					/* 時間の最小単位	*/
 #define TCP_TVAL_MAX_REXMT	(TCP_SLOW_HZ * 64)
-					/* æå¤§åéæé		*/
+					/* 最大再送時間		*/
 
 /*
- *  ä»¥ä¸ã®å¤æ°ã®å¤ã¯ãã¯ã­ã§è¨­å®ããã
+ *  以下の変数の値はマクロで設定する。
  *
  *  tcp_maixidle   = tcp_keepcnt * tcp_keepintvl
@@ -143,15 +130,15 @@
 
 /*
- *  ãã®ä»ã®å®æ°
+ *  その他の定数
  */
 
-#define TCP_MAX_REXMT_SHIFT	12	/* æå¤§åéåæ°		*/
+#define TCP_MAX_REXMT_SHIFT	12	/* 最大再送回数		*/
 
-/* TCP ã¿ã¤ãå¤ã®å */
+/* TCP タイマ値の型 */
 
 typedef int16_t T_TCP_TIME;
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -132,5 +120,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ã®åãæ¿ããã¯ã­
+ *  IPv4 と IPv6 の切り替えマクロ
  */
 
@@ -152,7 +140,6 @@
 
 /*
- *  TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå
-¨ã¦ã®æ©è½ã
- *  ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ã­ãæå¹ã«ããã
+ *  TINET をライブラリ化しない場合は、全ての機能を
+ *  オブジェクトファイルに出力するため、マクロを有効にする。
  */
 
@@ -182,5 +169,5 @@
 
 /*
- *  tcp_cre_rep -- TCP åä»å£ã®çæãæ¡å¼µæ©è½ã
+ *  tcp_cre_rep -- TCP 受付口の生成【拡張機能】
  */
 
@@ -195,24 +182,24 @@
 	ER		error;
 
-	/* TCP åä»å£ ID ããã§ãã¯ããã*/
+	/* TCP 受付口 ID をチェックする。*/
 	if (!VAID_TCP_REPID(repid))
 		return E_ID;
 
-	/* pk_crep ã NULL ãªãã¨ã©ã¼ */
+	/* pk_crep が NULL ならエラー */
 	if (pk_crep == NULL)
 		return E_PAR;
 
-	/* TCP åä»å£ãå¾ãã*/
+	/* TCP 受付口を得る。*/
 	rep = GET_TCP_REP(repid);
 
-	/* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 受付口が、動的生成用でなければエラー */
 	if (!DYNAMIC_TCP_REP(rep))
 		return E_ID;
 
-	/* åä»å£ãã­ãã¯ããã*/
+	/* 受付口をロックする。*/
 	syscall(wai_sem(rep->semid_lock));
 
 	/*
-	 * TCP åä»å£ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼
+	 * TCP 受付口をチェックする。生成済みであればエラー
 	 */
 	if (VALID_TCP_REP(rep))
@@ -220,15 +207,14 @@
 	else {
 
-		/* TCP åä»å£çææ
-å ±ãã³ãã¼ããã*/
-		rep->repatr = pk_crep->repatr;		/* åä»å£å±æ§		*/
-		rep->myaddr = pk_crep->myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
-
-		/* TCP åä»å£ãçææ¸ã¿ã«ããã*/
+		/* TCP 受付口生成情報をコピーする。*/
+		rep->repatr = pk_crep->repatr;		/* 受付口属性		*/
+		rep->myaddr = pk_crep->myaddr;		/* 自分のアドレス	*/
+
+		/* TCP 受付口を生成済みにする。*/
 		rep->flags |= TCP_REP_FLG_VALID;
 		error = E_OK;
 		}
 
-	/* åä»å£ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 受付口のロックを解除する。*/
 	syscall(sig_sem(rep->semid_lock));
 
@@ -245,5 +231,5 @@
 
 /*
- *  tcp_find_cep_rep -- TCP åä»å£ããªã³ã¯ãã¦ãã TCP éä¿¡ç«¯ç¹ãå¾ãã
+ *  tcp_find_cep_rep -- TCP 受付口をリンクしている TCP 通信端点を得る。
  */
 
@@ -262,5 +248,5 @@
 
 /*
- *  tcp_del_rep -- TCP åä»å£ã®åé¤ãæ¡å¼µæ©è½ã
+ *  tcp_del_rep -- TCP 受付口の削除【拡張機能】
  */
 
@@ -273,19 +259,19 @@
 	ER		error = E_OK;
 
-	/* TCP åä»å£ ID ããã§ãã¯ããã*/
+	/* TCP 受付口 ID をチェックする。*/
 	if (!VAID_TCP_REPID(repid))
 		return E_ID;
 
-	/* TCP åä»å£ãå¾ãã*/
+	/* TCP 受付口を得る。*/
 	rep = GET_TCP_REP(repid);
 
-	/* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 受付口が、動的生成用でなければエラー */
 	if (!DYNAMIC_TCP_REP(rep))
 		return E_ID;
 
-	/* åä»å£ãã­ãã¯ããã*/
+	/* 受付口をロックする。*/
 	syscall(wai_sem(rep->semid_lock));
 
-	/* TCP åä»å£ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼ */
+	/* TCP 受付口をチェックする。未生成の場合はエラー */
 	if (!VALID_TCP_REP(rep))
 		error = E_NOEXS;
@@ -293,15 +279,15 @@
 		if ((cep = tcp_find_cep_rep(rep)) != NULL) {
 			/*
-			 * ãã§ã«ååãªã¼ãã³ãã¦ããã¨ã
-			 *ï¼tcp_acp_cep ãå¼ã°ãã¦ããã¨ãï¼ã¯ã
-			 * tcp_acp_cep ãçµäºãããã
+			 * すでに受動オープンしているとき
+			 *（tcp_acp_cep が呼ばれているとき）は、
+			 * tcp_acp_cep を終了させる。
 			 */
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+			/* 通信端点をロックする。*/
 			syscall(wai_sem(cep->semid_lock));
 
 			/*
-			 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
-			 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+			 *  通信端点から受付口を解放し、
+			 *  イベントフラグをクローズに設定する。
 			 */
 			cep->rep = NULL;
@@ -338,5 +324,5 @@
 			cep->rcv_tfn   = TFN_TCP_UNDEF;
 
-			/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点のロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 
@@ -345,9 +331,9 @@
 			error = E_OK;
 
-		/* TCP åä»å£ãæªçæã«ããã*/
+		/* TCP 受付口を未生成にする。*/
 		rep->flags &= ~TCP_REP_FLG_VALID;
 		}
 
-	/* åä»å£ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 受付口のロックを解除する。*/
 	syscall(sig_sem(rep->semid_lock));
 
@@ -360,5 +346,5 @@
 
 /*
- *  tcp_cre_cep -- TCP éä¿¡ç«¯ç¹ã®çæãæ¡å¼µæ©è½ã
+ *  tcp_cre_cep -- TCP 通信端点の生成【拡張機能】
  */
 
@@ -373,24 +359,24 @@
 	ER		error;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VAID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* pk_ccep ã NULL ãªãã¨ã©ã¼ */
+	/* pk_ccep が NULL ならエラー */
 	if (pk_ccep == NULL)
 		return E_PAR;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 通信端点が、動的生成用でなければエラー */
 	if (!DYNAMIC_TCP_CEP(cep))
 		return E_ID;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 * TCP éä¿¡ç«¯ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼
+	 * TCP 通信端点をチェックする。生成済みであればエラー
 	 */
 	if (VALID_TCP_CEP(cep))
@@ -398,19 +384,18 @@
 	else {
 
-		/* TCP éä¿¡ç«¯ç¹çææ
-å ±ãã³ãã¼ããã*/
-		cep->cepatr   = pk_ccep->cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
-		cep->sbuf     = pk_ccep->sbuf;			/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-		cep->sbufsz   = pk_ccep->sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-		cep->rbuf     = pk_ccep->rbuf;			/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-		cep->rbufsz   = pk_ccep->rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-		cep->callback = (void*)pk_ccep->callback;	/* ã³ã¼ã«ããã¯			*/
-
-		/* TCP éä¿¡ç«¯ç¹ãçææ¸ã¿ã«ããã*/
+		/* TCP 通信端点生成情報をコピーする。*/
+		cep->cepatr   = pk_ccep->cepatr;		/* 通信端点属性			*/
+		cep->sbuf     = pk_ccep->sbuf;			/* 送信用ウィンドバッファ	*/
+		cep->sbufsz   = pk_ccep->sbufsz;		/* 送信用ウィンドバッファサイズ	*/
+		cep->rbuf     = pk_ccep->rbuf;			/* 受信用ウィンドバッファ	*/
+		cep->rbufsz   = pk_ccep->rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+		cep->callback = (void*)pk_ccep->callback;	/* コールバック			*/
+
+		/* TCP 通信端点を生成済みにする。*/
 		cep->flags |= TCP_CEP_FLG_VALID;
 		error = E_OK;
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -423,5 +408,5 @@
 
 /*
- *  tcp_del_cep -- TCP éä¿¡ç«¯ç¹ã®åé¤ãæ¡å¼µæ©è½ã
+ *  tcp_del_cep -- TCP 通信端点の削除【拡張機能】
  */
 
@@ -436,22 +421,22 @@
 	ER		error;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VAID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 通信端点が、動的生成用でなければエラー */
 	if (!DYNAMIC_TCP_CEP(cep))
 		return E_ID;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 * TCP éä¿¡ç«¯ç¹ããã§ãã¯ãããä»¥ä¸ã®å ´åã¯ã¨ã©ã¼
-	 * ã»æªçæã
-	 * ã»ä½¿ç¨ä¸­ã
+	 * TCP 通信端点をチェックする。以下の場合はエラー
+	 * ・未生成。
+	 * ・使用中。
 	 */
 	if (!VALID_TCP_CEP(cep))
@@ -461,10 +446,10 @@
 	else {
 
-		/* TCP éä¿¡ç«¯ç¹ãæªçæã«ããã*/
+		/* TCP 通信端点を未生成にする。*/
 		cep->flags &= ~TCP_CEP_FLG_VALID;
 		error = E_OK;
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -479,6 +464,5 @@
 
 /*
- *  tcp_acp_cep -- æ¥ç¶è¦æ±å¾
-ã¡ (ååãªã¼ãã³)ãæ¨æºæ©è½ã
+ *  tcp_acp_cep -- 接続要求待ち (受動オープン)【標準機能】
  */
 
@@ -493,5 +477,5 @@
 	FLGPTN		flag;
 
-	/* TCP åä»å£ããã§ãã¯ããã*/
+	/* TCP 受付口をチェックする。*/
 	if (!VAID_TCP_REPID(repid))
 		return E_ID;
@@ -499,5 +483,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* p_dstaddr ã NULL ãªãã¨ã©ã¼ */
+	/* p_dstaddr が NULL ならエラー */
 	if (p_dstaddr == NULL)
 		return E_PAR;
@@ -505,5 +489,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* p_dstaddr ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_dstaddr が NULL か、tmout が TMO_NBLK ならエラー */
 	if (p_dstaddr == NULL || tmout == TMO_NBLK)
 		return E_PAR;
@@ -512,12 +496,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_ACP_CEP)) != E_OK)
 		return error;
 
-	/* CEP ã® FSM ãã¯ã­ã¼ãºç¶æ
-ã§ãªããã°ã¨ã©ã¼ã*/
+	/* CEP の FSM がクローズ状態でなければエラー。*/
 	if (cep->fsm_state != TCP_FSM_CLOSED) {
 		error = E_OBJ;
@@ -526,16 +509,16 @@
 	syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED)));
 
-	/* TCP éä¿¡ç«¯ç¹ãåæåããã*/
+	/* TCP 通信端点を初期化する。*/
 	tcp_init_cep(cep);
 
-	/* TCP åä»å£ãå¾ãã*/
+	/* TCP 受付口を得る。*/
 	rep = GET_TCP_REP(repid);
 
 #ifdef TCP_CFG_EXTENTIONS
 
-	/* TCP åä»å£ãã­ãã¯ããã*/
+	/* TCP 受付口をロックする。*/
 	syscall(wai_sem(rep->semid_lock));
 
-	/* TCP åä»å£ããã§ãã¯ããã*/
+	/* TCP 受付口をチェックする。*/
 	if (!VALID_TCP_REP(rep)) {
 		syscall(sig_sem(rep->semid_lock));
@@ -546,25 +529,25 @@
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-	/* TCP éä¿¡ç«¯ç¹ã«TCPåä»å£ãè¨é²ããã*/
+	/* TCP 通信端点にTCP受付口を記録する。*/
 	cep->rep = rep;
 
 #ifdef TCP_CFG_EXTENTIONS
 
-	/* TCP åä»å£ã®ã­ãã¯ãè§£é¤ããã*/
+	/* TCP 受付口のロックを解除する。*/
 	syscall(sig_sem(rep->semid_lock));
 
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-	/* TCP åä»å£ã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+	/* TCP 受付口のアドレスをコピーする。*/
 	cep->myaddr = rep->myaddr;
 
-	/* éä¿¡ç«¯ç¹ãè¨­å®ããã*/
+	/* 通信端点を設定する。*/
 	cep->fsm_state = TCP_FSM_LISTEN;
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	/* タイムアウトをチェックする。*/
 	if (tmout == TMO_NBLK) {
-		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* ノンブロッキングコール */
 		cep->p_dstaddr    = p_dstaddr;
 		cep->rcv_nblk_tfn = TFN_TCP_ACP_CEP;
@@ -576,7 +559,6 @@
 
 		/*
-		 *  FSM ã ESTABLISHED ã«ãªãã¾ã§å¾
-ã¤ã
-		 *  FSM ã CLOSED ã«ãªã£ãå ´åã¯ãã¨ã©ã¼ãçºçãããã¨ãæå³ãã¦ããã
+		 *  FSM が ESTABLISHED になるまで待つ。
+		 *  FSM が CLOSED になった場合は、エラーが発生したことを意味している。
 		 */
 		error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED |
@@ -592,11 +574,11 @@
 
 		if (error == E_OK) {
-			/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+			/* 相手のアドレスをコピーする。*/
 			*p_dstaddr = cep->dstaddr;
 			}
 		else {
 			/*
-			 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
-			 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+			 *  通信端点から受付口を解放し、
+			 *  イベントフラグをクローズに設定する。
 			 */
 			cep->rep = NULL;
@@ -622,5 +604,5 @@
 
 /*
- *  tcp_con_cep -- æ¥ç¶è¦æ± (è½åãªã¼ãã³)ãæ¨æºæ©è½ã
+ *  tcp_con_cep -- 接続要求 (能動オープン)【標準機能】
  */
 
@@ -637,7 +619,6 @@
 
 	/*
-	 *  p_dstaddr ã¾ãã¯ p_myaddr ã NULL ãã
-	 *  ãã¦å
-ããã«ãã­ã£ã¹ãã¢ãã¬ã¹ãªãã¨ã©ã¼
+	 *  p_dstaddr または p_myaddr が NULL か、
+	 *  あて先がマルチキャストアドレスならエラー
 	 */
 	if (p_myaddr == NULL || p_dstaddr == NULL || IN_IS_ADDR_MULTICAST(&p_dstaddr->ipaddr))
@@ -647,8 +628,7 @@
 
 	/*
-	 *  p_dstaddr ã¾ãã¯ p_myaddr ã NULL ã
-	 *  ãã¦å
-ããã«ãã­ã£ã¹ãã¢ãã¬ã¹ãã
-	 *  tmout ã TMO_NBLK ãªãã¨ã©ã¼
+	 *  p_dstaddr または p_myaddr が NULL 、
+	 *  あて先がマルチキャストアドレスか、
+	 *  tmout が TMO_NBLK ならエラー
 	 */
 	if (p_myaddr == NULL || p_dstaddr == NULL ||
@@ -659,12 +639,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CON_CEP)) != E_OK)
 		return error;
 
-	/* CEP ã® FSM ãã¯ã­ã¼ãºç¶æ
-ã§ãªããã°ã¨ã©ã¼ã*/
+	/* CEP の FSM がクローズ状態でなければエラー。*/
 	if (cep->fsm_state != TCP_FSM_CLOSED) {
 		error = E_OBJ;
@@ -673,14 +652,14 @@
 	syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED)));
 
-	/* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/
+	/* シーケンス番号を初期化する。*/
 	if (tcp_iss == 0)
 		tcp_init_iss();
 
-	/* éä¿¡ç«¯ç¹ãåæåããã*/
+	/* 通信端点を初期化する。*/
 	tcp_init_cep(cep);
 
 	/*
-	 *  p_myaddr ã NADR (-1) ã§ã¯ãªããèª IP ã¢ãã¬ã¹ã ANY ã§ãªããã°ã
-	 *  æå®ããã IP ã¢ãã¬ã¹ãå²ãå½ã¦ãã
+	 *  p_myaddr が NADR (-1) ではなく、自 IP アドレスが ANY でなければ、
+	 *  指定された IP アドレスを割り当てる。
 	 */
 	if (p_myaddr != NADR && !IN_IS_ADDR_ANY(&p_myaddr->ipaddr))
@@ -696,5 +675,5 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ãè¨­å®ããã*/
+	/* 通信端点を設定する。*/
 	cep->fsm_state = TCP_FSM_SYN_SENT;
 	cep->dstaddr   = *p_dstaddr;
@@ -706,12 +685,12 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	/* タイムアウトをチェックする。*/
 	if (tmout == TMO_NBLK) {
-		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		/* ノンブロッキングコール */
 		cep->p_dstaddr    = p_dstaddr;
 		cep->p_myaddr     = p_myaddr;
 		cep->snd_nblk_tfn = TFN_TCP_CON_CEP;
 
-		/* ã³ãã¯ã·ã§ã³ã®éè¨­ããã¹ãããã*/
+		/* コネクションの開設をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -723,6 +702,6 @@
 
 		/*
-		 *  p_myaddr ã NADR (-1) ãã
-		 *  èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+		 *  p_myaddr が NADR (-1) か、
+		 *  自ポート番号が TCP_PORTANY なら、自動で割り当てる。
 		 */
 		if (p_myaddr == NADR || p_myaddr->portno == TCP_PORTANY)
@@ -731,13 +710,12 @@
 			goto err_ret;
 
-		/* ã³ãã¯ã·ã§ã³ã®éè¨­ããã¹ãããã*/
+		/* コネクションの開設をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
 
 		/*
-		 *  ã¤ãã³ãã ESTABLISHED ã«ãªãã¾ã§å¾
-ã¤ã
-		 *  ã¤ãã³ãã CLOSED ã«ãªã£ãå ´åã¯ãä½ããã®ã¨ã©ã¼ãçºçãããã
-		 *  æ¥ç¶è¦æ±ãæå¦ããããã¨ãæå³ãã¦ããã
+		 *  イベントが ESTABLISHED になるまで待つ。
+		 *  イベントが CLOSED になった場合は、何らかのエラーが発生したか、
+		 *  接続要求が拒否されたことを意味している。
 		 */
 		error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED |
@@ -754,6 +732,6 @@
 		if (error != E_OK) {
 			/*
-			 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
-			 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+			 *  通信端点から受付口を解放し、
+			 *  イベントフラグをクローズに設定する。
 			 */
 			cep->rep = NULL;
@@ -779,5 +757,5 @@
 
 /*
- *  tcp_user_closed -- ã¦ã¼ã¶ããã®ã³ãã¯ã·ã§ã³ã®éæ¾
+ *  tcp_user_closed -- ユーザからのコネクションの開放
  */
 
@@ -787,21 +765,20 @@
 	switch (cep->fsm_state) {
 
-	case TCP_FSM_CLOSED:		/* ã¯ã­ã¼ãº	*/
-	case TCP_FSM_LISTEN:		/* ååãªã¼ãã³	*/
+	case TCP_FSM_CLOSED:		/* クローズ	*/
+	case TCP_FSM_LISTEN:		/* 受動オープン	*/
 		cep->fsm_state = TCP_FSM_CLOSED;
 		cep = tcp_close(cep);
 		break;
 
-	case TCP_FSM_SYN_SENT:		/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
-	case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
+	case TCP_FSM_SYN_SENT:		/* 能動オープン、SYN 送信済み	*/
+	case TCP_FSM_SYN_RECVD:		/* SYN を受信し、SYN 送信済み	*/
 		cep->flags |= TCP_CEP_FLG_NEED_FIN;
 		break;
 
-	case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº	*/
+	case TCP_FSM_ESTABLISHED:	/* コネクション開設完了	*/
 		cep->fsm_state = TCP_FSM_FIN_WAIT_1;
 		break;
 
-	case TCP_FSM_CLOSE_WAIT:	/* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾
-ã¡ */
+	case TCP_FSM_CLOSE_WAIT:	/* 相手から FIN 受信、APP の終了待ち */
 		cep->fsm_state = TCP_FSM_LAST_ACK;
 		break;
@@ -814,5 +791,5 @@
 
 /*
- *  tcp_cls_cep -- éä¿¡ç«¯ç¹ã®ã¯ã­ã¼ãºãæ¨æºæ©è½ã
+ *  tcp_cls_cep -- 通信端点のクローズ【標準機能】
  */
 
@@ -826,5 +803,5 @@
 #ifndef TCP_CFG_NON_BLOCKING
 
-	/* tmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* tmout が TMO_NBLK ならエラー */
 	if (tmout == TMO_NBLK)
 		return E_PAR;
@@ -833,6 +810,6 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CLS_CEP)) != E_OK)
@@ -841,10 +818,10 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {				/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {				/* ノンブロッキングコール */
 
 		if (!IS_PTR_DEFINED(cep->callback))
 			error = E_OBJ;
-		else if (cep->fsm_state == TCP_FSM_CLOSED) {	/* ãã§ã«ã¯ã­ã¼ãºããã¦ããã¨ã */
+		else if (cep->fsm_state == TCP_FSM_CLOSED) {	/* すでにクローズされているとき */
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
@@ -864,38 +841,37 @@
 			}
 		else {
-			/* NBLK ã®API æ©è½ã³ã¼ããè¨­å®ããã*/
+			/* NBLK のAPI 機能コードを設定する。*/
 			cep->rcv_nblk_tfn = TFN_TCP_CLS_CEP;
 
-			if ((cep = tcp_user_closed(cep)) != NULL) {	/* ã³ãã¯ã·ã§ã³ãåæ­ããã*/
-				/* åæ­ã»ã°ã¡ã³ãåºåããã¹ãããã*/
+			if ((cep = tcp_user_closed(cep)) != NULL) {	/* コネクションを切断する。*/
+				/* 切断セグメント出力をポストする。*/
 				cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 				sig_sem(SEM_TCP_POST_OUTPUT);
 				}
 
-			/*  cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã
-			 *  æ¢ã«ã³ãã¯ã·ã§ã³ãåæ­ããã¦ãããã¨ãæå³ãã¦ããã
-			 *  ã¾ãããã®å ´åã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¦ããã
+			/*  cep が NULL で戻ってきた場合は、
+			 *  既にコネクションが切断されていることを意味している。
+			 *  また、この場合コールバック関数が呼び出されている。
 			 */
 			return E_WBLK;
 			}
 		}
-	else {							/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-		if ((cep = tcp_user_closed(cep)) == NULL) {	/* ã³ãã¯ã·ã§ã³ãåæ­ããã*/
-
-			/*  cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã
-			 *  æ¢ã«ã³ãã¯ã·ã§ã³ãåæ­ããã¦ãããã¨ãæå³ãã¦ããã
+	else {							/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		if ((cep = tcp_user_closed(cep)) == NULL) {	/* コネクションを切断する。*/
+
+			/*  cep が NULL で戻ってきた場合は、
+			 *  既にコネクションが切断されていることを意味している。
 			 */
 			return error;
 			}
 		else {
-			/* åæ­ã»ã°ã¡ã³ãåºåããã¹ãããã*/
+			/* 切断セグメント出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
 
-			/* ã¤ãã³ããã©ã°ã CLOSED ã«ãªãã¾ã§å¾
-ã¤ã*/
+			/* イベントフラグが CLOSED になるまで待つ。*/
 			error = twai_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED, TWF_ORW, &flag, tmout);
 			if (error == E_OK && cep->error != E_OK)
@@ -904,15 +880,15 @@
 			if (error != E_OK) {
 				if (error == E_RLWAI) {
-					/* tcp_cls_cep ãã­ã£ã³ã»ã«ãããã¨ãã¯ãRST ãéä¿¡ããã*/
+					/* tcp_cls_cep がキャンセルされたときは、RST を送信する。*/
 					tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una - 1, 
 					            cep->rbufsz - cep->rwbuf_count, TCP_FLG_RST);
 					}
 
-				/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+				/* タイマーを停止する。*/
 				tcp_cancel_timers(cep);
 
 				/* 
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-				 *  åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックし、
+				 *  受信再構成キューのネットワークバッファを解放する。
 				 */
 				syscall(wai_sem(cep->semid_lock));
@@ -920,12 +896,11 @@
 				syscall(sig_sem(cep->semid_lock));
 
-				/* ç¶æ
-ãæªä½¿ç¨ã«ããã*/
+				/* 状態を未使用にする。*/
 				cep->fsm_state = TCP_FSM_CLOSED;
 
 				/*
-				 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
-				 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
-				 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+				 * 以下に関係しないフラグをクリアーする。
+				 * ・送受信ウィンドバッファの省コピー機能
+				 * ・動的な通信端点の生成・削除機能
 				 */
 				cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK | 
@@ -933,6 +908,6 @@
 
 				/* 
-				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
-				 *  éåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 *  通信端点をロックし、
+				 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
 				 */
 				cep->rwbuf_count = 0;
@@ -962,5 +937,5 @@
 
 /*
- *  tcp_sht_cep  -- ãã¼ã¿éä¿¡ã®çµäºãæ¨æºæ©è½ã
+ *  tcp_sht_cep  -- データ送信の終了【標準機能】
  */
 
@@ -972,12 +947,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SHT_CEP)) != E_OK)
 		return error;
 
-	/* TCP éä¿¡ç«¯ç¹ã®ã³ãã¯ã·ã§ã³ãç¢ºç«ç¶æ
-ã§ãªããã°ã¨ã©ã¼ */
+	/* TCP 通信端点のコネクションが確立状態でなければエラー */
 	if (!TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
 		if ((error = cep->error) == E_OK)
@@ -985,7 +959,7 @@
 		}
 
-	else if ((cep = tcp_user_closed(cep)) != NULL) {		/* ã³ãã¯ã·ã§ã³ãåæ­ããã*/
-
-		/* åæ­ã»ã°ã¡ã³ãåºåããã¹ãããã*/
+	else if ((cep = tcp_user_closed(cep)) != NULL) {		/* コネクションを切断する。*/
+
+		/* 切断セグメント出力をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1002,5 +976,5 @@
 
 /*
- *  tcp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã
+ *  tcp_snd_dat -- パケットの送信【標準機能】
  */
 
@@ -1013,5 +987,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* data が NULL か、len < 0 ならエラー */
 	if (data == NULL || len < 0)
 		return E_PAR;
@@ -1019,5 +993,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
 	if (data == NULL || len < 0 || tmout == TMO_NBLK)
 		return E_PAR;
@@ -1026,12 +1000,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_DAT)) != E_OK)
 		return error;
 
-	/* éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、通信端点の状態を見る。*/
 	if ((error = tcp_can_send_more(cep, TFN_TCP_SND_DAT, tmout)) != E_OK)
 		goto err_ret;
@@ -1039,14 +1012,14 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
+
+		/* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
 		if (!TCP_IS_SWBUF_FULL(cep)) {
 
-		 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+		 	/* 送信ウィンドバッファにデータを書き込む。*/
 			error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
 
-			/* åºåããã¹ãããã*/
+			/* 出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1054,10 +1027,10 @@
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)error);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)&error);
 
@@ -1076,21 +1049,20 @@
 			}
 		}
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	 	/* 送信ウィンドバッファが空くのを待つ。*/
 		if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
 			goto err_ret;
 
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+	 	/* 送信ウィンドバッファにデータを書き込む。*/
 		if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
 
-			/* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/
+			/* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
 			if (TCP_IS_SWBUF_FULL(cep))
 				cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
 
-			/* åºåããã¹ãããã*/
+			/* 出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1116,5 +1088,5 @@
 
 /*
- *  tcp_snd_oob -- ç·æ¥ãã¼ã¿ã®éä¿¡ãæ¡å¼µæ©è½ã
+ *  tcp_snd_oob -- 緊急データの送信【拡張機能】
  */
 
@@ -1127,5 +1099,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* data が NULL か、len < 0 ならエラー */
 	if (data == NULL || len < 0)
 		return E_PAR;
@@ -1133,5 +1105,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
 	if (data == NULL || len < 0 || tmout == TMO_NBLK)
 		return E_PAR;
@@ -1140,12 +1112,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_OOB)) != E_OK)
 		return error;
 
-	/* éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、通信端点の状態を見る。*/
 	if ((error = tcp_can_send_more(cep, TFN_TCP_SND_OOB, tmout)) != E_OK)
 		goto err_ret;
@@ -1153,17 +1124,17 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
+
+		/* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
 		if (!TCP_IS_SWBUF_FULL(cep)) {
 
-		 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+		 	/* 送信ウィンドバッファにデータを書き込む。*/
 			error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
 
-			/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+			/* 送信緊急ポインタを設定する。*/
 			cep->snd_up = cep->snd_una + cep->swbuf_count;
 
-			/* åºåããã¹ãããã*/
+			/* 出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1171,10 +1142,10 @@
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)error);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)&error);
 
@@ -1193,24 +1164,23 @@
 			}
 		}
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	 	/* 送信ウィンドバッファが空くのを待つ。*/
 		if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
 			goto err_ret;
 
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+	 	/* 送信ウィンドバッファにデータを書き込む。*/
 		if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
 
-			/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+			/* 送信緊急ポインタを設定する。*/
 			cep->snd_up = cep->snd_una + cep->swbuf_count;
 
-			/* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/
+			/* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
 			if (TCP_IS_SWBUF_FULL(cep))
 				cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
 
-			/* åºåããã¹ãããã*/
+			/* 出力をポストする。*/
 			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 			sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1236,5 +1206,5 @@
 
 /*
- *  tcp_get_buf -- éä¿¡ç¨ãããã¡ã®ç²å¾ãæ¨æºæ©è½ã
+ *  tcp_get_buf -- 送信用バッファの獲得【標準機能】
  */
 
@@ -1247,5 +1217,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* p_buf ã NULL ãªãã¨ã©ã¼ */
+	/* p_buf が NULL ならエラー */
 	if (p_buf == NULL)
 		return E_PAR;
@@ -1253,5 +1223,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
 	if (p_buf == NULL || tmout == TMO_NBLK)
 		return E_PAR;
@@ -1260,12 +1230,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_GET_BUF)) != E_OK)
 		return error;
 
-	/* éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、通信端点の状態を見る。*/
 	if ((error = tcp_can_send_more(cep, TFN_TCP_GET_BUF, tmout)) != E_OK)
 		goto err_ret;
@@ -1273,20 +1242,20 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
 
 		if (!TCP_IS_SWBUF_FULL(cep)) {
 
-			/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
 			error = TCP_GET_SWBUF_ADDR(cep, p_buf);
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)error);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)&error);
 
@@ -1304,14 +1273,13 @@
 		}
 
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	 	/* 送信ウィンドバッファが空くのを待つ。*/
 		if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
 			goto err_ret;
 
-	 	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+	 	/* 送信ウィンドバッファの空アドレスを獲得する。*/
 		error = TCP_GET_SWBUF_ADDR(cep, p_buf);
 
@@ -1333,6 +1301,5 @@
 
 /*
- *  tcp_snd_buf -- ãããã¡å
-ã®ãã¼ã¿ã®éä¿¡ãæ¨æºæ©è½ã
+ *  tcp_snd_buf -- バッファ内のデータの送信【標準機能】
  */
 
@@ -1343,20 +1310,20 @@
 	ER		error;
 
-	/* éä¿¡ããé·ã len ããã§ãã¯ããã*/
+	/* 送信する長さ len をチェックする。*/
 	if (len < 0)
 		return E_PAR;
 
-	/* éä¿¡ããé·ãlen ã 0 ã§ããã°ãä½ãããªãã§æ»ãã*/
+	/* 送信する長さlen が 0 であれば、何もしないで戻る。*/
 	if (len == 0)
 		return E_OK;
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_BUF)) != E_OK)
 		return error;
 
-	/* éä¿¡ããé·ã len ããã§ãã¯ããã*/
+	/* 送信する長さ len をチェックする。*/
 	if (len > cep->get_buf_len) {
 		error = E_OBJ;
@@ -1364,6 +1331,5 @@
 		}
 
-	/* éä¿¡ã§ããããCEP ã® FSM ç¶æ
-ãè¦ãã*/
+	/* 送信できるか、CEP の FSM 状態を見る。*/
 	if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
 		if ((error = cep->error) == E_OK)
@@ -1372,8 +1338,8 @@
 		}
 
-	/* éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã*/
+	/* 送信ウィンドバッファのデータを送信可能にする。*/
 	TCP_SEND_SWBUF(cep, (uint_t)len);
 
-	/* åºåããã¹ãããã*/
+	/* 出力をポストする。*/
 	cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 	sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1390,5 +1356,5 @@
 
 /*
- *  tcp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã
+ *  tcp_rcv_dat -- パケットの受信【標準機能】
  */
 
@@ -1401,5 +1367,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* data が NULL か、len < 0 ならエラー */
 	if (data == NULL || len < 0)
 		return E_PAR;
@@ -1407,5 +1373,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
 	if (data == NULL || len < 0 || tmout == TMO_NBLK)
 		return E_PAR;
@@ -1414,12 +1380,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_DAT)) != E_OK)
 		return error;
 
-	/* åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 受信できるか、通信端点の状態を見る。*/
 	if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
 		goto err_ret;
@@ -1427,11 +1392,11 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
+
+		/* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
 		if (cep->rwbuf_count > 0) {
 
-			/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+			/* 受信ウィンドバッファからデータを取り出す。*/
 			len = TCP_READ_RWBUF(cep, data, (uint_t)len);
 
@@ -1456,18 +1421,16 @@
 			}
 		}
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå
-¥åãããã¾ã§å¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
 		if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK)
 			goto err_ret;
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+		/* 受信ウィンドバッファからデータを取り出す。*/
 		error = TCP_READ_RWBUF(cep, data, (uint_t)len);
 
-		/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+		/* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
 		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 		sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1492,8 +1455,8 @@
 
 /*
- *  tcp_rcv_oob -- ç·æ¥ãã¼ã¿ã®åä¿¡ãæ¡å¼µæ©è½ã
+ *  tcp_rcv_oob -- 緊急データの受信【拡張機能】
  *
- *    æ³¨æ: éä¿¡å´ãè¤æ°ãªã¯ãããã®ãã¼ã¿ãéä¿¡ãã¦ãã
- *          ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ã®ã¿åä¿¡ããã
+ *    注意: 送信側が複数オクテットのデータを送信しても、
+ *          緊急ポインタが指す 1 オクテットのデータのみ受信する。
  */
 
@@ -1504,41 +1467,39 @@
 	uint8_t		*urg;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VAID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* data が NULL か、len < 0 ならエラー */
 	if (data == NULL || len < 0)
 		return E_PAR;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
-	/* åä¿¡ã§ããããfsm_state ãè¦ãã*/
+	/* 受信できるか、通信端点の状態を見る。*/
+	/* 受信できるか、fsm_state を見る。*/
 	if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state))
 		return E_OBJ;
 
 	/*
-	 *  ç·æ¥ãã¼ã¿å
-¥ãã®ã»ã°ã¡ã³ãã® TCP ãããã
-	 *  è¨­å®ããã¦ããªããã°ãç·æ¥ãã¼ã¿ãåä¿¡ãã¦ããªãã
+	 *  緊急データ入りのセグメントの TCP ヘッダが
+	 *  設定されていなければ、緊急データを受信していない。
 	 */
 	if (cep->urg_tcph == NULL)
 		return E_OBJ;
 
-	/* len == 0 ãªããããã¡ãªã¼ãã¼ãã­ã¼ */
+	/* len == 0 ならバッファオーバーフロー */
 	if (len == 0)
 		return E_BOVR;
 
-	/* ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ãèª­ã¿åãã*/
+	/* 緊急ポインタが指す 1 オクテットのデータを読み取る。*/
 	urg = (uint8_t*)cep->urg_tcph + TCP_DATA_OFF(cep->urg_tcph->doff) + cep->urg_tcph->urp + TCP_CFG_URG_OFFSET;
 	*(uint8_t*)data = *urg;
 
-	/* èª­ã¿åã£ããã¼ã¿ããå¾ãã® SDU ãåã«è©°ããã*/
+	/* 読み取ったデータから後ろの SDU を前に詰める。*/
 	memcpy(urg, urg + 1, cep->urg_tcph->sum - (cep->urg_tcph->urp + TCP_CFG_URG_OFFSET) - 1);
 
-	/* tcp_rcv_oob() ãå¼åºããããã¨ç¥ãããããã«ãNULL ãè¨­å®ããã*/
+	/* tcp_rcv_oob() が呼出されたこと知らせるために、NULL を設定する。*/
 	cep->urg_tcph = NULL;
 
@@ -1553,6 +1514,5 @@
 
 /*
- *  tcp_rcv_buf -- åä¿¡ãããã¼ã¿ã®å
-¥ã£ããããã¡ã®ç²å¾ãæ¨æºæ©è½ã
+ *  tcp_rcv_buf -- 受信したデータの入ったバッファの獲得【標準機能】
  */
 
@@ -1565,5 +1525,5 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* p_buf ã NULL ãªãã¨ã©ã¼ */
+	/* p_buf が NULL ならエラー */
 	if (p_buf == NULL)
 		return E_PAR;
@@ -1571,5 +1531,5 @@
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
-	/* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
 	if (p_buf == NULL || tmout == TMO_NBLK)
 		return E_PAR;
@@ -1578,12 +1538,11 @@
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_BUF)) != E_OK)
 		return error;
 
-	/* åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
-ãè¦ãã*/
+	/* 受信できるか、通信端点の状態を見る。*/
 	if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
 		goto err_ret;
@@ -1591,21 +1550,21 @@
 #ifdef TCP_CFG_NON_BLOCKING
 
-	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
-	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+	/* タイムアウトをチェックする。*/
+	if (tmout == TMO_NBLK) {		/* ノンブロッキングコール */
+
+		/* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
 		if (cep->rwbuf_count > 0) {
 
-		 	/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+		 	/* 受信ウィンドバッファの空アドレスを獲得する。*/
 			error = TCP_GET_RWBUF_ADDR(cep, p_buf);
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)error);
 
 #else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
 
-			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			/* コールバック関数を呼び出す。*/
 			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)&error);
 
@@ -1621,11 +1580,9 @@
 			}
 		}
-	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
-
-		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå
-¥åãããã¾ã§å¾
-ã¤ã*/
+	else {		/* 非ノンブロッキングコール */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
 		if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK) {
 			cep->rwbuf_count = 0;
@@ -1633,5 +1590,5 @@
 			}
 
-	 	/* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãç²å¾ããã*/
+	 	/* 受信ウィンドバッファのアドレスを獲得する。*/
 		error = TCP_GET_RWBUF_ADDR(cep, p_buf);
 
@@ -1653,5 +1610,5 @@
 
 /*
- *  tcp_rel_buf -- åä¿¡ç¨ãããã¡ã®è§£æ¾ãæ¨æºæ©è½ã
+ *  tcp_rel_buf -- 受信用バッファの解放【標準機能】
  */
 
@@ -1662,16 +1619,16 @@
 	ER		error;
 
-	/* è§£æ¾ããé·ã len ããã§ãã¯ããã*/
+	/* 解放する長さ len をチェックする。*/
 	if (len < 0)
 		return E_PAR;
 
 	/*
-	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
-	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 *  CEP をロックし、API 機能コードとタスク識別子を記録する。
+	 *  すでに記録されていれば、ペンディング中なのでエラー
 	 */
 	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_REL_BUF)) != E_OK)
 		return error;
 
-	/* è§£æ¾ããé·ã len ããã§ãã¯ããã*/
+	/* 解放する長さ len をチェックする。*/
 	if (len > cep->rcv_buf_len) {
 		error = E_OBJ;
@@ -1679,17 +1636,17 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	/* åä¿¡ã¦ã£ã³ããããã¡ããåä¿¡ãããªã¯ããããåé¤ããã*/
+	/* 受信ウィンドバッファから受信したオクテットを削除する。*/
 	TCP_DROP_RWBUF(cep, (uint_t)len);
 
-	/* tcp_rcv_buf ã®å²å½ã¦é·ããªã»ããããã*/
+	/* tcp_rcv_buf の割当て長をリセットする。*/
 	cep->rcv_buf_len = 0;
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
-	/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+	/* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
 	cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
 	sig_sem(SEM_TCP_POST_OUTPUT);
@@ -1706,5 +1663,5 @@
 
 /*
- *  tcp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ã­ã£ã³ã»ã«
+ *  tcp_can_snd -- ペンディングしている送信のキャンセル
  */
 
@@ -1714,39 +1671,39 @@
 	ER	error = E_OK;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 *  snd_tskid ã TA_NULL ãªãã
-	 *  ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+	 *  snd_tskid が TA_NULL なら、
+	 *  ペンディングしていないのでエラー
 	 */
 	if (cep->snd_tskid == TA_NULL)
 		error = EV_NOPND;
 
-	/* ãã³ãã£ã³ã°ä¸­ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼ */
+	/* ペンディング中の API 機能コードと一致しなければエラー */
 	else if (fncd != TFN_TCP_ALL && fncd != cep->snd_tfn)
 		error = E_OBJ;
 
-	/* å¦çãã­ã£ã³ã»ã«ããã*/
+	/* 処理をキャンセルする。*/
 	else {
 
-		/* åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 受信再構成キューのネットワークバッファを解放する。*/
 		tcp_free_reassq(cep);
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
 		cep->rwbuf_count = 0;
 		TCP_FREE_RWBUFQ(cep);
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 		TCP_FREE_SWBUFQ(cep);
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-		if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {	/* ノンブロッキングコール */
 
 			switch (cep->snd_nblk_tfn) {
 
 			case TFN_TCP_CON_CEP:
-				/*  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ããã*/
+				/*  通信端点から受付口を解放する。*/
 				cep->rep = NULL;
 				cep->fsm_state = TCP_FSM_CLOSED;
@@ -1789,5 +1746,5 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -1796,5 +1753,5 @@
 
 /*
- *  tcp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ã­ã£ã³ã»ã«
+ *  tcp_can_rcv -- ペンディングしている受信のキャンセル
  */
 
@@ -1804,34 +1761,34 @@
 	ER	error = E_OK;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 *  rcv_tskid ã TA_NULL ãªãã
-	 *  ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+	 *  rcv_tskid が TA_NULL なら、
+	 *  ペンディングしていないのでエラー
 	 */
 	if (cep->rcv_tskid == TA_NULL)
 		error = EV_NOPND;
 
-	/* ãã³ãã£ã³ã°ä¸­ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼ */
+	/* ペンディング中の API 機能コードと一致しなければエラー */
 	else if (fncd != TFN_TCP_ALL && fncd != cep->rcv_tfn)
 		error = E_OBJ;
 
-	/* å¦çãã­ã£ã³ã»ã«ããã*/
+	/* 処理をキャンセルする。*/
 	else {
 
-		/* åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 受信再構成キューのネットワークバッファを解放する。*/
 		tcp_free_reassq(cep);
 
-		/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
 		cep->rwbuf_count = 0;
 		TCP_FREE_RWBUFQ(cep);
 
-		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		/* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
 		TCP_FREE_SWBUFQ(cep);
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-		if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {	/* ノンブロッキングコール */
 
 			switch (cep->rcv_nblk_tfn) {
@@ -1839,6 +1796,6 @@
 			case TFN_TCP_ACP_CEP:
 				/*
-				 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
-				 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+				 *  通信端点から受付口を解放し、
+				 *  イベントフラグをクローズに設定する。
 				 */
 				cep->rep = NULL;
@@ -1888,5 +1845,5 @@
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -1895,5 +1852,5 @@
 
 /*
- *  tcp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ã­ã£ã³ã»ã«ãæ¨æºæ©è½ã
+ *  tcp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
  */
 
@@ -1904,26 +1861,26 @@
 	ER		error = E_OK, snd_err, rcv_err;
 
-	/* API æ©è½ã³ã¼ãããã§ãã¯ããã*/
+	/* API 機能コードをチェックする。*/
 	if (!VALID_TFN_TCP_CAN(fncd))
 		return E_PAR;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VAID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* TCP 通信端点をチェックする。*/
 	if (!VALID_TCP_CEP(cep))
 		return E_NOEXS;
 
-	if (fncd == TFN_TCP_ALL) {		/* TFN_TCP_ALL ã®å¦ç */
+	if (fncd == TFN_TCP_ALL) {		/* TFN_TCP_ALL の処理 */
 		snd_err = tcp_can_snd(cep, fncd);
 		rcv_err = tcp_can_rcv(cep, fncd);
 
 		/*
-		 *  snd_err ã¨ rcv_err ã®ã©ã¡ãã EV_NOPND
-		 *  ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+		 *  snd_err と rcv_err のどちらも EV_NOPND
+		 *  なら、ペンディングしていないのでエラー
 		 */
 		if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
@@ -1942,10 +1899,10 @@
 		}
 
-	else if (IS_TFN_TCP_RCV(fncd)) {	/* åä¿¡å¦çã®ã­ã£ã³ã»ã« */
+	else if (IS_TFN_TCP_RCV(fncd)) {	/* 受信処理のキャンセル */
 		if ((error = tcp_can_rcv(cep, fncd)) == EV_NOPND)
 			error = E_OBJ;
 		}
 
-	else {					/* éä¿¡å¦çã®ã­ã£ã³ã»ã« */
+	else {					/* 送信処理のキャンセル */
 		if ((error = tcp_can_snd(cep, fncd)) == EV_NOPND)
 			error = E_OBJ;
@@ -1958,7 +1915,7 @@
 
 /*
- *  tcp_set_opt -- TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
+ *  tcp_set_opt -- TCP 通信端点オプションの設定【拡張機能】
  *
- *  æ³¨æ: è¨­å®å¯è½ãª TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
  */
 
@@ -1972,12 +1929,12 @@
 	T_TCP_CEP	*cep;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VAID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* TCP 通信端点をチェックする。*/
 	if (!VALID_TCP_CEP(cep))
 		return E_NOEXS;
@@ -1991,7 +1948,7 @@
 
 /*
- *  tcp_get_opt -- TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
+ *  tcp_get_opt -- TCP 通信端点オプションの設定【拡張機能】
  *
- *  æ³¨æ: è¨­å®å¯è½ãª TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
  */
 
@@ -2005,12 +1962,12 @@
 	T_TCP_CEP	*cep;
 
-	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* TCP 通信端点 ID をチェックする。*/
 	if (!VAID_TCP_CEPID(cepid))
 		return E_ID;
 
-	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* TCP 通信端点を得る。*/
 	cep = GET_TCP_CEP(cepid);
 
-	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* TCP 通信端点をチェックする。*/
 	if (!VALID_TCP_CEP(cep))
 		return E_NOEXS;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  TCP ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ *  TCP ヘッダ・ペイロードアクセスマクロ
  */
 
@@ -105,5 +93,5 @@
 
 /*
- *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.1 との互換性のための定義
  */
 
@@ -118,5 +106,5 @@
 
 /*
- *  TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.3 との互換性のための定義
  */
 
@@ -127,5 +115,5 @@
 
 /*
- *  ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©
+ *  コールバック関数の定義
  */
 
@@ -133,35 +121,35 @@
 
 /*
- *  TCP åä»å£
- */
-
-/* IPv4 ç¨ TCP åä»å£ */
+ *  TCP 受付口
+ */
+
+/* IPv4 用 TCP 受付口 */
 typedef struct t_tcp4_rep {
 
 	/*
-	 * ITRON TCP/IP APIãTCP åä»å£ã¨åãã¡ã³ã
+	 * ITRON TCP/IP API、TCP 受付口と同じメンバ
 	 */
-	ATR		repatr;		/* åä»å£å±æ§		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
+	ATR		repatr;		/* 受付口属性		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス	*/
 
 #ifdef TCP_CFG_EXTENTIONS
-	uint16_t	flags;		/* åä»å£ãã©ã°		*/
-	ID		semid_lock;	/* åä»å£ã­ãã¯		*/
+	uint16_t	flags;		/* 受付口フラグ		*/
+	ID		semid_lock;	/* 受付口ロック		*/
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
 	} T_TCP4_REP;
 
-/* IPv6 ç¨ TCP åä»å£ */
+/* IPv6 用 TCP 受付口 */
 typedef struct t_tcp6_rep {
 
 	/*
-	 * ITRON TCP/IP APIãTCP åä»å£ã¨åãã¡ã³ã
+	 * ITRON TCP/IP API、TCP 受付口と同じメンバ
 	 */
-	ATR		repatr;		/* åä»å£å±æ§		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
+	ATR		repatr;		/* 受付口属性		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス	*/
 
 #ifdef TCP_CFG_EXTENTIONS
-	uint16_t	flags;		/* åä»å£ãã©ã°		*/
-	ID		semid_lock;	/* åä»å£ã­ãã¯		*/
+	uint16_t	flags;		/* 受付口フラグ		*/
+	ID		semid_lock;	/* 受付口ロック		*/
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
@@ -177,12 +165,12 @@
 
 /*
- *  åä»å£ãã©ã°
- */
-
-#define TCP_REP_FLG_DYNAMIC	UINT_C(0x0400)	/* åççæã»åé¤å¯è½åä»å£ã	*/
-#define TCP_REP_FLG_VALID	UINT_C(0x0800)	/* çææ¸ã¿ã§æå¹ãªåä»å£ã	*/
-
-/*
- *  TCP éä¿¡ç«¯ç¹
+ *  受付口フラグ
+ */
+
+#define TCP_REP_FLG_DYNAMIC	UINT_C(0x0400)	/* 動的生成・削除可能受付口。	*/
+#define TCP_REP_FLG_VALID	UINT_C(0x0800)	/* 生成済みで有効な受付口。	*/
+
+/*
+ *  TCP 通信端点
  */
 
@@ -192,134 +180,123 @@
 
 /*
- * éå¸¸ã® IPv4 TCP éä¿¡ç«¯ç¹
+ * 通常の IPv4 TCP 通信端点
  */
 typedef struct t_tcp4_cep {
 
 	/*
-	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
+	 * ITRON TCP/IP API、TCP 通信端点と同じメンバ
 	 */
-	ATR		cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
-	void		*sbuf;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	void		*rbuf;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	t_tcp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+	ATR		cepatr;		/* 通信端点属性			*/
+	void		*sbuf;		/* 送信用ウィンドバッファ	*/
+	int_t		sbufsz;		/* 送信用ウィンドバッファサイズ	*/
+	void		*rbuf;		/* 受信用ウィンドバッファ	*/
+	int_t		rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+	t_tcp_callback	callback;	/* コールバック関数		*/
 
 	/*
-	 * TINET ç¬èªã®ã¡ã³ã
+	 * TINET 独自のメンバ
 	 */
-	uint32_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
-	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
-	ID		est_flgid;	/* ã³ãã¯ã·ã§ã³ç¶æ
-ã¤ãã³ããã©ã°	*/
-	ID		snd_flgid;	/* éä¿¡ã¤ãã³ããã©ã°		*/
-	ID		rcv_flgid;	/* åä¿¡ã¤ãã³ããã©ã°		*/
-	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	uint8_t		*sbuf_rptr;	/* éä¿¡ç¨èª­ã¿åºããã¤ã³ã¿	*/
-	uint8_t		*sbuf_wptr;	/* éä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿	*/
-	uint8_t		*rbuf_rptr;	/* åä¿¡ç¨èª­ã¿åºããã¤ã³ã¿	*/
-	uint8_t		*rbuf_wptr;	/* åä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿	*/
-	T_TCP_SEQ	snd_ssthresh;	/* è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)	*/
-					/* ã®ãããå¤			*/
-	T_TCP_TIME	rxtcur;		/* ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã	*/
-	T_TCP_TIME	srtt;		/* å¹³æ»åããã RTT		*/
-	T_TCP_TIME	rttvar;		/* å¹³æ»åãããåæ£		*/
-	T_TCP_WND	snd_cwnd;	/* è¼»è¼³ã¦ã£ã³ããµã¤ãº		*/
+	uint32_t	flags;		/* 通信端点フラグ		*/
+	ID		semid_lock;	/* 通信端点ロック		*/
+	ID		est_flgid;	/* コネクション状態イベントフラグ	*/
+	ID		snd_flgid;	/* 送信イベントフラグ		*/
+	ID		rcv_flgid;	/* 受信イベントフラグ		*/
+	ID		snd_tskid;	/* 送信タスク識別子		*/
+	ID		rcv_tskid;	/* 受信タスク識別子		*/
+	uint8_t		*sbuf_rptr;	/* 送信用読み出しポインタ	*/
+	uint8_t		*sbuf_wptr;	/* 送信用書き込みポインタ	*/
+	uint8_t		*rbuf_rptr;	/* 受信用読み出しポインタ	*/
+	uint8_t		*rbuf_wptr;	/* 受信用書き込みポインタ	*/
+	T_TCP_SEQ	snd_ssthresh;	/* 輻輳ウィンドサイズ(snd_cwnd)	*/
+					/* のしきい値			*/
+	T_TCP_TIME	rxtcur;		/* 現在の再送タイムアウト	*/
+	T_TCP_TIME	srtt;		/* 平滑化された RTT		*/
+	T_TCP_TIME	rttvar;		/* 平滑化された分散		*/
+	T_TCP_WND	snd_cwnd;	/* 輻輳ウィンドサイズ		*/
 
 	/*
-	 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº	
+	 *  相手の最大受信セグメントサイズ	
 	 *
-	 *    ãªãªã¸ãã«ã§ã¯ãä¸è¬ã®ã»ã°ã¡ã³ãã®æå¤§ãµã¤ãº (t_maxseg) ã¨ã
-	 *    ãªãã·ã§ã³ä»ãã®ã»ã°ã¡ã³ãã®æå¤§ãµã¤ãº (t_maxopd) ãå¥ã«
-	 *    ãªã£ã¦ãããããã¯ãç¾å¨ã®ã¤ã³ã¿ã¼ãããã§ã¯ããªãã·ã§ã³ä»ãã®
-	 *    ã»ã°ã¡ã³ãã®ã»ããå¤ãããã¨èª¬æããã¦ããããã§ããã
-	 *    æ¬å®è£
-ã§ã¯ãæå¤§ã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ä»¥å¤ã®ãªãã·ã§ã³ã¯
-	 *    å®è£
-ããªãã®ã§ãt_maxseg ã®ä½¿ç¨ããã
+	 *    オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、
+	 *    オプション付きのセグメントの最大サイズ (t_maxopd) が別に
+	 *    なっている。これは、現在のインターネットでは、オプション付きの
+	 *    セグメントのほうが多いからと説明されているためである。
+	 *    本実装では、最大セグメントサイズオプション以外のオプションは
+	 *    実装しないので、t_maxseg の使用する。
 	 */
 	T_TCP_SEG	maxseg;
 
-	int16_t		snd_tfn;	/* éä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
-	int16_t		rcv_tfn;	/* åä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
+	int16_t		snd_tfn;	/* 送信動作中の API 機能コード	*/
+	int16_t		rcv_tfn;	/* 受信動作中の API 機能コード	*/
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-	T_IPV4EP 	*p_dstaddr;	/* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
-	T_IPV4EP 	*p_myaddr;	/* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
-	int16_t		snd_nblk_tfn;	/* éä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
-	int16_t		rcv_nblk_tfn;	/* åä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
-	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		**snd_p_buf;	/* éä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿	*/
-	void		**rcv_p_buf;	/* åä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿	*/
+	T_IPV4EP 	*p_dstaddr;	/* 相手のアドレスへのポインタ	*/
+	T_IPV4EP 	*p_myaddr;	/* 自分のアドレスへのポインタ	*/
+	int16_t		snd_nblk_tfn;	/* 送信動作中の API 機能コード	*/
+	int16_t		rcv_nblk_tfn;	/* 受信動作中の API 機能コード	*/
+	void		*snd_data;	/* 送信データ領域の先頭アドレス	*/
+	int_t		snd_len;	/* 送信データ領域の長さ		*/
+	void		*rcv_data;	/* 受信データ領域の先頭アドレス	*/
+	int_t		rcv_len;	/* 受信データ領域の長さ		*/
+	void		**snd_p_buf;	/* 送信バッファへのポインタ	*/
+	void		**rcv_p_buf;	/* 受信バッファへのポインタ	*/
 
 #endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
 #ifdef TCP_CFG_SWBUF_CSAVE
-	T_NET_BUF	*swbufq;	/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼	*/
+	T_NET_BUF	*swbufq;	/* 送信ウィンドバッファキュー	*/
 #endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
 
 	/*
-	 *  ããä»¥éã®ã¡ã³ãã¼ã¯ tcp_init_cep() é¢æ°ã§ã¼ã­ã¯ãªã¢ã¼ãããã
+	 *  これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。
 	 */
 
-	T_TCP_TIME	timer[NUM_TCP_TIMERS];	/* TCP ã®ã¿ã¤ã		*/
-	T_IPV4EP	dstaddr;	/* ç¸æã®ã¢ãã¬ã¹		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	T_TCP4_REP	*rep;		/* åä»å£			*/
-	T_NET_BUF	*reassq;	/* åä¿¡åæ§æã­ã¥ã¼		*/
+	T_TCP_TIME	timer[NUM_TCP_TIMERS];	/* TCP のタイマ		*/
+	T_IPV4EP	dstaddr;	/* 相手のアドレス		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス		*/
+	T_TCP4_REP	*rep;		/* 受付口			*/
+	T_NET_BUF	*reassq;	/* 受信再構成キュー		*/
 
 #ifdef TCP_CFG_RWBUF_CSAVE
-	T_NET_BUF	*rwbufq;	/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼	*/
+	T_NET_BUF	*rwbufq;	/* 受信ウィンドバッファキュー	*/
 #endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE */
 
 #ifdef TCP_CFG_EXTENTIONS
-	T_TCP_HDR	*urg_tcph;	/* ç·æ¥ãã¼ã¿å
-¥ãã®ã»ã°ã¡ã³ãã® TCP ããã	*/
-	T_TCP_SEQ	snd_up;		/* éä¿¡ããç·æ¥ãã¤ã³ã¿		*/
-	T_TCP_SEQ	rcv_up;		/* åä¿¡ããç·æ¥ãã¤ã³ã¿		*/
+	T_TCP_HDR	*urg_tcph;	/* 緊急データ入りのセグメントの TCP ヘッダ	*/
+	T_TCP_SEQ	snd_up;		/* 送信した緊急ポインタ		*/
+	T_TCP_SEQ	rcv_up;		/* 受信した緊急ポインタ		*/
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-	T_TCP_SEQ	snd_una;	/* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã	*/
-					/* ç¢ºèªãããæå¤§éä¿¡ SEQ	*/
-	T_TCP_SEQ	snd_max;	/* éä¿¡ããæå¤§ SEQ		*/
-	T_TCP_SEQ	snd_nxt;	/* æ¬¡ã«éä¿¡ãã SEQ		*/
-	T_TCP_SEQ	snd_old_nxt;	/* å
-ã® snd_nxt			*/
-	T_TCP_SEQ	snd_wl1;	/* ååã¦ã£ã³ããæ´æ°ãã SEQ	*/
-	T_TCP_SEQ	snd_wl2;	/* ååã¦ã£ã³ããæ´æ°ãã ACK	*/
-	T_TCP_SEQ	iss;		/* èªåã® SEQ ã®åæå¤		*/
-	T_TCP_SEQ	irs;		/* ç¸æã® SEQ ã®åæå¤		*/
-	T_TCP_SEQ	rcv_nxt;	/* åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ	*/
-	T_TCP_SEQ	rcv_adv;	/* åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ	*/
-	T_TCP_SEQ	rcv_wnd;	/* åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº	*/
-	T_TCP_SEQ	rtseq;		/* æéè¨æ¸¬ãå§ãã SEQ		*/
-	T_TCP_SEQ	last_ack_sent;	/* æå¾ã«éä¿¡ãã ACK		*/
-	T_TCP_TIME	idle;		/* ã¢ã¤ãã«æé			*/
-	ER		error;		/* éåæã«çºçããã¨ã©ã¼	*/
-	ER		net_error;	/* ãããã¯ã¼ã¯ã®ã¨ã©ã¼ç¶æ
-	*/
-	T_TCP_WND	snd_wnd;	/* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº	*/
-	T_TCP_WND	max_sndwnd;	/* ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãº	*/
-	T_TCP_TIME	rtt;		/* å¾å¾©æé				*/
-	uint16_t	swbuf_count;	/* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
-	uint16_t	rwbuf_count;	/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
-	uint16_t	rcv_buf_len;	/* tcp_rcv_buf ã®å²å½ã¦é·	*/
-	uint16_t	get_buf_len;	/* tcp_rcv_buf ã®å²å½ã¦é·	*/
-	uint8_t		rxtshift;	/* åéä¿¡åæ°ã® log(2)		*/
-	uint8_t		fsm_state;	/* FSM ç¶æ
-			*/
-	uint8_t		dupacks;	/* åé ACK æ°			*/
+	T_TCP_SEQ	snd_una;	/* 未確認の最小送信 SEQ つまり	*/
+					/* 確認された最大送信 SEQ	*/
+	T_TCP_SEQ	snd_max;	/* 送信した最大 SEQ		*/
+	T_TCP_SEQ	snd_nxt;	/* 次に送信する SEQ		*/
+	T_TCP_SEQ	snd_old_nxt;	/* 元の snd_nxt			*/
+	T_TCP_SEQ	snd_wl1;	/* 前回ウィンドを更新した SEQ	*/
+	T_TCP_SEQ	snd_wl2;	/* 前回ウィンドを更新した ACK	*/
+	T_TCP_SEQ	iss;		/* 自分の SEQ の初期値		*/
+	T_TCP_SEQ	irs;		/* 相手の SEQ の初期値		*/
+	T_TCP_SEQ	rcv_nxt;	/* 受信を期待している最小の SEQ	*/
+	T_TCP_SEQ	rcv_adv;	/* 受信を期待している最大の SEQ	*/
+	T_TCP_SEQ	rcv_wnd;	/* 受信可能なウィンドサイズ	*/
+	T_TCP_SEQ	rtseq;		/* 時間計測を始めた SEQ		*/
+	T_TCP_SEQ	last_ack_sent;	/* 最後に送信した ACK		*/
+	T_TCP_TIME	idle;		/* アイドル時間			*/
+	ER		error;		/* 非同期に発生したエラー	*/
+	ER		net_error;	/* ネットワークのエラー状態	*/
+	T_TCP_WND	snd_wnd;	/* 相手の受信可能ウィンドサイズ	*/
+	T_TCP_WND	max_sndwnd;	/* 今までの最大送信ウィンドサイズ	*/
+	T_TCP_TIME	rtt;		/* 往復時間				*/
+	uint16_t	swbuf_count;	/* 送信ウィンドバッファの使用中サイズ	*/
+	uint16_t	rwbuf_count;	/* 受信ウィンドバッファの使用中サイズ	*/
+	uint16_t	rcv_buf_len;	/* tcp_rcv_buf の割当て長	*/
+	uint16_t	get_buf_len;	/* tcp_rcv_buf の割当て長	*/
+	uint8_t		rxtshift;	/* 再送信回数の log(2)		*/
+	uint8_t		fsm_state;	/* FSM 状態			*/
+	uint8_t		dupacks;	/* 再送 ACK 数			*/
 
 #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)
-	uint8_t		rwbufq_entries;	/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ã¨ã³ããªæ°	*/
+	uint8_t		rwbufq_entries;	/* 受信ウィンドバッファキューのエントリ数	*/
 #endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)	*/
 
@@ -327,152 +304,139 @@
 
 /*
- * Time Wait ç¨ IPv4 TCP éä¿¡ç«¯ç¹
+ * Time Wait 用 IPv4 TCP 通信端点
  */
 typedef struct t_tcp4_twcep {
-	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	T_TCP_TIME	timer_2msl;	/* 2MSL ã¿ã¤ã			*/
-	T_IPV4EP	dstaddr;	/* ç¸æã®ã¢ãã¬ã¹		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	T_TCP_SEQ	snd_una;	/* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã	*/
-					/* ç¢ºèªãããæå¤§éä¿¡ SEQ	*/
-	T_TCP_SEQ	rcv_nxt;	/* åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ	*/
-	uint16_t	rwbuf_count;	/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
-	uint8_t		fsm_state;	/* FSM ç¶æ
-			*/
+	int_t		rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+	T_TCP_TIME	timer_2msl;	/* 2MSL タイマ			*/
+	T_IPV4EP	dstaddr;	/* 相手のアドレス		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス		*/
+	T_TCP_SEQ	snd_una;	/* 未確認の最小送信 SEQ つまり	*/
+					/* 確認された最大送信 SEQ	*/
+	T_TCP_SEQ	rcv_nxt;	/* 受信を期待している最小の SEQ	*/
+	uint16_t	rwbuf_count;	/* 受信ウィンドバッファの使用中サイズ	*/
+	uint8_t		fsm_state;	/* FSM 状態			*/
 
 	} T_TCP4_TWCEP;
 
 /*
- * éå¸¸ã® IPv6 TCP éä¿¡ç«¯ç¹
+ * 通常の IPv6 TCP 通信端点
  */
 typedef struct t_tcp6_cep {
 
 	/*
-	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
+	 * ITRON TCP/IP API、TCP 通信端点と同じメンバ
 	 */
-	ATR		cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
-	void		*sbuf;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	void		*rbuf;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
-	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	t_tcp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+	ATR		cepatr;		/* 通信端点属性			*/
+	void		*sbuf;		/* 送信用ウィンドバッファ	*/
+	int_t		sbufsz;		/* 送信用ウィンドバッファサイズ	*/
+	void		*rbuf;		/* 受信用ウィンドバッファ	*/
+	int_t		rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+	t_tcp_callback	callback;	/* コールバック関数		*/
 
 	/*
-	 * TINET ç¬èªã®ã¡ã³ã
+	 * TINET 独自のメンバ
 	 */
-	uint32_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
-	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
-	ID		est_flgid;	/* ã³ãã¯ã·ã§ã³ç¶æ
-ã¤ãã³ããã©ã°	*/
-	ID		snd_flgid;	/* éä¿¡ã¤ãã³ããã©ã°		*/
-	ID		rcv_flgid;	/* åä¿¡ã¤ãã³ããã©ã°		*/
-	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	uint8_t		*sbuf_rptr;	/* éä¿¡ç¨èª­ã¿åºããã¤ã³ã¿		*/
-	uint8_t		*sbuf_wptr;	/* éä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿		*/
-	uint8_t		*rbuf_rptr;	/* åä¿¡ç¨èª­ã¿åºããã¤ã³ã¿		*/
-	uint8_t		*rbuf_wptr;	/* åä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿		*/
-	T_TCP_SEQ	snd_ssthresh;	/* è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)	*/
-					/* ã®ãããå¤			*/
-	T_TCP_TIME	rxtcur;		/* ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã		*/
-	T_TCP_TIME	srtt;		/* å¹³æ»åããã RTT		*/
-	T_TCP_TIME	rttvar;		/* å¹³æ»åãããåæ£		*/
-	T_TCP_WND	snd_cwnd;	/* è¼»è¼³ã¦ã£ã³ããµã¤ãº		*/
+	uint32_t	flags;		/* 通信端点フラグ		*/
+	ID		semid_lock;	/* 通信端点ロック		*/
+	ID		est_flgid;	/* コネクション状態イベントフラグ	*/
+	ID		snd_flgid;	/* 送信イベントフラグ		*/
+	ID		rcv_flgid;	/* 受信イベントフラグ		*/
+	ID		snd_tskid;	/* 送信タスク識別子		*/
+	ID		rcv_tskid;	/* 受信タスク識別子		*/
+	uint8_t		*sbuf_rptr;	/* 送信用読み出しポインタ		*/
+	uint8_t		*sbuf_wptr;	/* 送信用書き込みポインタ		*/
+	uint8_t		*rbuf_rptr;	/* 受信用読み出しポインタ		*/
+	uint8_t		*rbuf_wptr;	/* 受信用書き込みポインタ		*/
+	T_TCP_SEQ	snd_ssthresh;	/* 輻輳ウィンドサイズ(snd_cwnd)	*/
+					/* のしきい値			*/
+	T_TCP_TIME	rxtcur;		/* 現在の再送タイムアウト		*/
+	T_TCP_TIME	srtt;		/* 平滑化された RTT		*/
+	T_TCP_TIME	rttvar;		/* 平滑化された分散		*/
+	T_TCP_WND	snd_cwnd;	/* 輻輳ウィンドサイズ		*/
 
 	/*
-	 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº	
+	 *  相手の最大受信セグメントサイズ	
 	 *
-	 *    ãªãªã¸ãã«ã§ã¯ãä¸è¬ã®ã»ã°ã¡ã³ãã®æå¤§ãµã¤ãº (t_maxseg) ã¨ã
-	 *    ãªãã·ã§ã³ä»ãã®ã»ã°ã¡ã³ãã®æå¤§ãµã¤ãº (t_maxopd) ãå¥ã«
-	 *    ãªã£ã¦ãããããã¯ãç¾å¨ã®ã¤ã³ã¿ã¼ãããã§ã¯ããªãã·ã§ã³ä»ãã®
-	 *    ã»ã°ã¡ã³ãã®ã»ããå¤ãããã¨èª¬æããã¦ããããã§ããã
-	 *    æ¬å®è£
-ã§ã¯ãæå¤§ã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ä»¥å¤ã®ãªãã·ã§ã³ã¯
-	 *    å®è£
-ããªãã®ã§ãt_maxseg ã®ä½¿ç¨ããã
+	 *    オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、
+	 *    オプション付きのセグメントの最大サイズ (t_maxopd) が別に
+	 *    なっている。これは、現在のインターネットでは、オプション付きの
+	 *    セグメントのほうが多いからと説明されているためである。
+	 *    本実装では、最大セグメントサイズオプション以外のオプションは
+	 *    実装しないので、t_maxseg の使用する。
 	 */
 	T_TCP_SEG	maxseg;
 
-	T_IPV6EP 	*p_dstaddr;	/* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
-	T_IPV6EP 	*p_myaddr;	/* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
-	int16_t		snd_tfn;	/* éä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
-	int16_t		rcv_tfn;	/* åä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
+	T_IPV6EP 	*p_dstaddr;	/* 相手のアドレスへのポインタ	*/
+	T_IPV6EP 	*p_myaddr;	/* 自分のアドレスへのポインタ	*/
+	int16_t		snd_tfn;	/* 送信動作中の API 機能コード	*/
+	int16_t		rcv_tfn;	/* 受信動作中の API 機能コード	*/
 
 #ifdef TCP_CFG_NON_BLOCKING
 
-	int16_t		snd_nblk_tfn;	/* éä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
-	int16_t		rcv_nblk_tfn;	/* åä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
-	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		**snd_p_buf;	/* éä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿	*/
-	void		**rcv_p_buf;	/* åä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿	*/
+	int16_t		snd_nblk_tfn;	/* 送信動作中の API 機能コード	*/
+	int16_t		rcv_nblk_tfn;	/* 受信動作中の API 機能コード	*/
+	void		*snd_data;	/* 送信データ領域の先頭アドレス	*/
+	int_t		snd_len;	/* 送信データ領域の長さ		*/
+	void		*rcv_data;	/* 受信データ領域の先頭アドレス	*/
+	int_t		rcv_len;	/* 受信データ領域の長さ		*/
+	void		**snd_p_buf;	/* 送信バッファへのポインタ	*/
+	void		**rcv_p_buf;	/* 受信バッファへのポインタ	*/
 
 #endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
 
 #ifdef TCP_CFG_SWBUF_CSAVE
-	T_NET_BUF	*swbufq;	/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼	*/
+	T_NET_BUF	*swbufq;	/* 送信ウィンドバッファキュー	*/
 #endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
 
 	/*
-	 *  ããä»¥éã®ã¡ã³ãã¼ã¯ tcp_init_cep() é¢æ°ã§ã¼ã­ã¯ãªã¢ã¼ãããã
+	 *  これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。
 	 */
 
-	T_TCP_TIME	timer[NUM_TCP_TIMERS];	/* TCP ã®ã¿ã¤ã		*/
-	T_IPV6EP	dstaddr;	/* ç¸æã®ã¢ãã¬ã¹		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	T_TCP6_REP	*rep;		/* åä»å£			*/
-	T_NET_BUF	*reassq;	/* åä¿¡åæ§æã­ã¥ã¼		*/
+	T_TCP_TIME	timer[NUM_TCP_TIMERS];	/* TCP のタイマ		*/
+	T_IPV6EP	dstaddr;	/* 相手のアドレス		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス		*/
+	T_TCP6_REP	*rep;		/* 受付口			*/
+	T_NET_BUF	*reassq;	/* 受信再構成キュー		*/
 
 #ifdef TCP_CFG_RWBUF_CSAVE
-	T_NET_BUF	*rwbufq;	/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼	*/
+	T_NET_BUF	*rwbufq;	/* 受信ウィンドバッファキュー	*/
 #endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE */
 
 #ifdef TCP_CFG_EXTENTIONS
-	T_TCP_HDR	*urg_tcph;	/* ç·æ¥ãã¼ã¿å
-¥ãã®ã»ã°ã¡ã³ãã® TCP ããã	*/
-	T_TCP_SEQ	snd_up;		/* éä¿¡ããç·æ¥ãã¤ã³ã¿		*/
-	T_TCP_SEQ	rcv_up;		/* åä¿¡ããç·æ¥ãã¤ã³ã¿		*/
+	T_TCP_HDR	*urg_tcph;	/* 緊急データ入りのセグメントの TCP ヘッダ	*/
+	T_TCP_SEQ	snd_up;		/* 送信した緊急ポインタ		*/
+	T_TCP_SEQ	rcv_up;		/* 受信した緊急ポインタ		*/
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
 
-	T_TCP_SEQ	snd_una;	/* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã	*/
-					/* ç¢ºèªãããæå¤§éä¿¡ SEQ	*/
-	T_TCP_SEQ	snd_max;	/* éä¿¡ããæå¤§ SEQ		*/
-	T_TCP_SEQ	snd_nxt;	/* æ¬¡ã«éä¿¡ãã SEQ		*/
-	T_TCP_SEQ	snd_old_nxt;	/* å
-ã® snd_nxt			*/
-	T_TCP_SEQ	snd_wl1;	/* ååã¦ã£ã³ããæ´æ°ãã SEQ	*/
-	T_TCP_SEQ	snd_wl2;	/* ååã¦ã£ã³ããæ´æ°ãã ACK	*/
-	T_TCP_SEQ	iss;		/* èªåã® SEQ ã®åæå¤		*/
-	T_TCP_SEQ	irs;		/* ç¸æã® SEQ ã®åæå¤		*/
-	T_TCP_SEQ	rcv_nxt;	/* åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ	*/
-	T_TCP_SEQ	rcv_adv;	/* åä¿¡ãæå¾
-ãã¦ããæå¤§ã® SEQ	*/
-	T_TCP_SEQ	rcv_wnd;	/* åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº	*/
-	T_TCP_SEQ	rtseq;		/* æéè¨æ¸¬ãå§ãã SEQ		*/
-	T_TCP_SEQ	last_ack_sent;	/* æå¾ã«éä¿¡ãã ACK		*/
-	T_TCP_TIME	idle;		/* ã¢ã¤ãã«æé			*/
-	ER		error;		/* éåæã«çºçããã¨ã©ã¼		*/
-	ER		net_error;	/* ãããã¯ã¼ã¯ã®ã¨ã©ã¼ç¶æ
-	*/
-	T_TCP_WND	snd_wnd;	/* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº	*/
-	T_TCP_WND	max_sndwnd;	/* ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãº	*/
-	T_TCP_TIME	rtt;		/* å¾å¾©æé			*/
-	uint16_t	swbuf_count;	/* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
-	uint16_t	rwbuf_count;	/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
-	uint16_t	rcv_buf_len;	/* tcp_rcv_buf ã®å²å½ã¦é·	*/
-	uint16_t	get_buf_len;	/* tcp_rcv_buf ã®å²å½ã¦é·	*/
-	uint8_t		rxtshift;	/* åéä¿¡åæ°ã® log(2)		*/
-	uint8_t		fsm_state;	/* FSM ç¶æ
-			*/
-	uint8_t		dupacks;	/* åé ACK æ°			*/
+	T_TCP_SEQ	snd_una;	/* 未確認の最小送信 SEQ つまり	*/
+					/* 確認された最大送信 SEQ	*/
+	T_TCP_SEQ	snd_max;	/* 送信した最大 SEQ		*/
+	T_TCP_SEQ	snd_nxt;	/* 次に送信する SEQ		*/
+	T_TCP_SEQ	snd_old_nxt;	/* 元の snd_nxt			*/
+	T_TCP_SEQ	snd_wl1;	/* 前回ウィンドを更新した SEQ	*/
+	T_TCP_SEQ	snd_wl2;	/* 前回ウィンドを更新した ACK	*/
+	T_TCP_SEQ	iss;		/* 自分の SEQ の初期値		*/
+	T_TCP_SEQ	irs;		/* 相手の SEQ の初期値		*/
+	T_TCP_SEQ	rcv_nxt;	/* 受信を期待している最小の SEQ	*/
+	T_TCP_SEQ	rcv_adv;	/* 受信を期待している最大の SEQ	*/
+	T_TCP_SEQ	rcv_wnd;	/* 受信可能なウィンドサイズ	*/
+	T_TCP_SEQ	rtseq;		/* 時間計測を始めた SEQ		*/
+	T_TCP_SEQ	last_ack_sent;	/* 最後に送信した ACK		*/
+	T_TCP_TIME	idle;		/* アイドル時間			*/
+	ER		error;		/* 非同期に発生したエラー		*/
+	ER		net_error;	/* ネットワークのエラー状態	*/
+	T_TCP_WND	snd_wnd;	/* 相手の受信可能ウィンドサイズ	*/
+	T_TCP_WND	max_sndwnd;	/* 今までの最大送信ウィンドサイズ	*/
+	T_TCP_TIME	rtt;		/* 往復時間			*/
+	uint16_t	swbuf_count;	/* 送信ウィンドバッファの使用中サイズ	*/
+	uint16_t	rwbuf_count;	/* 受信ウィンドバッファの使用中サイズ	*/
+	uint16_t	rcv_buf_len;	/* tcp_rcv_buf の割当て長	*/
+	uint16_t	get_buf_len;	/* tcp_rcv_buf の割当て長	*/
+	uint8_t		rxtshift;	/* 再送信回数の log(2)		*/
+	uint8_t		fsm_state;	/* FSM 状態			*/
+	uint8_t		dupacks;	/* 再送 ACK 数			*/
 
 #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)
-	uint8_t		rwbufq_entries;	/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ã¨ã³ããªæ°	*/
+	uint8_t		rwbufq_entries;	/* 受信ウィンドバッファキューのエントリ数	*/
 #endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)	*/
 
@@ -480,21 +444,19 @@
 
 /*
- * Time Wait ç¨ IPv6 TCP éä¿¡ç«¯ç¹
+ * Time Wait 用 IPv6 TCP 通信端点
  */
 typedef struct t_tcp6_twcep {
-	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
-	T_TCP_TIME	timer_2msl;	/* 2MSL ã¿ã¤ã			*/
-	T_IPV6EP	dstaddr;	/* ç¸æã®ã¢ãã¬ã¹		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	T_TCP_SEQ	snd_una;	/* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã	*/
-					/* ç¢ºèªãããæå¤§éä¿¡ SEQ	*/
-	T_TCP_SEQ	iss;		/* èªåã® SEQ ã®åæå¤		*/
-	T_TCP_SEQ	irs;		/* ç¸æã® SEQ ã®åæå¤		*/
-	T_TCP_SEQ	rcv_nxt;	/* åä¿¡ãæå¾
-ãã¦ããæå°ã® SEQ	*/
-	T_TCP_WND	snd_wnd;	/* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº	*/
-	uint16_t	rwbuf_count;	/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
-	uint8_t		fsm_state;	/* FSM ç¶æ
-			*/
+	int_t		rbufsz;		/* 受信用ウィンドバッファサイズ	*/
+	T_TCP_TIME	timer_2msl;	/* 2MSL タイマ			*/
+	T_IPV6EP	dstaddr;	/* 相手のアドレス		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス		*/
+	T_TCP_SEQ	snd_una;	/* 未確認の最小送信 SEQ つまり	*/
+					/* 確認された最大送信 SEQ	*/
+	T_TCP_SEQ	iss;		/* 自分の SEQ の初期値		*/
+	T_TCP_SEQ	irs;		/* 相手の SEQ の初期値		*/
+	T_TCP_SEQ	rcv_nxt;	/* 受信を期待している最小の SEQ	*/
+	T_TCP_WND	snd_wnd;	/* 相手の受信可能ウィンドサイズ	*/
+	uint16_t	rwbuf_count;	/* 受信ウィンドバッファの使用中サイズ	*/
+	uint8_t		fsm_state;	/* FSM 状態			*/
 
 	} T_TCP6_TWCEP;
@@ -513,84 +475,75 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®ç¶æ
-ãã©ã°
- */
-
-#define TCP_CEP_FLG_ACK_NOW		ULONG_C(0x00000001)	/* ç´ã¡ã«ç¸æã« ACK ãéãã	*/
-#define TCP_CEP_FLG_DEL_ACK		ULONG_C(0x00000002)	/* ACK ãé
-å»¶ããã		*/
-#define TCP_CEP_FLG_SENT_FIN		ULONG_C(0x00000004)	/* FIN ãéã£ã¦ããã		*/
-#define TCP_CEP_FLG_NEED_SYN		ULONG_C(0x00000008)	/* SYN ãéä¿¡ããã		*/
-#define TCP_CEP_FLG_NEED_FIN		ULONG_C(0x00000010)	/* FIN ãéä¿¡ããã		*/
-#define TCP_CEP_FLG_FORCE		ULONG_C(0x00000020)	/* å¼·å¶éä¿¡ã			*/
-#define TCP_CEP_FLG_NO_PUSH		ULONG_C(0x00000040)	/* push ããªãã		*/
-#define TCP_CEP_FLG_NO_DELAY		ULONG_C(0x00000080)	/* é
-å»¶ããªãã			*/
-#define TCP_CEP_FLG_FORCE_CLEAR		ULONG_C(0x00000100)	/* å¼·å¶éä¿¡ããå¾ãã©ã°ãã¯ãªã¢ã¼ããã*/
-#define TCP_CEP_FLG_POST_OUTPUT		ULONG_C(0x00000200)	/* éä¿¡ãéå§ããã		*/
-#define TCP_CEP_FLG_RESERVE_OUTPUT	ULONG_C(0x00000400)	/* éä¿¡ãäºç´ããã		*/
-#define TCP_CEP_FLG_DYNAMIC		ULONG_C(0x00001000)	/* åççæã»åé¤å¯è½éä¿¡ç«¯ç¹ã	*/
-#define TCP_CEP_FLG_VALID		ULONG_C(0x00002000)	/* çææ¸ã¿ã§æå¹ãªéä¿¡ç«¯ç¹ã	*/
-#define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT	ULONG_C(0x00004000)	/* éä¿¡ããå¾ã³ãã¯ã·ã§ã³ãéããã*/
-#define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT	ULONG_C(0x00008000)	/* éä¿¡ããå¾ãsnd_nxt ãå
-ã«æ»ãã*/
-
-/* éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ */
-#define TCP_CEP_FLG_WBCS_NBUF_REQ	ULONG_C(0x00080000)	/* ãããã¯ã¼ã¯ãããã¡å²å½ã¦è¦æ±	*/
-#define TCP_CEP_FLG_WBCS_MASK		ULONG_C(0x00070000)	/* ãã¹ã¯			*/
-#define TCP_CEP_FLG_WBCS_FREE		ULONG_C(0x00000000)	/* éä¿¡ã¦ã£ã³ããããã¡æªä½¿ç¨	*/
-#define TCP_CEP_FLG_WBCS_WOPEN_PEND	ULONG_C(0x00010000)	/* ç¸æã®åä¿¡ã¦ã£ã³ãã®éãå¾
-ã¡	*/
-#define TCP_CEP_FLG_WBCS_NBUF_PEND	ULONG_C(0x00020000)	/* ãããã¯ã¼ã¯ãããã¡äºç´å¾
-ã¡	*/
-#define TCP_CEP_FLG_WBCS_NBUF_RSVD	ULONG_C(0x00030000)	/* ãããã¯ã¼ã¯ãããã¡äºç´æ¸ã¿	*/
-#define TCP_CEP_FLG_WBCS_NBUF_READY	ULONG_C(0x00040000)	/* ãããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿	*/
-#define TCP_CEP_FLG_WBCS_SEND_READY	ULONG_C(0x00050000)	/* éä¿¡å¯è½			*/
-#define TCP_CEP_FLG_WBCS_SENT		ULONG_C(0x00060000)	/* éä¿¡æ¸ã¿ã§ãACKå¾
-ã¡		*/
-#define TCP_CEP_FLG_WBCS_ACKED		ULONG_C(0x00070000)	/* éä¿¡æ¸ã¿ã§ãACKå®äº		*/
-
-/*
- *  éä¿¡ç«¯ç¹ã¤ãã³ããã©ã°
- */
-
-#define TCP_CEP_EVT_ESTABLISHED		ULONG_C(0x00000001)	/* ã³ãã¯ã·ã§ã³ç¢ºç«		*/
-#define TCP_CEP_EVT_CLOSED		ULONG_C(0x00000002)	/* æªä½¿ç¨ç¶æ
-			*/
-#define TCP_CEP_EVT_SWBUF_READY		ULONG_C(0x00000004)	/* éä¿¡ã¦ã£ã³ããããã¡ç©ºã	*/
-#define TCP_CEP_EVT_RWBUF_READY		ULONG_C(0x00000008)	/* éä¿¡ã¦ã£ã³ããããã¡ãã¼ã¿ãã	*/
-#define TCP_CEP_EVT_ALL			ULONG_C(0xffffffff)	/* å
-¨ã¤ãã³ã			*/
-
-/*
- *  è¿½å  API æ©è½ã»äºè±¡ã³ã¼ã
- */
-
-/* TCP é¢ä¿ */
+ *  TCP 通信端点の状態フラグ
+ */
+
+#define TCP_CEP_FLG_ACK_NOW		ULONG_C(0x00000001)	/* 直ちに相手に ACK を送る。	*/
+#define TCP_CEP_FLG_DEL_ACK		ULONG_C(0x00000002)	/* ACK を遅延する。		*/
+#define TCP_CEP_FLG_SENT_FIN		ULONG_C(0x00000004)	/* FIN を送ってある。		*/
+#define TCP_CEP_FLG_NEED_SYN		ULONG_C(0x00000008)	/* SYN を送信する。		*/
+#define TCP_CEP_FLG_NEED_FIN		ULONG_C(0x00000010)	/* FIN を送信する。		*/
+#define TCP_CEP_FLG_FORCE		ULONG_C(0x00000020)	/* 強制送信。			*/
+#define TCP_CEP_FLG_NO_PUSH		ULONG_C(0x00000040)	/* push しない。		*/
+#define TCP_CEP_FLG_NO_DELAY		ULONG_C(0x00000080)	/* 遅延しない。			*/
+#define TCP_CEP_FLG_FORCE_CLEAR		ULONG_C(0x00000100)	/* 強制送信した後フラグをクリアーする。*/
+#define TCP_CEP_FLG_POST_OUTPUT		ULONG_C(0x00000200)	/* 送信を開始する。		*/
+#define TCP_CEP_FLG_RESERVE_OUTPUT	ULONG_C(0x00000400)	/* 送信を予約する。		*/
+#define TCP_CEP_FLG_DYNAMIC		ULONG_C(0x00001000)	/* 動的生成・削除可能通信端点。	*/
+#define TCP_CEP_FLG_VALID		ULONG_C(0x00002000)	/* 生成済みで有効な通信端点。	*/
+#define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT	ULONG_C(0x00004000)	/* 送信した後コネクションを閉じる。*/
+#define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT	ULONG_C(0x00008000)	/* 送信した後、snd_nxt を元に戻す。*/
+
+/* 送受信ウィンドバッファの省コピー機能 */
+#define TCP_CEP_FLG_WBCS_NBUF_REQ	ULONG_C(0x00080000)	/* ネットワークバッファ割当て要求	*/
+#define TCP_CEP_FLG_WBCS_MASK		ULONG_C(0x00070000)	/* マスク			*/
+#define TCP_CEP_FLG_WBCS_FREE		ULONG_C(0x00000000)	/* 送信ウィンドバッファ未使用	*/
+#define TCP_CEP_FLG_WBCS_WOPEN_PEND	ULONG_C(0x00010000)	/* 相手の受信ウィンドの開き待ち	*/
+#define TCP_CEP_FLG_WBCS_NBUF_PEND	ULONG_C(0x00020000)	/* ネットワークバッファ予約待ち	*/
+#define TCP_CEP_FLG_WBCS_NBUF_RSVD	ULONG_C(0x00030000)	/* ネットワークバッファ予約済み	*/
+#define TCP_CEP_FLG_WBCS_NBUF_READY	ULONG_C(0x00040000)	/* ネットワークバッファ割当て済み	*/
+#define TCP_CEP_FLG_WBCS_SEND_READY	ULONG_C(0x00050000)	/* 送信可能			*/
+#define TCP_CEP_FLG_WBCS_SENT		ULONG_C(0x00060000)	/* 送信済みで、ACK待ち		*/
+#define TCP_CEP_FLG_WBCS_ACKED		ULONG_C(0x00070000)	/* 送信済みで、ACK完了		*/
+
+/*
+ *  通信端点イベントフラグ
+ */
+
+#define TCP_CEP_EVT_ESTABLISHED		ULONG_C(0x00000001)	/* コネクション確立		*/
+#define TCP_CEP_EVT_CLOSED		ULONG_C(0x00000002)	/* 未使用状態			*/
+#define TCP_CEP_EVT_SWBUF_READY		ULONG_C(0x00000004)	/* 送信ウィンドバッファ空き	*/
+#define TCP_CEP_EVT_RWBUF_READY		ULONG_C(0x00000008)	/* 送信ウィンドバッファデータあり	*/
+#define TCP_CEP_EVT_ALL			ULONG_C(0xffffffff)	/* 全イベント			*/
+
+/*
+ *  追加 API 機能・事象コード
+ */
+
+/* TCP 関係 */
 
 #define TFN_TCP_UNDEF		(0)
 
 /*
- *  srtt:   å¹³æ»åããã RTT
- *  rttvar: å¹³æ»åãããåæ£
- *  rtt:    æ¸¬å®ãããå¾å¾©æé
+ *  srtt:   平滑化された RTT
+ *  rttvar: 平滑化された分散
+ *  rtt:    測定された往復時間
  *
- *  å¹³æ»åããã RTT (srtt) ã¨å¹³æ»åãããåæ£ (rttvar) ã
- *  æ´æ°åã§è¨ç®ããããã«ãå·¦ã·ãããã¦ã¹ã±ã¼ã«ããã
- *  srtt ã¯ 2 é²å°æ°ç¹ä»¥ä¸ 3 ãããã
- *  rttvar ã¯ 2 é²å°æ°ç¹ä»¥ä¸ 2 ããããä¿æããã
+ *  平滑化された RTT (srtt) と平滑化された分散 (rttvar) を
+ *  整数型で計算するために、左シフトしてスケールする。
+ *  srtt は 2 進小数点以下 3 ビット、
+ *  rttvar は 2 進小数点以下 2 ビットを保持する。
  */
 
 #define TCP_DELTA_SHIFT		2
-			/* å·®å = rtt/8 + srtt*7/8 ã®è¨ç®ã®ããã®ã·ããå¤	*/
+			/* 差分 = rtt/8 + srtt*7/8 の計算のためのシフト値	*/
 #define TCP_SRTT_SHIFT		(TCP_DELTA_SHIFT + 3)
-					/* srtt ã®ã·ããå¤ã3(+2)ããã	*/
+					/* srtt のシフト値、3(+2)ビット	*/
 #define TCP_RTTVAR_SHIFT	(TCP_DELTA_SHIFT + 2)
-					/* rttvar ã®ã·ããå¤ã2(+2)ããã	*/
+					/* rttvar のシフト値、2(+2)ビット	*/
 #define TCP_SRTT_SCALE		(1<<TCP_SRTT_SHIFT)
 #define TCP_RTTVAR_SCALE	(1<<TCP_RTTVAR_SHIFT)
 
 /*
- *  é«éåè»¢éãéå§ããåé ACK æ°ã®ãããå¤
+ *  高速再転送を開始する再送 ACK 数のしきい値
  */
 
@@ -598,26 +551,21 @@
 
 /*
- *  åä¿¡åæ§æã­ã¥ã¼ã§ã® TCP ããã
+ *  受信再構成キューでの TCP ヘッダ
  */
 
 typedef struct t_tcp_q_hdr {
-	uint16_t	sport;		/* éä¿¡å
-ãã¼ãçªå·			*/
-	uint16_t	dport;		/* å®å
-ãã¼ãçªå·			*/
-
-	uint32_t	seq;		/* SEQ çªå·				*/
-
-	T_NET_BUF 	*next;		/* æ¬¡ã®ã»ã°ã¡ã³ããå
-ã¯ ACK çªå·(ack)	*/
-
-	uint8_t		doff;		/* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã)	*/
-	uint8_t		flags;		/* ãã©ã°(ä¸ä½6ããã)			*/
-	uint16_t	soff;		/* SDU ãªãã»ãããå
-ã¯ã¦ã£ã³ããµã¤ãº(win)	*/
-
-	uint16_t	slen;		/* SDU é·ãå
-ã¯ãã§ãã¯ãµã (sum)	*/
-	uint16_t	urp;		/* ç·æ¥ãã¤ã³ã¿ï¼SDU é·è£æ­£ï¼		*/
+	uint16_t	sport;		/* 送信元ポート番号			*/
+	uint16_t	dport;		/* 宛先ポート番号			*/
+
+	uint32_t	seq;		/* SEQ 番号				*/
+
+	T_NET_BUF 	*next;		/* 次のセグメント、元は ACK 番号(ack)	*/
+
+	uint8_t		doff;		/* データオフセット(上位4ビット)	*/
+	uint8_t		flags;		/* フラグ(下位6ビット)			*/
+	uint16_t	soff;		/* SDU オフセット、元はウィンドサイズ(win)	*/
+
+	uint16_t	slen;		/* SDU 長、元はチェックサム(sum)	*/
+	uint16_t	urp;		/* 緊急ポインタ（SDU 長補正）		*/
 	} __attribute__((packed, aligned(2)))T_TCP_Q_HDR;
 
@@ -626,19 +574,19 @@
 
 /*
- *  ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©
- */
-
-#define	TMIN_TCP_REPID		1	/* TCP åä»å£   ID ã®æå°å¤			*/
-#define	TMIN_TCP_CEPID		1	/* TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤			*/
-#define	TMIN_TCP_TWCEPID	1	/* Time Wait ç¨ TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤	*/
-
-/*
- *  å¶å¾¡ã»ã°ã¡ã³ãï¼ãã¼ã¿ãªãï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  オブジェクト ID の最小値の定義
+ */
+
+#define	TMIN_TCP_REPID		1	/* TCP 受付口   ID の最小値			*/
+#define	TMIN_TCP_CEPID		1	/* TCP 通信端点 ID の最小値			*/
+#define	TMIN_TCP_TWCEPID	1	/* Time Wait 用 TCP 通信端点 ID の最小値	*/
+
+/*
+ *  制御セグメント（データなし）サイズのネットワークバッファ
  */
 
 typedef struct t_net_buf_cseg {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -648,5 +596,5 @@
 #endif
 	uint8_t		buf[IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} T_NET_BUF_CSEG;
 
@@ -654,6 +602,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -674,5 +621,5 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -720,6 +667,5 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
@@ -738,5 +684,5 @@
 
 /*
- *  Inline é¢æ°
+ *  Inline 関数
  */
 
@@ -744,10 +690,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã
- *  ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°
- */
-
-/*
- *  tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が
+ *  無効の場合は何もしないためのダミーの関数
+ */
+
+/*
+ *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
  */
 
@@ -762,10 +708,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿ã
- *  æå¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°
- */
-
-/*
- *  tcp_read_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèª­ã¿åºãã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能のみが
+ *  有効の場合は何もしないためのダミーの関数
+ */
+
+/*
+ *  tcp_read_swbuf_cs -- 送信ウィンドバッファからデータを読み出す。
  */
 
@@ -780,10 +726,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã
- *  ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°
- */
-
-/*
- *  tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能が
+ *  無効の場合は何もしないためのダミーの関数
+ */
+
+/*
+ *  tcp_free_swbufq -- 送信ウィンドバッファキューを解放する。
  */
 
@@ -794,5 +740,5 @@
 
 /*
- *  tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããã
+ *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
  */
 
@@ -803,5 +749,5 @@
 
 /*
- *  tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããã
+ *  tcp_push_res_nbuf -- ネットワークバッファを予約する。
  */
 
@@ -813,5 +759,5 @@
 
 /*
- *  tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãã
+ *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す。
  */
 
@@ -825,5 +771,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã­
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能の切り替えマクロ
  */
 
@@ -859,5 +805,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã­
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能の切り替えマクロ
  */
 
@@ -910,5 +856,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -941,10 +887,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°
- */
-
-/*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã
- *  é¢æ°ã®é¸æã«ä½¿ç¨ããã
+ *  TCP 通信端点の受信ウィンドバッファ用関数
+ */
+
+/*
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効の場合、
+ *  関数の選択に使用する。
  */
 
@@ -956,5 +902,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能用関数
  */
 
@@ -966,5 +912,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°
+ *  TCP 通信端点の受信ウィンドバッファの【非】省コピー機能用関数
  */
 
@@ -976,10 +922,10 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°
- */
-
-/*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã
- *  é¢æ°ã®é¸æã«ä½¿ç¨ããã
+ *  TCP 通信端点の送信ウィンドバッファ用関数
+ */
+
+/*
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効の場合、
+ *  関数の選択に使用する。
  */
 
@@ -998,5 +944,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能用関数
  */
 
@@ -1012,5 +958,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°
+ *  TCP 通信端点の送信ウィンドバッファの【非】省コピー機能用関数
  */
 
@@ -1028,9 +974,9 @@
 
 /*
- *  tcp_find_cep -- ãã¼ãçªå·ãã TCP éä¿¡ç«¯ç¹ãå¾ãã
+ *  tcp_find_cep -- ポート番号から TCP 通信端点を得る。
  *
- *    æ³¨æ: myaddr ã¯ã
- *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
- *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ *    注意: myaddr は、
+ *          TINET-1.2 からネットワークバイトオーダ、
+ *          TINET-1.1 までは、ホストバイトオーダ
  */
 extern T_TCP_CEP *tcp_find_cep (T_IN_ADDR *dstaddr,  uint16_t dstport,
@@ -1038,10 +984,10 @@
 
 /*
- *  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ç¨é¢æ°
+ *  TCP ヘッダのトレース出力機能用関数
  */
 extern void tcp_output_trace (T_NET_BUF *output, T_TCP_CEP *cep);
 extern void tcp_input_trace  (T_NET_BUF *input,  T_TCP_CEP *cep);
 
-/* TCP åºåã¿ã¹ã¯ */
+/* TCP 出力タスク */
 
 extern void	tcp_output_task(intptr_t exinf);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  UDP ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  UDP で使用するカーネルオブジェクト
  */
 
@@ -51,5 +39,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãè¡ãå ´åã«çµã¿è¾¼ãã¿ã¹ã¯ã¨ã»ããã©
+ *  ノンブロッキングコールを行う場合に組み込むタスクとセマフォ
  */
 
@@ -65,5 +53,5 @@
 	});
 
-/* ã»ããã© */
+/* セマフォ */
 
 CRE_SEM(SEM_UDP_POST_OUTPUT,	{ TA_TPRI, 0, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,16 +72,13 @@
 
 /*
- *  UDP ããããRFC768 åç
-§
+ *  UDP ヘッダ、RFC768 参照
  */
 
 typedef struct t_udp_hdr {
-	uint16_t	sport;		/* éä¿¡å
-ãã¼ãçªå·	*/
-	uint16_t	dport;		/* å®å
-ãã¼ãçªå·	*/
+	uint16_t	sport;		/* 送信元ポート番号	*/
+	uint16_t	dport;		/* 宛先ポート番号	*/
 
-	uint16_t	ulen;		/* ãã¼ã¿ã°ã©ã é·	*/
-	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	uint16_t	ulen;		/* データグラム長	*/
+	uint16_t	sum;		/* チェックサム		*/
 	} __attribute__((packed, aligned(2)))T_UDP_HDR;
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_input.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_input.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_input.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -129,6 +117,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -142,12 +129,10 @@
 
 /*
- *  udp_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
- *
- *    DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ãä»¥ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã
- *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
- *      ã»ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©
+ *  udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
+ *
+ *    DHCP_CFG が定義されているときは、以下のデータグラムを受信する。
+ *
+ *      ・あて先アドレスがブロードキャスト
+ *      ・ローカルアドレスが未定義
  */
 
@@ -168,11 +153,9 @@
 
 /*
- *  udp_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
- *
- *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
- *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+ *  udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
+ *
+ *    以下の場合もデータグラムを受信する。
+ *
+ *      ・あて先アドレスがブロードキャスト
  */
 
@@ -194,11 +177,9 @@
 
 /*
- *  udp_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
- *
- *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
- *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+ *  udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
+ *
+ *    以下の場合もデータグラムを受信する。
+ *
+ *      ・あて先アドレスがブロードキャスト
  */
 
@@ -222,11 +203,9 @@
 
 /*
- *  udp_dstaddr_accept -- UDP ã®ãã¦å
-ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
- *
- *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
- *
- *      ã»ãã¦å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ã
+ *  udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
+ *
+ *    以下の場合もデータグラムを受信する。
+ *
+ *      ・あて先アドレスがマルチキャスト
  */
 
@@ -243,6 +222,5 @@
 
 /*
- *  udp_input -- UDP ã®å
-¥åé¢æ°
+ *  udp_input -- UDP の入力関数
  */
 
@@ -263,5 +241,5 @@
 	NET_COUNT_MIB(udp_stats.udpInDatagrams, 1);
 
-	/* ãããé·ããã§ãã¯ããã*/
+	/* ヘッダ長をチェックする。*/
 	if (input->len < hlen + UDP_HDR_SIZE)
 		goto buf_rel;
@@ -269,11 +247,10 @@
 	udph = (T_UDP_HDR *)(input->buf + *offp);
 
-	/* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ãã */
+	/* データグラム長をチェックする */
 	ulen  = ntohs(udph->ulen);
 	if (ulen != input->len - hlen)
 		goto buf_rel;
 
-	/* å®å
-ãã¼ãã 0 ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ãããRFC768 */
+	/* 宛先ポートが 0 のデータグラムは破棄する。RFC768 */
 	if (udph->dport == 0)
 		goto buf_rel;
@@ -281,5 +258,5 @@
 #ifdef UDP_CFG_IN_CHECKSUM
 
-	/* ãã§ãã¯ãµã ããã§ãã¯ãã */
+	/* チェックサムをチェックする */
 	if (udph->sum && IN_CKSUM(input, IPPROTO_UDP, *offp, ulen) != 0)
 		goto buf_rel;
@@ -289,6 +266,5 @@
 	iph = GET_IP_HDR(input);
 
-	/* å®å
-ã¢ãã¬ã¹ã¨ãã¼ãããã§ãã¯ãã */
+	/* 宛先アドレスとポートをチェックする */
 	for (ix = tmax_udp_ccepid; ix -- > 0; ) {
 		cep = &udp_cep[ix];
@@ -298,5 +274,5 @@
 			len = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE);
 
-			if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			if (cep->rcv_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
 				if (psnd_dtq(cep->rcvqid, (intptr_t)input) != E_OK)
 					goto buf_rel;
@@ -305,11 +281,11 @@
 #ifdef UDP_CFG_NON_BLOCKING
 
-			else if (cep->rcv_p_dstaddr != NULL) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-
-				/* p_dstaddr ãè¨­å®ããã*/
+			else if (cep->rcv_p_dstaddr != NULL) {	/* ノンブロッキングコールでペンディング中 */
+
+				/* p_dstaddr を設定する。*/
 				cep->rcv_p_dstaddr->portno = ntohs(udph->sport);
 				IN_COPY_TO_HOST(&cep->rcv_p_dstaddr->ipaddr, &GET_IP_HDR(input)->src);
 
-				/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
+				/* データをバッファに移す。*/
 				memcpy(cep->rcv_data, GET_UDP_SDU(input, *offp),
 				       (size_t)(len < cep->rcv_len ? len : cep->rcv_len));
@@ -337,5 +313,5 @@
 			else if (IS_PTR_DEFINED(cep->callback)) {
 
-				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+				/* コールバック関数を呼び出す。*/
 				cep->cb_netbuf = input;
 
@@ -351,7 +327,6 @@
 
 				/*
-				 *  ãããã¯ã¼ã¯ãããã¡ããã®ã¾ã¾ã§ããã°ãã³ã¼ã«ããã¯é¢æ°å
-ã§
-				 *  ãã¼ã¿ãèª­ã¿åºããªãã£ããã¨ã«ãªãã®ã§ãæ¨ã¦ãã
+				 *  ネットワークバッファがそのままであれば、コールバック関数内で
+				 *  データを読み出さなかったことになるので、捨てる。
 				 */
 				if (cep->cb_netbuf != NULL)
@@ -369,10 +344,10 @@
 #if defined(SUPPORT_INET4)
 
-	/* ã­ã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/
+	/* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/
 	if (ntohl(iph->dst) == IF_GET_IFNET()->in_ifaddr.addr) {
 		syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
 
 		icmp_error(ICMP4_UNREACH_PORT, input);
-		/* icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ä¸ã¸æããã*/
+		/* icmp_error では、ネットワークバッファ input を返却しないので下へ抜ける。*/
 		}
 
@@ -381,9 +356,9 @@
 #if defined(SUPPORT_INET6)
 
-	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã¯ ICMP ã¨ã©ã¼ãéç¥ããªãã*/
+	/* マルチキャストアドレスに届いたデータグラムは ICMP エラーを通知しない。*/
 	if (!IN6_IS_ADDR_MULTICAST(&iph->dst)) {
 		syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
 
-		/* icmp6_error ã§ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããã*/
+		/* icmp6_error で、ネットワークバッファ input を返却する。*/
 		icmp6_error(input, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0);
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_output.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_output.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_output.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -127,5 +115,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -133,6 +121,6 @@
 
 /*
- *  UDP åºåã¿ã¹ã¯
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ãä½¿ç¨ããã
+ *  UDP 出力タスク
+ *  ノンブロッキングコールを組み込んだとき使用する。
  */
 
@@ -148,5 +136,5 @@
 #endif	/* of #ifdef UDP_CFG_OUT_CHECKSUM */
 
-	/* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/
+	/* IP データグラムを割り当てる。*/
 	if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + cep->snd_len), 0,
 	                             &cep->snd_p_dstaddr->ipaddr,
@@ -157,6 +145,5 @@
 		}
 
-	/* UDP ãããã«æ
-å ±ãè¨­å®ããã*/
+	/* UDP ヘッダに情報を設定する。*/
 	udph		= GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET);
 	udph->sport	= htons(cep->myaddr.portno);
@@ -165,5 +152,5 @@
 	udph->sum	= 0;
 
-	/* ãã¼ã¿ãã³ãã¼ããã*/
+	/* データをコピーする。*/
 	memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET),
 	       cep->snd_data, (size_t)cep->snd_len);
@@ -174,6 +161,5 @@
 	               (uint_t)(UDP_HDR_SIZE + cep->snd_len));
 
-	/* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå
-¥ããã*/
+	/* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/
 	if (sum == 0)
 		sum = UINT_C(0xffff);
@@ -182,8 +168,8 @@
 #endif/* of #ifdef UDP_CFG_OUT_CHECKSUM */
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	/* ネットワークバッファ長を調整する。*/
 	output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE + cep->snd_len);
 
-	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	/* ネットワーク層 (IP) の出力関数を呼び出す。*/
 	if ((error = IP_OUTPUT(output, TMO_UDP_OUTPUT)) != E_OK)
 		goto err_ret;
@@ -236,6 +222,6 @@
 
 /*
- *  UDP åºåã¿ã¹ã¯
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ãä½¿ç¨ããã
+ *  UDP 出力タスク
+ *  ノンブロッキングコールを組み込んだとき使用する。
  */
 
@@ -252,5 +238,5 @@
 #if defined(SUPPORT_INET6) && !defined(SUPPORT_TCP)
 
-	/* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ãå®è¡ããã*/
+	/* IPv6 のステートレス・アドレス自動設定を実行する。*/
 	in6_if_up(IF_GET_IFNET());
 
@@ -259,6 +245,5 @@
 	while (true) {
 
-		/* åºåããã¹ããããã¾ã§å¾
-ã¤ã*/
+		/* 出力がポストされるまで待つ。*/
 		syscall(wai_sem(SEM_UDP_POST_OUTPUT));
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_subr.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_subr.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -125,11 +113,11 @@
 
 /*
- *  å±æå¤æ°
+ *  局所変数
  */
 
-static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO;	/* èªåå²ãå½ã¦çªå·	*/
+static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO;	/* 自動割り当て番号	*/
 
 /*
- *  udp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨­å®ããã
+ *  udp_alloc_auto_port -- 自動割り当てポート番号を設定する。
  */
 
@@ -167,5 +155,5 @@
 
 /*
- *  udp_alloc_port -- æå®ããããã¼ãçªå·ãè¨­å®ããã
+ *  udp_alloc_port -- 指定されたポート番号を設定する。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -81,5 +69,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµè¾¼ã¾ãªãå ´åã«ãªã³ã¯ãããé¢æ°ã®å®ç¾©
+ *  ノンブロッキングコールを組込まない場合にリンクされる関数の定義
  */
 
@@ -131,5 +119,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ã®åãæ¿ããã¯ã­
+ *  IPv4 と IPv6 の切り替えマクロ
  */
 
@@ -151,7 +139,6 @@
 
 /*
- *  TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå
-¨ã¦ã®æ©è½ã
- *  ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ã­ãæå¹ã«ããã
+ *  TINET をライブラリ化しない場合は、全ての機能を
+ *  オブジェクトファイルに出力するため、マクロを有効にする。
  */
 
@@ -174,5 +161,5 @@
 
 /*
- *  udp_send_data -- ãã±ããéä¿¡ã®ä¸»è¦é¨
+ *  udp_send_data -- パケット送信の主要部
  */
 
@@ -192,9 +179,9 @@
 	NET_COUNT_UDP(net_count_udp.out_packets, 1);
 
-	/* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/
+	/* IP データグラム割り当ての時間を tmout から減ずる。*/
 	if (!(tmout == TMO_POL || tmout == TMO_FEVR))
 		syscall(get_tim(&before));
 
-	/* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/
+	/* IP データグラムを割り当てる。*/
 	if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + len), 0,
 	                             &p_dstaddr->ipaddr,
@@ -204,5 +191,5 @@
 		goto err_ret;
 
-	/* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/
+	/* IP データグラム割り当ての時間を tmout から減ずる。*/
 	if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
 		syscall(get_tim(&after));
@@ -215,6 +202,5 @@
 		}
 
-	/* UDP ãããã«æ
-å ±ãè¨­å®ããã*/
+	/* UDP ヘッダに情報を設定する。*/
 	udph		= GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET);
 	udph->sport	= htons(cep->myaddr.portno);
@@ -223,5 +209,5 @@
 	udph->sum	= 0;
 
-	/* ãã¼ã¿ãã³ãã¼ããã*/
+	/* データをコピーする。*/
 	memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET), data, (size_t)len);
 
@@ -230,6 +216,5 @@
 	sum = IN_CKSUM(output, IPPROTO_UDP, IF_IP_UDP_HDR_OFFSET, (uint_t)(UDP_HDR_SIZE + len));
 
-	/* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå
-¥ããã*/
+	/* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/
 	if (sum == 0)
 		sum = 0xffff;
@@ -238,8 +223,8 @@
 #endif	/* of #ifdef UDP_CFG_OUT_CHECKSUM */
 
-	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	/* ネットワークバッファ長を調整する。*/
 	output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE + len);
 
-	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	/* ネットワーク層 (IP) の出力関数を呼び出す。*/
 	if ((error = IP_OUTPUT(output, tmout)) == E_OK) {
 		NET_COUNT_MIB(udp_stats.udpOutDatagrams, 1);
@@ -257,5 +242,5 @@
 
 /*
- *  udp_cre_cep -- UDP éä¿¡ç«¯ç¹ã®çæãæ¡å¼µæ©è½ã
+ *  udp_cre_cep -- UDP 通信端点の生成【拡張機能】
  */
 
@@ -270,28 +255,28 @@
 	ER		error;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* pk_ccep ã NULL ãªãã¨ã©ã¼ */
+	/* pk_ccep が NULL ならエラー */
 	if (pk_ccep == NULL)
 		return E_PAR;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (VALID_UDP_CEP(cep))
 		return E_OBJ;
 
-	/* UDP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* UDP 通信端点が、動的生成用でなければエラー */
 	if (!DYNAMIC_UDP_CEP(cep))
 		return E_ID;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 * UDP éä¿¡ç«¯ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼
+	 * UDP 通信端点をチェックする。生成済みであればエラー
 	 */
 	if (VALID_UDP_CEP(cep))
@@ -300,5 +285,5 @@
 
 		/*
-		 *  èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+		 *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
 		 */
 		if (pk_ccep->myaddr.portno == UDP_PORTANY)
@@ -309,16 +294,15 @@
                 if (error == E_OK) {
 
-			/* UDP éä¿¡ç«¯ç¹çææ
-å ±ãã³ãã¼ããã*/
-			cep->cepatr        = pk_ccep->cepatr;			/* éä¿¡ç«¯ç¹å±æ§		*/
-			cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr;		/* èªåã®ã¢ãã¬ã¹	*/
-			cep->callback      = (void*)pk_ccep->callback;		/* ã³ã¼ã«ããã¯		*/
-
-			/* UDP éä¿¡ç«¯ç¹ãçææ¸ã¿ã«ããã*/
+			/* UDP 通信端点生成情報をコピーする。*/
+			cep->cepatr        = pk_ccep->cepatr;			/* 通信端点属性		*/
+			cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr;		/* 自分のアドレス	*/
+			cep->callback      = (void*)pk_ccep->callback;		/* コールバック		*/
+
+			/* UDP 通信端点を生成済みにする。*/
 			cep->flags |= UDP_CEP_FLG_VALID;
 			}
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -331,5 +315,5 @@
 
 /*
- *  udp_del_cep -- UDP éä¿¡ç«¯ç¹ã®åé¤ãæ¡å¼µæ©è½ã
+ *  udp_del_cep -- UDP 通信端点の削除【拡張機能】
  */
 
@@ -344,25 +328,25 @@
 	ER		error;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
-	/* UDP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	/* UDP 通信端点が、動的生成用でなければエラー */
 	if (!DYNAMIC_UDP_CEP(cep))
 		return E_ID;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	/*
-	 * UDP éä¿¡ç«¯ç¹ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼
-	 * ã»æªçæã
+	 * UDP 通信端点をチェックする。未生成の場合はエラー
+	 * ・未生成。
 	 */
 	if (!VALID_UDP_CEP(cep))
@@ -372,10 +356,10 @@
 		udp_can_rcv(cep, E_DLT);
 
-		/* UDP éä¿¡ç«¯ç¹ãæªçæã«ããã*/
+		/* UDP 通信端点を未生成にする。*/
 		cep->flags &= ~UDP_CEP_FLG_VALID;
 		error = E_OK;
 		}
 
-	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点のロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -390,5 +374,5 @@
 
 /*
- *  udp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ã­ã£ã³ã»ã«ãæ¨æºæ©è½ã
+ *  udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
  */
 
@@ -399,23 +383,23 @@
 	ER		error = E_OK, snd_err, rcv_err;
 
-	/* API æ©è½ã³ã¼ãããã§ãã¯ããã*/
+	/* API 機能コードをチェックする。*/
 	if (!VALID_TFN_UDP_CAN(fncd))
 		return E_PAR;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
-	if (fncd == TFN_UDP_ALL) {	/* TFN_UDP_ALL ã®å¦ç */
+	if (fncd == TFN_UDP_ALL) {	/* TFN_UDP_ALL の処理 */
 
 		snd_err = udp_can_snd(cep, E_RLWAI);
@@ -423,6 +407,6 @@
 
 		/*
-		 *  snd_err ã¨ rcv_err ã®ã©ã¡ãã EV_NOPND
-		 *  ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+		 *  snd_err と rcv_err のどちらも EV_NOPND
+		 *  なら、ペンディングしていないのでエラー
 		 */
 		if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
@@ -440,9 +424,9 @@
 			}
 		}
-	else if (fncd == TFN_UDP_SND_DAT) {	/* éä¿¡å¦çã®ã­ã£ã³ã»ã« */
+	else if (fncd == TFN_UDP_SND_DAT) {	/* 送信処理のキャンセル */
 		if ((error = udp_can_snd(cep, E_RLWAI)) == EV_NOPND)
 			error = E_OBJ;
 		}
-	else if (fncd == TFN_UDP_RCV_DAT) {	/* åä¿¡å¦çã®ã­ã£ã³ã»ã« */
+	else if (fncd == TFN_UDP_RCV_DAT) {	/* 受信処理のキャンセル */
 		if ((error = udp_can_rcv(cep, E_RLWAI)) == EV_NOPND)
 			error = E_OBJ;
@@ -451,5 +435,5 @@
 		error = E_PAR;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+	/* 通信端点をロックを解除する。*/
 	syscall(sig_sem(cep->semid_lock));
 
@@ -460,7 +444,7 @@
 
 /*
- *  udp_set_opt -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
+ *  udp_set_opt -- UDP 通信端点オプションの設定【拡張機能】
  *
- *  æ³¨æ: è¨­å®å¯è½ãª UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
  */
 
@@ -474,12 +458,12 @@
 	T_UDP_CEP	*cep;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
@@ -493,7 +477,7 @@
 
 /*
- *  udp_get_opt -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
+ *  udp_get_opt -- UDP 通信端点オプションの設定【拡張機能】
  *
- *  æ³¨æ: è¨­å®å¯è½ãª UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
  */
 
@@ -507,12 +491,12 @@
 	T_UDP_CEP	*cep;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
@@ -534,5 +518,5 @@
 
 /*
- *  udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ã­ã£ã³ã»ã«
+ *  udp_can_snd -- ペンディングしている送信のキャンセル
  */
 
@@ -540,11 +524,9 @@
 udp_can_snd (T_UDP_CEP *cep, ER error)
 {
-	if (cep->snd_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-
-#ifdef UDP_CFG_EXTENTIONS
-
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¨­å®ããã*/
+	if (cep->snd_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
+
+#ifdef UDP_CFG_EXTENTIONS
+
+		/* 待ち中に発生したエラー情報を設定する。*/
 		cep->error = error;
 
@@ -554,5 +536,5 @@
 		cep->snd_tskid = TA_NULL;
 		}
-	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+	else					/* どちらでもないならペンディングしていない */
 		error = EV_NOPND;
 
@@ -565,5 +547,5 @@
 
 /*
- *  udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ã­ã£ã³ã»ã«
+ *  udp_can_rcv -- ペンディングしている受信のキャンセル
  */
 
@@ -571,11 +553,9 @@
 udp_can_rcv (T_UDP_CEP *cep, ER error)
 {
-	if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-
-#ifdef UDP_CFG_EXTENTIONS
-
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¨­å®ããã*/
+	if (cep->rcv_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
+
+#ifdef UDP_CFG_EXTENTIONS
+
+		/* 待ち中に発生したエラー情報を設定する。*/
 		cep->error = error;
 
@@ -585,5 +565,5 @@
 		cep->rcv_tskid = TA_NULL;
 		}
-	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+	else					/* どちらでもないならペンディングしていない */
 		error = EV_NOPND;
 
@@ -596,5 +576,5 @@
 
 /*
- *  udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã
+ *  udp_snd_dat -- パケットの送信【標準機能】
  */
 
@@ -605,25 +585,25 @@
 	ER		error;
 
-	/* p_dstaddr ã¾ãã¯ data ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_dstaddr または data が NULL か、tmout が TMO_NBLK ならエラー */
 	if (p_dstaddr == NULL || data == NULL || tmout == TMO_NBLK)
 		return E_PAR;
 
-	/* ãã¼ã¿é·ããã§ãã¯ããã*/
+	/* データ長をチェックする。*/
 	if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU)
 		return E_PAR;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
 	/*
-	 *  èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+	 *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
 	 */
 	if (cep->myaddr.portno == UDP_PORTANY) {
@@ -632,39 +612,35 @@
 		}
 	
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	if (cep->snd_tskid != TA_NULL) {
 
-		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+		/* 非ノンブロッキングコールでペンディング中 */
 		error = E_QOVR;
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 		}
 	else {
-		/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+		/* 現在のタスク識別子を記録する。*/
 		get_tid(&(cep->snd_tskid));
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ããªã»ããããã*/
+		/* 待ち中に発生したエラー情報をリセットする。*/
 		cep->error = E_OK;
 
 #endif	/* of #ifdef UDP_CFG_EXTENTIONS */
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
-		/* ãã±ãããéä¿¡ããã*/
+		/* パケットを送信する。*/
 		error = udp_send_data(cep, p_dstaddr, data, len, tmout);
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¿ãã*/
+		/* 待ち中に発生したエラー情報を返す。*/
 		if (error == E_RLWAI)
 			error = cep->error;
@@ -681,5 +657,5 @@
 
 /*
- *  udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã
+ *  udp_rcv_dat -- パケットの受信【標準機能】
  */
 
@@ -693,57 +669,52 @@
 	uint_t		ulen, uhoff;
 
-	/* p_dstaddr ã¾ãã¯ data ã NULL ãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	/* p_dstaddr または data が NULL 、len < 0 か、tmout が TMO_NBLK ならエラー */
 	if (p_dstaddr == NULL || data == NULL || len < 0 || tmout == TMO_NBLK)
 		return E_PAR;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
-	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	/* 通信端点をロックする。*/
 	syscall(wai_sem(cep->semid_lock));
 
 	if (cep->rcv_tskid != TA_NULL) {
 
-		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+		/* 非ノンブロッキングコールでペンディング中 */
 		error = E_QOVR;
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 		}
 	else {
 
-		/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+		/* 現在のタスク識別子を記録する。*/
 		get_tid(&(cep->rcv_tskid));
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ããªã»ããããã*/
+		/* 待ち中に発生したエラー情報をリセットする。*/
 		cep->error = E_OK;
 
 #endif	/* of #ifdef UDP_CFG_EXTENTIONS */
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 
-		/* å
-¥åãããã¾ã§å¾
-ã¤ã*/
+		/* 入力があるまで待つ。*/
 		if (cep->cb_netbuf != NULL) {
 
 			/*
-			 *  ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸­ãã
-			 *  udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã
-			 *  ãã§ã«å
-¥åæ¸ã¿ã§ããã
+			 *  ここにくる場合は、コールバック関数の中から
+			 *  udp_rcv_dat を呼び出していることになり、
+			 *  すでに入力済みである。
 			 */
 			input = cep->cb_netbuf;
@@ -754,7 +725,5 @@
 #ifdef UDP_CFG_EXTENTIONS
 
-			/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¿ãã*/
+			/* 待ち中に発生したエラー情報を返す。*/
 			if (error == E_RLWAI)
 				error = cep->error;
@@ -766,5 +735,5 @@
 			}
 
-		/* p_dstaddr ãè¨­å®ããã*/
+		/* p_dstaddr を設定する。*/
 		uhoff = (uint_t)GET_UDP_HDR_OFFSET(input);
 		udph = GET_UDP_HDR(input, uhoff);
@@ -772,5 +741,5 @@
 		IN_COPY_TO_HOST(&p_dstaddr->ipaddr, &GET_IP_HDR(input)->src);
 
-		/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
+		/* データをバッファに移す。*/
 		ulen = ntohs(udph->ulen);
 		if (ulen - UDP_HDR_SIZE > len)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq_nblk.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq_nblk.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq_nblk.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -128,5 +116,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ã®åãæ¿ããã¯ã­
+ *  IPv4 と IPv6 の切り替えマクロ
  */
 
@@ -146,7 +134,6 @@
 
 /*
- *  TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå
-¨ã¦ã®æ©è½ã
- *  ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ã­ãæå¹ã«ããã
+ *  TINET をライブラリ化しない場合は、全ての機能を
+ *  オブジェクトファイルに出力するため、マクロを有効にする。
  */
 
@@ -165,5 +152,5 @@
 
 /*
- *  udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ã­ã£ã³ã»ã«
+ *  udp_can_snd -- ペンディングしている送信のキャンセル
  */
 
@@ -171,5 +158,5 @@
 udp_can_snd (T_UDP_CEP *cep, ER error)
 {
-	if (cep->snd_p_dstaddr != NULL) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	if (cep->snd_p_dstaddr != NULL) {	/* ノンブロッキングコールでペンディング中 */
 		if (IS_PTR_DEFINED(cep->callback))
 
@@ -188,11 +175,9 @@
 		cep->snd_p_dstaddr = NULL;
 		}
-	else if (cep->snd_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	else if (cep->snd_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¨­å®ããã*/
+		/* 待ち中に発生したエラー情報を設定する。*/
 		cep->error = error;
 
@@ -202,5 +187,5 @@
 		cep->snd_tskid = TA_NULL;
 		}
-	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+	else					/* どちらでもないならペンディングしていない */
 		error = EV_NOPND;
 
@@ -213,5 +198,5 @@
 
 /*
- *  udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ã­ã£ã³ã»ã«
+ *  udp_can_rcv -- ペンディングしている受信のキャンセル
  */
 
@@ -219,5 +204,5 @@
 udp_can_rcv (T_UDP_CEP *cep, ER error)
 {
-	if (cep->rcv_p_dstaddr != NULL) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	if (cep->rcv_p_dstaddr != NULL) {	/* ノンブロッキングコールでペンディング中 */
 		if (IS_PTR_DEFINED(cep->callback))
 
@@ -236,11 +221,9 @@
 		cep->rcv_p_dstaddr = NULL;
 		}
-	else if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+	else if (cep->rcv_tskid != TA_NULL) {	/* 非ノンブロッキングコールでペンディング中 */
 
 #ifdef UDP_CFG_EXTENTIONS
 
-		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼æ
-å ±ãè¨­å®ããã*/
+		/* 待ち中に発生したエラー情報を設定する。*/
 		cep->error = error;
 
@@ -250,5 +233,5 @@
 		cep->rcv_tskid = TA_NULL;
 		}
-	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+	else					/* どちらでもないならペンディングしていない */
 		error = EV_NOPND;
 
@@ -261,5 +244,5 @@
 
 /*
- *  udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã
+ *  udp_snd_dat -- パケットの送信【標準機能】
  */
 
@@ -270,25 +253,25 @@
 	ER		error;
 
-	/* p_dstaddr ã¾ãã¯ data ã NULL ãªãã¨ã©ã¼ */
+	/* p_dstaddr または data が NULL ならエラー */
 	if (p_dstaddr == NULL || data == NULL)
 		return E_PAR;
 
-	/* ãã¼ã¿é·ããã§ãã¯ããã*/
+	/* データ長をチェックする。*/
 	if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU)
 		return E_PAR;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
 	/*
-	 *  èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+	 *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
 	 */
 	if (cep->myaddr.portno == UDP_PORTANY) {
@@ -298,26 +281,26 @@
 
 	/*
-	 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã
+	 * タイムアウトをチェックする。
 	 */
 
-	if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
+
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
 		if (cep->snd_p_dstaddr != NULL) {
 
-			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* ノンブロッキングコールでペンディング中 */
 			error = E_QOVR;
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else if (cep->snd_tskid != TA_NULL) {
 
-			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-			error = E_OBJ;
-
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 非ノンブロッキングコールでペンディング中 */
+			error = E_OBJ;
+
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
@@ -328,5 +311,5 @@
 			cep->snd_len	= len;
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 
@@ -336,34 +319,34 @@
 			}
 		}
-	else {				/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	else {				/* 非ノンブロッキングコール */
 	
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
 		if (cep->snd_p_dstaddr != NULL) {
 
-			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-			error = E_OBJ;
-
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* ノンブロッキングコールでペンディング中 */
+			error = E_OBJ;
+
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else if (cep->snd_tskid != TA_NULL) {
 
-			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* 非ノンブロッキングコールでペンディング中 */
 			error = E_QOVR;
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else {
 
-			/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+			/* 現在のタスク識別子を記録する。*/
 			get_tid(&(cep->snd_tskid));
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
-			syscall(sig_sem(cep->semid_lock));
-
-			/* ãã±ãããéä¿¡ããã*/
+			/* 通信端点をロックを解除する。*/
+			syscall(sig_sem(cep->semid_lock));
+
+			/* パケットを送信する。*/
 			error = udp_send_data(cep, p_dstaddr, data, len, tmout);
 			}
@@ -378,5 +361,5 @@
 
 /*
- *  udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã
+ *  udp_rcv_dat -- パケットの受信【標準機能】
  */
 
@@ -390,36 +373,36 @@
 	uint_t		ulen, uhoff;
 
-	/* p_dstaddr ã¾ãã¯ data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	/* p_dstaddr または data が NULL か、len < 0 ならエラー */
 	if (p_dstaddr == NULL || data == NULL || len < 0)
 		return E_PAR;
 
-	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	/* UDP 通信端点 ID をチェックする。*/
 	if (!VALID_UDP_CEPID(cepid))
 		return E_ID;
 
-	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	/* UDP 通信端点を得る。*/
 	cep = GET_UDP_CEP(cepid);
 
-	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	/* UDP 通信端点をチェックする。*/
 	if (!VALID_UDP_CEP(cep))
 		return E_NOEXS;
 
 	/*
-	 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã
+	 * タイムアウトをチェックする。
 	 */
 
-	if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	if (tmout == TMO_NBLK) {	/* ノンブロッキングコール */
+
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
 		if (cep->rcv_p_dstaddr != NULL)
 
-			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* ノンブロッキングコールでペンディング中 */
 			error = E_QOVR;
 
 		else if (cep->rcv_tskid != TA_NULL)
 
-			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* 非ノンブロッキングコールでペンディング中 */
 			error = E_OBJ;
 		else {
@@ -430,47 +413,44 @@
 			}
 
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		/* 通信端点をロックを解除する。*/
 		syscall(sig_sem(cep->semid_lock));
 		return error;
 		}
-	else {				/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
-
-		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	else {				/* 非ノンブロッキングコール */
+
+		/* 通信端点をロックする。*/
 		syscall(wai_sem(cep->semid_lock));
 
 		if (cep->rcv_p_dstaddr != NULL) {
 
-			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
-			error = E_OBJ;
-
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* ノンブロッキングコールでペンディング中 */
+			error = E_OBJ;
+
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else if (cep->rcv_tskid != TA_NULL) {
 
-			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			/* 非ノンブロッキングコールでペンディング中 */
 			error = E_QOVR;
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			/* 通信端点をロックを解除する。*/
 			syscall(sig_sem(cep->semid_lock));
 			}
 		else {
 
-			/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+			/* 現在のタスク識別子を記録する。*/
 			get_tid(&(cep->rcv_tskid));
 
-			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
-			syscall(sig_sem(cep->semid_lock));
-
-			/* å
-¥åãããã¾ã§å¾
-ã¤ã*/
+			/* 通信端点をロックを解除する。*/
+			syscall(sig_sem(cep->semid_lock));
+
+			/* 入力があるまで待つ。*/
 			if (cep->cb_netbuf != NULL) {
 
 				/*
-				 *  ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸­ãã
-				 *  udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã
-				 *  ãã§ã«å
-¥åæ¸ã¿ã§ããã
+				 *  ここにくる場合は、コールバック関数の中から
+				 *  udp_rcv_dat を呼び出していることになり、
+				 *  すでに入力済みである。
 				 */
 				input = cep->cb_netbuf;
@@ -482,5 +462,5 @@
 				}
 
-			/* p_dstaddr ãè¨­å®ããã*/
+			/* p_dstaddr を設定する。*/
 			uhoff = (uint_t)GET_UDP_HDR_OFFSET(input);
 			udph = GET_UDP_HDR(input, uhoff);
@@ -488,5 +468,5 @@
 			IN_COPY_TO_HOST(&p_dstaddr->ipaddr, &GET_IP_HDR(input)->src);
 
-			/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
+			/* データをバッファに移す。*/
 			ulen = ntohs(udph->ulen);
 			if (ulen - UDP_HDR_SIZE > len)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -84,5 +72,5 @@
 
 /*
- *  UDP ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ *  UDP ヘッダ・ペイロードアクセスマクロ
  */
 
@@ -100,5 +88,5 @@
 
 /*
- *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.1 との互換性のための定義
  */
 
@@ -113,5 +101,5 @@
 
 /*
- *  ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©
+ *  コールバック関数の定義
  */
 
@@ -119,46 +107,43 @@
 
 /*
- *  UDP éä¿¡ç«¯ç¹
- */
-
-
-/*
- *  IPv4 UDP éä¿¡ç«¯ç¹
+ *  UDP 通信端点
+ */
+
+
+/*
+ *  IPv4 UDP 通信端点
  */
 typedef struct t_udp4_cep {
 
 	/*
-	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
-	 */
-	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
-	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	t_udp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
-
-	/*
-	 * TINET ç¬èªã®ã¡ã³ã
-	 */
-	uint16_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
-	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
-	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcvqid;		/* éã³ã¼ã«ããã¯ç¨åä¿¡ã­ã¥ã¼è­å¥å­*/
-	T_NET_BUF	*cb_netbuf;	/* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/
+	 * ITRON TCP/IP API、TCP 通信端点と同じメンバ
+	 */
+	ATR		cepatr;		/* UDP 通信端点属性		*/
+	T_IPV4EP	myaddr;		/* 自分のアドレス		*/
+	t_udp_callback	callback;	/* コールバック関数		*/
+
+	/*
+	 * TINET 独自のメンバ
+	 */
+	uint16_t	flags;		/* 通信端点フラグ		*/
+	ID		semid_lock;	/* 通信端点ロック		*/
+	ID		snd_tskid;	/* 送信タスク識別子		*/
+	ID		rcv_tskid;	/* 受信タスク識別子		*/
+	ID		rcvqid;		/* 非コールバック用受信キュー識別子*/
+	T_NET_BUF	*cb_netbuf;	/* コールバック用受信ネットワークバッファ*/
 
 #ifdef UDP_CFG_NON_BLOCKING
 
-	T_IPV4EP 	*snd_p_dstaddr;	/* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
-	T_IPV4EP 	*rcv_p_dstaddr;	/* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
-	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
+	T_IPV4EP 	*snd_p_dstaddr;	/* 送信相手のアドレスへのポインタ*/
+	T_IPV4EP 	*rcv_p_dstaddr;	/* 受信相手のアドレスへのポインタ*/
+	void		*snd_data;	/* 送信データ領域の先頭アドレス	*/
+	int_t		snd_len;	/* 送信データ領域の長さ		*/
+	void		*rcv_data;	/* 受信データ領域の先頭アドレス	*/
+	int_t		rcv_len;	/* 受信データ領域の長さ		*/
 
 #endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
 
 #ifdef UDP_CFG_EXTENTIONS
-	ER		error;		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼	*/
+	ER		error;		/* 待ち中に発生したエラー	*/
 #endif
 
@@ -170,5 +155,5 @@
 
 /*
- *  IPv6 UDP éä¿¡ç«¯ç¹
+ *  IPv6 UDP 通信端点
  */
 
@@ -176,36 +161,33 @@
 
 	/*
-	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
-	 */
-	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	t_udp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
-
-	/*
-	 * TINET ç¬èªã®ã¡ã³ã
-	 */
-	uint16_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
-	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
-	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
-	ID		rcvqid;		/* éã³ã¼ã«ããã¯ç¨åä¿¡ã­ã¥ã¼è­å¥å­*/
-	T_NET_BUF	*cb_netbuf;	/* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/
+	 * ITRON TCP/IP API、TCP 通信端点と同じメンバ
+	 */
+	ATR		cepatr;		/* UDP 通信端点属性		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス		*/
+	t_udp_callback	callback;	/* コールバック関数		*/
+
+	/*
+	 * TINET 独自のメンバ
+	 */
+	uint16_t	flags;		/* 通信端点フラグ		*/
+	ID		semid_lock;	/* 通信端点ロック		*/
+	ID		snd_tskid;	/* 送信タスク識別子		*/
+	ID		rcv_tskid;	/* 受信タスク識別子		*/
+	ID		rcvqid;		/* 非コールバック用受信キュー識別子*/
+	T_NET_BUF	*cb_netbuf;	/* コールバック用受信ネットワークバッファ*/
 
 #ifdef UDP_CFG_NON_BLOCKING
 
-	T_IPV6EP 	*snd_p_dstaddr;	/* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
-	T_IPV6EP 	*rcv_p_dstaddr;	/* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
-	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
-	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
-é ­ã¢ãã¬ã¹	*/
-	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
+	T_IPV6EP 	*snd_p_dstaddr;	/* 送信相手のアドレスへのポインタ*/
+	T_IPV6EP 	*rcv_p_dstaddr;	/* 受信相手のアドレスへのポインタ*/
+	void		*snd_data;	/* 送信データ領域の先頭アドレス	*/
+	int_t		snd_len;	/* 送信データ領域の長さ		*/
+	void		*rcv_data;	/* 受信データ領域の先頭アドレス	*/
+	int_t		rcv_len;	/* 受信データ領域の長さ		*/
 
 #endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
 
 #ifdef UDP_CFG_EXTENTIONS
-	ER		error;		/* å¾
-ã¡ä¸­ã«çºçããã¨ã©ã¼	*/
+	ER		error;		/* 待ち中に発生したエラー	*/
 #endif
 
@@ -217,22 +199,21 @@
 
 /*
- *  UDP éä¿¡ç«¯ç¹ãã©ã°
- */
-
-#define UDP_CEP_FLG_POST_OUTPUT	UINT_C(0x0200)	/* éä¿¡ãéå§ããã		*/
-#define UDP_CEP_FLG_DYNAMIC	UINT_C(0x0400)	/* åççæã»åé¤å¯è½éä¿¡ç«¯ç¹ã	*/
-#define UDP_CEP_FLG_VALID	UINT_C(0x0800)	/* çææ¸ã¿ã§æå¹ãªéä¿¡ç«¯ç¹ã	*/
-
-/*
- *  ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©
- */
-
-#define	TMIN_UDP_CEPID		1	/* UDP éä¿¡ç«¯ç¹ ID ã®æå°å¤ */
+ *  UDP 通信端点フラグ
+ */
+
+#define UDP_CEP_FLG_POST_OUTPUT	UINT_C(0x0200)	/* 送信を開始する。		*/
+#define UDP_CEP_FLG_DYNAMIC	UINT_C(0x0400)	/* 動的生成・削除可能通信端点。	*/
+#define UDP_CEP_FLG_VALID	UINT_C(0x0800)	/* 生成済みで有効な通信端点。	*/
+
+/*
+ *  オブジェクト ID の最小値の定義
+ */
+
+#define	TMIN_UDP_CEPID		1	/* UDP 通信端点 ID の最小値 */
 
 #ifdef SUPPORT_MIB
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -247,5 +228,5 @@
 
 /*
- *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ *  関数シミュレーションマクロ
  */
 
@@ -265,6 +246,5 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
@@ -279,5 +259,5 @@
 
 /*
- *  TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.3 との互換性のための定義
  */
 
@@ -286,5 +266,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -297,5 +277,5 @@
 extern ER udp_alloc_port (T_UDP_CEP *cep, uint16_t portno);
 
-/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãè¡ãå ´åã«çµã¿è¾¼ãã¿ã¹ã¯ */
+/* ノンブロッキングコールを行う場合に組み込むタスク */
 
 extern void	udp_output_task(intptr_t exinf);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -82,5 +70,5 @@
 
 /*
- *  RFC2402 èªè¨¼ããã
+ *  RFC2402 認証ヘッダ
  */
 
@@ -88,9 +76,8 @@
 	uint8_t		next;	/* Next Header				*/
 	uint8_t		len;	
-	/* 4 ãªã¯ãããåä½ã®é·ãããã ãããã¼ã¿é· + 1 ãå
-¥ãã	*/
+	/* 4 オクテット単位の長さ。ただし、データ長 + 1 が入る。	*/
 	uint16_t	reserved;
 	uint32_t	spi;	/* Security Parameter Index (SPI)	*/
-	uint32_t	seq;	/* ã·ã¼ã±ã³ã¹çªå·			*/
+	uint32_t	seq;	/* シーケンス番号			*/
 	} __attribute__((packed, aligned(2)))T_IP6_AH_HDR;
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah6.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah6.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah6.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -82,5 +70,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah_input.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah_input.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah_input.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -116,9 +104,7 @@
 
 /*
- *  ah6_input -- èªè¨¼ãããã®å
-¥åé¢æ°
+ *  ah6_input -- 認証ヘッダの入力関数
  *
- *    æ¬å®è£
-ã§ã¯ããã¼ã¿ã°ã©ã ãç ´æ£ããã
+ *    本実装では、データグラムを破棄する。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/dest6.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/dest6.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/dest6.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -114,10 +102,7 @@
 
 /*
- *  dest6_input -- çµç¹ãªãã·ã§ã³ãããã®å
-¥åé¢æ°
+ *  dest6_input -- 終点オプションヘッダの入力関数
  *
- *    æ¬å®è£
-ã§ã¯ãããã£ã³ã°ä»¥å¤ã®ãªãã·ã§ã³ãå
-¨ã¦æªç¥ãªãã·ã§ã³ã¨ãã¦å¦çããã
+ *    本実装では、パディング以外のオプションを全て未知オプションとして処理する。
  */
 
@@ -131,5 +116,5 @@
 	uint8_t		*opt;
 
-	/* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/
+	/* ネットワークバッファの残りの長さをチェックする。*/
 	if (input->len - off < sizeof(T_IP6_DEST_HDR))
 		goto buf_rel;
@@ -138,5 +123,5 @@
 	len    = (desth->len + 1) << 3;
 
-	/* çµç¹ãªãã·ã§ã³ãããã®é·ãããã§ãã¯ããã*/
+	/* 終点オプションヘッダの長さをチェックする。*/
 	if (input->len < off + len)
 		goto buf_rel;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp.h	(revision 321)
@@ -6,39 +6,27 @@
  *  Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -83,14 +71,14 @@
 
 /*
- *  RFC2406 æå·åããã
+ *  RFC2406 暗号化ヘッダ
  */
 
 typedef struct t_esp_hdr {
 	int32_t	spi;	/* Security Parameter Index (SPI)	*/
-	int32_t	seq;	/* ã·ã¼ã±ã³ã¹çªå·			*/
+	int32_t	seq;	/* シーケンス番号			*/
 	} __attribute__((packed, aligned(2)))T_ESP_HDR;
 
 typedef struct t_esp_tail {
-	int8_t	padlen;	/* ããã£ã³ã°é·				*/	
+	int8_t	padlen;	/* パディング長				*/	
 	int8_t	next;	/* Next Header				*/
 	} __attribute__((packed, aligned(2)))T_ESP_TAIL;
@@ -127,5 +115,5 @@
 
 /*
- * é¢æ°
+ * 関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp6.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp6.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp6.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -82,5 +70,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp_input.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp_input.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp_input.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -118,9 +106,7 @@
 
 /*
- *  esp6_input -- æå·åãããã®å
-¥åé¢æ°
+ *  esp6_input -- 暗号化ヘッダの入力関数
  *
- *    æ¬å®è£
-ã§ã¯ããã¼ã¿ã°ã©ã ãç ´æ£ããã
+ *    本実装では、データグラムを破棄する。
  */
 
@@ -129,7 +115,6 @@
 {
 #if 0
-	*nextp = <T_ESP_TAIL ã® next ãã£ã¼ã«ãã®ä½ç½®ï¼IPv6 ãããã®å
-é ­ããã®ãªãã»ããï¼>;
-	*offp  = <æ¬¡ãããã®ä½ç½®ï¼input->buf ããã®ãªãã»ããï¼>;
+	*nextp = <T_ESP_TAIL の next フィールドの位置（IPv6 ヘッダの先頭からのオフセット）>;
+	*offp  = <次ヘッダの位置（input->buf からのオフセット）>;
 #endif
 	syscall(rel_net_buf(*inputp));
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/frag6.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/frag6.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/frag6.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -121,6 +109,5 @@
 
 /*
- *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
-å
+ *  データグラム再構成キュー配列
  */
 
@@ -129,5 +116,5 @@
 
 /*
- *  ip6_get_frag_queue -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãç²å¾ããã
+ *  ip6_get_frag_queue -- データグラム再構成キューを獲得する。
  */
 
@@ -139,8 +126,7 @@
 
 /*
- *  frag6_free_queue -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã
+ *  frag6_free_queue -- データグラム再構成キューを解放する。
  *
- *    æ³¨æ: ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
-åãã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: データグラム再構成キュー配列をロックしてから呼び出すこと。
  */
 
@@ -162,5 +148,5 @@
 
 /*
- *  frag6_timer -- ãã¼ã¿ã°ã©ã åæ§æç®¡çã¿ã¤ã
+ *  frag6_timer -- データグラム再構成管理タイマ
  */
 
@@ -184,24 +170,20 @@
 
 					/*
-					 *  å
-é ­ã®æ­çã®ãªãã»ããã 0 ã®æã®ã¿
-					 *  ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããã
+					 *  先頭の断片のオフセットが 0 の時のみ
+					 *  ICMPv6 エラーメッセージを送信する。
 					 */
 
-					/* å
-é ­ã®æ­çããã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ããå¤ãã*/
+					/* 先頭の断片をデータグラム再構成キューから外す。*/
 					ip6_frag_queue[ix] = qip6h->next_frag;
 
-					/* ãã¦å
-ã¢ãã¬ã¹ãå
-ã«æ»ãã*/
+					/* あて先アドレスを元に戻す。*/
 					GET_IP6_HDR(frag)->dst = ip6_frag_dest[ix];
 
-					/* ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+					/* ICMPv6 エラーメッセージを送信する。*/
 					icmp6_error(frag, ICMP6_TIME_EXCEEDED,
 					                  ICMP6_TIME_EXCEED_REASSEMBLY, 0);
 					}
 
-				/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã*/
+				/* データグラム再構成キューを解放する。*/
 				NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_TMOUT], 1);
 				NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_DROP], 1);
@@ -216,6 +198,5 @@
 
 /*
- *  frag6_input -- æ­çãããã®å
-¥åé¢æ°
+ *  frag6_input -- 断片ヘッダの入力関数
  */
 
@@ -241,14 +222,13 @@
 #endif	/* #ifdef IP6_CFG_FRAGMENT */
 
-	/* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/
+	/* ネットワークバッファの残りの長さをチェックする。*/
 	if (input->len - off < sizeof(T_IP6_FRAG_HDR))
 		goto buf_rel;
 
 	/* 
-	 *  å·¨å¤§ãã¤ã­ã¼ããªãã·ã§ã³ã¨æ­çããããåæã«ä½¿ç¨ãããã¨ã¯
-	 *  ã§ããªãããã¤ã­ã¼ãé·ãã 0 ãªããå·¨å¤§ãã¤ã­ã¼ããªãã·ã§ã³ã
-	 *  æå®ããã¦ãããã¨ã«ãªãã®ã§ ICMP ã§ã¨ã©ã¼ãéä¿¡è
-ã«
-	 *  éç¥ããã
+	 *  巨大ペイロードオプションと断片ヘッダを同時に使用することは
+	 *  できない。ペイロード長がが 0 なら、巨大ペイロードオプションが
+	 *  指定されていることになるので ICMP でエラーを送信者に
+	 *  通知する。
 	 */
 	ip6h = GET_IP6_HDR(input);
@@ -262,7 +242,7 @@
 
 	/*
-	 *  ãªãã»ããã 0 ã§ãæçµãã©ã°ã¡ã³ãã§ããã°ã
-	 *  åå²ä¸è¦ã®ãã¼ã¿ã°ã©ã ãªã®ã§ã
-	 *  æ¬¡ããããæãå¤æ°ãèª¿æ´ãã¦çµäºããã
+	 *  オフセットが 0 で、最終フラグメントであれば、
+	 *  分割不要のデータグラムなので、
+	 *  次ヘッダを指す変数を調整して終了する。
 	 */
 	ip6fh = (T_IP6_FRAG_HDR *)(input->buf + off);
@@ -276,5 +256,5 @@
 
 	/*
-	 *  ãã¤ã­ã¼ãé·ããã§ãã¯ããã
+	 *  ペイロード長をチェックする。
 	 */
 	if ((ip6fh->off_flag & IP6F_MORE_FRAG) && 
@@ -291,6 +271,5 @@
 
 	/*
- 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
-åãããå¯¾å¿ããã¨ã³ããªãæ¢ãã
+ 	 *  データグラム再構成キュー配列から、対応するエントリを探す。
  	 */
 	for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
@@ -310,5 +289,5 @@
 
 		/*
-	 	 *  æ­çã®æ­£å½æ§ããã§ãã¯ããã
+	 	 *  断片の正当性をチェックする。
 		 */
 		unfraglen = 0;
@@ -317,8 +296,6 @@
 
 			/*
-		 	 *  å
-¥åããæ­çãå
-é ­ã®æ­ç
-			 *  åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã
+		 	 *  入力した断片が先頭の断片
+			 *  分割できない部分の長さ unfraglen を計算する。
 			 */
 			unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
@@ -352,11 +329,10 @@
 
 		/*
-	 	 *  ip6fq == NULL ã§ããã°ãå¯¾å¿ããã¨ã³ããªã¯ç¡ãã®ã§ã
-	 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
-åã«ãã¨ã³ããªãè¿½å ããã
+	 	 *  ip6fq == NULL であれば、対応するエントリは無いので、
+	 	 *  データグラム再構成キュー配列に、エントリを追加する。
 	 	 */
 		for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
 
-			/* ç©ºãã¨ã³ããªãæ¢ãã*/
+			/* 空きエントリを探す。*/
 			if (ip6_frag_queue[ix] == NULL) {
 				ip6fq = &ip6_frag_queue[ix];
@@ -366,6 +342,6 @@
 
 		/*
-		 *  ip6fq == NULL ã§ããã°ãç©ºãã¨ã³ããªãç¡ãã®ã§ã
-		 *  ã¿ã¤ã ã¢ã¦ãï¼hlimï¼ãç­ãã¨ã³ããªãéæ¾ããã
+		 *  ip6fq == NULL であれば、空きエントリが無いので、
+		 *  タイムアウト（hlim）が短いエントリを開放する。
 		 */
  		if (ip6fq == NULL) {
@@ -385,5 +361,5 @@
 
 		/*
-		 *  ã¨ã³ããªãè¨­å®ããã
+		 *  エントリを設定する。
 		 */
 		*ip6fq = input; 
@@ -398,5 +374,5 @@
 
 		/*
-	 	 *  æ­çã®æ­£å½æ§ããã§ãã¯ããã
+	 	 *  断片の正当性をチェックする。
 		 */
 		unfraglen = 0;
@@ -405,7 +381,6 @@
 
 			/*
-		 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®æåã®æ­çãå
-é ­ã®æ­ç
-			 *  åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã
+		 	 *  データグラム再構成キューの最初の断片が先頭の断片
+			 *  分割できない部分の長さ unfraglen を計算する。
 			 */
 			unfraglen = (GET_QIP6_HDR(*ip6fq)->foff - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
@@ -416,8 +391,6 @@
 
 			/*
-		 	 *  å
-¥åããæ­çãå
-é ­ã®æ­ç
-			 *  åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã
+		 	 *  入力した断片が先頭の断片
+			 *  分割できない部分の長さ unfraglen を計算する。
 			 */
 			unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
@@ -453,18 +426,15 @@
 
 			/*
-		 	 *  å
-¥åããæ­çãå
-é ­ã®æ­ç
-		 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®æå¾ã®æ­çãã
-		 	 *  ãã¼ã¿ã°ã©ã ã®æå¤§é·ãè¶
-ãã¦ããªãããã§ãã¯ããã
-			 */
-
-			/* æå¾ã®æ­çãæ¢ç´¢ããã*/
+		 	 *  入力した断片が先頭の断片
+		 	 *  データグラム再構成キューの最後の断片が、
+		 	 *  データグラムの最大長を超えていないかチェックする。
+			 */
+
+			/* 最後の断片を探索する。*/
 			next = *ip6fq;
 			while ((qip6h = GET_QIP6_HDR(next))->next_frag != NULL)
 				next = qip6h->next_frag;
 
-			/* æå¾ã®æ­çã®ãªãã»ããã¨æ­çãµã¤ãºãè¨ç®ããã*/
+			/* 最後の断片のオフセットと断片サイズを計算する。*/
 			qip6fh = (T_IP6_FRAG_HDR *)(next->buf + qip6h->foff);
 			fragoff = ntohs(qip6fh->off_flag & IP6F_OFF_MASK);
@@ -473,8 +443,6 @@
 
 				/*
-				 *  ãã¼ã¿ã°ã©ã ã®æå¤§é·ãè¶
-ãã¦ããå ´åã¯ã
-			 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼å
-¨ä½ãç ´æ£ããã
+				 *  データグラムの最大長を超えている場合は、
+			 	 *  データグラム再構成キュー全体を破棄する。
 			 	 */
 				frag6_free_queue(ip6fq);
@@ -484,12 +452,9 @@
 			}
 
-		/* ECN ã®æ­£å½æ§ãã§ãã¯ã¯æªå®è£
- */
-
-		/*
-		 *  æ­çãã¨ã³ããªã«æ¿å
-¥ããã
-	 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãããå
-¥åããæ­çããåã®æ­çãæ¢ç´¢ããã
+		/* ECN の正当性チェックは未実装 */
+
+		/*
+		 *  断片をエントリに挿入する。
+	 	 *  データグラム再構成キューから、入力した断片より前の断片を探索する。
 		 */
 		prev = NULL;
@@ -505,12 +470,8 @@
 
 		/*
-		 *  prev ã¯ãå
-¥åããæ­çããåã®æ­çããã ã NULL ã®å ´åã¯ã
-		 *  å
-¥åããæ­çããã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®ä¸­ã§æãåã®æ­çã
-		 *  next ã¯ãå
-¥åããæ­çããå¾ã®æ­çããã ã NULL ã®å ´åã¯ã
-		 *  å
-¥åããæ­çããã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®ä¸­ã§æãå¾ã®æ­çã
+		 *  prev は、入力した断片より前の断片。ただし NULL の場合は、
+		 *  入力した断片がデータグラム再構成キューの中で最も前の断片。
+		 *  next は、入力した断片より後の断片。ただし NULL の場合は、
+		 *  入力した断片がデータグラム再構成キューの中で最も後の断片。
 		 */
 		fragoff = ntohs(ip6fh->off_flag & IP6F_OFF_MASK);
@@ -518,6 +479,5 @@
 
 			/*
-			 *  åã®æ­çã¨ãå
-¥åããæ­çãéãªã£ã¦ããªãããã§ãã¯ããã
+			 *  前の断片と、入力した断片が重なっていないかチェックする。
 			 *
 			 *    qfragoff
@@ -542,6 +502,5 @@
 			if (diff > 0) {
 
-				/* éãªã£ã¦ããã°ãå
-¥åããæ­çãç ´æ£ãã¦çµäºããã*/
+				/* 重なっていれば、入力した断片を破棄して終了する。*/
 				syscall(rel_net_buf(input));
 				goto sig_ret;
@@ -552,6 +511,5 @@
 
 			/*
-			 *  å¾ã®æ­çã¨ãå
-¥åããæ­çãéãªã£ã¦ããªãããã§ãã¯ããã
+			 *  後の断片と、入力した断片が重なっていないかチェックする。
 			 *
 			 *    fragoff
@@ -576,6 +534,5 @@
 			if (diff > 0) {
 
-				/* éãªã£ã¦ããã°ãå
-¥åããæ­çãç ´æ£ãã¦çµäºããã*/
+				/* 重なっていれば、入力した断片を破棄して終了する。*/
 				syscall(rel_net_buf(input));
 				goto sig_ret;
@@ -583,6 +540,5 @@
 			}
 
-		/* å
-¥åããæ­çãè¨­å®ããã*/
+		/* 入力した断片を設定する。*/
 		qip6h  = GET_QIP6_HDR(input);
 		qip6h->foff = off;
@@ -598,6 +554,5 @@
 
 		/*
-		 *  å
-¨ã¦ã®æ­çãåä¿¡ããããã§ãã¯ããã
+		 *  全ての断片を受信したかチェックする。
 		 */
 		plen = 0;
@@ -608,5 +563,5 @@
 			if (ntohs(qip6fh->off_flag & IP6F_OFF_MASK) != plen) {
 
-				/* æ­çãé£ç¶ãã¦ããªãã*/
+				/* 断片が連続していない。*/
 				goto sig_ret;
 				}
@@ -616,14 +571,13 @@
 		if (ntohs(qip6fh->off_flag & IP6F_MORE_FRAG) != 0) {
 
-			/* æå¾ã®æ­çãåä¿¡ãã¦ããªãã*/
+			/* 最後の断片を受信していない。*/
 			goto sig_ret;
 			}
 
 		/*
-		 *  å
-¨ã¦ã®æ­çãåä¿¡ããã®ã§ãåæ§æããã
-		 */
-
-		/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+		 *  全ての断片を受信したので、再構成する。
+		 */
+
+		/* ネットワークバッファを獲得する。*/
 		qip6h  = GET_QIP6_HDR(*ip6fq);
 		qip6fh = (T_IP6_FRAG_HDR *)((*ip6fq)->buf + qip6h->foff);
@@ -631,7 +585,6 @@
 
 			/*
-			 *  æ­çãããã®ç´åã®ãããã® NEXT ãã£ã¼ã«ãã®ã¢ãã¬ã¹ãç²å¾ãã
-			 *  å
-ã«æ»ãã
+			 *  断片ヘッダの直前のヘッダの NEXT フィールドのアドレスを獲得し、
+			 *  元に戻す。
 			 */
 			if ((prev_next = ip6_get_prev_hdr(*ip6fq, qip6h->foff)) == NULL) {
@@ -646,26 +599,21 @@
 
 			/*
-			 *  IPv6 ãããã¨åå²ã§ããªãé¨åã
-			 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®ä¸­ã®å
-é ­ã®æ­çããã³ãã¼ããã
+			 *  IPv6 ヘッダと分割できない部分を
+			 *  データグラム再構成キューの中の先頭の断片からコピーする。
 			 */
 			memcpy(input->buf, (*ip6fq)->buf, qip6h->foff);
 
-			/* éä¿¡å
-ã¢ãã¬ã¹ãå
-ã«æ»ãã*/
+			/* 送信先アドレスを元に戻す。*/
 			ip6h = GET_IP6_HDR(input);
 			ip6h->dst = ip6_frag_dest[ip6fq - ip6_frag_queue];
 
-			/* offp ããåæ§æããæ­çã®å
-é ­ã«è¨­å®ããã*/
+			/* offp を、再構成した断片の先頭に設定する。*/
 			*offp = qip6h->foff;
 
-			/* ãããã¯ã¼ã¯ãããã¡é·ãè¨­å®ããã*/
+			/* ネットワークバッファ長を設定する。*/
 			input->len = plen + qip6h->foff;
 
 			/*
-			 *  å
-¨ã¦ã®æ­çãã³ãã¼ããã
+			 *  全ての断片をコピーする。
 			 */
 			frag = *ip6fq;
@@ -680,5 +628,5 @@
 				}
 
-			/* ãã¤ã­ã¼ãé·ãè¨­å®ããã*/
+			/* ペイロード長を設定する。*/
 			ip6h->plen = htons(plen);
 
@@ -692,5 +640,5 @@
 			}
 
-		/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã*/
+		/* データグラム再構成キューを解放する。*/
 		frag6_free_queue(ip6fq);
  		}
@@ -703,9 +651,7 @@
 
 	/*
-	 *  ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ããªãå ´åã¯ãå
-¨æ­çãç ´æ£ãã
-	 *  æå¾ã®æ­çãåä¿¡ããã¨ãã
-	 *  ICMP ã¨ã©ã¼ãéä¿¡è
-ã«éç¥ããã
+	 *  データグラムの分割・再構成行わない場合は、全断片を破棄し、
+	 *  最後の断片を受信したとき、
+	 *  ICMP エラーを送信者に通知する。
 	 */
 	if ((ip6fh->off_flag & IP6F_MORE_FRAG) == 0) {
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/icmp6.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/icmp6.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/icmp6.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -155,5 +143,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -161,6 +149,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -170,5 +157,5 @@
 
 /*
- *  icmp6_output -- ICMP6 ãã±ãããéä¿¡ããã
+ *  icmp6_output -- ICMP6 パケットを送信する。
  */
 
@@ -182,8 +169,6 @@
 
 	/*
-	 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 *  宛先アドレスにふさわしい送信元アドレスを、
+	 *  ネットワークインタフェースから探索して利用する。
 	 */
 	ip6h = GET_IP6_HDR(output);
@@ -197,10 +182,10 @@
 	icmp6h = GET_ICMP6_HDR(output, off);
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	icmp6h->sum = 0;
 	icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)icmp6h - output->buf, 
 	                        ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE));
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS],
 	               output->len - GET_IF_IP6_HDR_SIZE(output));
@@ -211,5 +196,5 @@
 
 /*
- *  icmp6_echo_request -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç
+ *  icmp6_echo_request -- エコー要求を受信したときの処理
  */
 
@@ -229,13 +214,13 @@
 
 	/*
-	 *  IPv6 ãããã¨ ICMPv6 ãããéã®æ¡å¼µããããé¤å»ããã
+	 *  IPv6 ヘッダと ICMPv6 ヘッダ間の拡張ヘッダを除去する。
 	 */
 	diff = off - IF_IP6_HDR_SIZE;
 	if (diff > 0) {
-		/* ICMPv6 ããããåã«è©°ããã*/
+		/* ICMPv6 ヘッダを前に詰める。*/
 		memmove(input->buf + IF_IP6_HDR_SIZE, input->buf + off, input->len - off);
 		off = IF_IP6_HDR_SIZE;
 
-		/* ãã¤ã­ã¼ãé·ãèª¿æ´ããã*/
+		/* ペイロード長を調整する。*/
 		ip6h->plen  = htons(ntohs(ip6h->plen) - diff);
 		input->len -= diff;
@@ -250,13 +235,10 @@
 
 	/*
-	 *  ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (128) ãã
-	 *  ã¨ã³ã¼å¿ç­ (129) ã«å¤æ´ãã¦éãè¿ãã
+	 *  メッセージの型をエコー要求 (128) から
+	 *  エコー応答 (129) に変更して送り返す。
 	 */
 	icmp6h->type = ICMP6_ECHO_REPLY;
 
-	/* IPv6 ãããã®çºä¿¡å
-ã¢ãã¬ã¹ã¨å®å
-ã¢ãã¬ã¹ãå
-¥æ¿ããã*/
+	/* IPv6 ヘッダの発信元アドレスと宛先アドレスを入替える。*/
 	dst 	  = ip6h->dst;
 	ip6h->dst = ip6h->src;
@@ -264,11 +246,7 @@
 
 	/*
-	 *  å
-ã®å®å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãã®å ´åã¯ã
-	 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 *  元の宛先アドレスがマルチキャストの場合は、
+	 *  宛先アドレスにふさわしい送信元アドレスを、
+	 *  ネットワークインタフェースから探索して利用する。
 	 */
 	if (IN6_IS_ADDR_MULTICAST(&dst)) {
@@ -281,14 +259,14 @@
 		}
 
-	/* æ¬¡ãããã¨ããããªããããè¨­å®ããã*/
+	/* 次ヘッダとホップリミットを設定する。*/
 	ip6h->next = IPPROTO_ICMPV6;
 	ip6h->hlim = IP_DEFTTL;
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	icmp6h->sum = 0;
 	icmp6h->sum = in6_cksum(input, IPPROTO_ICMPV6, (uint8_t*)icmp6h - input->buf, 
 	                        ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE));
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS],
 	               input->len - GET_IF_IP6_HDR_SIZE(input));
@@ -300,5 +278,5 @@
 
 /*
- *  icmp6_notify_error -- ã¨ã©ã¼ãéç¥ããã
+ *  icmp6_notify_error -- エラーを通知する。
  */
 
@@ -312,5 +290,5 @@
 	len  = input->len - poff;
 
-	/* ãã¼ã¿ã°ã©ã é·ã ICMP6 ãããé· + IP6 ãããé·ä»¥ä¸ãªãä½ãããªãã*/
+	/* データグラム長が ICMP6 ヘッダ長 + IP6 ヘッダ長以下なら何もしない。*/
 	if (len < ICMP6_HDR_SIZE + IP6_HDR_SIZE)
 		return;
@@ -318,8 +296,8 @@
 	icmp6h = GET_ICMP6_HDR(input, poff);
 
-	/* æçµããããæ¢ç´¢ããã*/
+	/* 最終ヘッダを探索する。*/
 	loff = ip6_lasthdr(input, poff + ICMP6_HDR_SIZE, IPPROTO_IPV6, &next);
 
-	/* æçµãããã TCP ã®ã¿å¯¾å¿ããã*/
+	/* 最終ヘッダが TCP のみ対応する。*/
 	if (loff >= 0 && next == IPPROTO_TCP) {
 
@@ -341,5 +319,5 @@
 
 /*
- *  icmp6_mtudisc_update -- Path MTU ãæ´æ°ããã
+ *  icmp6_mtudisc_update -- Path MTU を更新する。
  */
 
@@ -365,5 +343,5 @@
 
 /*
- *  icmp6_redirect_input -- åãç´ãã¡ãã»ã¼ã¸ã®å¦ç
+ *  icmp6_redirect_input -- 向け直しメッセージの処理
  */
 
@@ -384,7 +362,7 @@
 
 	/*
-	 *  IP ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
-	 *    ã»ãªã³ã¯ã­ã¼ã«ã«ä»¥å¤ããéããã¦ããã¡ãã»ã¼ã¸
-	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
+	 *  IP ヘッダのチェック、以下の場合は破棄する。
+	 *    ・リンクローカル以外から送られてきたメッセージ
+	 *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
 	 */
 	if (!IN6_IS_ADDR_LINKLOCAL(&ip6h->src) || ip6h->hlim != IPV6_MAXHLIM)
@@ -393,16 +371,15 @@
 	rdh  = (T_ND_REDIRECT_HDR *)(input->buf + off);
 
-	/* åãç´ãã®çµç¹ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®å ´åã¯ç ´æ£ããã*/
+	/* 向け直しの終点アドレスがマルチキャストアドレスの場合は破棄する。*/
 	if (IN6_IS_ADDR_MULTICAST(&rdh->dst))
 		goto err_ret;
 
-	/* ã¿ã¼ã²ããã¢ãã¬ã¹ãçµè·¯è¡¨ã«ç»é²ããã¦ããããã§ãã¯ããã*/
+	/* ターゲットアドレスが経路表に登録されているかチェックする。*/
 	if ((gw = in6_rtalloc(ifp, &rdh->dst)) != NULL) {
-		/* GW ã¢ãã¬ã¹ã¨éä¿¡å
-ã¢ãã¬ã¹ãç°ãªã£ã¦ããã°ç ´æ£ããã*/
+		/* GW アドレスと送信元アドレスが異なっていれば破棄する。*/
 		if (!IN6_ARE_ADDR_EQUAL(gw, &ip6h->src))
 			goto err_ret;
 		}
-	else	/* çµè·¯è¡¨ã«ãªããã°ç ´æ£ããã*/
+	else	/* 経路表になければ破棄する。*/
 		goto err_ret;
 
@@ -410,6 +387,6 @@
 
 	/*
-	 *  ã¿ã¼ã²ããã¢ãã¬ã¹ããªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã§ããã°ã
-	 *  ã¿ã¼ã²ããã¯ã«ã¼ã¿
+	 *  ターゲットアドレスがリンクローカルアドレスであれば、
+	 *  ターゲットはルータ
 	 */
 	if (IN6_IS_ADDR_LINKLOCAL(&rdh->target))
@@ -417,5 +394,5 @@
 
 	/*
-	 *  ã¿ã¼ã²ããã¢ãã¬ã¹ã¨çµç¹ã¢ãã¬ã¹ãåä¸ã§ããã°ããªã³ãªã³ã¯
+	 *  ターゲットアドレスと終点アドレスが同一であれば、オンリンク
 	 */
 	if (IN6_ARE_ADDR_EQUAL(&rdh->target, &rdh->dst))
@@ -423,20 +400,19 @@
 		
 	/*
-	 *  ã«ã¼ã¿ã§ãããªã³ãªã³ã¯ã§ããªããã°ã¨ã©ã¼
+	 *  ルータでも、オンリンクでもなければエラー
 	 */
 	if (!router && !onlink)
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	/* 近隣探索オプションのオフセットを記録する。*/
 	if (nd6_options(nd_opt_off, input->buf +  off + ND_REDIRECT_HDR_SIZE,
 	                            input->len - (off + ND_REDIRECT_HDR_SIZE)) != E_OK)
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ (åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹) */
+	/* 近隣探索オプション (向け直しのルータのリンクアドレス) */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) {
 		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ND_REDIRECT_HDR_SIZE) +
 		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8);
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		lladdr     = (uint8_t *)(opth + 1);
 		lladdr_len = (opth->len << 3);
@@ -444,14 +420,14 @@
 
 	/*
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 *  ネットワークインタフェースのアドレス長が一致しなければエラー
 	 */
 	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
 		goto err_ret;
 
-	/* åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	/* 向け直しのルータのリンクアドレスを近隣キャッシュに登録する。*/
 	nd6_cache_lladdr(ifp, &rdh->target, (T_IF_ADDR *)lladdr, ND_REDIRECT, 
 	                 onlink ? ND_REDIRECT_ONLINK : ND_REDIRECT_ROUTER);
 
-	/* ã«ã¼ãã£ã³ã°è¡¨ã«ç»é²ããã*/
+	/* ルーティング表に登録する。*/
 	in6_rtredirect(&rdh->target, &rdh->dst, 128, IN_RTF_REDIRECT, TMO_IN_REDIRECT);
 
@@ -467,6 +443,5 @@
 
 /*
- *  icmp6_input -- ICMP6 ã®å
-¥åé¢æ°
+ *  icmp6_input -- ICMP6 の入力関数
  */
 
@@ -485,5 +460,5 @@
 	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInMsgs, 1);
 
-	/* ICMP6 ãããã®é·ãããã§ãã¯ããã*/
+	/* ICMP6 ヘッダの長さをチェックする。*/
 	len  = input->len - off;
 	if (len < ICMP6_HDR_SIZE) {
@@ -496,5 +471,5 @@
 	icmp6h = GET_ICMP6_HDR(input, off);
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	if ((in6_cksum(input, IPPROTO_ICMPV6, off, ntohs(ip6h->plen) - (off - IF_IP_HDR_SIZE)) & 0xffff) != 0) {
 		NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS], 1);
@@ -505,19 +480,18 @@
 	code = icmp6h->code;
 
-	/* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/
+	/* メッセージの型により分岐する。*/
 	switch (icmp6h->type) {
 
-	case ICMP6_DST_UNREACH:			/* å®å
-å°éä¸å¯è½		*/
+	case ICMP6_DST_UNREACH:			/* 宛先到達不可能		*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInDestUnreachs, 1);
 		icmp6_notify_error(input, off);
 		break;
 
-	case ICMP6_ECHO_REQUEST:		/* ã¨ã³ã¼è¦æ±			*/
+	case ICMP6_ECHO_REQUEST:		/* エコー要求			*/
 		icmp6_echo_request(input, off);
 		return IPPROTO_DONE;
 		break;
 
-	case ICMP6_ECHO_REPLY:			/* ã¨ã³ã¼å¿ç­			*/
+	case ICMP6_ECHO_REPLY:			/* エコー応答			*/
 
 #ifdef ICMP_CFG_CALLBACK_ECHO_REPLY
@@ -529,5 +503,5 @@
 		break;
 
-	case ND_ROUTER_ADVERT:			/* ã«ã¼ã¿éç¥			*/
+	case ND_ROUTER_ADVERT:			/* ルータ通知			*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRouterAdvertisements, 1);
 		if (code != 0 || len < ROUTER_ADVERT_HDR_SIZE)
@@ -537,5 +511,5 @@
 		break;
 
-	case ND_NEIGHBOR_SOLICIT:		/* è¿é£è¦è«			*/
+	case ND_NEIGHBOR_SOLICIT:		/* 近隣要請			*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborSolicits, 1);
 		if (code != 0 || len < NEIGHBOR_SOLICIT_HDR_SIZE)
@@ -545,5 +519,5 @@
 		break;
 
-	case ND_NEIGHBOR_ADVERT:		/* è¿é£éç¥			*/
+	case ND_NEIGHBOR_ADVERT:		/* 近隣通知			*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborAdvertisements, 1);
 		if (code != 0 || len < NEIGHBOR_ADVERT_HDR_SIZE)
@@ -553,5 +527,5 @@
 		break;
 
-	case ND_REDIRECT:			/* åãç´ã			*/
+	case ND_REDIRECT:			/* 向け直し			*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRedirects, 1);
 
@@ -571,5 +545,5 @@
 		break;
 
-	case ICMP6_PACKET_TOO_BIG:		/* ãã±ãããå¤§ããããã	*/
+	case ICMP6_PACKET_TOO_BIG:		/* パケットが大きすぎる。	*/
 
 #if NUM_IN6_HOSTCACHE_ENTRY > 0
@@ -582,25 +556,19 @@
 		break;
 
-	case ICMP6_TIME_EXCEEDED:		/* TTL ãè¶
-éããã		*/
+	case ICMP6_TIME_EXCEEDED:		/* TTL を超過した。		*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInTimeExcds, 1);
 		break;
 
-	case ICMP6_PARAM_PROB:			/* IPv6 ããããä¸æ­£ã		*/
+	case ICMP6_PARAM_PROB:			/* IPv6 ヘッダが不正。		*/
 		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInParmProblems, 1);
 		break;
 
-	case MLD_LISTENER_QUERY:		/* ãã«ãã­ã£ã¹ãåä¿¡è
-ç
-§ä¼	*/
-	case MLD_LISTENER_REPORT:		/* ãã«ãã­ã£ã¹ãåä¿¡è
-å ±å	*/
-	case MLD_LISTENER_DONE:			/* ãã«ãã­ã£ã¹ãåä¿¡è
-çµäº	*/
-	case ND_ROUTER_SOLICIT:			/* ã«ã¼ã¿è¦è«			*/
-	case ICMP6_ROUTER_RENUMBERING:		/* ã«ã¼ã¿çªå·åè¨­å®		*/
-	case ICMP6_FQDN_QUERY:			/* FQDN ç
-§ä¼			*/
-	case ICMP6_FQDN_REPLY:			/* FQDN å¿ç­			*/
+	case MLD_LISTENER_QUERY:		/* マルチキャスト受信者照会	*/
+	case MLD_LISTENER_REPORT:		/* マルチキャスト受信者報告	*/
+	case MLD_LISTENER_DONE:			/* マルチキャスト受信者終了	*/
+	case ND_ROUTER_SOLICIT:			/* ルータ要請			*/
+	case ICMP6_ROUTER_RENUMBERING:		/* ルータ番号再設定		*/
+	case ICMP6_FQDN_QUERY:			/* FQDN 照会			*/
+	case ICMP6_FQDN_REPLY:			/* FQDN 応答			*/
 		syslog(LOG_WARNING, "[ICMP6] unsupported type: %d.", icmp6h->type);
 		break;
@@ -619,5 +587,5 @@
 
 /*
- *  icmp6_error -- ICMP6 ã¨ã©ã¼éä¿¡é¢æ°
+ *  icmp6_error -- ICMP6 エラー送信関数
  */
 
@@ -634,10 +602,9 @@
 
 	/*
-	 *  å®å
-ã¢ãã¬ã¹ãããã«ãã­ã£ã¹ãã®å ´åã¯ã
-	 *  ä»¥ä¸ã®æ¡ä»¶ä»¥å¤ã®ã¨ãã¯å¦çãè¡ããªãã
+	 *  宛先アドレスが、マルチキャストの場合は、
+	 *  以下の条件以外のときは処理を行わない。
 	 *
-	 *    ã»ãã¼ã¿ã°ã©ã ãå¤§ããããã
-	 *    ã»IPv6 ãããã®ä¸æ­£ã§ããªãã·ã§ã³ãèªè­ã§ããªãã
+	 *    ・データグラムが大きすぎる。
+	 *    ・IPv6 ヘッダの不正で、オプションが認識できない。
 	 */
 	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst) &&
@@ -647,8 +614,8 @@
 
 	/*
-	 *  å§ç¹ã¢ãã¬ã¹ããä»¥ä¸ã®å ´åã¯å¦çãè¡ããªãã
+	 *  始点アドレスが、以下の場合は処理を行わない。
 	 *
-	 *    ã»ç¡æå®
-	 *    ã»ãã«ãã­ã£ã¹ã
+	 *    ・無指定
+	 *    ・マルチキャスト
 	 */
 	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) ||
@@ -656,9 +623,9 @@
 		goto buf_rel;
 
-	/* æå¾ã®ããããæ¢ç´¢ããã*/
+	/* 最後のヘッダを探索する。*/
 	off = ip6_lasthdr(input, 0, IPPROTO_IPV6, &next);
 
 	/*
-	 *  ã¿ã¤ãããã¨ã©ã¼ãåãç´ãã® ICMP6 ãã±ããã®ã¨ã©ã¼ã«ã¯è¿ç­ããªãã
+	 *  タイプが、エラーか向け直しの ICMP6 パケットのエラーには返答しない。
 	 */
 	if (off >= 0 && next == IPPROTO_ICMPV6) {
@@ -674,9 +641,8 @@
 		}
 
-	/* DoS æ»æã«å¯¾ããé²å¾¡ã¯æªå®è£
- */
-
-	/*
-	 *  éãè¿ãã¡ãã»ã¼ã¸é·ããICMPv6 ã®æå¤§ãã¤ã­ã¼ãé·ã«èª¿æ´ããã
+	/* DoS 攻撃に対する防御は未実装 */
+
+	/*
+	 *  送り返すメッセージ長を、ICMPv6 の最大ペイロード長に調整する。
 	 *  IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE)
 	 */
@@ -686,5 +652,5 @@
 		len = input->len - IF_HDR_SIZE;
 
-	/* éä¿¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+	/* 送信用のネットワークバッファを獲得する。*/
 	if (in6_get_datagram(&output, len + ICMP6_HDR_SIZE, 0,
 	                     &ip6h->src, &in6_addr_unspecified,
@@ -693,5 +659,5 @@
 		goto buf_rel;
 
-	/* ICMP6 ããããè¨­å®ããã*/
+	/* ICMP6 ヘッダを設定する。*/
  	icmp6h = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET);
  	icmp6h->type       = type;
@@ -699,5 +665,5 @@
  	icmp6h->icmp6_pptr = htonl(param);
  
- 	/* ã¨ã©ã¼ãã¼ã¿ãè¨­å®ããã*/
+ 	/* エラーデータを設定する。*/
  	memcpy(GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET), (uint8_t *)ip6h, len);
 
@@ -720,5 +686,5 @@
 #endif	/* of #ifdef SUPPORT_MIB */
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	icmp6_output(output, IF_IP6_HDR_SIZE);
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -115,5 +103,5 @@
 
 /*
- *  ether_map_ipv6_multicast -- IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ããã¤ã¼ãµãããã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ
+ *  ether_map_ipv6_multicast -- IPv6 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -83,5 +71,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -152,6 +140,5 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
@@ -166,5 +153,5 @@
 
 /*
- *  in6_addmulti -- ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã
+ *  in6_addmulti -- マルチキャストアドレスを登録する。
  */
 
@@ -181,6 +168,5 @@
 
 /*
- *  in6_ifinit -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹æ
-å ±ãè¨­å®ããåæåããã
+ *  in6_ifinit -- インタフェースにアドレス情報を設定し、初期化する。
  */
 
@@ -188,13 +174,13 @@
 in6_ifinit (T_IFNET *ifp, T_IN6_IFADDR *ia, T_IN6_ADDR *addr, uint_t prefix_len)
 {
-	/* ã¢ãã¬ã¹ã¨ãã¬ãã£ãã¯ã¹é·ãè¨­å®ããã*/
+	/* アドレスとプレフィックス長を設定する。*/
 	ia->addr       = *addr;
 	ia->prefix_len = prefix_len;
 
-	/* ãã©ã°ãåæåããã*/
+	/* フラグを初期化する。*/
 	ia->flags = 0;
 
 	/*
-	 *  åãã¦ã¢ãã¬ã¹ãè¨­å®ãããã¨ããã¤ã³ã¿ãã§ã¼ã¹ç¬èªã®åæåãè¡ãã
+	 *  初めてアドレスが設定されたとき、インタフェース独自の初期化を行う。
 	 */
 
@@ -203,5 +189,5 @@
 
 /*
- *  in6_ifainit -- ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½ã®åæå
+ *  in6_ifainit -- インタフェースアドレス構造体の初期化
  */
 
@@ -222,5 +208,5 @@
 
 /*
- *  in6_if2idlen -- ã¤ã³ã¿ãã§ã¼ã¹ ID é·ãè¿ãã
+ *  in6_if2idlen -- インタフェース ID 長を返す。
  */
 
@@ -236,6 +222,5 @@
 
 /*
- *  in6_addr2ifaix -- ã¢ãã¬ã¹ããã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ
-å ±ã®ã¤ã³ããã¯ã¹ã«å¤æããã
+ *  in6_addr2ifaix -- アドレスからインタフェースアドレス情報のインデックスに変換する。
  */
 
@@ -258,5 +243,5 @@
 
 /*
- *  in6_addr2maix -- ã¢ãã¬ã¹ãããã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ã¤ã³ããã¯ã¹ã«å¤æããã
+ *  in6_addr2maix -- アドレスからマルチキャストアドレスのインデックスに変換する。
  */
 
@@ -279,6 +264,5 @@
 
 /*
- *  in6_update_ifa -- ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ
-å ±ãæ´æ°ããã
+ *  in6_update_ifa -- インタフェースのアドレス情報を更新する。
  */
 
@@ -292,11 +276,11 @@
 	SYSTIM		now;
 
-	/* å¼æ°ããã§ãã¯ããã*/
+	/* 引数をチェックする。*/
 	if (addr == NULL)
 		return E_PAR;
 
 	/*
-	 *  æå¹æéããã§ãã¯ããã
-	 *  vltime (æå¹æé) ã¨ pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã
+	 *  有効時間をチェックする。
+	 *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
 	 */
 	syscall(get_tim(&now));
@@ -309,5 +293,5 @@
 		return E_PAR;
 
-	/* ã¤ã³ã¿ãã§ã¼ã¹ãåæåããã*/
+	/* インタフェースを初期化する。*/
 	if ((error = in6_ifinit(ifp, ia, addr, prefix_len)) != E_OK)
 		return error;
@@ -315,5 +299,5 @@
 	if (IN6_IS_ADDR_LINKLOCAL(addr)) {
 
-		/* è¦è«ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/
+		/* 要請マルチキャストアドレスを登録する。*/
 		llsol.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
 		llsol.s6_addr32[1] = 0x00000000;
@@ -324,6 +308,5 @@
 			return error;
 
-		/* å
-¨ãã¼ãã»ãªã³ã¯ã­ã¼ã«ã«ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/
+		/* 全ノード・リンクローカル・マルチキャストアドレスを登録する。*/
 		llsol.s6_addr32[2] = 0x00000000;
 		llsol.s6_addr32[3] = IPV6_ADDR_INT32_ONE;
@@ -333,17 +316,17 @@
 		}
 
-	/* ã«ã¼ã¿ã¤ã³ããã¯ã¹ãè¨­å®ããã*/
+	/* ルータインデックスを設定する。*/
 	ia->router_index = router_index;
 
-	/* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹ãè¨­å®ããã*/
+	/* プレフィックスインデックスを設定する。*/
 	ia->prefix_index = prefix_index;
 
-	/* ãã©ã°ãè¨­å®ããã*/
+	/* フラグを設定する。*/
 	ia->flags  = flags & ~(IN6_IFF_DUPLICATED | IN6_IFF_NODAD);
 	ia->flags |= IN6_IFF_DEFINED;
 
  	/*
- 	 *  ã¢ãã¬ã¹æå¹æéãè¨­å®ããã
-	 *  vltime (æå¹æé) ã¨ pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã
+ 	 *  アドレス有効時間を設定する。
+	 *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
  	 */
 	syscall(get_tim(&now));
@@ -362,8 +345,8 @@
  		ia->lifetime.preferred = 0;
 
-	/* è¿é£æ¢ç´¢ã®åæè¨­å®ãè¡ãã*/
+	/* 近隣探索の初期設定を行う。*/
 	nd6_ifattach(ifp);
 
-	/* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/
+	/* 重複アドレス検出を行う。*/
 	if ((flags & IN6_IFF_NODAD) == 0) {
 		ia->flags |= IN6_IFF_TENTATIVE;
@@ -375,6 +358,6 @@
 
 /*
- * in6ifa_ifpwithix -- ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«
- *                     å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã
+ * in6ifa_ifpwithix -- インデックス番号から、ネットワークインタフェースに
+ *                     割り当てられているアドレスを探索する。
  */
 
@@ -386,6 +369,6 @@
 
 /*
- * in6ifa_ifpwithrtrix -- ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«
- *                        å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã
+ * in6ifa_ifpwithrtrix -- ルータのインデックス番号から、ネットワークインタフェースに
+ *                        割り当てられているアドレスを探索する。
  */
 
@@ -402,8 +385,6 @@
 
 /*
- * in6_ifawithifp -- å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
- *                   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
+ * in6_ifawithifp -- 宛先アドレスにふさわしい送信元アドレスを、
+ *                   ネットワークインタフェースから探索する。
  */
 
@@ -414,6 +395,5 @@
 	int_t	ix;
 
-	/* å®å
-ã¢ãã¬ã¹ã¨åãã¹ã³ã¼ãã®ã¢ãã¬ã¹ãè¿ãã*/
+	/* 宛先アドレスと同じスコープのアドレスを返す。*/
 	if ((ix = in6_addr2ifaix(dst)) != IPV6_IFADDR_IX_INVALID)
 		return &ifp->in_ifaddrs[ix];
@@ -435,5 +415,5 @@
 
 /*
- * in6_if_up -- ã¤ã³ã¿ãã§ã¼ã¹èµ·åå¾ã®éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã
+ * in6_if_up -- インタフェース起動後の重複アドレス検出を行う。
  */
 
@@ -441,5 +421,5 @@
 in6_if_up (T_IFNET *ifp)
 {
-#if 0						/* ä¿ç */
+#if 0						/* 保留 */
 	int_t dad_delay, ix;
 #endif	/* of #if 0 */
@@ -447,6 +427,6 @@
 	in6_ifattach(ifp);
 
-#if 0						/* ä¿ç */
-	/* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/
+#if 0						/* 保留 */
+	/* 重複アドレス検出を行う。*/
 	dad_delay = 0;
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; )
@@ -458,5 +438,5 @@
 #if NUM_ND6_RTR_SOL_RETRY > 0
 
-	/* ã«ã¼ã¿è¦è«ãåºåããã*/
+	/* ルータ要請を出力する。*/
 	nd6_rtrsol_ctl();
 
@@ -465,5 +445,5 @@
 
 /*
- *  in6_are_prefix_equal -- ãã¬ãã£ãã¯ã¹ãåä¸ãèª¿ã¹ãã
+ *  in6_are_prefix_equal -- プレフィックスが同一か調べる。
  */
 
@@ -486,5 +466,5 @@
 
 /*
- *  in6_ifaddr_timer -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã®ç®¡çã¿ã¤ãã¼
+ *  in6_ifaddr_timer -- ネットワークインタフェースのアドレスの管理タイマー
  */
 
@@ -505,5 +485,5 @@
 
 			/*
-			 *  æå¹æéãéããã®ã§åé¤ããã
+			 *  有効時間を過ぎたので削除する。
 			 */
 			ia->flags &= ~IN6_IFF_DEFINED;
@@ -513,5 +493,5 @@
 
 			/*
-			 *  æ¨å¥¨æå¹æéãéããã®ã§éæ¨å¥¨ã«ããã
+			 *  推奨有効時間を過ぎたので非推奨にする。
 			 */
 			ia->flags |= IN6_IFF_DEPRECATED;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -115,5 +103,5 @@
 
 /*
- *  IPv6 ã¢ãã¬ã¹
+ *  IPv6 アドレス
  */
 
@@ -140,5 +128,5 @@
 
 /*
- *  IPv6 ã¢ãã¬ã¹ã®åæåãã¼ã¿
+ *  IPv6 アドレスの初期化データ
  */
 
@@ -162,5 +150,5 @@
 
 /*
- *  ã¢ãã¬ã¹ã®å®ç¾©
+ *  アドレスの定義
  */
 
@@ -196,13 +184,13 @@
 
 /*
- *  ç¹å¥ãªã¢ãã¬ã¹ã®ãã§ãã¯
- */
-
-/* ç¡æå® */
+ *  特別なアドレスのチェック
+ */
+
+/* 無指定 */
 
 #define IN6_IS_ADDR_UNSPECIFIED(a)	\
 	(memcmp((void *)(a), (void *)&in6_addr_unspecified, sizeof(T_IN6_ADDR)) == 0)
 
-/* ã«ã¼ãããã¯ */
+/* ループバック */
 
 #define IN6_IS_ADDR_LOOPBACK(a)		\
@@ -210,5 +198,5 @@
 	 (a)->s6_addr8[15] == 0x01)
 
-/* IPv4 äºæ */
+/* IPv4 互換 */
 
 #define IN6_IS_ADDR_V4COMPAT(a)		\
@@ -216,5 +204,5 @@
 	 (a)->s6_addr32[3] > IPV6_ADDR_INT32_ONE)
 
-/* IPv4 ããã */
+/* IPv4 マップ */
 
 #define IN6_IS_ADDR_V4MAPPED(a)		\
@@ -224,5 +212,5 @@
 
 /*
- *  ã¹ã³ã¼ã ID
+ *  スコープ ID
  */
 
@@ -234,21 +222,20 @@
 
 /*
- *  ã¦ãã­ã£ã¹ãã»ã¹ã³ã¼ã
- *
- *  æ³¨æ: ä¸ä½ 10 ãããã®ã¿ãã§ãã¯ããªããã°ãªããªããRFC2373 åç
-§
- */
-
-/* ãªã³ã¯ã­ã¼ã«ã« */
+ *  ユニキャスト・スコープ
+ *
+ *  注意: 上位 10 ビットのみチェックしなければならない。RFC2373 参照
+ */
+
+/* リンクローカル */
 
 #define IN6_IS_ADDR_LINKLOCAL(a)	\
 	(((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0x80)))
 
-/* ãµã¤ãã­ã¼ã«ã« */
+/* サイトローカル */
 
 #define IN6_IS_ADDR_SITELOCAL(a)	\
 	(((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0xc0)))
 
-/* éç´å¯è½ã¦ãã­ã£ã¹ã (ã°ã­ã¼ãã«) */
+/* 集約可能ユニキャスト (グローバル) */
 
 #define IN6_IS_ADDR_AGGREGATE_UNICAST(a)	\
@@ -256,10 +243,10 @@
 
 /*
- *  ãã«ãã­ã£ã¹ã
+ *  マルチキャスト
  */
 
 #define IN6_IS_ADDR_MULTICAST(a)	((a)->s6_addr8[0] == UINT_C(0xff))
 
-/* è¦è«ãã«ãã­ã£ã¹ã */
+/* 要請マルチキャスト */
 
 #define IN6_IS_ADDR_NS_MULTICAST(a)	\
@@ -270,5 +257,5 @@
 
 /*
- *  åä¸ã®ãã§ãã¯
+ *  同一のチェック
  */
 
@@ -276,26 +263,26 @@
 
 /*
- *  çµè·¯å¶å¾¡ç¨å®ç¾©
- */
-
-#define IPV6_RTHDR_TYPE_0		UINT_C(0)	/* IPv6 çµè·¯å¶å¾¡ãããã¿ã¤ã 0	*/
-
-/*
- *  è¦å®å¤ã¨å¶éå¤
- */
-
-#define IPV6_DEFAULT_MULTICAST_HOPS	1	/* ãã«ãã­ã£ã¹ãæã®ããããªãããã®è¦å®å¤ */
-
-/*
- *  ITRON TCP/IPv6 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©
+ *  経路制御用定義
+ */
+
+#define IPV6_RTHDR_TYPE_0		UINT_C(0)	/* IPv6 経路制御ヘッダタイプ 0	*/
+
+/*
+ *  規定値と制限値
+ */
+
+#define IPV6_DEFAULT_MULTICAST_HOPS	1	/* マルチキャスト時のホップリミットの規定値 */
+
+/*
+ *  ITRON TCP/IPv6 アドレス/ポート番号の定義
  */
 
 typedef struct t_ipv6ep {
-	T_IN6_ADDR	ipaddr;		/* IPv6 ã¢ãã¬ã¹	*/
-	uint16_t	portno;		/* ãã¼ãçªå·	*/
+	T_IN6_ADDR	ipaddr;		/* IPv6 アドレス	*/
+	uint16_t	portno;		/* ポート番号	*/
 	} T_IPV6EP;
 
 /*
- *  ITRON/TCP/IP ç¨ IP ã¢ãã¬ã¹ã®å®ç¾©
+ *  ITRON/TCP/IP 用 IP アドレスの定義
  */
 
@@ -303,13 +290,12 @@
 
 /*
- *  åççæç¨ IPv6 TCP åä»å£
+ *  動的生成用 IPv6 TCP 受付口
  */
 
 typedef struct t_tcp6_crep {
-	/* æ¨æº */
-	ATR		repatr;		/* åä»å£å±æ§		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		repatr;		/* 受付口属性		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス	*/
+	/* 実装依存 */
 	} T_TCP6_CREP;
 
@@ -319,14 +305,13 @@
 
 /*
- *  åççæç¨ IPv6 UDP éä¿¡ç«¯ç¹
+ *  動的生成用 IPv6 UDP 通信端点
  */
 
 typedef struct t_udp6_ccep {
-	/* æ¨æº */
-	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
-	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
-	FP		callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
-	/* å®è£
-ä¾å­ */
+	/* 標準 */
+	ATR		cepatr;		/* UDP 通信端点属性		*/
+	T_IPV6EP	myaddr;		/* 自分のアドレス		*/
+	FP		callback;	/* コールバック関数		*/
+	/* 実装依存 */
 	} T_UDP6_CCEP;
 
@@ -336,5 +321,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
  */
 
@@ -356,6 +341,5 @@
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -369,6 +353,5 @@
 
 /*
- *  å
-¨åå¤æ°
+ *  全域変数
  */
 
@@ -380,5 +363,5 @@
 
 /*
- *  TINET ç¬èª API
+ *  TINET 独自 API
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -110,5 +98,5 @@
 
 /*
- * EUI64 ã®å®ç¾©
+ * EUI64 の定義
  */
 
@@ -118,5 +106,5 @@
 
 /*
- * get_mac6_ifid -- MAC (6 ãªã¯ããã) ã¢ãã¬ã¹ã§ãã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ãè¨­å®ããã
+ * get_mac6_ifid -- MAC (6 オクテット) アドレスで、インタフェース識別子を設定する。
  */
 
@@ -141,5 +129,5 @@
 
 /*
- *  in6_ifattach_linklocal -- ã¤ã³ã¿ãã§ã¼ã¹ã«ãªã³ã¯ã­ã¼ã«ã«ã»ã¢ãã¬ã¹ãå²ãå½ã¦ãã
+ *  in6_ifattach_linklocal -- インタフェースにリンクローカル・アドレスを割り当てる。
  */
 
@@ -151,15 +139,14 @@
 
 	/*
-	 *  ãªã³ã¯ã­ã¼ã«ã«ã»ãã¬ãã£ãã¯ã¹ fe80::/64 ãè¨­å®ããã
+	 *  リンクローカル・プレフィックス fe80::/64 を設定する。
 	 */
 	addr.s6_addr32[0] = IPV6_ADDR_INT32_ULL;
 	addr.s6_addr32[1] = ULONG_C(0);
 
-	/* ã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ãè¨­å®ããã*/
+	/* インタフェース識別子を設定する。*/
 	if ((error = IF_IN6_IFID(ifp, &addr)) != E_OK)
 		return error;
 
-	/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ
-å ±ãæ´æ°ããã*/
+	/* インタフェースのアドレス情報を更新する。*/
 	if ((error = in6_update_ifa(ifp, &ifp->in_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL],
 	                            &addr, 64, ND6_INFINITE_LIFETIME,
@@ -174,5 +161,5 @@
 
 /*
- *  in6_ifattach -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹ãå²ãå½ã¦ãã
+ *  in6_ifattach -- インタフェースにアドレスを割り当てる。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -80,5 +68,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_rename.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_rename.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,6 +36,5 @@
 
 /*
- *  TCP/IPv6 ãã­ãã³ã«ã¹ã¿ãã¯å
-é¨åã®ãªãã¼ã 
+ *  TCP/IPv6 プロトコルスタック内部名のリネーム
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_subr.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_subr.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -155,5 +143,5 @@
 
 /*
- *  ãã¹ãã­ã£ãã·ã¥
+ *  ホストキャッシュ
  */
 
@@ -163,5 +151,5 @@
 
 /*
- *  in6_lookup_ifaddr -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã
+ *  in6_lookup_ifaddr -- ネットワークインタフェースに割り当てられているアドレスを探索する。
  */
 
@@ -180,5 +168,5 @@
 
 /*
- *  in6_lookup_multi -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãæ¤ç´¢ããã
+ *  in6_lookup_multi -- ネットワークインタフェースのマルチキャストアドレスを検索する。
  */
 
@@ -195,5 +183,5 @@
 
 /*
- *  in6_set_header -- IPv6 ããããè¨­å®ããã
+ *  in6_set_header -- IPv6 ヘッダを設定する。
  */
 
@@ -208,8 +196,6 @@
 
 	/*
-	 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 *  宛先アドレスにふさわしい送信元アドレスを、
+	 *  ネットワークインタフェースから探索して利用する。
 	 */
 	if (srcaddr == NULL || !IN6_IS_ADDR_UNSPECIFIED(srcaddr))
@@ -220,5 +206,5 @@
 		srcaddr = &ia->addr;
 
-	/* IPv6 ããããè¨­å®ããã*/
+	/* IPv6 ヘッダを設定する。*/
 	ip6h		= GET_IP6_HDR(nbuf);
 	ip6h->vcf	= htonl(IP6_MAKE_VCF(IPV6_VERSION, 0));
@@ -241,5 +227,5 @@
 
 /*
- *  in6_get_datagram -- IPv6 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨­å®ããã
+ *  in6_get_datagram -- IPv6 データグラムを獲得し、ヘッダを設定する。
  */
 
@@ -252,8 +238,8 @@
 	uint_t		align;
 
-	/* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã	*/
+	/* データ長は 4 オクテット境界に調整する。	*/
 	align = (len + 3) >> 2 << 2;
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã	*/
+	/* ネットワークバッファを獲得する。	*/
 	if ((error = tget_net_buf_ex(nbuf, IF_IP6_HDR_SIZE + align,
 	                                   IF_IP6_HDR_SIZE + maxlen, nbatr, tmout)) != E_OK)
@@ -261,16 +247,16 @@
 
 	/*
-	 *  ããå¤§ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ããèª¿æ´ããã
-	 *  ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®
-	 *  çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã
+	 *  より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。
+	 *  より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの
+	 *  省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。
 	 */
 	if ((nbatr & NBA_SEARCH_ASCENT) != 0)
 		(*nbuf)->len = IF_IP6_HDR_SIZE + len;
 
-	/* IPv6 ããããè¨­å®ããã*/
+	/* IPv6 ヘッダを設定する。*/
 	if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK)
 		return error;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset(GET_IP6_SDU(*nbuf) + len, 0, align - len);
@@ -280,5 +266,5 @@
 
 /*
- *  in6_get_maxnum_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®å¯è½ãªæå¤§ã¢ãã¬ã¹æ°ãè¿ãã
+ *  in6_get_maxnum_ifaddr -- インタフェースに設定可能な最大アドレス数を返す。
  */
 
@@ -290,5 +276,5 @@
 
 /*
- *  in6_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ããã¢ãã¬ã¹ãè¿ãã
+ *  in6_get_ifaddr -- インタフェースに設定されているアドレスを返す。
  */
 
@@ -306,5 +292,5 @@
 
 /*
- *  ipv62str -- IPv6 ã¢ãã¬ã¹ãæå­åã«å¤æããã
+ *  ipv62str -- IPv6 アドレスを文字列に変換する。
  */
 
@@ -357,7 +343,7 @@
 
 /*
- *  in6_cksum -- IPv6 ã®ãã©ã³ã¹ãã¼ãå±¤ãããã®ãã§ãã¯ãµã ãè¨ç®ããã
- *
- *  æ³¨æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã
+ *  in6_cksum -- IPv6 のトランスポート層ヘッダのチェックサムを計算する。
+ *
+ *  注意: 戻り値はネットワークバイトオーダ
  */
 
@@ -368,8 +354,8 @@
 	uint_t		align;
 
-	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	/* 4 オクテット境界のデータ長 */
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	/* 4 オクテット境界までパディングで埋める。*/
 	if (align > len)
 		memset((uint8_t*)nbuf->buf + off + len, 0, align - len);
@@ -384,6 +370,5 @@
 
 /*
- *  in6_is_dstaddr_accept -- å®å
-ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
+ *  in6_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
  */
 
@@ -398,5 +383,5 @@
 
 /*
- *  get_ip6_hdr_size -- æ¡å¼µããããå«ãã IPv6 ãããé·ãè¿ãã
+ *  get_ip6_hdr_size -- 拡張ヘッダも含めた IPv6 ヘッダ長を返す。
  */
 
@@ -410,13 +395,13 @@
 	while (1) {
 		next = *hdr;
-		if (curr ==IPPROTO_NONE)		/* æ¬¡ãããç¡ã			*/
+		if (curr ==IPPROTO_NONE)		/* 次ヘッダ無し			*/
 			break;
-		else if (curr == IPPROTO_FRAGMENT)	/* æ­çå			*/
+		else if (curr == IPPROTO_FRAGMENT)	/* 断片化			*/
 			hsize = sizeof(T_IP6_FRAG_HDR);
-		else if (curr == IPPROTO_AH)		/* IPv6 èªè¨¼			*/
+		else if (curr == IPPROTO_AH)		/* IPv6 認証			*/
 			hsize = (((T_IP6_AH_HDR *)hdr)->len + 2) * 4;
-		else if (curr == IPPROTO_HOPOPTS ||	/* ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³	*/
-		         curr == IPPROTO_DSTOPTS ||	/* IPv6 çµç¹ãªãã·ã§ã³		*/
-		         curr == IPPROTO_ROUTING)	/* çµè·¯å¶å¾¡			*/
+		else if (curr == IPPROTO_HOPOPTS ||	/* 中継点 (Hop-by-Hop) オプション	*/
+		         curr == IPPROTO_DSTOPTS ||	/* IPv6 終点オプション		*/
+		         curr == IPPROTO_ROUTING)	/* 経路制御			*/
 			hsize = (((T_IP6_EXT_HDR *)hdr)->len + 1) * 8;
 		else
@@ -430,5 +415,5 @@
 
 /*
- *  in6_plen2pmask -- ãã¬ãã£ãã¯ã¹é·ãããã¹ã¯ãçæããã
+ *  in6_plen2pmask -- プレフィックス長からマスクを生成する。
  */
 
@@ -448,5 +433,5 @@
 
 /*
- *  in6_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã
+ *  in6_rtalloc -- ルーティング表を探索する。
  */
 
@@ -462,7 +447,6 @@
 
 		/*
-		 *  ãµã¤ãã­ã¼ã«ã«ã¢ãã¬ã¹ãéç´å¯è½ï¼ã°ã­ã¼ãã«ï¼ã¢ãã¬ã¹ã®å ´åã¯ã
-		 *  åä¸ãªã³ã¯å
-ã®ãã¼ãã§ãããããã§ãã¯ããã
+		 *  サイトローカルアドレスか集約可能（グローバル）アドレスの場合は、
+		 *  同一リンク内のノードであるかをチェックする。
 		 */
 
@@ -470,6 +454,5 @@
 		now /= SYSTIM_HZ;
 
-		/* æ¨å¥¨æå¹æéå
-ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/
+		/* 推奨有効時間内のアドレスを探索する。*/
 		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
 			ia = &ifp->in_ifaddrs[ix];
@@ -482,6 +465,5 @@
 			}
 
-		/* æå¹æéå
-ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/
+		/* 有効時間内のアドレスを探索する。*/
 		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
 			ia = &ifp->in_ifaddrs[ix];
@@ -494,5 +476,5 @@
 
 		/*
-		 *  ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã
+		 *  プレフィックスを探索する。
 		 */
 		if (nd6_onlink_prefix_lookup (dst) != NULL)
@@ -500,5 +482,5 @@
 
 		/*
-		 *  éççµè·¯è¡¨ãæ¢ç´¢ããã
+		 *  静的経路表を探索する。
 		 */
 
@@ -512,7 +494,7 @@
 
 				/*
-				 *  åãç´ãã«ããã¨ã³ããªã¯ãæå¹æéãåããæå»ãå»¶é·ããã
-				 *  expire ã®åä½ã¯ [s]ã
-				 *  TMO_IN_REDIRECT ã®åä½ã¯ [ms]ã
+				 *  向け直しによるエントリは、有効時間が切れる時刻を延長する。
+				 *  expire の単位は [s]。
+				 *  TMO_IN_REDIRECT の単位は [ms]。
 				 */
 				if (ix > NUM_STATIC_ROUTE_ENTRY) {
@@ -532,5 +514,5 @@
 
 		/*
-		 *  ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã
+		 *  ディフォルトルータ・リストを探索する。
 		 */
 		return nd6_router_lookup();
@@ -541,5 +523,5 @@
 
 /*
- *  in6_gateway_lookup -- ã«ã¼ãã£ã³ã°è¡¨ã®ã«ã¼ã¿ãæ¢ç´¢ããã
+ *  in6_gateway_lookup -- ルーティング表のルータを探索する。
  */
 
@@ -557,7 +539,7 @@
 
 /*
- *  in6_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã
- *
- *    æ³¨æ: å¼æ° tmo ã®åä½ã¯ [ms]ã
+ *  in6_rtredirect -- ルーティング表にエントリを登録する。
+ *
+ *    注意: 引数 tmo の単位は [ms]。
  */
 
@@ -578,5 +560,5 @@
 
 /*
- *  in6_hostcache_lookup -- IPv6 ãã¹ãã­ã£ãã·ã¥ãæ¢ç´¢ããã
+ *  in6_hostcache_lookup -- IPv6 ホストキャッシュを探索する。
  */
 
@@ -594,5 +576,5 @@
 
 /*
- *  in6_hostcache_update -- IPv6 ãã¹ãã­ã£ãã·ã¥ãæ´æ°ããã
+ *  in6_hostcache_update -- IPv6 ホストキャッシュを更新する。
  */
 
@@ -606,8 +588,8 @@
 	syscall(get_tim(&now));
 
-	/* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/
+	/* 既に登録されているか探索する。*/
 	if ((hc = in6_hostcache_lookup (dst)) == NULL) {
 
-		/* ç©ºãã®ãã¹ãã­ã£ãã·ã¥ãæ¢ãã*/
+		/* 空きのホストキャッシュを探す。*/
 		for (ix = NUM_IN6_HOSTCACHE_ENTRY; ix -- > 0; ) {
 			if (IN6_IS_HOSTCACHE_FREE(&in6_hostcache[ix]))
@@ -617,6 +599,6 @@
 		if (ix < 0) {
 			/*
-			 *  ç©ºããç¡ãæã¯ãæå¹æéã®åããæéãã
-			 *  æãç­ããã¹ãã­ã£ãã·ã¥ãç½®æããã
+			 *  空きが無い時は、有効時間の切れる時間が、
+			 *  最も短いホストキャッシュを置換する。
 			 */
 			old = now - 1;
@@ -638,6 +620,6 @@
 
 		/*
-		 *  æ¢ã«ç»é²ããã¦ãã¦ãæ°ãã MTU ããç»é²ããã¦ãã MTU ããå¤§ããã¨ãã
-		 *  IN6_HOSTCACHE_INCREASEï¼æ¨å¥¨ 10 åï¼éã¯æ´æ°ããªãã
+		 *  既に登録されていて、新しい MTU が、登録されている MTU より大きいとき、
+		 *  IN6_HOSTCACHE_INCREASE（推奨 10 分）間は更新しない。
 		 */
 		return;
@@ -649,7 +631,7 @@
 
 /*
- *  in6_hostcache_getmtu -- IPv6 ãã¹ãã­ã£ãã·ã¥ããã MTU ãåå¾ããã
- *
- *    æ»ãå¤ã 0 ã§ããã°ããã¹ãã­ã£ãã·ã¥ã«ç»é²ããã¦ããªãã
+ *  in6_hostcache_getmtu -- IPv6 ホストキャッシュをから MTU を取得する。
+ *
+ *    戻り値が 0 であれば、ホストキャッシュに登録されていない。
  */
 
@@ -659,5 +641,5 @@
 	T_IN6_HOSTCACHE_ENTRY	*hc;
 
-	/* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/
+	/* 既に登録されているか探索する。*/
 	if ((hc = in6_hostcache_lookup(dst)) == NULL)
 		return 0;
@@ -667,7 +649,7 @@
 
 /*
- *  in6_hostcache_timer -- IPv6 ãã¹ãã­ã£ãã·ã¥æ´æ°ã¿ã¤ãã¼
- *
- *    1ç§å¨æã§èµ·åãããã
+ *  in6_hostcache_timer -- IPv6 ホストキャッシュ更新タイマー
+ *
+ *    1秒周期で起動される。
  */
 
@@ -689,8 +671,7 @@
 
 /*
- *  in6_timer -- IPv6 å
-±éã¿ã¤ãã¼
- *
- *    1ç§å¨æã§èµ·åãããã
+ *  in6_timer -- IPv6 共通タイマー
+ *
+ *    1秒周期で起動される。
  */
 
@@ -720,6 +701,5 @@
 
 /*
- *  in6_init -- IPv6 å
-±éæ©è½ãåæåããã
+ *  in6_init -- IPv6 共通機能を初期化する。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -117,5 +105,5 @@
 
 /*
- *  ã¢ãã¬ã¹æå¹æéæ§é ä½
+ *  アドレス有効時間構造体
  */
 
@@ -123,50 +111,47 @@
 
 	/*
-	 * expire ã¨ perferred ã¯ãã·ã¹ãã ãèµ·åãã¦ããã®çµéæé
+	 * expire と perferred は、システムが起動してからの経過時間
 	 */
-	uint32_t	expire;		/* æå¹æéãåããæå» [s]	*/
-	uint32_t	preferred;	/* æ¨å¥¨æå¹æéãåããæå» [s]	*/
+	uint32_t	expire;		/* 有効時間が切れる時刻 [s]	*/
+	uint32_t	preferred;	/* 推奨有効時間が切れる時刻 [s]	*/
 
 	/*
-	 * vltime ã¨ pltime ã¯ãè¿½å /å¤æ´ãã¦ããã®ç¸å¯¾æé
+	 * vltime と pltime は、追加/変更してからの相対時間
 	 */
-	uint32_t	vltime;		/* æå¹æé [ms]			*/
-	uint32_t	pltime;		/* æ¨å¥¨æå¹æé [ms]		*/
+	uint32_t	vltime;		/* 有効時間 [ms]			*/
+	uint32_t	pltime;		/* 推奨有効時間 [ms]		*/
 	} __attribute__((packed, aligned(2)))T_IN6_ADDR_LIFETIME;
 
 /*
- *  ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½
+ *  インタフェースアドレス構造体
  */
 
 typedef struct t_in6_ifaddr {
-	T_IN6_ADDR		addr;		/* IPv6 ã¢ãã¬ã¹		*/
-	T_IN6_ADDR_LIFETIME	lifetime;	/* æå¹æé		*/
-	uint8_t			flags;		/* ãã©ã°		*/
-	uint8_t			prefix_len;	/* ãã¬ãã£ãã¯ã¹é·	*/
-	uint8_t			router_index;	/* ã«ã¼ã¿ã¤ã³ããã¯ã¹	*/
-	uint8_t			prefix_index;	/* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹	*/
-	uint8_t			na_icount;	/* éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥ã®å
-¥ååæ°	*/
-	uint8_t			ns_icount;	/* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®å
-¥ååæ°	*/
-	uint8_t			ns_ocount;	/* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®åºååæ°	*/
+	T_IN6_ADDR		addr;		/* IPv6 アドレス		*/
+	T_IN6_ADDR_LIFETIME	lifetime;	/* 有効時間		*/
+	uint8_t			flags;		/* フラグ		*/
+	uint8_t			prefix_len;	/* プレフィックス長	*/
+	uint8_t			router_index;	/* ルータインデックス	*/
+	uint8_t			prefix_index;	/* プレフィックスインデックス	*/
+	uint8_t			na_icount;	/* 重複アドレス検出 (DAD) 通知の入力回数	*/
+	uint8_t			ns_icount;	/* 重複アドレス検出 (DAD) 要請の入力回数	*/
+	uint8_t			ns_ocount;	/* 重複アドレス検出 (DAD) 要請の出力回数	*/
 	} __attribute__((packed, aligned(2)))T_IN6_IFADDR;
 
 /*
- *  ã¢ãã¬ã¹ç¶æ
-ãã©ã°
- */
-
-#define IN6_IFF_ANYCAST		UINT_C(0x01)	/* ã¨ãã¼ã­ã£ã¹ã	*/
-#define IN6_IFF_DEFINED		UINT_C(0x02)	/* å®ç¾©æ¸ã¿		*/
-#define IN6_IFF_TENTATIVE	UINT_C(0x04)	/* éè¤æ¤åºä¸­		*/
-#define IN6_IFF_DUPLICATED	UINT_C(0x08)	/* éè¤ãæ¤åºãã	*/
-#define IN6_IFF_DEPRECATED	UINT_C(0x10)	/* éæ¨å¥¨		*/
-#define IN6_IFF_NODAD		UINT_C(0x20)	/* éè¤æ¤åºä¸è¦		*/
-#define IN6_IFF_AUTOCONF	UINT_C(0x40)	/* èªåè¨­å®ããã	*/
-#define IN6_IFF_DETACHED	UINT_C(0x80)	/* éä½¿ç¨		*/
-
-/*
- *  ã¢ãã¬ã¹ã®æå¹æ§ãã§ãã¯
+ *  アドレス状態フラグ
+ */
+
+#define IN6_IFF_ANYCAST		UINT_C(0x01)	/* エニーキャスト	*/
+#define IN6_IFF_DEFINED		UINT_C(0x02)	/* 定義済み		*/
+#define IN6_IFF_TENTATIVE	UINT_C(0x04)	/* 重複検出中		*/
+#define IN6_IFF_DUPLICATED	UINT_C(0x08)	/* 重複を検出した	*/
+#define IN6_IFF_DEPRECATED	UINT_C(0x10)	/* 非推奨		*/
+#define IN6_IFF_NODAD		UINT_C(0x20)	/* 重複検出不要		*/
+#define IN6_IFF_AUTOCONF	UINT_C(0x40)	/* 自動設定された	*/
+#define IN6_IFF_DETACHED	UINT_C(0x80)	/* 非使用		*/
+
+/*
+ *  アドレスの有効性チェック
  */
 
@@ -183,5 +168,5 @@
 
 /*
- *  ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹
+ *  ルータのインデックス
  */
 
@@ -189,13 +174,11 @@
 
 /*
- *  å¶éå¤
- */
-
-#define IP6_HDR_NEST_LIMIT	50	/* IPv6 ãããã®ãã¹ãå¶éå¤	*/
-
-/*
- *  ã¢ãã¬ã¹æ
-å ±é
-åã®ã¤ã³ããã¯ã¹
+ *  制限値
+ */
+
+#define IP6_HDR_NEST_LIMIT	50	/* IPv6 ヘッダのネスト制限値	*/
+
+/*
+ *  アドレス情報配列のインデックス
  */
 
@@ -204,46 +187,43 @@
 
 /*
- *  IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
-åã®ã¤ã³ããã¯ã¹
- */
-
-#define IPV6_MADDR_IX_SOL_NODE		0	/* è¦è«ãã«ãã­ã£ã¹ãã»ã¢ãã¬ã¹			*/
-#define IPV6_MADDR_IX_LL_ALL_NODE	1	/* å
-¨ãã¼ãã»ãªã³ã¯ã­ã¼ã«ã«ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹	*/
+ *  IPv6 マルチキャストアドレス配列のインデックス
+ */
+
+#define IPV6_MADDR_IX_SOL_NODE		0	/* 要請マルチキャスト・アドレス			*/
+#define IPV6_MADDR_IX_LL_ALL_NODE	1	/* 全ノード・リンクローカル・マルチキャストアドレス	*/
 #define IPV6_MADDR_IX_EXTRA		2
 
 #define MAX_IN6_MADDR_CNT		MAX_IF_MADDR_CNT
-						/* IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
-åã®æå¤§ãµã¤ãº	*/
-
-/*
- *  ã«ã¼ãã£ã³ã°ã®å¶å¾¡
- */
-
-/* ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ */
+						/* IPv6 マルチキャストアドレス配列の最大サイズ	*/
+
+/*
+ *  ルーティングの制御
+ */
+
+/* ルーティング表エントリ構造体 */
 
 typedef struct t_in6_rtentry {
-	T_IN6_ADDR	target;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹	*/
-	T_IN6_ADDR	gateway;	/* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹	*/
-	uint32_t	expire;		/* æå¹æéãåããæå» [s]	*/
-	uint8_t		flags;		/* ãã©ã°			*/
-	uint8_t		prefix_len;	/* ãã¬ãã£ãã¯ã¹é·		*/
+	T_IN6_ADDR	target;		/* 目標ネットワークアドレス	*/
+	T_IN6_ADDR	gateway;	/* ゲートウェイの IP アドレス	*/
+	uint32_t	expire;		/* 有効時間が切れる時刻 [s]	*/
+	uint8_t		flags;		/* フラグ			*/
+	uint8_t		prefix_len;	/* プレフィックス長		*/
 	} __attribute__((packed, aligned(2)))T_IN6_RTENTRY;
 
 /*
- *  ãã¹ãã­ã£ãã·ã¥
- */
-
-/* ãã¹ãã­ã£ãã·ã¥æ§é ä½ */
+ *  ホストキャッシュ
+ */
+
+/* ホストキャッシュ構造体 */
 
 typedef struct t_in6_hostcache_entry {
-	T_IN6_ADDR	dst;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹	*/
-	uint32_t	expire;		/* æå¹æéãåããæå» [s]	*/
+	T_IN6_ADDR	dst;		/* 目標ネットワークアドレス	*/
+	uint32_t	expire;		/* 有効時間が切れる時刻 [s]	*/
 	uint32_t	mtu;		/* Path MTU			*/
 	} __attribute__((packed, aligned(2)))T_IN6_HOSTCACHE_ENTRY;
 
-#define IN6_HOSTCACHE_EXPIRE	(60*60*SYSTIM_HZ)	/* æå¹æé	*/
-#define IN6_HOSTCACHE_PRUNE	(5*60*SYSTIM_HZ)	/* æ´æ°éé	*/
-#define IN6_HOSTCACHE_INCREASE	(10*60*SYSTIM_HZ)	/* å¢å ããå ´åã®ä¿è­·æé	*/
+#define IN6_HOSTCACHE_EXPIRE	(60*60*SYSTIM_HZ)	/* 有効時間	*/
+#define IN6_HOSTCACHE_PRUNE	(5*60*SYSTIM_HZ)	/* 更新間隔	*/
+#define IN6_HOSTCACHE_INCREASE	(10*60*SYSTIM_HZ)	/* 増加する場合の保護時間	*/
 
 #define IN6_IS_HOSTCACHE_FREE(e)	IN6_IS_ADDR_UNSPECIFIED(&((e)->dst))
@@ -251,5 +231,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
  */
 
@@ -266,6 +246,5 @@
 
 /*
- *  åæ¹åç
-§
+ *  前方参照
  */
 
@@ -279,5 +258,5 @@
 
 /*
- *  å¤æ°
+ *  変数
  */
 
@@ -285,5 +264,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,10 +33,10 @@
 
 /*
- *  IPv6 ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  IPv6 で使用するカーネルオブジェクト
  */
 
 #ifdef SUPPORT_INET6
 
-/* è¿é£ã­ã£ãã·ã¥ */
+/* 近隣キャッシュ */
 
 CRE_SEM(SEM_ND6_CACHE, { TA_TPRI, 1, 1 });
@@ -56,5 +44,5 @@
 #if NUM_ND6_DEF_RTR_ENTRY > 0
 
-/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã */
+/* ディフォルトルータ・リスト */
 
 CRE_SEM(SEM_ND6_DEFRTRLIST, { TA_TPRI, 1, 1 });
@@ -64,5 +52,5 @@
 #ifdef IP6_CFG_FRAGMENT
 
-/* åå²ããã */
+/* 分割ヘッダ */
 
 CRE_SEM(SEM_IP6_FRAG_QUEUE, { TA_TPRI, 1, 1 });
@@ -72,5 +60,5 @@
 #if NUM_REDIRECT_ROUTE_ENTRY > 0
 
-/* ã«ã¼ãã£ã³ã°è¡¨ï¼åãç´ãï¼*/
+/* ルーティング表（向け直し）*/
 
 CRE_SEM(SEM_IN_ROUTING_TBL, { TA_TPRI, 1, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_input.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_input.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_input.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -158,5 +146,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
@@ -164,21 +152,20 @@
 
 /*
- *  ä¸ä½ãã­ãã³ã«é¸ææ§é ä½
+ *  上位プロトコル選択構造体
  */
 
 typedef struct t_proto_switch {
-	uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *);	/* å
-¥åé¢æ°		*/
-	uint_t proto;						/* ãã­ãã³ã«çªå·	*/
+	uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *);	/* 入力関数		*/
+	uint_t proto;						/* プロトコル番号	*/
 	} T_PROTO_SWITCH;
 
 static const T_PROTO_SWITCH proto_switch[] = {
-	{ esp6_input,	IPPROTO_ESP		},	/* IPv6 æå·åããã	*/
-	{ ah6_input,	IPPROTO_AH		},	/* IPv6 èªè¨¼ããã	*/
-	{ frag6_input,	IPPROTO_FRAGMENT	},	/* æ­çããã		*/
-	{ route6_input,	IPPROTO_ROUTING		},	/* çµè·¯å¶å¾¡ããã	*/
-	{ dest6_input,	IPPROTO_DSTOPTS		},	/* IPv6 çµç¹ãªãã·ã§ã³	*/
+	{ esp6_input,	IPPROTO_ESP		},	/* IPv6 暗号化ヘッダ	*/
+	{ ah6_input,	IPPROTO_AH		},	/* IPv6 認証ヘッダ	*/
+	{ frag6_input,	IPPROTO_FRAGMENT	},	/* 断片ヘッダ		*/
+	{ route6_input,	IPPROTO_ROUTING		},	/* 経路制御ヘッダ	*/
+	{ dest6_input,	IPPROTO_DSTOPTS		},	/* IPv6 終点オプション	*/
 	{ ip6_no_header_input,
-			IPPROTO_NONE		},	/* æ¬¡ãããç¡ã		*/
+			IPPROTO_NONE		},	/* 次ヘッダ無し		*/
 	{ icmp6_input,	IPPROTO_ICMPV6		},
 
@@ -204,5 +191,5 @@
 
 /*
- *  get_upper_proto -- ä¸ä½ãã­ãã³ã«å¦çé¢æ°ãè¿ãã
+ *  get_upper_proto -- 上位プロトコル処理関数を返す。
  */
 
@@ -219,6 +206,5 @@
 
 /*
- *  ip6_no_header_input -- æ¬¡ããããç¡ãã®å ´åã®å
-¥åå¦ç
+ *  ip6_no_header_input -- 次ヘッダが無しの場合の入力処理
  */
 
@@ -231,16 +217,13 @@
 
 /*
- *  ip6_hopopts_input -- ä¸­ç¶ç¹ãªãã·ã§ã³å
-¥åå¦ç
- *
- *    æ¬å®è£
-ã§ã¯ãããã£ã³ã°ä»¥å¤ã®ãªãã·ã§ã³ãå
-¨ã¦æªç¥ãªãã·ã§ã³ã¨ãã¦å¦çããã
- *
- *    æ»ãå¤:
- *
- *      0 ä»¥ä¸ 		æ­£å¸¸
- *      IP6_OPT_RET_ERR (-1)	ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
- *      IP6_OPT_RET_REL (-2)	ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã
+ *  ip6_hopopts_input -- 中継点オプション入力処理
+ *
+ *    本実装では、パディング以外のオプションを全て未知オプションとして処理する。
+ *
+ *    戻り値:
+ *
+ *      0 以上 		正常
+ *      IP6_OPT_RET_ERR (-1)	エラー、呼出側でネットワークバッファを開放する。
+ *      IP6_OPT_RET_REL (-2)	エラー、ネットワークバッファは開放されている。
  */
 
@@ -290,7 +273,7 @@
 
 /*
- *  ip6_get_prev_hdr -- ç´åã®æ¡å¼µãããã® next ãã£ã¼ã«ãã®ã¢ãã¬ã¹ãè¿ãã
- *
- *    æ³¨æ: off ã«ã¯ IF_HDR_SIZE ãå«ã¾ãã¦ããã
+ *  ip6_get_prev_hdr -- 直前の拡張ヘッダの next フィールドのアドレスを返す。
+ *
+ *    注意: off には IF_HDR_SIZE も含まれている。
  */
 
@@ -336,5 +319,5 @@
 
 /*
- *  ip6_init -- IPv6 ã®åæåé¢æ°
+ *  ip6_init -- IPv6 の初期化関数
  */
 
@@ -347,6 +330,5 @@
 
 /*
- *  ip6_input -- IPv6 ã®å
-¥åé¢æ°
+ *  ip6_input -- IPv6 の入力関数
  */
 
@@ -365,5 +347,5 @@
 	NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInReceives, 1);
 
-	/* IP ãããã®é·ãããã§ãã¯ããã*/
+	/* IP ヘッダの長さをチェックする。*/
 	if (input->len < IF_IP6_HDR_SIZE) {
 		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
@@ -374,5 +356,5 @@
 	ip6h = GET_IP6_HDR(input);
 
-	/* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/
+	/* バージョンをチェックする。*/
 	if (IP6_VCF_V(ntohl(ip6h->vcf)) != IPV6_VERSION) {
 		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_VER], 1);
@@ -382,22 +364,22 @@
 
 	/*
-	 *  æ¬¡ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã
+	 *  次のデータグラムは破棄する。
 	 *
-	 *    ã»å§ç¹ã¢ãã¬ã¹ããã«ãã­ã£ã¹ã
-	 *    ã»çµç¹ã¢ãã¬ã¹ãæªå®ç¾©
+	 *    ・始点アドレスがマルチキャスト
+	 *    ・終点アドレスが未定義
 	 *
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã«ã¼ãããã¯ã§ãªãã¨ãã
-	 *  æ¬¡ã®ãã¼ã¿ã°ã©ã ãç ´æ£ããã
+	 *  ネットワークインタフェースがループバックでないとき、
+	 *  次のデータグラムも破棄する。
 	 *
-	 *    ã»å§ç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯
-	 *    ã»çµç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯
+	 *    ・始点アドレスがループバック
+	 *    ・終点アドレスがループバック
 	 *
-	 *  æªæã®ããã¦ã¼ã¶ã TCP/UDP ã¹ã¿ãã¯ã®æ··ä¹±ã
-	 *  ã»ã­ã¥ãªãã£ãã§ãã¯ããã¤ãã¹ãããããIPv4
-	 *  ãããã¢ãã¬ã¹ãæªç¨ãããã¨ãé²ããã
-	 *  ä»¥ä¸ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã  
+	 *  悪意のあるユーザが TCP/UDP スタックの混乱や
+	 *  セキュリティチェックをバイパスするため、IPv4
+	 *  マップアドレスを悪用することを防ぐため
+	 *  以下のデータグラムは破棄する。  
 	 *
-	 *    ã»å§ç¹ã¢ãã¬ã¹ã ::ffff:127.0.0.1
-	 *    ã»çµç¹ã¢ãã¬ã¹ã ::ffff:127.0.0.1
+	 *    ・始点アドレスが ::ffff:127.0.0.1
+	 *    ・終点アドレスが ::ffff:127.0.0.1
 	 */
 
@@ -432,6 +414,5 @@
 
 	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst)) {
-		/* å®å
-ããã«ãã­ã£ã¹ãã®å ´åã®å¦ç */
+		/* 宛先がマルチキャストの場合の処理 */
 		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInMcastPkts, 1);
 		if (!in6_lookup_multi(ifp, &ip6h->dst)) {
@@ -448,5 +429,5 @@
 			}
 
-		/*  ã¢ãã¬ã¹ãæªè§£æ±ºã®å ´åã¯ãã¼ã¿ã°ã©ã ãç ´æ£ããã*/
+		/*  アドレスが未解決の場合はデータグラムを破棄する。*/
 		if (IFA6_IS_NOTREADY(ia6)) {
 			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1);
@@ -456,20 +437,20 @@
 		}
 
-	/* ãªãã»ãããè¨­å®ããã*/
+	/* オフセットを設定する。*/
 	offp  = GET_IP6_NEXT_HDR(input) - input->buf;
 
-	/* ãã¤ã­ã¼ãé·ãåãåºãã*/
+	/* ペイロード長を取り出す。*/
 	plen = ntohs(ip6h->plen);
 
 
-	/* æ¬¡ãããã®ä½ç½®ãåæåããã*/
+	/* 次ヘッダの位置を初期化する。*/
 	nextp = offsetof(T_IP6_HDR, next);
 
 	/*
-	 *  ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ãããã®ãã§ãã¯
+	 *  中継点 (Hop-by-Hop) オプションヘッダのチェック
 	 */
 	if (ip6h->next == IPPROTO_HOPOPTS) {
 
-		/* ä¸­ç¶ç¹ãããã®é·ãããã§ãã¯ããã*/
+		/* 中継点ヘッダの長さをチェックする。*/
 		if (plen < sizeof(T_IP6_HBH_HDR)) {
 			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
@@ -492,12 +473,10 @@
 
 		/*
-		 *  ãã¤ã­ã¼ãé·ã 0 ã§ãä¸­ç¶ç¹ãªãã·ã§ã³ãããã¨ãã¯ã
-		 *  å·¨å¤§ãã¤ã­ã¼ãã»ãªãã·ã§ã³ãå«ã¾ããªããã°ãªããªãã
-		 *  ãã®ã¨ããå·¨å¤§ãã¤ã­ã¼ãã»ãªãã·ã§ã³ã«ãã
-		 *  ãã¤ã­ã¼ãé·ããã§ãã¯ããå¿
-è¦ãããããæ¬å®è£
-ã§ã¯ã
-		 *  å·¨å¤§ãã¤ã­ã¼ãã»ãªãã·ã§ã³ãæªç¥ã®ãªãã·ã§ã³ã¨ãã¦
-		 *  æ±ãã®ã§ãä½ãããªãã
+		 *  ペイロード長が 0 で、中継点オプションがあるときは、
+		 *  巨大ペイロード・オプションが含まれなければならない。
+		 *  このとき、巨大ペイロード・オプションにある
+		 *  ペイロード長をチェックする必要があるが、本実装では、
+		 *  巨大ペイロード・オプションを未知のオプションとして
+		 *  扱うので、何もしない。
 		 */
 		next = ((T_IP6_HBH_HDR *)(ip6h + 1))->next;
@@ -506,5 +485,5 @@
 		next = ip6h->next;
 
-	/* IPv6 ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/
+	/* IPv6 データグラム長をチェックする。*/
 	if (input->len - IF_IP6_HDR_SIZE < plen) {
 		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
@@ -515,5 +494,5 @@
 		input->len = IF_IP6_HDR_SIZE + plen;
 
-	/* ä¸ä½ãã­ãã³ã«å¦çé¢æ°ãå¼ã³åºãã*/
+	/* 上位プロトコル処理関数を呼び出す。*/
 	nest = 0;
 	while (next != IPPROTO_DONE) {
@@ -528,5 +507,5 @@
 			NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInUnknownProtos, 1);
 
-			/* icmp6_error ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã*/
+			/* icmp6_error でネットワークバッファを開放する。*/
 			icmp6_error(input, ICMP6_PARAM_PROB,
 			                   ICMP6_PARAMPROB_NEXT_HEADER, nextp);
@@ -545,8 +524,8 @@
 
 /*
- *  ip6_nexthdr -- æ¬¡ã®ãããã®ãªãã»ãããè¿ãã
- *
- *    æ»ãå¤ == -1 : æå¾ã®ããããã¾ãã¯ã¨ã©ã¼ã
- *    æ»ãå¤ >   0 : ããã«ããããç¶ãã
+ *  ip6_nexthdr -- 次のヘッダのオフセットを返す。
+ *
+ *    戻り値 == -1 : 最後のヘッダ、またはエラー。
+ *    戻り値 >   0 : さらにヘッダが続く。
  */
 
@@ -566,9 +545,9 @@
 		break;
 
-	case IPPROTO_FRAGMENT:			/* æ­çããã */
+	case IPPROTO_FRAGMENT:			/* 断片ヘッダ */
 		if (nbuf->len < off + sizeof(T_IP6_FRAG_HDR))
 			return (ER_UINT)-1;
 
-		/* ä¸­éã®ãã©ã°ã¡ã³ãã®å ´åã¯å¦çããããã*/
+		/* 中間のフラグメントの場合は処理をやめる。*/
 		ip6fh = (T_IP6_FRAG_HDR *)(nbuf->buf + off);
 		if (ntohs(ip6fh->off_flag) & IP6F_MORE_FRAG)
@@ -579,8 +558,8 @@
 		break;
 
-	case IPPROTO_AH:		/* IPv6 èªè¨¼ããã			*/
-	case IPPROTO_HOPOPTS:		/* IPv6 ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³	*/
-	case IPPROTO_ROUTING:		/* çµè·¯å¶å¾¡ããã			*/
-	case IPPROTO_DSTOPTS:		/* IPv6 çµç¹ãªãã·ã§ã³			*/
+	case IPPROTO_AH:		/* IPv6 認証ヘッダ			*/
+	case IPPROTO_HOPOPTS:		/* IPv6 中継点 (Hop-by-Hop) オプション	*/
+	case IPPROTO_ROUTING:		/* 経路制御ヘッダ			*/
+	case IPPROTO_DSTOPTS:		/* IPv6 終点オプション			*/
 		if (nbuf->len < off + sizeof(T_IP6_EXT_HDR))
 			return (ER_UINT)-1;
@@ -599,5 +578,5 @@
 
 /*
- *  ip6_lasthdr -- æå¾ã®ãããã®ãªãã»ãããè¿ãã
+ *  ip6_lasthdr -- 最後のヘッダのオフセットを返す。
  */
 
@@ -618,11 +597,11 @@
 
 /*
- *  ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç
- *
- *    æ»ãå¤:
- *
- *      0 ä»¥ä¸ 			æ­£å¸¸ããªãã·ã§ã³é·ã
- *      IP6_OPT_RET_ERR (-1)	ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
- *      IP6_OPT_RET_REL (-2)	ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã
+ *  ip6_unknown_opt -- 未知のオプションの処理
+ *
+ *    戻り値:
+ *
+ *      0 以上 			正常、オプション長。
+ *      IP6_OPT_RET_ERR (-1)	エラー、呼出側でネットワークバッファを開放する。
+ *      IP6_OPT_RET_REL (-2)	エラー、ネットワークバッファは開放されている。
  */
 
@@ -631,12 +610,12 @@
 {
 	switch (IP6OPT_TYPE(*opt)) {
-	case IP6OPT_TYPE_SKIP:		/* ç¡è¦ããã			*/
+	case IP6OPT_TYPE_SKIP:		/* 無視する。			*/
 		return *(opt + 1);
 		break;
-	case IP6OPT_TYPE_ICMP:		/* ç ´æ£ãã¦ããã«ãã­ã£ã¹ãã§ãªããã° ICMP ãè¿éããã	*/
+	case IP6OPT_TYPE_ICMP:		/* 破棄して、マルチキャストでなければ ICMP を返送する。	*/
 		if (IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst))
 			return IP6_OPT_RET_ERR;
 		/* no break; */
-	case IP6OPT_TYPE_FORCEICMP:	/* ç ´æ£ãã¦ãICMP ãè¿éããã	*/
+	case IP6OPT_TYPE_FORCEICMP:	/* 破棄して、ICMP を返送する。	*/
 		icmp6_error(input, ICMP6_PARAM_PROB,
 		                   ICMP6_PARAMPROB_OPTION,
@@ -644,5 +623,5 @@
 		return IP6_OPT_RET_REL;
 		break;
-	/*case IP6OPT_TYPE_DISCARD:	ãã¼ã¿ã°ã©ã ãç ´æ£ããã	*/
+	/*case IP6OPT_TYPE_DISCARD:	データグラムを破棄する。	*/
 		}
 
@@ -651,5 +630,5 @@
 
 /*
- *  ip6_remove_exthdrs -- IPv6 æ¡å¼µããããåé¤ããä»¥éãåã«è©°ããã
+ *  ip6_remove_exthdrs -- IPv6 拡張ヘッダを削除し、以降を前に詰める。
  */
 
@@ -660,8 +639,8 @@
 	uint_t	next;
 
-	/* éå§ãªãã»ããã IP ãããã«è¨­å®ããã*/
+	/* 開始オフセットを IP ヘッダに設定する。*/
 	off = ((uint8_t *)GET_IP_HDR(nbuf)) - nbuf->buf;
 
-	/* æçµããããæ¢ç´¢ããã*/
+	/* 最終ヘッダを探索する。*/
 	off = ip6_lasthdr(nbuf, off, IPPROTO_IPV6, &next);
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_output.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_output.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_output.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -153,14 +141,13 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-/* ãªã³ã¯ MTU */
+ *  全域変数
+ */
+
+/* リンク MTU */
 
 uint32_t	linkmtu = IF_MTU;
 
 /*
- *  å±æå¤æ°
+ *  局所変数
  */
 
@@ -172,5 +159,5 @@
 
 /*
- *  ip6_output -- IPv6 ã®åºåé¢æ°
+ *  ip6_output -- IPv6 の出力関数
  */
 
@@ -203,7 +190,6 @@
 
 	/*
-	 *  éè¤ã¢ãã¬ã¹æ¤åºè¦è«ä»¥å¤ã«ã¯ãéä¿¡å
-ã¢ãã¬ã¹ã«
-	 *  ç¡æå®ãæå®ã§ããªãã
+	 *  重複アドレス検出要請以外には、送信元アドレスに
+	 *  無指定を指定できない。
 	 */
 	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) && (flags & IPV6_OUT_FLG_DAD) == 0) {
@@ -212,6 +198,5 @@
 		}
 
-	/* éä¿¡å
-ã¢ãã¬ã¹ã«ã¯ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãæå®ã§ããªãã*/
+	/* 送信元アドレスにはマルチキャストアドレスを指定できない。*/
 	if (IN6_IS_ADDR_MULTICAST(&ip6h->src)) {
 		error = E_PAR;
@@ -220,5 +205,5 @@
 
 	/*
-	 *  çµè·¯é¸æãè¡ãã
+	 *  経路選択を行う。
 	 */
 	if ((gw = in6_rtalloc(ifp, &ip6h->dst)) == NULL) {
@@ -228,8 +213,8 @@
 
 	if (!IN6_IS_ADDR_MULTICAST(&ip6h->dst)) {
-		/* ã¦ãã­ã£ã¹ãã¢ãã¬ã¹ã®å¦ç */
+		/* ユニキャストアドレスの処理 */
 		}
 	else {
-		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®å¦ç */
+		/* マルチキャストアドレスの処理 */
 		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutMcastPkts, 1);
 		if (flags & IPV6_OUT_FLG_HOP_LIMIT)
@@ -239,5 +224,5 @@
 		}
 
-	/* Traffic Class ã¨ Flow Label ããµãã¼ãããªãã®ã§ 0 ã«è¨­å®ããã*/
+	/* Traffic Class と Flow Label をサポートしないので 0 に設定する。*/
 	ip6h->vcf = htonl(IP6_MAKE_VCF(IPV6_VERSION, 0));
 
@@ -252,7 +237,7 @@
 
 		/*
-		 *  Path MTU ãç»é²ããã¦ããå ´åã
-		 *  MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ã®å ´åã¯ã
-		 *  MTU ã IPv6 MMTU ã«è¨­å®ãåå²ãã¦éä¿¡ããã
+		 *  Path MTU が登録されている場合、
+		 *  MTU が IPv6 MMTU（1280 オクテット）以下の場合は、
+		 *  MTU を IPv6 MMTU に設定し分割して送信する。
 		 */
 		mtu = IPV6_MMTU;
@@ -271,6 +256,5 @@
 	if (plen + IP6_HDR_SIZE <= mtu && !alwaysfrag) {
 
-		/* åå²ããå¿
-è¦ããªãã¨ãã®å¦ç */
+		/* 分割する必要がないときの処理 */
 		if ((error = nd6_output(ifp, output, gw, NULL, tmout)) != E_OK) {
 			NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_ERR_PACKETS], 1);
@@ -280,18 +264,16 @@
 	else {
 
-		/* æ­ç ID ãè¨­å®ããã*/
+		/* 断片 ID を設定する。*/
 		id = ip6_id ++;
 
-		/* MTU ã IPv6 ã®æå¤§ãã±ãããµã¤ãºãè¶
-ããªãããã«ããã*/
+		/* MTU が IPv6 の最大パケットサイズを超えないようにする。*/
 		if (mtu > IPV6_MAXPACKET)
 			mtu = IPV6_MAXPACKET;
 
 		/*
-		 *  MTU ãããåå²ä¸è½é¨åï¼TINET-1.4 ã§ã¯ãåå²ãããä»¥å¤ã®
-		 *  æ¡å¼µãããã®åºåã¯æªå®è£
-ã®ãã 0 ãªã¯ãããï¼
-		 *  ã¨æ­çãããã®ãµã¤ãºãå¼ããã¨ãã8 ãªã¯ãããä»¥ä¸ãªããã°
-		 *  åå²ãã¦éä¿¡ã§ããªãããã¨ã©ã¼ã«ããã
+		 *  MTU から、分割不能部分（TINET-1.4 では、分割ヘッダ以外の
+		 *  拡張ヘッダの出力は未実装のため 0 オクテット）
+		 *  と断片ヘッダのサイズを引いたとき、8 オクテット以上なければ
+		 *  分割して送信できないためエラーにする。
 		 */
 		if (((mtu - sizeof(T_IP6_FRAG_HDR)) & ~7) < 8) {
@@ -301,17 +283,16 @@
 
 		/*
-		 *  IPv6 ãããã® next ãã£ã¼ã«ãã«è¨­å®ããå¤ã¯ãæ­çãããã
-		 *  æ­çãããã®  next ãã£ã¼ã«ãã«è¨­å®ããå¤ã¯ã
-		 *  å
-ã®ãã¼ã¿ã°ã©ã ã® next ãã£ã¼ã«ãã®å¤ã
+		 *  IPv6 ヘッダの next フィールドに設定する値は、断片ヘッダ。
+		 *  断片ヘッダの  next フィールドに設定する値は、
+		 *  元のデータグラムの next フィールドの値。
 		 */
 		nextproto  = ip6h->next;
 		ip6h->next = IPPROTO_FRAGMENT;
 
-		/* åå²ãã¦éä¿¡ããã*/
+		/* 分割して送信する。*/
 		NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT], 1);
 		for (foff = 0; foff < plen; foff += flen) {
 
-			/* æ­çã®é·ããè¨ç®ãã8 ãªã¯ãããå¢çã«èª¿æ´ããã*/
+			/* 断片の長さを計算し、8 オクテット境界に調整する。*/
 			if (foff + (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) < plen)
 				flen = (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) >> 3 << 3;
@@ -319,15 +300,15 @@
 				flen = plen - foff;
 
-			/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+			/* ネットワークバッファを獲得する。*/
 			if (tget_net_buf(&frag, flen + IF_IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR), TMO_IP6_FRAG_GET_NET_BUF) == E_OK) {
 
-				/* IPv6 ããããã³ãã¼ããã*/
+				/* IPv6 ヘッダをコピーする。*/
 				fip6h = GET_IP6_HDR(frag);
 				*fip6h = *ip6h;
 
-				/* IPv6 ããããåããã*/
+				/* IPv6 ヘッダを埋める。*/
 				fip6h->plen	= htons(flen + sizeof(T_IP6_FRAG_HDR));
 
-				/* æ­çããããåããã*/
+				/* 断片ヘッダを埋める。*/
 				fip6f = (T_IP6_FRAG_HDR *)GET_IP6_NEXT_HDR(frag);
 				fip6f->off_flag	= htons((uint16_t)(foff & ~7));
@@ -338,10 +319,10 @@
 				fip6f->next	= nextproto;
 
-				/* SDU ãã³ãã¼ããã*/
+				/* SDU をコピーする。*/
 				memcpy((uint8_t*)(fip6f + 1), GET_IP6_NEXT_HDR(output) + foff, flen);
 				NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT_FRAGS], 1);
 				NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragCreates, 1);
 
-				/* éä¿¡ããã*/
+				/* 送信する。*/
 				if ((error = nd6_output(ifp, frag, gw, NULL, tmout)) != E_OK) {
 					NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragFails, 1);
@@ -350,5 +331,5 @@
 				}
 			else {
-				/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ã§ããªããã°ãéä¿¡ããããããã*/
+				/* ネットワークバッファが獲得できなければ、送信をあきらめる。*/
 				error = E_NOMEM;
 				goto drop;
@@ -356,5 +337,5 @@
 			}
 
-		/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+		/* IF でネットワークバッファを開放しないフラグをチェックする。*/
 		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
 			syscall(rel_net_buf(output));
@@ -378,5 +359,5 @@
 
 drop:
-	/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+	/* IF でネットワークバッファを開放しないフラグをチェックする。*/
 	if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
 		syscall(rel_net_buf(output));
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_var.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_var.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -117,5 +105,5 @@
 
 /*
- *  IPv6 ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ *  IPv6 ヘッダ・ペイロードアクセスマクロ
  */
 
@@ -132,10 +120,10 @@
 #define SET_IP6_SDU_SIZE(iph,slen)	((iph)->plen=htons(slen))
 
-/* ip6_output ã®ãã©ã° */
-
-#define IPV6_OUT_FLG_DAD		0x0100	/* éè¤ã¢ãã¬ã¹æ¤åº	*/
-#define IPV6_OUT_FLG_HOP_LIMIT		0x0200	/* ããããªãããæå®	*/
-
-/* ããããªããããã©ã°ãä»ãæãããããªãããå¤ãæä½ãããã¯ã­ */
+/* ip6_output のフラグ */
+
+#define IPV6_OUT_FLG_DAD		0x0100	/* 重複アドレス検出	*/
+#define IPV6_OUT_FLG_HOP_LIMIT		0x0200	/* ホップリミット指定	*/
+
+/* ホップリミットフラグが付く時、ホップリミット値を操作するマクロ */
 
 #define IPV6_OUT_GET_HOP_LIMIT(f)	((f)&0x00ff)
@@ -143,11 +131,11 @@
 
 /*
- *  ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç
- *
- *    æ»ãå¤:
- *
- *      0 ä»¥ä¸ 			æ­£å¸¸ããªãã·ã§ã³é·ã
- *      IP6_OPT_RET_ERR (-1)	ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
- *      IP6_OPT_RET_REL (-2)	ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã
+ *  ip6_unknown_opt -- 未知のオプションの処理
+ *
+ *    戻り値:
+ *
+ *      0 以上 			正常、オプション長。
+ *      IP6_OPT_RET_ERR (-1)	エラー、呼出側でネットワークバッファを開放する。
+ *      IP6_OPT_RET_REL (-2)	エラー、ネットワークバッファは開放されている。
  */
 
@@ -156,5 +144,5 @@
 
 /*
- *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
  */
 
@@ -177,11 +165,11 @@
 
 /*
- *  IPv6 ã® MMTU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  IPv6 の MMTU サイズのネットワークバッファ
  */
 
 typedef struct t_net_buf_ipv6_mmtu {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		unit;	/* ã¤ã³ã¿ãã§ã¼ã¹çªå·	*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		unit;	/* インタフェース番号	*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -191,15 +179,15 @@
 #endif
 	uint8_t		buf[IF_HDR_SIZE + IPV6_MMTU];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} T_NET_BUF_IPV6_MMTU;
 
 /*
- *  65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *  65536 オクテットサイズのネットワークバッファ
  */
 
 typedef struct t_net_buf6_65536 {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -209,8 +197,8 @@
 #endif
 	uint8_t		buf[IF_IP6_HDR_SIZE + 65536];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 #if defined(IF_PDU_HDR_PADDING)
 	uint8_t		padding[IF_PDU_HDR_PADDING];
-#endif				/* ãããã®ä½å		*/
+#endif				/* ヘッダの余分		*/
 	} T_NET_BUF6_65536;
 
@@ -218,5 +206,5 @@
 
 /*
- *  åæ§æã­ã¥ã¼ç¨ IPv6 ãããã®å®ç¾©
+ *  再構成キュー用 IPv6 ヘッダの定義
  */
 
@@ -229,8 +217,8 @@
 	uint8_t		hlim;		/* Hop Limit				*/
 	T_IN6_ADDR	src;		/* Source Address			*/
-	T_NET_BUF	*next_frag;	/* æ¬¡ã® IPv6 ãã©ã°ã¡ã³ã	*/
-	uint16_t	foff;		/* æ­çãããã®ãªãã»ãã		*/
-	uint16_t	flen;		/* æ­çé·				*/
-	uint16_t	ftim;		/* åæ§æã¿ã¤ã ã¢ã¦ã			*/
+	T_NET_BUF	*next_frag;	/* 次の IPv6 フラグメント	*/
+	uint16_t	foff;		/* 断片ヘッダのオフセット		*/
+	uint16_t	flen;		/* 断片長				*/
+	uint16_t	ftim;		/* 再構成タイムアウト			*/
 	uint16_t	dummy1;
 	uint8_t		dummy2[sizeof(T_IN6_ADDR) - (sizeof(T_NET_BUF*) + sizeof(uint16_t) * 4)];
@@ -247,11 +235,11 @@
 
 /*
- *  ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡
+ *  データグラム再構成用ネットワークバッファ
  */
 
 typedef struct t_net_buf6_reassm {
-	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
-	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
-	uint8_t		flags;	/* ãã©ã°		*/
+	uint16_t	len;	/* データの長さ		*/
+	uint8_t		idix;	/* mpfid のインデックス	*/
+	uint8_t		flags;	/* フラグ		*/
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -261,5 +249,5 @@
 #endif
 	uint8_t		buf[IP6_CFG_FRAG_REASSM_SIZE];
-				/* ãããã¡æ¬ä½		*/
+				/* バッファ本体		*/
 	} T_NET_BUF6_REASSM;
 
@@ -267,5 +255,5 @@
 
 /*
- *  TCP ã®åæ§æã­ã¥ã¼ã«ããã IPv6 ãããã®å®ç¾©
+ *  TCP の再構成キューにおける IPv6 ヘッダの定義
  */
 
@@ -274,5 +262,5 @@
 	uint8_t cf;		/* Traffic Class:  8 bit		*/
 			/* Flow Label:     4 bit (20 bit)	*/
-	uint16_t thoff;	/* TCP ãããã®ãªãã»ãã		*/
+	uint16_t thoff;	/* TCP ヘッダのオフセット		*/
 	uint16_t plen;	/* Payload Length			*/
 	uint8_t next;	/* Next Header				*/
@@ -285,6 +273,5 @@
 
 /*
- *  SNMP ã® ç®¡çæ
-å ±ãã¼ã¹ (MIB)
+ *  SNMP の 管理情報ベース (MIB)
  */
 
@@ -317,5 +304,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ipsec.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ipsec.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ipsec.cfg	(revision 321)
@@ -7,39 +7,27 @@
  *  Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -47,5 +35,5 @@
 
 /*
- *  IPsec ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ *  IPsec で使用するカーネルオブジェクト
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -132,5 +120,5 @@
 
 /*
- *  è¿é£ã­ã£ãã·ã¥
+ *  近隣キャッシュ
  */
 
@@ -138,5 +126,5 @@
 
 /*
- *  nd6_free -- ã«ã¼ã¿ãåé¤ããã
+ *  nd6_free -- ルータを削除する。
  */
 
@@ -150,5 +138,5 @@
 		ln->state = ND6_LLINFO_INCOMPLETE;
 
-		/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãããã«ã¼ã¿ãåé¤ããã*/
+		/* プレフィックス・リストからルータを削除する。*/
 		nd6_defrtrlist_del(dr);
 		}
@@ -156,5 +144,5 @@
 
 /*
- *  nd6_timer -- è¿é£æ¢ç´¢ç®¡çã¿ã¤ãã¼
+ *  nd6_timer -- 近隣探索管理タイマー
  */
 
@@ -167,5 +155,5 @@
 	int_t		ix;
 
-	/* è¿é£ã­ã£ãã·ã¥ã®å¦ç */
+	/* 近隣キャッシュの処理 */
 	syscall(wai_sem(SEM_ND6_CACHE));
 	syscall(get_tim(&now));
@@ -177,11 +165,11 @@
 			switch (ln->state) {
 
-			case ND6_LLINFO_INCOMPLETE:	/* æªè§£æ±º		*/
+			case ND6_LLINFO_INCOMPLETE:	/* 未解決		*/
 				if (ln->asked < ND6_MAX_MCAST_QUERY) {
 					/*
-					 *  ãã«ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°ä»¥ä¸ã®å ´åã®å¦ç
+					 *  マルチキャストアドレス要請の再送回数以下の場合の処理
 					 */
 					ln->asked ++;
-					ln->expire = now + ND6_RETRANS_TIME;	/* è¿é£æ¢ç´¢éä¿¡éé */
+					ln->expire = now + ND6_RETRANS_TIME;	/* 近隣探索送信間隔 */
 					nd6_ns_output(ifp, &in6_addr_unspecified, &ln->addr, ln, false);
 					}
@@ -189,13 +177,11 @@
 					if (ln->hold != NULL) {
 						/*
-						 *  æçµçã«ã¯ãä¿çããã¦ãããããã¯ã¼ã¯ãããã¡ã
-						 *  ããã°ãICMP6 ERROR ãèªåèªèº«ã«è¿ãããã¨ã
-						 *  ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
-						 *  ããããç¾å¨ãicmp6_error ã®å®è£
-ãä¸å®å
-¨ã®ããã
-						 *  ãããã¯ã¼ã¯ãããã¡ã®éæ¾ã®ã¿è¡ãã
+						 *  最終的には、保留されているネットワークバッファが
+						 *  あれば、ICMP6 ERROR を自分自身に返したあと、
+						 *  ネットワークバッファを開放する。
+						 *  しかし、現在、icmp6_error の実装が不完全のため、
+						 *  ネットワークバッファの開放のみ行う。
 						 */
-#if 0	/* ä¿ç */
+#if 0	/* 保留 */
 						icmp6_error(ln->hold, ICMP6_DST_UNREACH,
 						                      ICMP6_DST_UNREACH_ADDR, 0);
@@ -209,5 +195,5 @@
 				break;
 
-			case ND6_LLINFO_REACHABLE:	/* å°éå¯è½		*/
+			case ND6_LLINFO_REACHABLE:	/* 到達可能		*/
 				if (ln->expire) {
 					ln->expire = now + ND6_GCOLLECTION_TIME;
@@ -216,5 +202,5 @@
 				break;
 
-			case ND6_LLINFO_STALE:		/* å°éå¯è½æ§ã¯æªç¢ºèª	*/
+			case ND6_LLINFO_STALE:		/* 到達可能性は未確認	*/
 				if (ln->expire) {
 					if (ln->hold != NULL) {
@@ -227,19 +213,18 @@
 				break;
 
-			case ND6_LLINFO_DELAY:		/* å°éå¯è½æ§ã®ç¢ºèªå¾
-æ©	*/
+			case ND6_LLINFO_DELAY:		/* 到達可能性の確認待機	*/
 				ln->asked = 1;
-				ln->expire = now + ND6_RETRANS_TIME;		/* è¿é£æ¢ç´¢éä¿¡éé */
+				ln->expire = now + ND6_RETRANS_TIME;		/* 近隣探索送信間隔 */
 				ln->state = ND6_LLINFO_PROBE;
 				nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
 				break;
 
-			case ND6_LLINFO_PROBE:		/* å°éå¯è½æ§ãç¢ºèªä¸­	*/
+			case ND6_LLINFO_PROBE:		/* 到達可能性を確認中	*/
 				if (ln->asked < ND6_MAX_UCAST_QUERY) {
 					/*
-					 *  ã¦ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°ä»¥ä¸ã®å ´åã®å¦ç
+					 *  ユニキャストアドレス要請の再送回数以下の場合の処理
 					 */
 					ln->asked ++;
-					ln->expire += ND6_RETRANS_TIME;	/* è¿é£æ¢ç´¢éä¿¡éé */
+					ln->expire += ND6_RETRANS_TIME;	/* 近隣探索送信間隔 */
 					nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
 					}
@@ -259,16 +244,15 @@
 	syscall(sig_sem(SEM_ND6_CACHE));
 
-	/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®å¦ç */
+	/* ディフォルトルータ・リストの処理 */
 	nd6_defrtrlist_timer();
 
-	/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®å¦ç */
+	/* プレフィックス・リストの処理 */
 	nd6_prelist_timer();
 
-	/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã®å¦ç */
+	/* ネットワークインタフェースのアドレスの処理 */
 	in6_ifaddr_timer(ifp);
 
 	/*
-	 *  å°éå¯è½ç¶æ
-ã®æå¹æéã®æ´æ°
+	 *  到達可能状態の有効時間の更新
 	 */
 	if ((int32_t)(nd6_recalc_reachtm_interval - now) < 0) {
@@ -281,5 +265,5 @@
 
 /*
- *  nd6_get_cache -- è¿é£ã­ã£ãã·ã¥ãç²å¾ããã
+ *  nd6_get_cache -- 近隣キャッシュを獲得する。
  */
 
@@ -291,5 +275,5 @@
 
 /*
- *  nd6_ifattach -- è¿é£æ¢ç´¢ã®åæè¨­å®ãè¡ãã
+ *  nd6_ifattach -- 近隣探索の初期設定を行う。
  */
 
@@ -300,10 +284,8 @@
 
 /*
- *  nd6_output_hold -- è¿é£æ¢ç´¢ã­ã£ãã·ã¥ã«ä¿çããã¦ãã
- *                     ã¢ãã¬ã¹è§£æ±ºå¾
-ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã
- *
- *    æ³¨æ: ã»ããã© SEM_ND6_CACHE ã«ããã­ãã¯ç¶æ
-ã§å¼åºããã¨ã
+ *  nd6_output_hold -- 近隣探索キャッシュに保留されている
+ *                     アドレス解決待ちのデータグラムがあれば送信する。
+ *
+ *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
  */
 
@@ -313,15 +295,13 @@
 	SYSTIM now;
 
-	/* ã¢ãã¬ã¹è§£æ±ºå¾
-ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/
+	/* アドレス解決待ちのデータグラムがあれば送信する。*/
 	if (ln->hold) {
 
-		/* ã¿ã¤ã ã¢ã¦ãã®å¦ç */
+		/* タイムアウトの処理 */
 		if (ln->tmout != TMO_FEVR) {
 
 			/*
-			 *  ã¿ã¤ã ã¢ã¦ãã®æå®ãæ°¸ä¹
-ã§ãªããæéãéãã¦ããã°ã
-			 *  åºåããªãã§çµäºããã
+			 *  タイムアウトの指定が永久でなく、時間を過ぎていれば、
+			 *  出力しないで終了する。
 			 */
 			syscall(get_tim(&now));
@@ -341,8 +321,7 @@
 
 /*
- *  nd6_lookup -- è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãæ¢ç´¢ããã
- *
- *    æ³¨æ: ã»ããã© SEM_ND6_CACHE ã«ããã­ãã¯ç¶æ
-ã§å¼åºããã¨ã
+ *  nd6_lookup -- 近隣探索キャッシュを探索する。
+ *
+ *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
  *
  */
@@ -356,5 +335,5 @@
 	for (ix = NUM_ND6_CACHE_ENTRY; ix -- > 0; ) {
 		if (nd6_cache[ix].state == 0) {
-			/* æªä½¿ç¨ã¨ã³ããªã®ã¤ã³ããã¯ã¹ãè¨é²ããã*/
+			/* 未使用エントリのインデックスを記録する。*/
 			if (fix == -1)
 				fix = ix;
@@ -364,5 +343,5 @@
 			}
 		else if ((int32_t)(nd6_cache[ix].expire - min) < 0) {	/* nd6_cache[ix].expire < min */
-			/* æå¹æéãæç­ã¨ã³ããªã®ã¤ã³ããã¯ã¹ãè¨é²ããã*/
+			/* 有効期限が最短エントリのインデックスを記録する。*/
 			min = nd6_cache[ix].expire;
 			mix = ix;
@@ -387,5 +366,5 @@
 
 /*
- *  nd6_cache_lladdr -- è¿é£æ¢ç´¢ã­ã£ãã·ã¥ã«ç»é²ããã
+ *  nd6_cache_lladdr -- 近隣探索キャッシュに登録する。
  */
 
@@ -399,9 +378,9 @@
 	int_t		newstate = ND6_LLINFO_INCOMPLETE;
 
-	/* ã¢ãã¬ã¹ãç¡æå®ãªãä½ãããªãã*/
+	/* アドレスが無指定なら何もしない。*/
 	if (IN6_IS_ADDR_UNSPECIFIED(from))
 		return NULL;
 
-	/* è¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	/* 近隣キャッシュに登録する。*/
 	syscall(wai_sem(SEM_ND6_CACHE));
 	if ((ln = nd6_lookup(from, false)) == NULL) {
@@ -421,9 +400,8 @@
 
 	/*
-	 *  ç¶æ
-é·ç§»è¡¨
+	 *  状態遷移表
 	 *
 	 *  nd_na_flags
-	 *  newnetry olladdr lladdr llchange å¦ç (L: lladdr ãç»é²ãã)
+	 *  newnetry olladdr lladdr llchange 処理 (L: lladdr を登録する)
 	 *
 	 *      F       F       N       -    (1)
@@ -436,5 +414,5 @@
 	 */
 
-	/* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/
+	/* データリンク層のアドレスが通知されていれば更新する。*/
 	if (lladdr != NULL) {
 		ln->ifaddr = *(T_IF_ADDR *)lladdr;
@@ -458,5 +436,5 @@
 		}
 
-	/* è¿é£ã­ã£ãã·ã¥ã¨ã³ããªãæ´æ°ããã*/
+	/* 近隣キャッシュエントリを更新する。*/
 	if (doupdate) {
 		ln->state = newstate;
@@ -466,6 +444,5 @@
 			ln->expire = now + ND6_GCOLLECTION_TIME;
 
-			/* ã¢ãã¬ã¹è§£æ±ºå¾
-ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/
+			/* アドレス解決待ちのデータグラムがあれば送信する。*/
 			nd6_output_hold(ifp, ln);
 			}
@@ -476,5 +453,5 @@
 
 
-	/* ã«ã¼ã¿éç¥ã®å¦ç */
+	/* ルータ通知の処理 */
 	switch (type) {
 
@@ -506,5 +483,5 @@
 
 /*
- *  nd6_is_addr_neighbor -- æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããããã§ãã¯ããã
+ *  nd6_is_addr_neighbor -- 指定されたアドレスのノードが同一リンクにあるかチェックする。
  */
 
@@ -525,8 +502,7 @@
 
 /*
- *  nd6_output -- è¿é£æ¢ç´¢ã®åºåé¢æ°
- *
- *    æ³¨æ: ã»ããã© SEM_ND6_CACHE ã«ããã­ãã¯ç¶æ
-ã§å¼åºããã¨ã
+ *  nd6_output -- 近隣探索の出力関数
+ *
+ *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
  */
 
@@ -538,15 +514,14 @@
 
 	/*
-	 *  ãã¦å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãããè¿é£ã­ã£ãã·ã¥ã
-	 *  ä¸è¦ã®å ´åã¯ç´ã¡ã«éä¿¡ããã
+	 *  あて先アドレスがマルチキャストか、近隣キャッシュが
+	 *  不要の場合は直ちに送信する。
 	 */
 	if (!(IN6_IS_ADDR_MULTICAST(dst) || !IF_IN6_NEED_CACHE(ifp))) {
 		if (ln == NULL) {
-			/* è¿é£ã­ã£ãã·ã¥ãæªå®ç¾©ã®å ´å */
+			/* 近隣キャッシュが未定義の場合 */
 			if (nd6_is_addr_neighbor(ifp, dst)) {
 				/*
-				 *  æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããæã¯ã
-				 *  è¿é£ã­ã£ãã·ã¥ãæ¢ç´¢ããæªå®ç¾©ã®å ´åã¯ç»é²ããã
+				 *  指定されたアドレスのノードが同一リンクにある時は、
+				 *  近隣キャッシュを探索し、未定義の場合は登録する。
 				 */
 				ln = nd6_lookup(dst, true);
@@ -559,7 +534,6 @@
 
 		/*
-		 *  è¿é£ã­ã£ãã·ã¥ã®ç¶æ
-ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãåãã£ã¦ãã¦ãã
-		 *  å°éå¯è½æ§ãç¢ºèªããã¦ããªãã¨ãã¯ãå°éä¸è½éç¥ãéå§ããã
+		 *  近隣キャッシュの状態が、データリンク層のアドレスが分かっていても、
+		 *  到達可能性が確認されていないときは、到達不能通知を開始する。
 		 */
 		if (ln->state == ND6_LLINFO_STALE) {
@@ -571,11 +545,10 @@
 
 		/*
-		 *  è¿é£ã­ã£ãã·ã¥ã®ç¶æ
-ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´åã¯
-		 *  è¿é£æ¢ç´¢ãè¡ãã
+		 *  近隣キャッシュの状態が、データリンク層のアドレス未解決の場合は
+		 *  近隣探索を行う。
 		 */
 		if (ln->state <= ND6_LLINFO_INCOMPLETE) {
 
-			/* ã¿ã¤ã ã¢ã¦ãã®æå®ããã¼ãªã³ã°ãªãã¿ã¤ã ã¢ã¦ãã§çµäºããã*/
+			/* タイムアウトの指定がポーリングならタイムアウトで終了する。*/
 			if (tmout == TMO_POL) {
 				error = E_TMOUT;
@@ -586,5 +559,5 @@
 				ln->state = ND6_LLINFO_INCOMPLETE;
 
-			/* ãã§ã«ãæªè§£æ±ºã®ãããã¯ã¼ã¯ãããã¡ãããã°ãéæ¾ããã*/
+			/* すでに、未解決のネットワークバッファがあれば、開放する。*/
 			if (ln->hold != NULL) {
 				syscall(rel_net_buf(ln->hold));
@@ -592,12 +565,12 @@
 
 			/*
-			 *  éä¿¡ããã³ãã£ã³ã°ããã
-			 *  IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨­å®ããã¦ããã¨ãã¯ã
-			 *  éä¿¡ããã³ãã£ã³ã°ããªãã
+			 *  送信をペンディングする。
+			 *  IF でネットワークバッファを開放しないフラグが設定されているときは、
+			 *  送信をペンディングしない。
 			 */
 			if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
 				ln->hold = output;
 
-				/* ã¿ã¤ã ã¢ã¦ãã®è¨­å® */
+				/* タイムアウトの設定 */
 				if (tmout == TMO_FEVR)
 					ln->tmout = tmout;
@@ -618,5 +591,5 @@
 					if ((int32_t)(ln->expire - now) < 0) {
 					           /* ln->expire < now */
-						ln->expire += ND6_RETRANS_TIME;	/* è¿é£æ¢ç´¢éä¿¡éé */
+						ln->expire += ND6_RETRANS_TIME;	/* 近隣探索送信間隔 */
 						ln->asked ++;
 						nd6_ns_output(ifp, &in6_addr_unspecified, dst, ln, false);
@@ -629,5 +602,5 @@
 
 	/*
-	 *  éè¤ãæ¤åºãããã¤ã³ã¿ãã§ã¼ã¹ã«ã¯åºåããªãã
+	 *  重複が検出されたインタフェースには出力しない。
 	 */
 	if ((ifp->flags & ND6_IFF_IFDISABLED) != 0) {
@@ -645,5 +618,5 @@
 
 /*
- *  nd6_storelladdr -- åºåãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿ãã
+ *  nd6_storelladdr -- 出力するネットワークインタフェースのアドレスを返す。
  */
 
@@ -662,8 +635,7 @@
 
 /*
- *  nd6_option -- è¿é£æ¢ç´¢ãªãã·ã§ã³ã®å¦ç
- *
- *    æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã
+ *  nd6_option -- 近隣探索オプションの処理
+ *
+ *    注意: オプションオフセット配列には、オフセット + 8 が設定されている。
  */
 
@@ -673,6 +645,5 @@
 	T_ND_OPT_HDR	*opth;
 	ER		error = E_OK;
-	int_t		pi_count = 0;	/* ãã¬ãã£ãã¯ã¹æ
-å ±ã®åæ° */
+	int_t		pi_count = 0;	/* プレフィックス情報の個数 */
 
 	opth = (T_ND_OPT_HDR *)nh;
@@ -681,5 +652,5 @@
 	while (error == E_OK && ((uint8_t *)opth - (uint8_t *)nh) < (256 - 8) && len > 0) {
 
-		/* ãªãã·ã§ã³é·ã 0 ã®æã¯ãä¸æ­£ãªãªãã·ã§ã³ã¨ãã¦å¦çããã*/
+		/* オプション長が 0 の時は、不正なオプションとして処理する。*/
 		if (opth->len == 0) {
 			error = E_PAR;
@@ -687,14 +658,12 @@
 			}
 
-		/* ãªãã·ã§ã³ã®ã¿ã¤ãã«ããåå²ããã*/
+		/* オプションのタイプにより分岐する。*/
 		switch (opth->type) {
-		case ND_OPT_SOURCE_LINKADDR:		/* éä¿¡å
-ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-		case ND_OPT_TARGET_LINKADDR:		/* å¯¾è±¡ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
-		case ND_OPT_REDIRECTED_HEADER:		/* ãªãã¤ã¬ã¯ãã»ããã				*/
+		case ND_OPT_SOURCE_LINKADDR:		/* 送信先ネットワークインタフェースのアドレス	*/
+		case ND_OPT_TARGET_LINKADDR:		/* 対象ネットワークインタフェースのアドレス	*/
+		case ND_OPT_REDIRECTED_HEADER:		/* リダイレクト・ヘッダ				*/
 		case ND_OPT_MTU:			/* MTU						*/
 			if (opt[ND_OPT_OFF_ARRAY_IX(opth->type)]) {
-				/* ãã¬ãã£ãã¯ã¹æ
-å ±ä»¥å¤ã®åããªãã·ã§ã³ãè¤æ°æå®ããã¦ããã*/
+				/* プレフィックス情報以外の同じオプションが複数指定されている。*/
 				error = E_PAR;
 				}
@@ -703,10 +672,8 @@
 				}
 			break;
-		case ND_OPT_PREFIX_INFORMATION:		/* ãã¬ãã£ãã¯ã¹æ
-å ±				*/
+		case ND_OPT_PREFIX_INFORMATION:		/* プレフィックス情報				*/
 			if (!opt[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)]) {
 				/*
-				 *  ãã¬ãã£ãã¯ã¹æ
-å ±ã¯æåã«ç¾ãããªãã»ããã®ã¿è¨é²ããã
+				 *  プレフィックス情報は最初に現れたオフセットのみ記録する。
 				 */
 				opt[ND_OPT_OFF_ARRAY_IX(opth->type)] = (uint8_t *)opth - (uint8_t *)nh + 8;
@@ -716,10 +683,10 @@
 		default:
 			/*
-			 *  å°æ¥å®ç¾©ããããã­ãã³ã«ã¸ã®æ¡å¼µã«å¯¾å¿ããããã
-			 *  èªè­ã§ããªããªãã·ã§ã³ã¯åã«ç¡è¦ããå¦çãç¶è¡ããã
+			 *  将来定義されるプロトコルへの拡張に対応するため、
+			 *  認識できないオプションは単に無視し、処理を続行する。
 			 */
 			break;
 			}
-		len -= opth->len << 3;		/* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã */
+		len -= opth->len << 3;		/* オプション長の単位は 8 バイト */
 		opth = (T_ND_OPT_HDR *)((uint8_t *)opth + (opth->len << 3));
 		}
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -82,11 +70,11 @@
 
 /*
- *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ï¼T_IFNETï¼ã®ãã©ã°
- */
-
-#define ND6_IFF_IFDISABLED	UINT_C(0x01)	/* ã¤ã³ã¿ãã§ã¼ã¹ãç¡å¹ã«ããã*/
-
-/*
- *  è¿é£ã­ã£ãã·ã¥ 
+ *  ネットワークインタフェース構造体（T_IFNET）のフラグ
+ */
+
+#define ND6_IFF_IFDISABLED	UINT_C(0x01)	/* インタフェースを無効にする。*/
+
+/*
+ *  近隣キャッシュ 
  */
 
@@ -95,5 +83,5 @@
 	T_NET_BUF	*hold;
 	TMO		tmout;
-	SYSTIM		expire;		/* [ms] æå¹æéãåããæå»	*/
+	SYSTIM		expire;		/* [ms] 有効時間が切れる時刻	*/
 	T_IF_ADDR	ifaddr;
 	uint8_t		state;
@@ -102,78 +90,64 @@
 	} T_LLINFO_ND6;
 
-/* è¿é£ã­ã£ãã·ã¥ã®ç¶æ
- */
-
-#define ND6_LLINFO_FREE			0	/* æªä½¿ç¨		*/
-#define ND6_LLINFO_NO_STATE		1	/* ç¶æ
-æªå®ç¾©		*/
-#define ND6_LLINFO_INCOMPLETE		2	/* æªè§£æ±º		*/
-#define ND6_LLINFO_REACHABLE		3	/* å°éå¯è½		*/
-#define ND6_LLINFO_STALE		4	/* å°éå¯è½æ§ã¯æªç¢ºèª	*/
-#define ND6_LLINFO_DELAY		5	/* å°éå¯è½æ§ã®ç¢ºèªå¾
-æ©	*/
-#define ND6_LLINFO_PROBE		6	/* å°éå¯è½æ§ãç¢ºèªä¸­	*/
+/* 近隣キャッシュの状態 */
+
+#define ND6_LLINFO_FREE			0	/* 未使用		*/
+#define ND6_LLINFO_NO_STATE		1	/* 状態未定義		*/
+#define ND6_LLINFO_INCOMPLETE		2	/* 未解決		*/
+#define ND6_LLINFO_REACHABLE		3	/* 到達可能		*/
+#define ND6_LLINFO_STALE		4	/* 到達可能性は未確認	*/
+#define ND6_LLINFO_DELAY		5	/* 到達可能性の確認待機	*/
+#define ND6_LLINFO_PROBE		6	/* 到達可能性を確認中	*/
 
 #define ND6_IS_LLINFO_PROBREACH(n)	((n)->state > ND6_LLINFO_INCOMPLETE)
 
-/* è¿é£ã­ã£ãã·ã¥ã®å¶å¾¡ããã */
-
-#define ND6_LLIF_ROUTER			UINT_C(0x80)	/* ã«ã¼ã¿		*/
-#define ND6_LLIF_ASKED			UINT_C(0x40)	/* éç¥æ¸ã¿		*/
-#define ND6_LLIF_STATE_MASK		UINT_C(0x07)	/* ç¶æ
-ãã¹ã¯		*/
-
-/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãæå¹æéã®å®ç¾© */
+/* 近隣キャッシュの制御ビット */
+
+#define ND6_LLIF_ROUTER			UINT_C(0x80)	/* ルータ		*/
+#define ND6_LLIF_ASKED			UINT_C(0x40)	/* 通知済み		*/
+#define ND6_LLIF_STATE_MASK		UINT_C(0x07)	/* 状態マスク		*/
+
+/* 近隣探索キャッシュ、有効時間の定義 */
 
 #define ND6_SLOW_TMO			((60*60*1000)/NET_TIMER_HZ)
-							/* 1 [æé]				*/
-							/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥æ´æ°ã¿ã¤ã ã¢ã¦ã	*/
-
-#define ND6_MAX_DAD_TRY			15		/* éè¤ã¢ãã¬ã¹æ¤åºã®åéåæ°		*/
-#define ND6_MAX_MCAST_QUERY		3		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°	*/
-#define ND6_MAX_UCAST_QUERY		3		/* ã¦ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°	*/
+							/* 1 [時間]				*/
+							/* 近隣探索キャッシュ更新タイムアウト	*/
+
+#define ND6_MAX_DAD_TRY			15		/* 重複アドレス検出の再送回数		*/
+#define ND6_MAX_MCAST_QUERY		3		/* マルチキャストアドレス要請の再送回数	*/
+#define ND6_MAX_UCAST_QUERY		3		/* ユニキャストアドレス要請の再送回数	*/
 
 #define ND6_INFINITE_LIFETIME		0xffffffff
 
 #define ND6_GCOLLECTION_TIME		(60*60*24*SYSTIM_HZ)
-							/* ã´ãæ¾ãå¨æã1 æ¥			*/
-#define	ND6_DELAY_TIME			(5*SYSTIM_HZ)	/* ç¢ºèªå¾
-æ©é
-å»¶				*/
-#define ND6_FIRST_DAD_DELAY_TIME	(1*SYSTIM_HZ)	/* æåã®éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é
-å»¶	*/
+							/* ゴミ拾い周期、1 日			*/
+#define	ND6_DELAY_TIME			(5*SYSTIM_HZ)	/* 確認待機遅延				*/
+#define ND6_FIRST_DAD_DELAY_TIME	(1*SYSTIM_HZ)	/* 最初の重複アドレス検出送信遅延	*/
 #define ND6_DAD_DELAY_TIME		(5*SYSTIM_HZ/10)
-							/* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é
-å»¶		*/
-
-/* è¿é£æ¢ç´¢ç¨ã¿ã¤ãã®è¨­å® */
-
-#define ND6_TIMER_TMO			((SYSTIM_HZ/NET_TIMER_CYCLE)/5)	/* 0.2[s] éé		*/
-
-/*
- *  å°éå¯è½ç¶æ
-ã®æå¹æé
- */
-
-#define	ND6_DEF_REACHABLE_TIME		(30*SYSTIM_HZ)	/* å°éå¯è½ç¶æ
-ã®æå¹æéã®æ¢å®å¤		*/
+							/* 重複アドレス検出送信遅延		*/
+
+/* 近隣探索用タイマの設定 */
+
+#define ND6_TIMER_TMO			((SYSTIM_HZ/NET_TIMER_CYCLE)/5)	/* 0.2[s] 間隔		*/
+
+/*
+ *  到達可能状態の有効時間
+ */
+
+#define	ND6_DEF_REACHABLE_TIME		(30*SYSTIM_HZ)	/* 到達可能状態の有効時間の既定値		*/
 #define	ND6_MAX_REACHABLE_TIME		(60*60*SYSTIM_HZ)
-							/* å°éå¯è½ç¶æ
-ã®æå¹æéã®æ¢å®å¤		*/
+							/* 到達可能状態の有効時間の既定値		*/
 #define	ND6_RECALC_REACHTM_INTERVAL	(60*60*2*SYSTIM_HZ)
-							/* å°éå¯è½ç¶æ
-ã®æå¹æéåè¨ç®éé	*/
-
-#define	ND6_MIN_REACHTM_RAND_FACTOR	512		/* æå°ä¹±æ°è£æ­£å¤ã1,024 * 0.5		*/
-
-#if 1							/* ã¿ã¤ãã¼ã®èµ·åééãèæ
-®ããè¦å®ããç­ãè¨­å®	*/
-#define	ND6_MAX_REACHTM_RAND_FACTOR	1484		/* æå°ä¹±æ°è£æ­£å¤ã1,024 * 1.45			*/
+							/* 到達可能状態の有効時間再計算間隔	*/
+
+#define	ND6_MIN_REACHTM_RAND_FACTOR	512		/* 最小乱数補正値、1,024 * 0.5		*/
+
+#if 1							/* タイマーの起動間隔を考慮し、規定より短く設定	*/
+#define	ND6_MAX_REACHTM_RAND_FACTOR	1484		/* 最小乱数補正値、1,024 * 1.45			*/
 #else
-#define	ND6_MAX_REACHTM_RAND_FACTOR	1536		/* æå°ä¹±æ°è£æ­£å¤ã1,024 * 1.5			*/
+#define	ND6_MAX_REACHTM_RAND_FACTOR	1536		/* 最小乱数補正値、1,024 * 1.5			*/
 #endif
 
-/* å°éå¯è½ç¶æ
-ã®æå¹æéã®è¨ç®ãã¯ã­ */
+/* 到達可能状態の有効時間の計算マクロ */
 
 #define ND6_CALC_REACH_TIME(b)		\
@@ -182,5 +156,5 @@
 
 /*
- *  è¿é£æ¢ç´¢ã®éä¿¡éé
+ *  近隣探索の送信間隔
  */
 
@@ -188,10 +162,10 @@
 
 /*
- *  ã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ãããå¤
+ *  ルータ通知により変更されることがある値
  */
 
 #if NUM_ND6_DEF_RTR_ENTRY > 0
 
-/* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤ */
+/* ルータ通知を受信する場合は、通知された値 */
 
 #define	ND6_REACHABLE_TIME		nd6_reachable_time
@@ -200,5 +174,5 @@
 #else	/* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
 
-/* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤ */
+/* ルータ通知を受信しない場合の値は既定値 */
 
 #define	ND6_REACHABLE_TIME		ND6_DEF_REACHABLE_TIME
@@ -208,53 +182,50 @@
 
 /*
- *  ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã
+ *  ディフォルトルータ・リスト
  */
 
 typedef struct t_def_router {
 	T_IN6_ADDR	addr;
-	SYSTIM		expire;		/* [ms] æå¹æéãåããæå»	*/
-	uint32_t	lifetime;	/* [ms] æå¹æé			*/
-	uint16_t	plistmap;	/* ãã¬ãã£ãã¯ã¹ããã		*/
-	uint8_t		flags;		/* ã«ã¼ã¿éç¥ã®ãã©ã°		*/
+	SYSTIM		expire;		/* [ms] 有効時間が切れる時刻	*/
+	uint32_t	lifetime;	/* [ms] 有効時間			*/
+	uint16_t	plistmap;	/* プレフィックスマップ		*/
+	uint8_t		flags;		/* ルータ通知のフラグ		*/
 	uint8_t		state;
 	} T_DEF_ROUTER;
 
-/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç¶æ
- */
-
-#define ND6_DEF_RTR_BUSY		0xff	/* ä½¿ç¨ä¸­		*/
-
-/* ãã¬ãã£ãã¯ã¹ã®ã¤ã³ããã¯ã¹ */
+/* ディフォルトルータ・リストの状態 */
+
+#define ND6_DEF_RTR_BUSY		0xff	/* 使用中		*/
+
+/* プレフィックスのインデックス */
 
 #define ND6_PREFIX_IX_INVALID		0xff
 
 /*
- *  ãã¬ãã£ãã¯ã¹ã»ãªã¹ã
+ *  プレフィックス・リスト
  */
 
 typedef struct t_nd6_prefix {
-	T_IN6_ADDR	prefix;		/* ãã¬ãã£ãã¯ã¹		*/
-	uint32_t	expire;		/* [s] æå¹æéãåããæå»	*/
-	uint32_t	preferred;	/* [s] æ¨å¥¨æå¹æéãåããæå»	*/
-	uint32_t	vltime;		/* [s] æå¹æé			*/
-	uint32_t	pltime;		/* [s] æ¨å¥¨æå¹æé		*/
-	uint16_t	routermap;	/* ã«ã¼ã¿ããã			*/
-	uint8_t		flags;		/* ãã©ã°			*/
-	uint8_t		prefix_len;	/* ãã¬ãã£ãã¯ã¹é·		*/
+	T_IN6_ADDR	prefix;		/* プレフィックス		*/
+	uint32_t	expire;		/* [s] 有効時間が切れる時刻	*/
+	uint32_t	preferred;	/* [s] 推奨有効時間が切れる時刻	*/
+	uint32_t	vltime;		/* [s] 有効時間			*/
+	uint32_t	pltime;		/* [s] 推奨有効時間		*/
+	uint16_t	routermap;	/* ルータマップ			*/
+	uint8_t		flags;		/* フラグ			*/
+	uint8_t		prefix_len;	/* プレフィックス長		*/
 	} T_ND6_PREFIX;
 
-/* ãã©ã° */
-
-#define ND6_PREFIX_FLAG_ONLINK		UINT_C(0x80)	/* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹	*/
-#define ND6_PREFIX_FLAG_AUTO		UINT_C(0x40)	/* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®*/
-
-#define ND6_PREFIX_STATE_BUSY		UINT_C(0x01)	/* ä½¿ç¨ä¸­		*/
-#define ND6_PREFIX_STATE_ONLINK		UINT_C(0x02)	/* ãªã³ãªã³ã¯ç¶æ
-	*/
-#define ND6_PREFIX_STATE_DETACHED	UINT_C(0x04)	/* éä½¿ç¨ç¶æ
-	*/
-
-/*
- *  å¤æ°
+/* フラグ */
+
+#define ND6_PREFIX_FLAG_ONLINK		UINT_C(0x80)	/* オンリンクプレフィックス	*/
+#define ND6_PREFIX_FLAG_AUTO		UINT_C(0x40)	/* ステートレス・アドレス自動設定*/
+
+#define ND6_PREFIX_STATE_BUSY		UINT_C(0x01)	/* 使用中		*/
+#define ND6_PREFIX_STATE_ONLINK		UINT_C(0x02)	/* オンリンク状態	*/
+#define ND6_PREFIX_STATE_DETACHED	UINT_C(0x04)	/* 非使用状態	*/
+
+/*
+ *  変数
  */
 
@@ -266,5 +237,5 @@
 
 /*
- *  é¢æ°
+ *  関数
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_nbr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_nbr.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_nbr.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -126,5 +114,5 @@
 
 /*
- *  å±æé¢æ°
+ *  局所関数
  */
 
@@ -136,5 +124,5 @@
 
 /*
- *  nd6_dad_duplicated -- éè¤ã¢ãã¬ã¹ãæ¤åºããæã®å¦ç
+ *  nd6_dad_duplicated -- 重複アドレスを検出した時の処理
  */
 
@@ -149,13 +137,13 @@
 		ifa->flags |=  IN6_IFF_DUPLICATED;
 
-		/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+		/* タイマーを停止する。*/
 		untimeout((callout_func)nd6_dad_timer, ifa);
 
 		/*
-		 *  ãã IPv6 ã¢ãã¬ã¹ããã¦ãã¼ã¯ã«å²ãå½ã¦ãã
-		 * ï¼ã¤ã¼ãµãããç¨ã® EUI-64ï¼ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹ããã¼ã¹ã¨ãã
-		 *  ã¤ã³ã¿ãã§ã¼ã¹ ID ã§çæãããã®ã§ããã°ã
-		 *  ãã®ã¤ã³ã¿ãã§ã¼ã¹ã§ã® IPv6 ã®åä½ã¯ç¡å¹ã«ãã¹ãã§ãã
-		 * ï¼RFC2462bis-03 ã»ã¯ã·ã§ã³ 5.4.5ï¼ã
+		 *  もし IPv6 アドレスが、ユニークに割り当てらた
+		 * （イーサネット用の EUI-64）ハードウェアアドレスをベースとした
+		 *  インタフェース ID で生成されたのであれば、
+		 *  このインタフェースでの IPv6 の動作は無効にすべきである
+		 * （RFC2462bis-03 セクション 5.4.5）。
 		 */
 		if (IN6_IS_ADDR_LINKLOCAL(&ifa->addr))
@@ -165,5 +153,5 @@
 
 /*
- *  nd6_dad_ns_output -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ãåºåããã
+ *  nd6_dad_ns_output -- 重複アドレス検出 (DAD) 要請を出力する。
  */
 
@@ -178,6 +166,5 @@
 
 /*
- *  nd6_dad_ns_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«å
-¥å
+ *  nd6_dad_ns_input -- 重複アドレス検出 (DAD) 要請入力
  */
 
@@ -188,5 +175,5 @@
 
 	/*
-	 *  ã¾ã ãéè¤ã¢ãã¬ã¹æ¤åºè¦è«ãåºåãã¦ããªãå ´å
+	 *  まだ、重複アドレス検出要請を出力していない場合
 	 */
 	if (ifa->ns_ocount == 0)
@@ -197,6 +184,5 @@
 
 /*
- *  nd6_dad_na_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥å
-¥å
+ *  nd6_dad_na_input -- 重複アドレス検出 (DAD) 通知入力
  */
 
@@ -210,5 +196,5 @@
 
 /*
- *  nd6_dad_timer -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ã¿ã¤ãã¼
+ *  nd6_dad_timer -- 重複アドレス検出 (DAD) タイマー
  */
 
@@ -231,5 +217,5 @@
 		nd6_dad_ns_output(ifp, ifa);
 
-		/* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨­å®ããã*/
+		/* タイムアウトを近隣探索の送信間隔に設定する。*/
 		timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ);
 		}
@@ -243,6 +229,5 @@
 
 /*
- *  nd6_ns_input -- è¿é£è¦è«ã®å
-¥åå¦çã
+ *  nd6_ns_input -- 近隣要請の入力処理。
  */
 
@@ -266,7 +251,7 @@
 
 	/*
-	 *  ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
-	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
-	 *    ã»ãããé·ãç­ã
+	 *  ヘッダのチェック、以下の場合は破棄する。
+	 *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
+	 *    ・ヘッダ長が短い
 	 */
 	if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_SOLICIT_HDR_SIZE)
@@ -277,7 +262,6 @@
 	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) {
 		/*
-		 *  å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéè¤ã¢ãã¬ã¹æ¤åº
-		 *  ãã¦å
-ã¢ãã¬ã¹ã¯ãè¦è«ãã«ãã­ã£ã¹ãã§ãªããã°ãªããªãã
+		 *  始点アドレスが無指定なら、重複アドレス検出
+		 *  あて先アドレスは、要請マルチキャストでなければならない。
 		 */
 		if (!IN6_IS_ADDR_NS_MULTICAST(&ip6h->dst))
@@ -285,19 +269,18 @@
 		}
 
-	/* ç®çã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãã¨ã©ã¼ */
+	/* 目的アドレスがマルチキャストならエラー */
 	if (IN6_IS_ADDR_MULTICAST(&nsh->target))
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	/* 近隣探索オプションのオフセットを記録する。*/
 	if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_SOLICIT_HDR_SIZE),
 	                            input->len - (off + NEIGHBOR_SOLICIT_HDR_SIZE)) != E_OK)
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ (å§ç¹ãªã³ã¯ã¢ãã¬ã¹) */
+	/* 近隣探索オプション (始点リンクアドレス) */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) {
 		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_SOLICIT_HDR_SIZE) +
 		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8);
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		lladdr     = (uint8_t *)(opth + 1);
 		lladdr_len = (opth->len << 3);
@@ -307,6 +290,5 @@
 		goto err_ret;
 
-	/* å®å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãè¿é£éç¥ã«ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãä»ããã*/
+	/* 宛先アドレスがマルチキャストなら近隣通知にデータリンク層のアドレスを付ける。*/
 	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst))
 		tlladdr = true;
@@ -315,8 +297,7 @@
 
 	/*
-	 *  ç®çã¢ãã¬ã¹ããèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«
-	 *  å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãèª¿ã¹ãã
-	 *  ãªããä»£çãµã¼ãã¹ã¯å®è£
-ãã¦ããªãã
+	 *  目的アドレスが、自分のネットワークインタフェースに
+	 *  割り当てられているアドレスか調べる。
+	 *  なお、代理サービスは実装していない。
 	 */
 	ifa = in6_lookup_ifaddr(ifp, &nsh->target);
@@ -325,10 +306,10 @@
 		goto free_ret;
 
-	/* æ¢ç´¢çµæã¢ãã¬ã¹ãéè¤ãã¦ããã°å¿ç­ããªãã§çµäºããã*/
+	/* 探索結果アドレスが重複していれば応答しないで終了する。*/
 	if (ifa->flags & IN6_IFF_DUPLICATED)
 		goto err_ret;
 
 	/*
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 *  ネットワークインタフェースのアドレス長が一致しなければエラー
 	 */
 	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
@@ -336,10 +317,10 @@
 
 	/*
-	 *  å§ç¹ã¢ãã¬ã¹ãèªåã®ã¢ãã¬ã¹ã¨ä¸è´ããã°éè¤ãã¦ããã
+	 *  始点アドレスが自分のアドレスと一致すれば重複している。
 	 */
 	if (IN6_ARE_ADDR_EQUAL(&ifa->addr, &ip6h->src))
 		goto free_ret;
 
-	/* éè¤æ¤åºä¸­ã«ãè¿é£è¦è«ãåä¿¡ããã¨ãã®å¦ç */
+	/* 重複検出中に、近隣要請を受信したときの処理 */
 	if (ifa->flags & IN6_IFF_TENTATIVE) {
 		if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src))
@@ -354,8 +335,7 @@
 
 	/*
-	 *  å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéä¿¡ç¸æã¯éè¤ã¢ãã¬ã¹æ¤åºä¸­ã§ã
-	 *  ç´æ¥éä¿¡ãããã¨ã¯ã§ããªãã®ã§ãå
-¨ãã¼ããã«ãã­ã£ã¹ã
-	 *  ã¢ãã¬ã¹ã«éä¿¡ããã
+	 *  始点アドレスが無指定なら、送信相手は重複アドレス検出中で、
+	 *  直接送信することはできないので、全ノードマルチキャスト
+	 *  アドレスに送信する。
 	 */
 	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) {
@@ -364,5 +344,5 @@
 		}
 
-	/* è¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	/* 近隣キャッシュに登録する。*/
 	nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_NEIGHBOR_SOLICIT, 0);
 
@@ -379,5 +359,5 @@
 
 /*
- *  nd6_ns_output -- è¿é£è¦è«ãåºåããã
+ *  nd6_ns_output -- 近隣要請を出力する。
  */
 
@@ -398,5 +378,5 @@
 		return;
 
-	/* è¿é£è¦è«ãã¤ã­ã¼ãé·ãè¨ç®ããã*/
+	/* 近隣要請ペイロード長を計算する。*/
 	if (!dad && IF_SOFTC_TO_IFADDR(ifp->ic))
 		len = (NEIGHBOR_SOLICIT_HDR_SIZE + ND_OPT_HDR_SIZE + sizeof(T_IF_ADDR) + 7) >> 3 << 3;
@@ -405,12 +385,12 @@
 
 	/*
-	 *  è¦è«ãã«ãã­ã£ã¹ãã»ã¢ãã¬ã¹å®ã®è¿é£æ¢ç´¢ã§ã¯ã
-	 *  ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã
-	 *  æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨­å®ããã
+	 *  要請マルチキャスト・アドレス宛の近隣探索では、
+	 *  他のリンクからの偽造されたデータグラムを
+	 *  排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。
 	 */
 	if (IN6_IS_ADDR_UNSPECIFIED(daddr) || IN6_IS_ADDR_MULTICAST(daddr))
 		ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM);
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨­å®ããã*/
+	/* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
 	if (in6_get_datagram(&output, len, 0, daddr, NULL,
 	                     IPPROTO_ICMPV6, IPV6_MAXHLIM,
@@ -422,6 +402,5 @@
 	if (IN6_IS_ADDR_UNSPECIFIED(daddr)) {
 
-		/* å®å
-ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ãè¦è«ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãè¨­å®ããã*/
+		/* 宛先アドレスが無指定の場合は、要請マルチキャストアドレスを設定する。*/
 		ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
 		ip6h->dst.s6_addr32[2] = IPV6_ADDR_INT32_ONE;
@@ -430,17 +409,14 @@
 		}
 
-	/* éä¿¡å
-ã¢ãã¬ã¹ã®è¨­å® */
+	/* 送信元アドレスの設定 */
 	if (!dad) {
 
-		/* éè¤ã¢ãã¬ã¹æ¤åºã§ã¯ãªãæã®éä¿¡å
-ã¢ãã¬ã¹æ±ºå®å¦çã*/
+		/* 重複アドレス検出ではない時の送信元アドレス決定処理。*/
 		T_IN6_ADDR *saddr;
 
 		if (ln && ln->hold) {
 			/*
-			 * éä¿¡ããã³ãã£ã³ã°ããã¦ãããã¼ã¿ã°ã©ã ã®
-			 * éä¿¡å
-ã¢ãã¬ã¹ãå©ç¨ããã
+			 * 送信がペンディングされているデータグラムの
+			 * 送信元アドレスを利用する。
 			 */
 			if (ln->hold->len > IF_IP6_HDR_SIZE)
@@ -456,8 +432,6 @@
 		else {
 			/*
-			 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-			 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+			 *  宛先アドレスにふさわしい送信元アドレスを、
+			 *  ネットワークインタフェースから探索して利用する。
 			 */
 			T_IN6_IFADDR *ifa;
@@ -472,10 +446,9 @@
 	else {
 
-		/* éè¤ã¢ãã¬ã¹æ¤åºæã®éä¿¡å
-ã¢ãã¬ã¹ã¯ç¡æå®ã*/
+		/* 重複アドレス検出時の送信元アドレスは無指定。*/
 		memset(&ip6h->src, 0, sizeof(T_IN6_ADDR));
 		}
 
- 	/* è¿é£è¦è«ããããè¨­å®ããã*/
+ 	/* 近隣要請ヘッダを設定する。*/
  	nsh = GET_NEIGHBOR_SOLICIT_HDR(output, IF_IP6_NEIGHBOR_SOLICIT_HDR_OFFSET);
  	nsh->hdr.type        = ND_NEIGHBOR_SOLICIT;
@@ -486,5 +459,5 @@
 	if (!dad && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) {
 
-		/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¨ãã¦ãæ¢ç´¢ç®æ¨ã® MAC ã¢ãã¬ã¹ãè¨­å®ããã*/
+		/* 近隣探索オプションとして、探索目標の MAC アドレスを設定する。*/
 		T_ND_OPT_HDR	*opth;
 		uint_t		optlen;
@@ -498,9 +471,9 @@
 		}
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	nsh->hdr.sum = 0;
 	nsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nsh - output->buf, len);
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
 	               output->len - GET_IF_IP6_HDR_SIZE(output));
@@ -512,6 +485,5 @@
 
 /*
- *  nd6_na_input -- è¿é£éç¥ã®å
-¥åå¦çã
+ *  nd6_na_input -- 近隣通知の入力処理。
  */
 
@@ -536,7 +508,7 @@
 
 	/*
-	 *  ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
-	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
-	 *    ã»ãããé·ãç­ã
+	 *  ヘッダのチェック、以下の場合は破棄する。
+	 *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
+	 *    ・ヘッダ長が短い
 	 */
 	if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_ADVERT_HDR_SIZE)
@@ -545,25 +517,23 @@
 	nah  = (T_NEIGHBOR_ADVERT_HDR *)(input->buf + off);
 
-	/* ç®çã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãã¨ã©ã¼ */
+	/* 目的アドレスがマルチキャストならエラー */
 	if (IN6_IS_ADDR_MULTICAST(&nah->target))
 		goto err_ret;
 
-	/* è¿é£è¦è«ã¸ã®å¿ç­ã§ãå®å
-ã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãã¨ã©ã¼ */
+	/* 近隣要請への応答で、宛先アドレスがマルチキャストならエラー */
 	if ((nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) &&
 	    IN6_IS_ADDR_MULTICAST(&ip6h->dst))
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	/* 近隣探索オプションのオフセットを記録する。*/
 	if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_ADVERT_HDR_SIZE), 
 	                            input->len - (off + NEIGHBOR_ADVERT_HDR_SIZE)) != E_OK)
 		goto err_ret;
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ (ç®çãªã³ã¯ã¢ãã¬ã¹) */
+	/* 近隣探索オプション (目的リンクアドレス) */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) {
 		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_ADVERT_HDR_SIZE) +
 		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8);
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		lladdr     = (uint8_t *)(opth + 1);
 		lladdr_len = (opth->len << 3);
@@ -573,6 +543,6 @@
 
 	/*
-	 *  ç®çã¢ãã¬ã¹ãèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ã®
-	 *  ããããã«ä¸è´ããã¨ãã¯ãéè¤ãã¦ãããã¨ãæå³ãã¦ããã
+	 *  目的アドレスが自分のネットワークインタフェースに割り当てられているアドレスの
+	 *  いずれかに一致したときは、重複していることを意味している。
 	 */
 	if (ifa) {
@@ -585,18 +555,17 @@
 
 	/*
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 *  ネットワークインタフェースのアドレス長が一致しなければエラー
 	 */
 	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
 		goto err_ret;
 
-	/* è¿é£ã­ã£ãã·ã¥ãæ¢ç´¢ããã*/
+	/* 近隣キャッシュを探索する。*/
 	syscall(wai_sem(SEM_ND6_CACHE));
 	if ((ln = nd6_lookup(&nah->target, false)) == NULL)
 		goto free_ret;
 
-	/* è¿é£ã­ã£ãã·ã¥ã®ç¶æ
-ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´å */
+	/* 近隣キャッシュの状態が、データリンク層のアドレス未解決の場合 */
 	if (ln->state == ND6_LLINFO_INCOMPLETE) {
-		/* éç¥ããããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ã®é·ãã 0 ã®å ´å */
+		/* 通知されたデータリンク層のアドレスの長さが 0 の場合 */
 		if (lladdr == NULL)
 			goto free_ret;
@@ -633,9 +602,8 @@
 
 		/*
-		 *  ç¶æ
-é·ç§»è¡¨
+		 *  状態遷移表
 		 *
 		 *  nd_na_flags_reserved
-		 *  OVERRIDE    SOLICTED lladdr llchange å¦ç (L: lladdr ãç»é²ãã)
+		 *  OVERRIDE    SOLICTED lladdr llchange 処理 (L: lladdr を登録する)
 		 *
 		 *      F           F       N      -    (2c)
@@ -653,6 +621,5 @@
 		 */
 		if ((nah->nd_na_flags_reserved & ND_NA_FLG_OVERRIDE) == 0 && (lladdr != NULL && llchange)) {	/* (1) */
-			/* ç¶æ
-ã REACHABLE ãªã STALE ã«é·ç§»ããã*/
+			/* 状態が REACHABLE なら STALE に遷移する。*/
 			if (ln->state == ND6_LLINFO_REACHABLE) {
 				syscall(get_tim(&now));
@@ -666,9 +633,9 @@
 		         lladdr == NULL) {										/* (2c) */
 
-			/* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/
+			/* データリンク層のアドレスが通知されていれば更新する。*/
 			if (lladdr != NULL)
 				ln->ifaddr = *(T_IF_ADDR *)lladdr;
 
-			/* è¿é£è¦è«ã¸ã®å¿ç­ãªã REACHABLE ã«é·ç§»ããã*/
+			/* 近隣要請への応答なら REACHABLE に遷移する。*/
 			if (nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) {
 				ln->state = ND6_LLINFO_REACHABLE;
@@ -680,6 +647,6 @@
 				}
 			/*
-			 *  ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã
-			 *  ç°ãªãã¢ãã¬ã¹ãªãæ´æ°ããã
+			 *  データリンク層のアドレスが通知され、
+			 *  異なるアドレスなら更新する。
 			 */
 			else if (lladdr != NULL && llchange) {
@@ -690,11 +657,11 @@
 			}
 
-		/* ã«ã¼ã¿éç¥ãã©ã°ã®å¦ç */
+		/* ルータ通知フラグの処理 */
 		if ((ln->flags        & ND6_LLIF_ROUTER ) != 0 &&
 		    (nah->nd_na_flags_reserved & ND_NA_FLG_ROUTER) == 0) {
 			/*
-			 *  éä¿¡ç¸æãã«ã¼ã¿éç¥ãã©ã°ãç¡å¹ã«ããå ´åã
-			 *  ãã£ãã©ã«ãã»ã«ã¼ã¿ãªã¹ãããå¯¾è±¡ã®ã«ã¼ã¿ãåé¤ãã
-			 *  è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãæ´æ°ããã
+			 *  送信相手がルータ通知フラグを無効にした場合。
+			 *  ディフォルト・ルータリストから対象のルータを削除し、
+			 *  近隣探索キャッシュを更新する。
 			 */
 			T_DEF_ROUTER	*dr = NULL;
@@ -714,6 +681,5 @@
 	ln->asked = 0;
 
-	/* ã¢ãã¬ã¹è§£æ±ºå¾
-ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/
+	/* アドレス解決待ちのデータグラムがあれば送信する。*/
 	nd6_output_hold(ifp, ln);
 
@@ -729,5 +695,5 @@
 
 /*
- *  nd6_na_output -- è¿é£éç¥ãåºåããã
+ *  nd6_na_output -- 近隣通知を出力する。
  */
 
@@ -747,6 +713,6 @@
 
 	/*
-	 *  è¿é£éç¥ãã¤ã­ã¼ãé·ãè¨ç®ããã
-	 *  tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿½å ããã
+	 *  近隣通知ペイロード長を計算する。
+	 *  tlladdr が真ならネットワークインタフェースのアドレスを追加する。
 	 */
 	if (tlladdr && IF_SOFTC_TO_IFADDR(ifp->ic))
@@ -756,10 +722,10 @@
 
 	/*
-	 *  ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã
-	 *  æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨­å®ããã
+	 *  他のリンクからの偽造されたデータグラムを
+	 *  排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。
 	 */
 	ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM);
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨­å®ããã*/
+	/* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
 	if (in6_get_datagram(&output, len, 0, daddr, NULL,
 	                     IPPROTO_ICMPV6, IPV6_MAXHLIM,
@@ -771,8 +737,6 @@
 	if (IN6_IS_ADDR_UNSPECIFIED(daddr)) {
 		/*
-		 *  å®å
-ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ã
-		 *  ãªã³ã¯ã­ã¼ã«ã«å
-¨ãã¼ãã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãè¨­å®ããã
+		 *  宛先アドレスが無指定の場合は、
+		 *  リンクローカル全ノード・マルチキャストアドレスを設定する。
 		 */
 		ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
@@ -786,8 +750,6 @@
 
 	/*
-	 *  å®å
-ã¢ãã¬ã¹ã«ãµããããéä¿¡å
-ã¢ãã¬ã¹ãã
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 *  宛先アドレスにふさわしい送信元アドレスを、
+	 *  ネットワークインタフェースから探索して利用する。
 	 */
 	if ((ifa = in6_ifawithifp(ifp, &ip6h->dst)) == NULL) {
@@ -797,5 +759,5 @@
 	ip6h->src = ifa->addr;
 
- 	/* è¿é£éç¥ããããè¨­å®ããã*/
+ 	/* 近隣通知ヘッダを設定する。*/
  	nah = GET_NEIGHBOR_ADVERT_HDR(output, IF_IP6_NEIGHBOR_ADVERT_HDR_OFFSET);
  	nah->hdr.type        = ND_NEIGHBOR_ADVERT;
@@ -803,5 +765,5 @@
  	nah->target          = *taddr;
 
-	/* tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿½å ããã*/
+	/* tlladdr が真ならネットワークインタフェースのアドレスを追加する。*/
 	if (tlladdr && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) {
 
@@ -821,9 +783,9 @@
 	nah->nd_na_flags_reserved = flags;
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	nah->hdr.sum = 0;
 	nah->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nah - output->buf, len);
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
 	               output->len - GET_IF_IP6_HDR_SIZE(output));
@@ -835,9 +797,8 @@
 
 /*
- *  nd6_dad_start -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ãéå§ããã
+ *  nd6_dad_start -- 重複アドレス検出 (DAD) を開始する。
  *
- *    ç¬¬3å¼æ°ã®tick ã¯ãã¤ã³ã¿ãã§ã¼ã¹ãèµ·åããã¦ãããéè¤æ¤åºã
- *    éä¿¡ããã¾ã§ã®æå°é
-å»¶å¤ã§ããã
+ *    第3引数のtick は、インタフェースが起動されてから、重複検出を
+ *    送信するまでの最小遅延値である。
  */
 
@@ -845,5 +806,5 @@
 nd6_dad_start (T_IFNET *ifp, T_IN6_IFADDR *ifa, int_t *tick)
 {
-	/* ãã©ã°ããã§ãã¯ããã*/
+	/* フラグをチェックする。*/
 	if (!(ifa->flags & IN6_IFF_TENTATIVE))
 		return;
@@ -862,16 +823,15 @@
 		return;
 
-	/* éè¤ã¢ãã¬ã¹æ¤åºã«ã¦ã³ã¿ããªã»ããããã*/
+	/* 重複アドレス検出カウンタをリセットする。*/
 	ifa->ns_icount = ifa->na_icount = ifa->ns_ocount = 0;
 
 	/*
-	 *  éè¤ã¢ãã¬ã¹æ¤åºè¦è«ãéä¿¡ããããã ããã¤ã³ã¿ãã§ã¼ã¹ã
-	 *  åæåããç´å¾ã«ãæåã«éä¿¡ããå ´åã¯ãã©ã³ãã ãªé
-å»¶ãè¡ãã
+	 *  重複アドレス検出要請を送信する。ただし、インタフェースを
+	 *  初期化した直後に、最初に送信する場合は、ランダムな遅延を行う。
 	 */
 	if (tick == NULL) {
 		nd6_dad_ns_output(ifp, ifa);
 
-		/* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨­å®ããã*/
+		/* タイムアウトを近隣探索の送信間隔に設定する。*/
 		timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ);
 		}
@@ -879,5 +839,5 @@
 		int_t ntick;
 
-		if (*tick == 0)	/* æåã®éä¿¡ */
+		if (*tick == 0)	/* 最初の送信 */
 			ntick = net_rand() % (ND6_FIRST_DAD_DELAY_TIME * NET_TIMER_HZ / SYSTIM_HZ);
 		else
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -123,5 +111,5 @@
 
 /*
- *  å¤é¨é¢æ°ã®å®ç¾©
+ *  外部関数の定義
  */
 
@@ -133,21 +121,19 @@
 
 /*
- *  å
-¨åå¤æ°
- */
-
-SYSTIM	nd6_base_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ã«ã¼ã¿ããéç¥ãããå¤		*/
-SYSTIM	nd6_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ã«ã¼ã¿ããéç¥ãããå¤ã®è£æ­£å¤	*/
-SYSTIM	nd6_recalc_reachtm_interval	= ND6_RECALC_REACHTM_INTERVAL;	/* å°éå¯è½ç¶æ
-ã®æå¹æéåè¨ç®éé	*/
-SYSTIM	nd6_retrans_time		= ND6_DEF_RETRANS_TIME;		/* è¿é£æ¢ç´¢ã®éä¿¡éé			*/
-uint8_t	ip6_defhlim			= IPV6_DEFHLIM;			/* ããããªãããã®è¦å®å¤		*/
-
-/*
- *  å±æå¤æ°
- */
-
-/*
- *  ãã¬ãã£ãã¯ã¹ã»ãªã¹ã
+ *  全域変数
+ */
+
+SYSTIM	nd6_base_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ルータから通知された値		*/
+SYSTIM	nd6_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ルータから通知された値の補正値	*/
+SYSTIM	nd6_recalc_reachtm_interval	= ND6_RECALC_REACHTM_INTERVAL;	/* 到達可能状態の有効時間再計算間隔	*/
+SYSTIM	nd6_retrans_time		= ND6_DEF_RETRANS_TIME;		/* 近隣探索の送信間隔			*/
+uint8_t	ip6_defhlim			= IPV6_DEFHLIM;			/* ホップリミットの規定値		*/
+
+/*
+ *  局所変数
+ */
+
+/*
+ *  プレフィックス・リスト
  */
 
@@ -155,12 +141,12 @@
 
 /*
- *  ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã
+ *  ディフォルトルータ・リスト
  */
 
 static T_DEF_ROUTER	nd6_def_router[NUM_ND6_DEF_RTR_ENTRY];
-static uint_t		def_router_count = 0;				/* ãªã¹ãã«ããã«ã¼ã¿æ° */
-
-/*
- *  make_mask -- ãããç¨ã®ãã¹ã¯ãçæããã
+static uint_t		def_router_count = 0;				/* リストにあるルータ数 */
+
+/*
+ *  make_mask -- マップ用のマスクを生成する。
  */
 
@@ -171,5 +157,5 @@
 	int_t	ix;
 
-	/* ãã¹ã¯ãçæããã*/
+	/* マスクを生成する。*/
 	mask = 1;
 	for (ix = index; ix -- > 0; )
@@ -181,5 +167,5 @@
 /*
  *  find_pfxlist_reachable_router --
- *      æå®ãããã¬ãã£ãã¯ã¹ãéç¥ããã«ã¼ã¿ããªã³ã¯ä¸ã«å­å¨ããããã§ãã¯ããã
+ *      指定したプレフィックスを通知したルータがリンク上に存在するかチェックする。
  */
 
@@ -205,9 +191,8 @@
 
 /*
- *  pfxlist_onlink_check -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®ãªã³ãªã³ã¯ç¶æ
-ããã§ãã¯ããã
+ *  pfxlist_onlink_check -- プレフィックス・リストのオンリンク状態をチェックする。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -230,10 +215,7 @@
 	if (ix >= 0) {
 		/*
-		 *  ãªã³ãªã³ã¯ç¶æ
-ã®ãã¬ãã£ãã¯ã¹ãæä½ä¸ã¤å­å¨ããã¨ãã®å¦çã
-		 *  åãã¬ãã£ãã¯ã¹ã®ãªã³ãªã³ã¯ç¶æ
-ããããããéç¥ãã¦ããã«ã¼ã¿ã®
-		 *  ç¶æ
-ã«å¾ã£ã¦è¨­å®ããã
+		 *  オンリンク状態のプレフィックスが最低一つ存在するときの処理。
+		 *  各プレフィックスのオンリンク状態を、それらを通知してきたルータの
+		 *  状態に従って設定する。
 		 */
 
@@ -256,8 +238,7 @@
 	else {
 		/*
-		 *  ã©ã®ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã§ã¯ãªãã
-		 *  ãã£ãã©ã«ãã«ã¼ã¿ãå­å¨ããªãã¨ãã®å¦çã
-		 *  ãã¹ã¦ã®ãã¬ãã£ãã¯ã¹ãä½¿ç¨å¯è½ç¶æ
-ã«è¨­å®ããã
+		 *  どのプレフィックスもオンリンクではなく、
+		 *  ディフォルトルータも存在しないときの処理。
+		 *  すべてのプレフィックスを使用可能状態に設定する。
 		 */
 
@@ -275,9 +256,6 @@
 
 	/*
-	 *  åãã¬ãã£ãã¯ã¹æ¯ã«ãéç¥ãã¦ããã«ã¼ã¿ã®ç¶æ
-ã¨
-	 *  ãªã³ãªã³ã¯ã®ç¶æ
-ãä¸è´ããªããã°ããªã³ãªã³ã¯ç¶æ
-ãæ´æ°ããã
+	 *  各プレフィックス毎に、通知してきたルータの状態と
+	 *  オンリンクの状態が一致しなければ、オンリンク状態を更新する。
 	 */
 	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
@@ -302,6 +280,6 @@
 
 	/*
-	 *  ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã
-	 *  å°ãªãã¨ã 1 å°å­å¨ãããç¢ºèªããã
+	 *  リンク上にプレフィックスを通知しているルータが
+	 *  少なくとも 1 台存在するか確認する。
 	 */
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
@@ -317,6 +295,6 @@
 	if (ix >= 0) {
 		/*
-		 *  ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã
-		 *  å°ãªãã¨ã 1 å°å­å¨ããæã®å¦çã
+		 *  リンク上にプレフィックスを通知しているルータが
+		 *  少なくとも 1 台存在する時の処理。
 		 */
 		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
@@ -334,7 +312,6 @@
 	else {
 		/*
-		 *  ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã
-		 *  1 å°å­å¨ããªãæã¯å
-¨ã¦ã®ã¢ãã¬ã¹ãå©ç¨ã§ããããã«ããã
+		 *  リンク上にプレフィックスを通知しているルータが
+		 *  1 台存在しない時は全てのアドレスを利用できるようにする。
 		 */
 		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
@@ -347,8 +324,8 @@
 
 /*
- *  pfxrtr_add -- ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªããªã³ã¯ããã
+ *  pfxrtr_add -- プレフィックスエントリとディフォルトルータ・エントリをリンクする。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -356,5 +333,5 @@
 pfxrtr_add (int_t prefix_index, int_t rtr_index)
 {
-	/*  ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªããªã³ã¯ããã*/
+	/*  プレフィックスエントリとディフォルトルータ・エントリをリンクする。*/
 	nd6_prefix[prefix_index].routermap |= make_mask(rtr_index);
 	nd6_def_router[rtr_index].plistmap |= make_mask(prefix_index);
@@ -364,5 +341,5 @@
 
 /*
- *  nd6_pfxrtr_lookup -- ãã¬ãã£ãã¯ã¹ã¨ã³ããªããã«ã¼ã¿ãæ¢ç´¢ããã
+ *  nd6_pfxrtr_lookup -- プレフィックスエントリからルータを探索する。
  */
 
@@ -374,9 +351,8 @@
 
 /*
- *  defrouter_select -- åªå
-ãã£ãã©ã«ãã»ã«ã¼ã¿ãé¸æããªããã
+ *  defrouter_select -- 優先ディフォルト・ルータを選択しなおす。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -392,6 +368,5 @@
 		if ((ln = nd6_lookup(&dr->addr, false)) != NULL && ND6_IS_LLINFO_PROBREACH(ln)) {
 		
-			/* é¸æããã«ã¼ã¿ãå
-é ­ã«ç§»ãã*/
+			/* 選択したルータを先頭に移す。*/
 			router = *dr;
 			for (tix = ix; tix > 0; tix --)
@@ -404,8 +379,8 @@
 
 /*
- *  defrtrlist_update -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ´æ°ããã
+ *  defrtrlist_update -- ディフォルトルータ・リストを更新する。
  *
- *  	æ»ãå¤ã¯ãã«ã¼ã¿ã®ã¤ã³ããã¯ã¹ã
- *      ãã ããå¤ã -1 ãªãããã¬ãã£ãã¯ã¹ã»ãªã¹ãã¯æ´æ°ããªãã
+ *  	戻り値は、ルータのインデックス。
+ *      ただし、値が -1 なら、プレフィックス・リストは更新しない。
  */
 
@@ -420,7 +395,7 @@
 	syscall(wai_sem(SEM_ND6_DEFRTRLIST));
 
-	/* ç»é²æ¸ãèª¿ã¹ãã*/
+	/* 登録済か調べる。*/
 	if ((fdr = nd6_defrtrlist_lookup(src)) != NULL) {
-		/* ç»é²æ¸ã¿ã®å ´åã®å¦ç */
+		/* 登録済みの場合の処理 */
 		if (lifetime == 0) {
 			nd6_defrtrlist_del(fdr);
@@ -429,5 +404,5 @@
 			}
 		else {
-			fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime ã®åä½ã¯ç§ */
+			fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime の単位は秒 */
 			fdr->flags    = flags;
 			fdr->expire   = now + fdr->lifetime;
@@ -443,11 +418,11 @@
 	if (fdr == NULL && def_router_count < NUM_ND6_DEF_RTR_ENTRY) {
 		/*
-		 *  def_router_count < NUM_ND6_DEF_RTR_ENTRY ã§ããã°ã
-		 *  nd6_def_router[def_router_count]; ãç©ºãã¨ã³ããª
+		 *  def_router_count < NUM_ND6_DEF_RTR_ENTRY であれば、
+		 *  nd6_def_router[def_router_count]; が空きエントリ
 		 */
 		fdr = &nd6_def_router[def_router_count];
 		}
 
-	/* ç©ºãã¨ã³ããªããªããã°ãæå¹æéãç­ãã¨ã³ããªãåé¤ããã*/
+	/* 空きエントリがなければ、有効時間が短いエントリを削除する。*/
 	if (fdr == NULL) {
 		T_DEF_ROUTER	*sdr = NULL;
@@ -458,5 +433,5 @@
 			diff = (int32_t)(dr->expire - now);
 			if (diff <= 0) {	/* dr->expire <= now */
-				/* æ¢ã«ãæå¹æéãéãã¦ããã*/
+				/* 既に、有効時間が過ぎている。*/
 				sdr = dr;
 				break;
@@ -471,8 +446,8 @@
 		}
 
-	/* åã¡ã³ãã«å¤ãè¨­å®ããã*/
+	/* 各メンバに値を設定する。*/
 	fdr->plistmap = 0;
 	fdr->addr     = *src;
-	fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime ã®åä½ã¯ç§ */
+	fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime の単位は秒 */
 	fdr->flags    = flags;
 	fdr->expire   = now + fdr->lifetime;
@@ -481,6 +456,6 @@
 
 	/*
-	 *  ãã£ãã©ã«ãã«ã¼ã¿ã¨ãã¦ç»é²ãããã
-	 *  æ¢ã«ãã£ãã©ã«ãã«ã¼ã¿ãããã°é¸æããªãããªãã
+	 *  ディフォルトルータとして登録するが、
+	 *  既にディフォルトルータがあれば選択しなおさない。
 	 */
 	if (fdr - nd6_def_router != 0)
@@ -492,5 +467,5 @@
 
 /*
- *  in6_ifadd -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹ãè¿½å ããã
+ *  in6_ifadd -- インタフェースにアドレスを追加する。
  */
 
@@ -506,5 +481,5 @@
 
 	/*
-	 *  ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªç»é²ã§ããã°ä½ãããªãã
+	 *  リンクローカルアドレスが未登録であれば何もしない。
 	 */
 	if ((lla->flags & IN6_IFF_DEFINED) == 0)
@@ -512,20 +487,20 @@
 
 	/*
-	 *  ã«ã¼ã¿ããéç¥ããããã¬ãã£ãã¯ã¹é·ãã
-	 *  ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®ãã¬ãã£ãã¯ã¹é·ã¨
-	 *  ç°ãªã£ã¦ããã°ã¨ã©ã¼
+	 *  ルータから通知されたプレフィックス長が、
+	 *  リンクローカルアドレスのプレフィックス長と
+	 *  異なっていればエラー
 	 */
 	if (lla->prefix_len != pr->prefix_len)
 		return E_PAR;
 
-	/* ãã¬ãã£ãã¯ã¹ãã¹ã¯ãçæããã*/
+	/* プレフィックスマスクを生成する。*/
 	in6_plen2pmask(&mask, pr->prefix_len);
 
-	/* ã¢ãã¬ã¹ãçæããã*/
+	/* アドレスを生成する。*/
 	for (ix = 0; ix < 4; ix ++)
 		addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] &  mask.s6_addr32[ix])
 		                   | ( lla->addr.s6_addr32[ix] & ~mask.s6_addr32[ix]);
 
-	/* ãã©ã°ãåæåããã*/
+	/* フラグを初期化する。*/
 	ia->flags = 0;
 
@@ -536,5 +511,5 @@
 
 /*
- *  nd6_prefix_lookup -- ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã
+ *  nd6_prefix_lookup -- プレフィックスを探索する。
  */
 
@@ -556,8 +531,8 @@
 
 /*
- *  prelist_remove -- ãã¬ãã£ãã¯ã¹ãªã¹ããããã¬ãã£ãã¯ã¹ãåé¤ããã
+ *  prelist_remove -- プレフィックスリストからプレフィックスを削除する。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -569,5 +544,5 @@
 	int_t	rix;
 
-	/* æå¹æéåãã«ããã*/
+	/* 有効時間切れにする。*/
 	pr->vltime = 0;
 	pr->pltime = 0;
@@ -579,5 +554,5 @@
 		}
 
-	/*  ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªã®ãªã³ã¯ãè§£é¤ããã*/
+	/*  プレフィックスエントリとディフォルトルータ・エントリのリンクを解除する。*/
 	pr->routermap = 0;
 	mask = make_mask(pr - nd6_prefix);
@@ -585,5 +560,5 @@
 		nd6_def_router[rix].plistmap &= ~mask;
 
-	/* ãã¬ãã£ãã¯ã¹ãç¡å¹ã«ããã*/
+	/* プレフィックスを無効にする。*/
 	pr->flags &= ~ND6_PREFIX_STATE_BUSY;
 
@@ -592,8 +567,8 @@
 
 /*
- *  nd6_prefix_onlink -- ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«è¨­å®ããã¢ãã¬ã¹ãä½¿ç¨å¯è½ã«ããã
+ *  nd6_prefix_onlink -- プレフィックスをオンリンクに設定し、アドレスを使用可能にする。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -605,10 +580,9 @@
 	int_t		ix;
 
-	/* æ¢ã«ãªã³ãªã³ã¯ç¶æ
-ã«ãªã£ã¦ããå ´åã¯ã¨ã©ã¼ã*/
+	/* 既にオンリンク状態になっている場合はエラー。*/
 	if ((pr->flags & ND6_PREFIX_STATE_ONLINK) != 0)
 		return E_OBJ;
 
-	/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªç»é²ã§ããã°ä½ãããªãã*/
+	/* リンクローカルアドレスが未登録であれば何もしない。*/
 	lla = &ifp->in_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
 	if ((lla->flags & IN6_IFF_DEFINED) == 0)
@@ -616,7 +590,6 @@
 
 	/*
-	 *  æå®ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã®
-	 *  ã¢ãã¬ã¹æ
-å ±ãæ¢ãã
+	 *  指定されたプレフィックスが割り当てられているインタフェースの
+	 *  アドレス情報を探す。
 	 */
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
@@ -628,9 +601,8 @@
 	if (ix >= 0) {
 
-		/* ã¢ãã¬ã¹æ
-å ±ãä½¿ç¨å¯è½ã«ããã*/
+		/* アドレス情報を使用可能にする。*/
 		ia->flags &= ~IN6_IFF_DETACHED;
 
-		/* ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«è¨­å®ããã*/
+		/* プレフィックスをオンリンクに設定する。*/
 		pr->flags |= ND6_PREFIX_STATE_ONLINK;
 		}
@@ -640,8 +612,8 @@
 
 /*
- *  nd6_prefix_offlink -- ãã¬ãã£ãã¯ã¹ããªããªã³ã¯ã«è¨­å®ããã¢ãã¬ã¹ãä½¿ç¨ä¸å¯ã«ããã
+ *  nd6_prefix_offlink -- プレフィックスをオフリンクに設定し、アドレスを使用不可にする。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -653,13 +625,11 @@
 	int_t		ix;
 
-	/* æ¢ã«ãªããªã³ã¯ç¶æ
-ã«ãªã£ã¦ããå ´åã¯ã¨ã©ã¼ã*/
+	/* 既にオフリンク状態になっている場合はエラー。*/
 	if ((pr->flags & ND6_PREFIX_STATE_ONLINK) == 0)
 		return E_OBJ;
 
 	/*
-	 *  æå®ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã®
-	 *  ã¢ãã¬ã¹æ
-å ±ãæ¢ãã
+	 *  指定されたプレフィックスが割り当てられているインタフェースの
+	 *  アドレス情報を探す。
 	 */
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
@@ -671,9 +641,8 @@
 	if (ix >= 0) {
 
-		/* ã¢ãã¬ã¹æ
-å ±ãä½¿ç¨ä¸å¯ã«ããã*/
+		/* アドレス情報を使用不可にする。*/
 		ia->flags |= IN6_IFF_DETACHED;
 
-		/* ãã¬ãã£ãã¯ã¹ããªããªã³ã¯ã«è¨­å®ããã*/
+		/* プレフィックスをオフリンクに設定する。*/
 		pr->flags &= ~ND6_PREFIX_STATE_ONLINK;
 		}
@@ -683,5 +652,5 @@
 
 /*
- *  in6_init_prefix_ltimes -- ãã¬ãã£ãã¯ã¹ã®æå¹æéãè¨­å®ããã
+ *  in6_init_prefix_ltimes -- プレフィックスの有効時間を設定する。
  */
 
@@ -691,5 +660,5 @@
 	SYSTIM		now;
 
-	/* æ¨å¥¨æå¹æéãæå¹æéããé·ãã¨ãã¯ã¨ã©ã¼ */
+	/* 推奨有効時間が有効時間より長いときはエラー */
 	if (pr->pltime > pr->vltime)
 		return E_PAR;
@@ -712,8 +681,8 @@
 
 /*
- *  nd6_prelist_add -- ãã¬ãã£ãã¯ã¹ãªã¹ãã«ãã¬ãã£ãã¯ã¹ãè¿½å ããã
+ *  nd6_prelist_add -- プレフィックスリストにプレフィックスを追加する。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -725,5 +694,5 @@
 	ER		error;
 
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãããç©ºãã®ãã¬ãã£ãã¯ã¹ã¨ã³ããªãæ¢ç´¢ããã*/
+	/* プレフィックスリストから空きのプレフィックスエントリを探索する。*/
 	for (ix = NUM_ND6_PREFIX_ENTRY; ix --; ) {
 		pr = &nd6_prefix[ix];
@@ -732,5 +701,5 @@
 		}
 
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãã«ç©ºãããªããã°ã¨ã©ã¼ */
+	/* プレフィックスリストに空きがなければエラー */
 	if (ix < 0)
 		return NULL;
@@ -738,9 +707,9 @@
 	pr->flags |= ND6_PREFIX_STATE_BUSY;
 
-	/* ãã¬ãã£ãã¯ã¹ãè¿½å ããã*/
+	/* プレフィックスを追加する。*/
 	pr->prefix     = pi->prefix;
 	pr->prefix_len = pi->prefix_len;
 
-	/* ãã©ã°ãè¨­å®ããã*/
+	/* フラグを設定する。*/
 	if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0)
 		pr->flags |= ND6_PREFIX_FLAG_ONLINK;
@@ -748,5 +717,5 @@
 		pr->flags |= ND6_PREFIX_FLAG_AUTO;
 
-	/* ãã¬ãã£ãã¯ã¹ã®æå¹æéãè¨­å®ããã*/
+	/* プレフィックスの有効時間を設定する。*/
 	pr->vltime = ntohl(pi->valid);
 	pr->pltime = ntohl(pi->preferred);
@@ -758,8 +727,8 @@
 		}
 
-	/* ã«ã¼ã¿ããããåæåããã*/
+	/* ルータマップを初期化する。*/
 	pr->routermap = 0;
 
-	/* ã«ã¼ã¿ãè¿½å ããã*/
+	/* ルータを追加する。*/
 	pfxrtr_add(pr - nd6_prefix, rtr_index);
 
@@ -768,5 +737,5 @@
 
 /*
- *  prelist_update -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã
+ *  prelist_update -- プレフィックス・リストを更新する。
  */
 
@@ -782,11 +751,11 @@
 	if ((pr = nd6_prefix_lookup(&pi->prefix, pi->prefix_len)) != NULL) {
 		/*
-		 *  ç»é²æ¸ã¿ã®å ´åã¯ããã¬ãã£ãã¯ã¹ãªã¹ããæ´æ°ããã
+		 *  登録済みの場合は、プレフィックスリストを更新する。
 		 */
 
 		/*
-		 *  ãã©ã°ã®æ´æ°ã®æ³¨æ:
-		 *    on-link ãããã¨ autonomous ãããã¯
-		 *    1 ãã 0 ã«å¤æ´ãã¦ã¯ãªããªãã
+		 *  フラグの更新の注意:
+		 *    on-link ビットと autonomous ビットは
+		 *    1 から 0 に変更してはならない。
 		 */
 
@@ -798,6 +767,6 @@
 		if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0) {
 			/*
-			 *  éç¥ããããã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã®æã¯ã
-			 *  æå¹æéãæ´æ°ããã
+			 *  通知されたプレフィックスがオンリンクの時は、
+			 *  有効時間を更新する。
 			 */
 			pr->vltime = ntohl(pi->valid);
@@ -809,5 +778,5 @@
 		    (pr->flags & ND6_PREFIX_STATE_ONLINK) == 0) {
 			/*
-			 *  ãªããªã³ã¯ã®ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«ãªã£ãæã®å¦çãå®è¡ããã
+			 *  オフリンクのプレフィックスがオンリンクになった時の処理を実行する。
 			 */
 			if (nd6_prefix_onlink(pr) != E_OK) {
@@ -821,7 +790,7 @@
 			pfxrtr_add(pr - nd6_prefix, router_index);
 		}
-	else {	/* æªç»é²ã®å ´å */
-
-		/* æå¹æé 0 ã®ãã¬ãã£ãã¯ã¹ã¯è¿½å ããªãã*/
+	else {	/* 未登録の場合 */
+
+		/* 有効時間 0 のプレフィックスは追加しない。*/
 		if (pi->valid == 0) {
 			syscall(sig_sem(SEM_ND6_DEFRTRLIST));
@@ -829,5 +798,5 @@
 			}
 
-		/* ãªããªã³ã¯ã§ã¢ãã¬ã¹èªåè¨­å®ã«ä½¿ç¨ããªããã°è¿½å ããªãã*/
+		/* オフリンクでアドレス自動設定に使用しなければ追加しない。*/
 		if ((pi->flags & (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) !=
 		                 (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) {
@@ -836,5 +805,5 @@
 			}
 
-		/* ãã¬ãã£ãã¯ã¹ãè¿½å ããã*/
+		/* プレフィックスを追加する。*/
 		if ((pr = nd6_prelist_add(pi, router_index)) == NULL) {
 			syslog(LOG_ERROR, "[ND6 RTR] prefix add failed.");
@@ -845,6 +814,6 @@
 		if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0) {
 			/*
-			 *  ãªããªã³ã¯ã»ãã¬ãã£ãã¯ã¹ã®å ´åã¯ãæå¹æéã 0 ã«è¨­å®ããã
-			 *  ãã¨ã§æå¹æéåãã¨ãªãããªã¹ãããåé¤ãããã
+			 *  オフリンク・プレフィックスの場合は、有効時間を 0 に設定する。
+			 *  あとで有効期限切れとなり、リストから削除される。
 			 */
 			pr->vltime = 0;
@@ -855,5 +824,5 @@
 
 	/*
-	 *  ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ãè¡ãã
+	 *  ステートレス・アドレス自動設定を行う。
 	 */
 	if ((pr->flags & ND6_PREFIX_FLAG_AUTO) == 0) {
@@ -863,7 +832,6 @@
 
 	/*
-	 *  éç¥ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã®
-	 *  ã¢ãã¬ã¹æ
-å ±ãæ¢ãã
+	 *  通知されたプレフィックスが割り当てられているインタフェースの
+	 *  アドレス情報を探す。
 	 */
 	for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
@@ -875,9 +843,9 @@
 		}
 
-	if (ix >= 0) {	/* ç»é²æ¸ã¿ã®ã¨ã */
+	if (ix >= 0) {	/* 登録済みのとき */
 		if ((ia->flags & IN6_IFF_AUTOCONF) == 0) {
 			/*
-			 *  ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ã«ãã
-			 *  è¨­å®ããã¦ããªããã°æ´æ°ããªãã
+			 *  ステートレス・アドレス自動設定により
+			 *  設定されていなければ更新しない。
 			 */
 			;
@@ -885,5 +853,5 @@
 		else if (ia->flags & IN6_IFF_TENTATIVE) {
 			/*
-			 *  éè¤æ¤åºä¸­ãªãæ´æ°ããªãã
+			 *  重複検出中なら更新しない。
 			 */
 			;
@@ -896,5 +864,5 @@
 			int_t		ix;
 
-			/* æå¹æéãè¨­å®ããã*/
+			/* 有効時間を設定する。*/
 			syscall(get_tim(&now));
 
@@ -908,8 +876,8 @@
 			if (pr->vltime > (2 * 60 * 60) || pr->vltime > vltime) {
 				/*
-				 *  lifetime.expireãpi->valid (æå¹æé) ã¨
-				 *  pi->preferred (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã
-				 *  éç¥ãããæå¹æéã 2 æéä»¥ä¸ããç¾å¨ã®æ®ãæéãã
-				 *  é·ããã°ãæ°ããæå¹æéã«ã¯ãéç¥ãããæå¹æéãè¨­å®ããã
+				 *  lifetime.expire、pi->valid (有効時間) と
+				 *  pi->preferred (推奨有効時間) の単位は [s]。
+				 *  通知された有効時間が 2 時間以上か、現在の残り時間より
+				 *  長ければ、新しい有効時間には、通知された有効時間を設定する。
 				 */
 				vltime = pr->vltime;
@@ -919,6 +887,5 @@
 			else {
 				/*
-				 *  IPsec ã¯æªå®è£
-ã®ããã2 æéãè¨­å®ããã
+				 *  IPsec は未実装のため、2 時間を設定する。
 				 */
 				vltime = 2 * 60 * 60;
@@ -927,8 +894,8 @@
 			lla = &ifp->in_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
 
-			/* ãã¬ãã£ãã¯ã¹ãã¹ã¯ãçæããã*/
+			/* プレフィックスマスクを生成する。*/
 			in6_plen2pmask(&mask, pr->prefix_len);
 
-			/* ã¢ãã¬ã¹ãçæããã*/
+			/* アドレスを生成する。*/
 			for (ix = 0; ix < 4; ix ++)
 				addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] &  mask.s6_addr32[ix])
@@ -941,11 +908,10 @@
 		}
 
-	else { /* æªç»é²ã®ã¨ã */
+	else { /* 未登録のとき */
 
 		/*
-		 *  ãã¬ãã£ãã¯ã¹é·ããã§ãã¯ããã
-		 *  ããããã¬ãã£ãã¯ã¹é·ã¨ã¤ã³ã¿ãã§ã¼ã¹ ID ã®åè¨ã
-		 *  128 ãããã«ä¸è´ããªãæã¯ããã¬ãã£ãã¯ã¹æ
-å ±ãç¡è¦ããã
+		 *  プレフィックス長をチェックする。
+		 *  もし、プレフィックス長とインタフェース ID の合計が
+		 *  128 ビットに一致しない時は、プレフィックス情報を無視する。
 		 */
 		if ((ifidlen = in6_if2idlen(ifp)) < 0)
@@ -972,5 +938,5 @@
 
 /*
- *  nd6_prelist_timer -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼
+ *  nd6_prelist_timer -- プレフィックス・リストの管理タイマー
  */
 
@@ -983,5 +949,5 @@
 
 	syscall(get_tim(&now));
-	now /= SYSTIM_HZ;		/* æå¹æéã®åä½ã¯ [s] */
+	now /= SYSTIM_HZ;		/* 有効時間の単位は [s] */
 
 	syscall(wai_sem(SEM_ND6_DEFRTRLIST));
@@ -996,5 +962,5 @@
 
 /*
- *  nd6_rs_output -- ã«ã¼ã¿è¦è«ãåºåããã
+ *  nd6_rs_output -- ルータ要請を出力する。
  */
 
@@ -1011,7 +977,6 @@
 
 	/*
-	 *  éä¿¡å
-ã¢ãã¬ã¹ã«ã¯ããªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ãè¨­å®ãããã
-	 *  ã¾ã è¨­å®ããããªããã°ãç¡æå®ãè¨­å®ããã
+	 *  送信元アドレスには、リンクローカルアドレスを設定するが、
+	 *  まだ設定されいなければ、無指定を設定する。
 	 */
 	if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) != NULL && !IFA6_IS_NOTREADY(ifa))
@@ -1022,5 +987,5 @@
 	len = (ROUTER_SOLICIT_HDR_SIZE + 7) >> 3 << 3;
 
-	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨­å®ããã*/
+	/* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
 	if (in6_get_datagram(&output, len, 0, &in6_addr_linklocal_allrouters,
 	                     saddr, IPPROTO_ICMPV6,
@@ -1028,5 +993,5 @@
 		return;
 
- 	/* ã«ã¼ã¿è¦è«ããããè¨­å®ããã*/
+ 	/* ルータ要請ヘッダを設定する。*/
  	rsh = GET_ROUTER_SOLICIT_HDR(output, IF_IP6_ROUTER_SOLICIT_HDR_OFFSET);
  	rsh->hdr.type       = ND_ROUTER_SOLICIT;
@@ -1034,9 +999,9 @@
  	rsh->nd_rs_reserved = 0;
 
-	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	/* チェックサムを計算する。*/
 	rsh->hdr.sum = 0;
 	rsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)rsh - output->buf, len);
 
-	/* éä¿¡ããã*/
+	/* 送信する。*/
 	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
 	               output->len - GET_IF_IP6_HDR_SIZE(output));
@@ -1048,5 +1013,5 @@
 
 /*
- *  nd6_defrtrlist_lookup -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã
+ *  nd6_defrtrlist_lookup -- ディフォルトルータ・リストを探索する。
  */
 
@@ -1067,5 +1032,5 @@
 
 /*
- *  nd6_router_lookup -- ã«ã¼ã¿ã®ã¢ãã¬ã¹ãè¿ãã
+ *  nd6_router_lookup -- ルータのアドレスを返す。
  *
  */
@@ -1081,8 +1046,8 @@
 
 /*
- *  nd6_defrtrlist_del -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãããã«ã¼ã¿ãåé¤ããã
+ *  nd6_defrtrlist_del -- ディフォルトルータ・リストからルータを削除する。
  *
- *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
- *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
+ *          ロックしてから呼び出すこと。
  */
 
@@ -1098,23 +1063,23 @@
 	if ((ia = in6ifa_ifpwithrtrix(ifp, rtrix)) != NULL) {
 		/*
-		 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã¬ãã£ãã¯ã¹ãéç¥ãã
-		 *  ã«ã¼ã¿ãå°éä¸è½ã«ããã
+		 *  ネットワークインタフェースのプレフィックスを通知した
+		 *  ルータを到達不能にする。
 		 */
 		ia->router_index = IN6_RTR_IX_UNREACH;
 		}
 
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãããã«ã¼ã¿ãåé¤ããã*/
+	/* プレフィックスリストからルータを削除する。*/
 	mask = make_mask(rtrix);
 	for (pix = NUM_ND6_PREFIX_ENTRY; pix --; )
 		nd6_prefix[pix].routermap &= ~mask;
 
-	/* åé¤ããã«ã¼ã¿ä»¥éãåã«è©°ããã*/
+	/* 削除したルータ以降を前に詰める。*/
 	for (rix = rtrix + 1; rix < def_router_count; rix ++)
 		nd6_def_router[rix - 1] = nd6_def_router[rix];
 
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã«ã¼ã¿ãæ´æ°ããã*/
+	/* プレフィックスリストのルータも更新する。*/
 	if (dr != nd6_def_router) {
 
-		/* ãã¹ã¯ãçæããã*/
+		/* マスクを生成する。*/
 		mask = 1;
 		for (ix = rtrix - 1; ix -- > 0; )
@@ -1128,13 +1093,10 @@
 	def_router_count --;
 
-	/* ãã¬ãã£ãã¯ã¹ã®ãªã³ãªã³ã¯ç¶æ
-ãç¢ºèªããã*/
+	/* プレフィックスのオンリンク状態を確認する。*/
 	pfxlist_onlink_check();
 
 	/*
-	 *  åé¤ããã«ã¼ã¿ãåªå
-ãã£ãã©ã«ãã«ã¼ã¿ã®å ´åã¯ã
-	 *  åªå
-ãã£ãã©ã«ãã«ã¼ã¿ãé¸æããªããã
+	 *  削除するルータが優先ディフォルトルータの場合は、
+	 *  優先ディフォルトルータを選択しなおす。
 	 */
 	if (rtrix == 0)
@@ -1143,5 +1105,5 @@
 
 /*
- *  nd6_defrtrlist_timer -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼
+ *  nd6_defrtrlist_timer -- ディフォルトルータ・リストの管理タイマー
  */
 
@@ -1167,5 +1129,5 @@
 
 /*
- *  nd6_get_drl -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããç²å¾ããã
+ *  nd6_get_drl -- ディフォルトルータ・リストを獲得する。
  */
 
@@ -1178,5 +1140,5 @@
 
 /*
- *  nd6_get_prl -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããç²å¾ããã
+ *  nd6_get_prl -- プレフィックス・リストを獲得する。
  */
 
@@ -1190,6 +1152,5 @@
 
 /*
- *  nd6_ra_input -- ã«ã¼ã¿éç¥ã®å
-¥åå¦çã
+ *  nd6_ra_input -- ルータ通知の入力処理。
  */
 
@@ -1215,8 +1176,8 @@
 
 	/*
-	 *  ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
-	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
-	 *    ã»ãããé·ãç­ã
-	 *    ã»å§ç¹ã¢ãã¬ã¹ãããªã³ã¯ã­ã¼ã«ã«ã§ã¯ãªã (RFC2461)
+	 *  ヘッダのチェック、以下の場合は破棄する。
+	 *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
+	 *    ・ヘッダ長が短い
+	 *    ・始点アドレスが、リンクローカルではない (RFC2461)
 	 */
 	if (ip6h->hlim != IPV6_MAXHLIM                ||
@@ -1227,15 +1188,14 @@
 	rah  = GET_ROUTER_ADVERT_HDR(input, off);
 
-	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	/* 近隣探索オプションのオフセットを記録する。*/
 	if (nd6_options(nd_opt_off, input->buf + (off + ROUTER_ADVERT_HDR_SIZE),
 	                            input->len - (off + ROUTER_ADVERT_HDR_SIZE)) != E_OK)
 		goto err_ret;
 	/*
-	 *  å°éå¯è½ç¶æ
-ã®æå¹æéã®æ´æ°
+	 *  到達可能状態の有効時間の更新
 
 	 */
 	if (rah->reachable) {
-		advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000;	/* rah->reachable ã®åä½ã¯ ms */
+		advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000;	/* rah->reachable の単位は ms */
 		if (advrea <= ND6_MAX_REACHABLE_TIME &&
 		    advrea != nd6_base_reachable_time) {
@@ -1249,21 +1209,21 @@
 		}
 
-	/* è¿é£æ¢ç´¢ã®éä¿¡ééã®æ´æ° */
+	/* 近隣探索の送信間隔の更新 */
 	if (rah->retransmit) {
 		nd6_retrans_time = ntohl(rah->retransmit) * SYSTIM_HZ / 1000;
-									/* rah->retransmit ã®åä½ã¯ ms */
-		}
-
-	/* ããããªãããã®è¦å®å¤ã®æ´æ° */
+									/* rah->retransmit の単位は ms */
+		}
+
+	/* ホップリミットの規定値の更新 */
 	if (rah->nd_ra_current_hoplimit) {
 		ip6_defhlim = rah->nd_ra_current_hoplimit;
 		}
 
-	/* ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®æ´æ° */
+	/* ディフォルトルータリストの更新 */
 	rix = defrtrlist_update(&ip6h->src,
 	                       ntohs(rah->nd_ra_router_lifetime),
-	                       rah->nd_ra_flags);		/* rah->nd_ra_router_lifetime ã®åä½ã¯ç§ */
-
-	/* ãã¬ãã£ãã¯ã¹ãªã¹ãã®æ´æ° */
+	                       rah->nd_ra_flags);		/* rah->nd_ra_router_lifetime の単位は秒 */
+
+	/* プレフィックスリストの更新 */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFO_COUNT)]) {
 		T_ND_OPT_PREFIX_INFO	*pi;
@@ -1273,32 +1233,29 @@
 		pi_off   = off + ROUTER_ADVERT_HDR_SIZE
 		               + nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)] - 8;
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		while (pi_count -- > 0) {
 			pi = (T_ND_OPT_PREFIX_INFO*)(input->buf + pi_off);
 			if (pi->type != ND_OPT_PREFIX_INFORMATION)
-				/* ãªãã·ã§ã³ã¿ã¤ãããã¬ãã£ãã¯ã¹æ
-å ±ã§ãªããã°ä½ãããªãã*/
+				/* オプションタイプがプレフィックス情報でなければ何もしない。*/
 				;
 			else if (pi->len != 4)
-			    	/* ãã¬ãã£ãã¯ã¹æ
-å ±ã®é·ãã 32 (8Ã4) ã§ãªããã°ä¸æ­£ */
+			    	/* プレフィックス情報の長さが 32 (8×4) でなければ不正 */
 				syslog(LOG_NOTICE, "[ND6 RTR] prefix opt len: %d.", pi->len);
 			else if (pi->prefix_len > 128)
-				/* ãã¬ãã£ãã¯ã¹é·ã¯ 128 ãããä»¥ä¸ */
+				/* プレフィックス長は 128 ビット以下 */
 				syslog(LOG_NOTICE, "[ND6 RTR] prefix len: %d.", pi->prefix_len);
 			else if (IN6_IS_ADDR_MULTICAST(&pi->prefix) ||
 			         IN6_IS_ADDR_LINKLOCAL(&pi->prefix))
-				/* ãã«ãã­ã£ã¹ãã¨ãªã³ã¯ã­ã¼ã«ã«ã¯ä¸æ­£ */
+				/* マルチキャストとリンクローカルは不正 */
 				syslog(LOG_NOTICE, "[ND6 RTR] invalid addr: %s from %s.",
 				                   ipv62str(NULL, &pi->prefix), ipv62str(NULL, &ip6h->src));
-#if 0	/* FreeBSD 6.3 ã§åé¤ããã¦ããã*/
+#if 0	/* FreeBSD 6.3 で削除されている。*/
 			else if (IN6_IS_ADDR_AGGREGATE_UNICAST(&pi->prefix) &&		
 			         (pi->prefix_len != 64)                       )
-				/* éç´å¯è½ã¦ãã­ã£ã¹ãã§ããã¬ãã£ãã¯ã¹é·ã 64 ãããä»¥å¤ã¯ä¸æ­£ */
+				/* 集約可能ユニキャストで、プレフィックス長が 64 ビット以外は不正 */
 				syslog(LOG_NOTICE, "[ND6 RTR] invalid prefix len for global: %d.", pi->prefix_len);
 #endif
 			else if (ntohl(pi->preferred) > ntohl(pi->valid))
-				/* æ¨å¥¨æå¹æéãæå¹æéããé·ããã°ä¸æ­£ */
+				/* 推奨有効時間が有効時間より長ければ不正 */
 				syslog(LOG_NOTICE, "[ND6 RTR] preferred(%d) > valid time(%d).", ntohl(pi->preferred), ntohl(pi->valid));
 			else {
@@ -1307,15 +1264,15 @@
 				if (rix >= 0) {
 					/*
-					 *  defrtrlist_update ã®æ»ãå¤ã¯ãã«ã¼ã¿ã®ã¤ã³ããã¯ã¹ã
-					 *  ãã ããå¤ã -1 ãªãããã¬ãã£ãã¯ã¹ã»ãªã¹ãã¯æ´æ°ããªãã
+					 *  defrtrlist_update の戻り値は、ルータのインデックス。
+					 *  ただし、値が -1 なら、プレフィックス・リストは更新しない。
 					 */
-					prelist_update(pi, rix);	/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã*/
+					prelist_update(pi, rix);	/* プレフィックス・リストを更新する。*/
 					}
 				}
-			pi_off += pi->len << 3;		/* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã */
-			}
-		}
-
-	/* MTU ã®æ´æ° */
+			pi_off += pi->len << 3;		/* オプション長の単位は 8 バイト */
+			}
+		}
+
+	/* MTU の更新 */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_MTU)]) {
 		T_ND_OPT_MTU_HDR	*optmtuh;
@@ -1326,13 +1283,13 @@
 
 		/*
-		 *  å¤ã®ãã§ãã¯
+		 *  値のチェック
 		 *
-		 *    ãªãã·ã§ã³é·: 1
-		 *    äºç´:         0
+		 *    オプション長: 1
+		 *    予約:         0
 		 */
 		if (optmtuh->len != 1 || optmtuh->reserved != 0)
 			goto err_ret;
 
-		/* MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ãªãç¡è¦ããã*/
+		/* MTU が IPv6 MMTU（1280 オクテット）以下なら無視する。*/
 		mtu = ntohl(optmtuh->mtu);
 		if (mtu >= IPV6_MMTU) {
@@ -1343,11 +1300,10 @@
 
 	/*
-	 *  ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ã­ã£ãã·ã¥ã«ç»é²ããã
+	 *  ルータの始点リンクアドレスを近隣キャッシュに登録する。
 	 */
 	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) {
 		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ROUTER_ADVERT_HDR_SIZE) +
 		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8);
-	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
-åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+	 	/* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
 		lladdr     = (uint8_t *)(opth + 1);
 		lladdr_len = (opth->len << 3);
@@ -1355,16 +1311,15 @@
 
 	/*
-	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 *  ネットワークインタフェースのアドレス長が一致しなければエラー
 	 */
 	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
 		goto err_ret;
 
-	/* è¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	/* 近隣キャッシュに登録する。*/
 	nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_ROUTER_ADVERT, 0);
 
 	/*
-	 *  ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ã­ã£ãã·ã¥ã«ç»é²ããã®ã§ã
-	 *  ãªã³ãªã³ã¯ç¶æ
-ãå¤åããå¯è½æ§ããããããããããã§ãã¯ããã
+	 *  ルータの始点リンクアドレスを近隣キャッシュに登録したので、
+	 *  オンリンク状態が変化する可能性があるため、それをチェックする。
 	 */
 	pfxlist_onlink_check();
@@ -1380,5 +1335,5 @@
 
 	/*
-	 *  ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã¯ãç ´æ£ãã¦çµäºããã
+	 *  ルータ通知を受信しない場合は、破棄して終了する。
 	 */
 	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_RA_IN_PACKETS], 1);
@@ -1391,5 +1346,5 @@
 
 /*
- *  nd6_rtrsol_ctl -- ã«ã¼ã¿è¦è«åºåã®å¶å¾¡
+ *  nd6_rtrsol_ctl -- ルータ要請出力の制御
  */
 
@@ -1400,18 +1355,14 @@
 	int_t		try;
 
-	/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®ã¢ãã¬ã¹æ
-å ±ãå¾ãã*/
+	/* リンクローカルアドレスのアドレス情報を得る。*/
 	if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) == NULL)
 		return;
 
-	/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºãå¾
-ã¤ã*/
+	/* リンクローカルアドレスの重複検出終了を待つ。*/
 	do {
-		/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºå¾
-ã¡æéãè¨­å®ããã*/
+		/* リンクローカルアドレスの重複検出終了待ち時間を設定する。*/
 		syscall(dly_tsk(net_rand() % TMO_ND6_RTR_SOL_DELAY));
 
-		/* å¾
-ã£ã¦ããéã«éè¤ãæ¤åºããããçµäºããã*/
+		/* 待っている間に重複が検出されたら終了する。*/
 		if (ifa->flags & IN6_IFF_DUPLICATED)
 			return;
@@ -1421,13 +1372,12 @@
 	for (try = 0; try < NUM_ND6_RTR_SOL_RETRY; try ++) {
 
-		/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã«ã¨ã³ããªãããã°çµäº */
+		/* ディフォルトルータ・リストにエントリがあれば終了 */
 		if (def_router_count > 0)
 			return;
 
-		/* ã«ã¼ã¿è¦è«ãåºåããã*/
+		/* ルータ要請を出力する。*/
 		nd6_rs_output();
 
-		/* åºåã® 2 åç®ä»¥éã®é
-å»¶æéãè¨­å®ããã*/
+		/* 出力の 2 回目以降の遅延時間を設定する。*/
 		syscall(dly_tsk(TMO_ND6_RTR_SOL_INTERVAL));
 		}
@@ -1437,5 +1387,5 @@
 
 /*
- *  nd6_onlink_prefix_lookup -- ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã
+ *  nd6_onlink_prefix_lookup -- プレフィックスを探索する。
  */
 
@@ -1450,6 +1400,5 @@
 	now /= SYSTIM_HZ;
 
-	/* æ¨å¥¨æå¹æéå
-ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/
+	/* 推奨有効時間内のプレフィックスを探索する。*/
 	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
 		pr = &nd6_prefix[ix];
@@ -1463,6 +1412,5 @@
 		}
 
-	/* æå¹æéå
-ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/
+	/* 有効時間内のプレフィックスを探索する。*/
 	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
 		pr = &nd6_prefix[ix];
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/route6.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/route6.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/route6.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -115,11 +103,10 @@
 #if 0
 	/*
-	 *  éä¿¡å¸¯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã
-	 *  ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å¦çãè¡ããªãã
+	 *  通信帯域を食いつぶす攻撃への対応のため、
+	 *  タイプ 0 経路制御ヘッダの処理を行わない。
 	 */
 
 /*
- *  ip6_rthdr0 -- ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å
-¥åé¢æ°
+ *  ip6_rthdr0 -- タイプ 0 経路制御ヘッダの入力関数
  */
 
@@ -128,9 +115,9 @@
 {
 	if (rt0h->segleft == 0) {
-		/* ä¸­ç¶ãã¼ãæ°ã¯ 0 ãªã®ã§ãçµç¹ãã¼ã */
+		/* 中継ノード数は 0 なので、終点ノード */
 		return E_OK;
 		}
 
-	/* len ã¨ segleft ã®æ­£å½æ§ãã§ãã¯ */
+	/* len と segleft の正当性チェック */
 #ifdef IP6_CFG_COMPAT_RFC1883
 	if ((rt0h->len % 2) || (rt0h->len > 46)) {
@@ -139,6 +126,6 @@
 #endif
 		/*
-		 *  len ã¯å¶æ°ã§ã(23 * 2) ã¾ã§ã
-		 *  ãã ãã(23 * 2) ã®å¶éã¯ RFC 2462 ã§åé¤ããã¦ããã
+		 *  len は偶数で、(23 * 2) まで。
+		 *  ただし、(23 * 2) の制限は RFC 2462 で削除されている。
 		 */
 		icmp6_error(input, ICMP6_PARAM_PROB,
@@ -148,10 +135,10 @@
 		}
 
-	/* len ãä¸­ç¶ãã¼ãæ°ã¨çç¾ãã¦ããªãããã§ãã¯ããã*/
+	/* len が中継ノード数と矛盾していないかチェックする。*/
 	if ((rt0h->len / 2) < rt0h->segleft) {
 		/*
-		 *  len ã¯ 8ãªã¯ãããåä½ãsegleft ã¯ 16ãªã¯ãããåä½ãªã®ã§ã
-		 *  len / 2 == segleft ã¨ãªãã¯ãã
-		 *  len / 2 <  segleft ã¯ã¨ã©ã¼ã
+		 *  len は 8オクテット単位、segleft は 16オクテット単位なので、
+		 *  len / 2 == segleft となるはず。
+		 *  len / 2 <  segleft はエラー。
 		 */
 		icmp6_error(input, ICMP6_PARAM_PROB,
@@ -162,9 +149,7 @@
 
 	/*
-	 *  æ®ãã®ä¸­ç¶ãã¼ãæ°ã 1 ä»¥ä¸ã§ããã°ããã®ãã¼ãã¯æçµçãª
-	 *  çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£
-ã§ã¯ãä¸­ç¶ãããªãã®ã§ã
-	 *  å
-¥åãã¼ã¿ã°ã©ã ã®å¦çãçµäºããã
+	 *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
+	 *  終点ノードではない。本実装では、中継をしないので、
+	 *  入力データグラムの処理を終了する。
 	 */
 	syscall(rel_net_buf(input));
@@ -175,6 +160,5 @@
 
 /*
- *  route6_input -- çµè·¯å¶å¾¡ãããã®å
-¥åé¢æ°
+ *  route6_input -- 経路制御ヘッダの入力関数
  */
 
@@ -186,5 +170,5 @@
 	uint_t		len, off = *offp;
 
-	/* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/
+	/* ネットワークバッファの残りの長さをチェックする。*/
 	if (input->len - off < sizeof(T_IP6_RT_HDR))
 		goto buf_rel;
@@ -193,5 +177,5 @@
 	len = (rth->len + 1) << 3;
 
-	/* çµè·¯å¶å¾¡ãããã®é·ãããã§ãã¯ããã*/
+	/* 経路制御ヘッダの長さをチェックする。*/
 	if (input->len < off + len)
 		goto buf_rel;
@@ -199,11 +183,11 @@
 #if 0
 	/*
-	 *  éä¿¡å¸¯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã
-	 *  ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å¦çãè¡ããªãã
+	 *  通信帯域を食いつぶす攻撃への対応のため、
+	 *  タイプ 0 経路制御ヘッダの処理を行わない。
 	 */
 	if (rth->type == IPV6_RTHDR_TYPE_0) {
 		if (ip6_rthdr0(input, (T_IP6_RT0_HDR*)rth) != E_OK) {
 
-			/* ã¨ã©ã¼ã®å ´åã¯ãip6_rthdr0 ã§ãããã¡ãéæ¾ãã¦ããã*/
+			/* エラーの場合は、ip6_rthdr0 でバッファを開放している。*/
 			return IPPROTO_DONE;
 			}
@@ -212,8 +196,7 @@
 
 		/*
-		 *  æ®ãã®ä¸­ç¶ãã¼ãæ°ã 1 ä»¥ä¸ã§ããã°ããã®ãã¼ãã¯æçµçãª
-		 *  çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£
-ã§ã¯ãä¸­ç¶ãããªãã®ã§ã
-		 *  ICMP6 ã¨ã©ã¼ãè¿éãã¦å¦çãçµäºããã
+		 *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
+		 *  終点ノードではない。本実装では、中継をしないので、
+		 *  ICMP6 エラーを返送して処理を終了する。
 		 */
 		icmp6_error(input, ICMP6_PARAM_PROB,
@@ -226,8 +209,7 @@
 
 		/*
-		 *  æ®ãã®ä¸­ç¶ãã¼ãæ°ã 1 ä»¥ä¸ã§ããã°ããã®ãã¼ãã¯æçµçãª
-		 *  çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£
-ã§ã¯ãä¸­ç¶ãããªãã®ã§ã
-		 *  ICMP6 ã¨ã©ã¼ãè¿éãã¦å¦çãçµäºããã
+		 *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
+		 *  終点ノードではない。本実装では、中継をしないので、
+		 *  ICMP6 エラーを返送して処理を終了する。
 		 */
 		icmp6_error(input, ICMP6_PARAM_PROB,
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/scope6.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/scope6.c	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/scope6.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -143,5 +131,5 @@
 
 /*
- *  in6_addrscope -- ã¢ãã¬ã¹ã®ã¹ã³ã¼ã ID ãè¿ãã
+ *  in6_addrscope -- アドレスのスコープ ID を返す。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.tf
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.tf	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.tf	(revision 321)
@@ -6,43 +6,30 @@
 $                    Tomakomai National College of Technology, JAPAN
 $  
-$   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-$   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-$   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-$   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-$       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-$       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-$   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-$       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-$       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-$       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-$   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-$       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-$       ã¨ï¼
-$     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-$         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-$   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-$       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-$       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-$       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-$       å
-è²¬ãããã¨ï¼
+$   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+$   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+$   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+$   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+$       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+$       スコード中に含まれていること．
+$   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+$       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+$       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+$       の無保証規定を掲載すること．
+$   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+$       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+$       と．
+$     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+$         作権表示，この利用条件および下記の無保証規定を掲載すること．
+$   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+$       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+$       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+$       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+$       免責すること．
 $  
-$   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-$   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-$   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-$   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-$   ã®è²¬ä»»ãè² ããªãï¼
+$   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+$   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+$   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+$   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+$   の責任を負わない．
 $ 
 $   @(#) $Id$
@@ -51,5 +38,5 @@
 
 $ =====================================================================
-$ tinet_cfg.h ã®çæ
+$ tinet_cfg.h の生成
 $ =====================================================================
 
@@ -99,5 +86,5 @@
 
 $ =====================================================================
-$ tinet_cfg.c ã®çæ
+$ tinet_cfg.c の生成
 $ =====================================================================
 
@@ -128,5 +115,5 @@
 
 $ 
-$  ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼
+$  インクルードディレクティブ（#include）
 $ 
 $NL$
@@ -137,5 +124,5 @@
 $INCLUDES$
 
-$	// TCP (IPv4) åä»å£
+$	// TCP (IPv4) 受付口
 $IF LENGTH(TCP4_REP.ID_LIST) + LENGTH(VRID_TCP4_REP.ID_LIST)$
 	$NL$
@@ -168,5 +155,5 @@
 $END$
 
-$	// TCP (IPv6) åä»å£
+$	// TCP (IPv6) 受付口
 $IF LENGTH(TCP6_REP.ID_LIST) + LENGTH(VRID_TCP6_REP.ID_LIST)$
 	$NL$
@@ -199,5 +186,5 @@
 $END$
 
-$	// TCP (IPv4) éä¿¡ç«¯ç¹
+$	// TCP (IPv4) 通信端点
 $IF LENGTH(TCP4_CEP.ID_LIST) + LENGTH(VRID_TCP4_CEP.ID_LIST)$
 	$NL$
@@ -240,5 +227,5 @@
 $END$
 
-$	// TCP (IPv6) éä¿¡ç«¯ç¹
+$	// TCP (IPv6) 通信端点
 $IF LENGTH(TCP6_CEP.ID_LIST) + LENGTH(VRID_TCP6_CEP.ID_LIST)$
 	$NL$
@@ -281,5 +268,5 @@
 $END$
 
-$	// UDP (IPv4) éä¿¡ç«¯ç¹
+$	// UDP (IPv4) 通信端点
 $IF LENGTH(UDP4_CEP.ID_LIST) + LENGTH(VRID_UDP4_CEP.ID_LIST)$
 	$NL$
@@ -316,5 +303,5 @@
 $END$
 
-$	// UDP (IPv6) éä¿¡ç«¯ç¹
+$	// UDP (IPv6) 通信端点
 $IF LENGTH(UDP6_CEP.ID_LIST) + LENGTH(VRID_UDP6_CEP.ID_LIST)$
 	$NL$
@@ -352,5 +339,5 @@
 
 $ =====================================================================
-$ tinet_kern.cfg ã®çæ
+$ tinet_kern.cfg の生成
 $ =====================================================================
 
@@ -358,5 +345,5 @@
 /* tinet_kern.cfg */$NL$
 
-$	// TCP (IPv4) åä»å£
+$	// TCP (IPv4) 受付口
 $IF LENGTH(TCP4_REP.ID_LIST) + LENGTH(VRID_TCP4_REP.ID_LIST)$
 	$NL$
@@ -371,5 +358,5 @@
 $END$
 
-$	// TCP (IPv4) åä»å£
+$	// TCP (IPv4) 受付口
 $IF LENGTH(TCP6_REP.ID_LIST) + LENGTH(VRID_TCP6_REP.ID_LIST)$
 	$NL$
@@ -384,5 +371,5 @@
 $END$
 
-$	// TCP (IPv4) éä¿¡ç«¯ç¹
+$	// TCP (IPv4) 通信端点
 $IF LENGTH(TCP4_CEP.ID_LIST) + LENGTH(VRID_TCP4_CEP.ID_LIST)$
 	$NL$
@@ -403,5 +390,5 @@
 $END$
 
-$	// TCP (IPv6) éä¿¡ç«¯ç¹
+$	// TCP (IPv6) 通信端点
 $IF LENGTH(TCP6_CEP.ID_LIST) + LENGTH(VRID_TCP6_CEP.ID_LIST)$
 	$NL$
@@ -422,5 +409,5 @@
 $END$
 
-$	// UDP (IPv4) éä¿¡ç«¯ç¹
+$	// UDP (IPv4) 通信端点
 $IF LENGTH(UDP4_CEP.ID_LIST) + LENGTH(VRID_UDP4_CEP.ID_LIST)$
 	$NL$
@@ -437,5 +424,5 @@
 $END$
 
-$	// UDP (IPv6) éä¿¡ç«¯ç¹
+$	// UDP (IPv6) 通信端点
 $IF LENGTH(UDP6_CEP.ID_LIST) + LENGTH(VRID_UDP6_CEP.ID_LIST)$
 	$NL$
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.trb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.trb	(revision 321)
@@ -6,50 +6,37 @@
 #                    Tomakomai National College of Technology, JAPAN
 #  
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 # 
-#   @(#) $Id: tinet.tf 3 2013-09-27 01:07:16Z coas-nagasima $
+#   @(#) $Id$
 #  
 # =====================================================================
 
 # =====================================================================
-# tinet_cfg.h ã®çæ
+# tinet_cfg.h の生成
 # =====================================================================
 
@@ -100,5 +87,5 @@
 
 # =====================================================================
-# tinet_cfg.c ã®çæ
+# tinet_cfg.c の生成
 # =====================================================================
 
@@ -132,5 +119,5 @@
 EOS
 # 
-#  ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼
+#  インクルードディレクティブ（#include）
 # 
 $tinetCfgC.add()
@@ -143,5 +130,5 @@
 end
 
-#	// TCP (IPv4) åä»å£
+#	// TCP (IPv4) 受付口
 if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP4_REP].size > 0
 	$tinetCfgC.add()
@@ -174,5 +161,5 @@
 end
 
-#	// TCP (IPv6) åä»å£
+#	// TCP (IPv6) 受付口
 if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0
 	$tinetCfgC.add()
@@ -205,5 +192,5 @@
 end
 
-#	// TCP (IPv4) éä¿¡ç«¯ç¹
+#	// TCP (IPv4) 通信端点
 if $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP4_CEP].size > 0
 	$tinetCfgC.add()
@@ -246,5 +233,5 @@
 end
 
-#	// TCP (IPv6) éä¿¡ç«¯ç¹
+#	// TCP (IPv6) 通信端点
 if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0
 	$tinetCfgC.add()
@@ -287,5 +274,5 @@
 end
 
-#	// UDP (IPv4) éä¿¡ç«¯ç¹
+#	// UDP (IPv4) 通信端点
 if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP4_CEP].size > 0
 	$tinetCfgC.add()
@@ -322,5 +309,5 @@
 end
 
-#	// UDP (IPv6) éä¿¡ç«¯ç¹
+#	// UDP (IPv6) 通信端点
 if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0
 	$tinetCfgC.add()
@@ -358,8 +345,8 @@
 
 # =====================================================================
-# tinet_kern.cfg ã®çæ
-# =====================================================================
-
-#	// TCP (IPv4) åä»å£
+# tinet_kern.cfg の生成
+# =====================================================================
+
+#	// TCP (IPv4) 受付口
 if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP4_REP].size > 0
 	$cfgData[:TCP_CRE_REP].each do |key, params|
@@ -381,5 +368,5 @@
 end
 
-#	// TCP (IPv6) åä»å£
+#	// TCP (IPv6) 受付口
 if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0
 	$cfgData[:TCP6_CRE_REP].each do |key, params|
@@ -401,5 +388,5 @@
 end
 
-#	// TCP (IPv4) éä¿¡ç«¯ç¹
+#	// TCP (IPv4) 通信端点
 if $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP4_CEP].size > 0
 	$cfgData[:TCP_CRE_CEP].each do |key, params|
@@ -457,5 +444,5 @@
 end
 
-#	// TCP (IPv6) éä¿¡ç«¯ç¹
+#	// TCP (IPv6) 通信端点
 if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0
 	$cfgData[:TCP6_CRE_CEP].each do |key, params|
@@ -513,5 +500,5 @@
 end
 
-#	// UDP (IPv4) éä¿¡ç«¯ç¹
+#	// UDP (IPv4) 通信端点
 if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP4_CEP].size > 0
 	$cfgData[:UDP_CRE_CEP].each do |key, params|
@@ -547,5 +534,5 @@
 end
 
-#	// UDP (IPv6) éä¿¡ç«¯ç¹
+#	// UDP (IPv6) 通信端点
 if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0
 	$cfgData[:UDP6_CRE_CEP].each do |key, params|
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp.cfg	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp.cfg	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  TINET ã®æ¨æºã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  TINET の標準システムコンフィギュレーションファイル
  */
 
@@ -75,6 +63,5 @@
 
 /*
- *  TINET ãã­ãã³ã«ã¹ã¿ãã¯å
-é¨ã®ã«ã¼ãã«ãªãã¸ã§ã¯ãã®æå®
+ *  TINET プロトコルスタック内部のカーネルオブジェクトの指定
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_config.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_config.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_config.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,22 +36,22 @@
 
 /*
- *  TINET 1.2 ã¨ã®äºææ§ã®ããã®å®ç¾©
- */
-
-/* TCPã®ååãªã¼ãã³ããµãã¼ãããã*/
+ *  TINET 1.2 との互換性のための定義
+ */
+
+/* TCPの受動オープンをサポートする。*/
 
 #define TCP_CFG_PASSIVE_OPEN
 
-/* TCPã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã*/
+/* TCPのノンブロッキングコール機能を組込む。*/
 
 #define TCP_CFG_NON_BLOCKING
 
-/* UDPã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã*/
+/* UDPのノンブロッキングコール機能を組込む。*/
 
 #define UDP_CFG_NON_BLOCKING
 
 /*
- *  NICãã·ã¹ãã ãCPUãå¿ç¨ãã­ã°ã©ã ã«
- *  ä¾å­ããå®ç¾©ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããã
+ *  NIC、システム、CPU、応用プログラムに
+ *  依存する定義ファイルをインクルードする。
  */
 
@@ -94,5 +82,5 @@
 
 /*
- *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.1 との互換性のための定義
  */
 
@@ -102,5 +90,5 @@
 
 /*
- *  TINET 1.2 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.2 との互換性のための定義
  */
 
@@ -110,5 +98,5 @@
 
 /*
- *  TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *  TINET 1.3 との互換性のための定義
 
 #ifdef  NUM_MPF_NET_BUF_REASSM
@@ -118,11 +106,11 @@
 
 /*
- *  TCP ã«é¢ããå®ç¾©
- */
-
-/*
- *  MAX_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
+ *  TCP に関する定義
+ */
+
+/*
+ *  MAX_TCP_RCV_SEG: 受信セグメントサイズの最大値
  *
- *    æ³¨æ: å¤æ´ãã¹ãã§ã¯ãªãã
+ *    注意: 変更すべきではない。
  */
 
@@ -132,5 +120,5 @@
 
 /*
- *  DEF_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ *  DEF_TCP_SND_SEG: 送信セグメントサイズの規定値
  */
 
@@ -140,5 +128,5 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+ *  TCP 通信端点の送受信ウィンドバッファの省コピー機能
  */
 
@@ -156,9 +144,8 @@
 
 /*
- *  TCP_CFG_URG_OFFSET: ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãã
+ *  TCP_CFG_URG_OFFSET: 緊急データの最後のバイトのオフセット
  *
- *    -1: BSD ã®å®è£
-ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã
- *     0: RFC1122 ã®è¦å®ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ãã
+ *    -1: BSD の実装、緊急ポインタは、緊急データの最後のバイトの次のバイトを差す。
+ *     0: RFC1122 の規定、緊急ポインタは、緊急データの最後のバイトを差す。
  */
 
@@ -168,24 +155,24 @@
 
 /*
- *  ARP ã«é¢ããå®ç¾©
+ *  ARP に関する定義
  */
 
 #ifndef ARP_CACHE_KEEP
-#define ARP_CACHE_KEEP		(20*60*NET_TIMER_HZ)	/* ARP ã­ã£ãã·ã¥ã®ã¿ã¤ã ã¢ã¦ã	*/
-#endif
-
-/*
- *  ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã«é¢ããå®ç¾©
+#define ARP_CACHE_KEEP		(20*60*NET_TIMER_HZ)	/* ARP キャッシュのタイムアウト	*/
+#endif
+
+/*
+ *  ループバックインタフェースに関する定義
  */
 
 #ifndef LOMTU
-#define LOMTU			1500	/* ã«ã¼ãããã¯ã® MTU			*/
-#endif
-
-/*
- * TINET ãµãã¼ãé¢æ°ã«é¢ããå®ç¾©
- */
-
-#ifndef NUM_IPV4ADDR_STR_BUFF		/* ip2str ã«ããã IP ã¢ãã¬ã¹æå­åç¨ãããã¡æ° */
+#define LOMTU			1500	/* ループバックの MTU			*/
+#endif
+
+/*
+ * TINET サポート関数に関する定義
+ */
+
+#ifndef NUM_IPV4ADDR_STR_BUFF		/* ip2str における IP アドレス文字列用バッファ数 */
 
 #if defined(SUPPORT_PPP)
@@ -202,8 +189,8 @@
 
 #ifndef NUM_IPV6ADDR_STR_BUFF
-#define NUM_IPV6ADDR_STR_BUFF	2	/* ip62str ã«ããã IP ã¢ãã¬ã¹æå­åç¨ãããã¡æ° */
-#endif
-
-#ifndef NUM_MACADDR_STR_BUFF		/* macstr ã«ããã MAC ã¢ãã¬ã¹æå­åç¨ãããã¡æ° */
+#define NUM_IPV6ADDR_STR_BUFF	2	/* ip62str における IP アドレス文字列用バッファ数 */
+#endif
+
+#ifndef NUM_MACADDR_STR_BUFF		/* macstr における MAC アドレス文字列用バッファ数 */
 
 #if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING)
@@ -220,201 +207,180 @@
 
 /*
- *  TINET å
-é¨ã®ã¿ã¤ã ã¢ã¦ãå¤ã®è¨­å®
+ *  TINET 内部のタイムアウト値の設定
  */
 
 #ifndef TMO_IP4_FRAG_GET_NET_BUF
-#define TMO_IP4_FRAG_GET_NET_BUF	ULONG_C(1000*1000)	/* [ms]ãIPv4 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_IP4_FRAG_GET_NET_BUF	ULONG_C(1000*1000)	/* [ms]、IPv4 データグラム再構成用ネットワークバッファ獲得タイムアウト	*/
 #endif
 
 #ifndef TMO_IP6_FRAG_GET_NET_BUF
-#define TMO_IP6_FRAG_GET_NET_BUF	ULONG_C(1000*1000)	/* [ms]ãIPv6 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_IP6_FRAG_GET_NET_BUF	ULONG_C(1000*1000)	/* [ms]、IPv6 データグラム再構成用ネットワークバッファ獲得タイムアウト	*/
 #endif
 
 #ifndef TMO_PPP_GET_NET_BUF
-#define TMO_PPP_GET_NET_BUF		ULONG_C(1000*1000)	/* [ms]ãPPP åä¿¡ç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_PPP_GET_NET_BUF		ULONG_C(1000*1000)	/* [ms]、PPP 受信用ネットワークバッファ獲得タイムアウト	*/
 #endif
 
 #ifndef TMO_ARP_GET_NET_BUF
-#define TMO_ARP_GET_NET_BUF		ULONG_C(1000*1000)	/* [ms]ãARP ã®ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_ARP_GET_NET_BUF		ULONG_C(1000*1000)	/* [ms]、ARP のネットワークバッファ獲得タイムアウト	*/
 #endif
 
 #ifndef TMO_TCP_GET_NET_BUF
-#define TMO_TCP_GET_NET_BUF		ULONG_C(1000*1000)	/* [ms]ãTCP ã®ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_TCP_GET_NET_BUF		ULONG_C(1000*1000)	/* [ms]、TCP のネットワークバッファ獲得タイムアウト	*/
 #endif
 
 #ifndef TMO_TCP_OUTPUT
-#define TMO_TCP_OUTPUT			ULONG_C(1000*1000)	/* [ms]ãTCP åºåã¿ã¤ã ã¢ã¦ã				*/
+#define TMO_TCP_OUTPUT			ULONG_C(1000*1000)	/* [ms]、TCP 出力タイムアウト				*/
 #endif
 
 #ifndef TMO_UDP_OUTPUT
-#define TMO_UDP_OUTPUT			ULONG_C(1000*1000)	/* [ms]ãUDP åºåã¿ã¤ã ã¢ã¦ã				*/
+#define TMO_UDP_OUTPUT			ULONG_C(1000*1000)	/* [ms]、UDP 出力タイムアウト				*/
 #endif
 
 #ifndef TMO_ICMP_OUTPUT
-#define TMO_ICMP_OUTPUT			ULONG_C(1000*1000)	/* [ms]ãICMP åºåã¿ã¤ã ã¢ã¦ã				*/
+#define TMO_ICMP_OUTPUT			ULONG_C(1000*1000)	/* [ms]、ICMP 出力タイムアウト				*/
 #endif
 
 #ifndef TMO_ND6_NS_OUTPUT
-#define TMO_ND6_NS_OUTPUT		ULONG_C(1000*1000)	/* [ms]ãè¿é£è¦è«åºåã¿ã¤ã ã¢ã¦ã			*/
+#define TMO_ND6_NS_OUTPUT		ULONG_C(1000*1000)	/* [ms]、近隣要請出力タイムアウト			*/
 #endif
 
 #ifndef TMO_ND6_NA_OUTPUT
-#define TMO_ND6_NA_OUTPUT		ULONG_C(1000*1000)	/* [ms]ãè¿é£éç¥åºåã¿ã¤ã ã¢ã¦ã			*/
+#define TMO_ND6_NA_OUTPUT		ULONG_C(1000*1000)	/* [ms]、近隣通知出力タイムアウト			*/
 #endif
 
 #ifndef TMO_ND6_RS_OUTPUT
-#define TMO_ND6_RS_OUTPUT		ULONG_C(1000*1000)	/* [ms]ãã«ã¼ã¿è¦è«åºåã¿ã¤ã ã¢ã¦ã			*/
+#define TMO_ND6_RS_OUTPUT		ULONG_C(1000*1000)	/* [ms]、ルータ要請出力タイムアウト			*/
 #endif
 
 #ifndef TMO_ARP_OUTPUT
-#define TMO_ARP_OUTPUT			ULONG_C(1000*1000)	/* [ms]ãã¢ãã¬ã¹è§£æ±ºè¦æ±åºåã¿ã¤ã ã¢ã¦ã		*/
+#define TMO_ARP_OUTPUT			ULONG_C(1000*1000)	/* [ms]、アドレス解決要求出力タイムアウト		*/
 #endif
 
 #ifndef TMO_ND6_RTR_SOL_DELAY
-#define TMO_ND6_RTR_SOL_DELAY		ULONG_C(1000*1000)	/* [ms]ãã«ã¼ã¿è¦è«åºåé
-å»¶				*/
+#define TMO_ND6_RTR_SOL_DELAY		ULONG_C(1000*1000)	/* [ms]、ルータ要請出力遅延				*/
 #endif
 
 #ifndef TMO_ND6_RTR_SOL_INTERVAL
-#define TMO_ND6_RTR_SOL_INTERVAL	ULONG_C(4000*1000)	/* [ms]ãã«ã¼ã¿è¦è«åºåéé				*/
+#define TMO_ND6_RTR_SOL_INTERVAL	ULONG_C(4000*1000)	/* [ms]、ルータ要請出力間隔				*/
 #endif
 
 #ifndef TMO_IN_REDIRECT
-					/* [s]ãåãç´ãã«ã¼ãã£ã³ã°ã¨ã³ããªã¿ã¤ã ã¢ã¦ã*/
+					/* [s]、向け直しルーティングエントリタイムアウト*/
 #define TMO_IN_REDIRECT			(10*60*NET_TIMER_HZ)
 #endif
 
 /*
- *  TINET å
-é¨ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®è¨­å®
+ *  TINET 内部のタスクのスタックサイズの設定
  */
 
 #ifndef TCP_OUT_TASK_STACK_SIZE
-#define	TCP_OUT_TASK_STACK_SIZE	1024	/* TCP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#define	TCP_OUT_TASK_STACK_SIZE	1024	/* TCP 出力タスクのスタックサイズ		*/
 #endif
 
 #ifndef UDP_OUT_TASK_STACK_SIZE
-#define	UDP_OUT_TASK_STACK_SIZE	1024	/* UDP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº			*/
+#define	UDP_OUT_TASK_STACK_SIZE	1024	/* UDP 出力タスクのスタックサイズ			*/
 #endif
 
 #ifndef PPP_INPUT_STACK_SIZE
-#define	PPP_INPUT_STACK_SIZE	1024	/* PPP ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#define	PPP_INPUT_STACK_SIZE	1024	/* PPP タスクのスタックサイズ		*/
 #endif
 
 #ifndef PPP_OUTPUT_STACK_SIZE
-#define	PPP_OUTPUT_STACK_SIZE	1024	/* PPP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#define	PPP_OUTPUT_STACK_SIZE	1024	/* PPP 出力タスクのスタックサイズ		*/
 #endif
 
 #ifndef ETHER_INPUT_STACK_SIZE
-#define	ETHER_INPUT_STACK_SIZE	1024	/* Ethernet å
-¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define	ETHER_INPUT_STACK_SIZE	1024	/* Ethernet 入力タスクのスタックサイズ	*/
 #endif
 
 #ifndef ETHER_OUTPUT_STACK_SIZE
-#define	ETHER_OUTPUT_STACK_SIZE	1024	/* Ethernet åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define	ETHER_OUTPUT_STACK_SIZE	1024	/* Ethernet 出力タスクのスタックサイズ	*/
 #endif
 
 #ifndef LOOP_INPUT_STACK_SIZE
-#define	LOOP_INPUT_STACK_SIZE	1024	/* ã«ã¼ãããã¯å
-¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define	LOOP_INPUT_STACK_SIZE	1024	/* ループバック入力タスクのスタックサイズ	*/
 #endif
 
 #ifndef LOOP_OUTPUT_STACK_SIZE
-#define	LOOP_OUTPUT_STACK_SIZE	1024	/* ã«ã¼ãããã¯åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define	LOOP_OUTPUT_STACK_SIZE	1024	/* ループバック出力タスクのスタックサイズ	*/
 #endif
 
 #ifndef NET_TIMER_STACK_SIZE
-#define	NET_TIMER_STACK_SIZE	1024	/* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
-#endif
-
-/*
- *  TINET å
-é¨ã®ã¿ã¹ã¯ã®åªå
-åº¦ã®è¨­å®
+#define	NET_TIMER_STACK_SIZE	1024	/* ネットワークタイマタスクのスタックサイズ */
+#endif
+
+/*
+ *  TINET 内部のタスクの優先度の設定
  */
 
 #ifndef TCP_OUT_TASK_PRIORITY
-#define TCP_OUT_TASK_PRIORITY	5	/* TCP åºåã¿ã¹ã¯ã®åªå
-åº¦			*/
+#define TCP_OUT_TASK_PRIORITY	5	/* TCP 出力タスクの優先度			*/
 #endif
 
 #ifndef UDP_OUT_TASK_PRIORITY
-#define UDP_OUT_TASK_PRIORITY	5	/* UDP åºåã¿ã¹ã¯ã®åªå
-åº¦				*/
+#define UDP_OUT_TASK_PRIORITY	5	/* UDP 出力タスクの優先度				*/
 #endif
 
 #ifndef PPP_INPUT_PRIORITY
-#define PPP_INPUT_PRIORITY	5	/* PPP ã¿ã¹ã¯ã®åªå
-åº¦			*/
+#define PPP_INPUT_PRIORITY	5	/* PPP タスクの優先度			*/
 #endif
 
 #ifndef PPP_OUTPUT_PRIORITY
-#define PPP_OUTPUT_PRIORITY	5	/* PPP ã¿ã¹ã¯ã®åªå
-åº¦			*/
+#define PPP_OUTPUT_PRIORITY	5	/* PPP タスクの優先度			*/
 #endif
 
 #ifndef ETHER_INPUT_PRIORITY
-#define ETHER_INPUT_PRIORITY	5	/* Ethernet å
-¥åã¿ã¹ã¯ã®åªå
-åº¦		*/
+#define ETHER_INPUT_PRIORITY	5	/* Ethernet 入力タスクの優先度		*/
 #endif
 
 #ifndef ETHER_OUTPUT_PRIORITY
-#define ETHER_OUTPUT_PRIORITY	5	/* Ethernet åºåã¿ã¹ã¯ã®åªå
-åº¦		*/
+#define ETHER_OUTPUT_PRIORITY	5	/* Ethernet 出力タスクの優先度		*/
 #endif
 
 #ifndef LOOP_INPUT_PRIORITY
-#define LOOP_INPUT_PRIORITY	5	/* ã«ã¼ãããã¯å
-¥åã¿ã¹ã¯ã®åªå
-åº¦		*/
+#define LOOP_INPUT_PRIORITY	5	/* ループバック入力タスクの優先度		*/
 #endif
 
 #ifndef LOOP_OUTPUT_PRIORITY
-#define LOOP_OUTPUT_PRIORITY	5	/* ã«ã¼ãããã¯åºåã¿ã¹ã¯ã®åªå
-åº¦		*/
+#define LOOP_OUTPUT_PRIORITY	5	/* ループバック出力タスクの優先度		*/
 #endif
 
 #ifndef NET_TIMER_PRIORITY
-#define NET_TIMER_PRIORITY	5	/* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®åªå
-åº¦ */
-#endif
-
-/*
- *  TINET å
-é¨ã®ãã¼ã¿ã­ã¥ã¼ã®ã¨ã³ããªæ°ã®è¨­å®
- */
-
-/* UDP åä¿¡ã­ã¥ã¼ãµã¤ãº */
+#define NET_TIMER_PRIORITY	5	/* ネットワークタイマタスクの優先度 */
+#endif
+
+/*
+ *  TINET 内部のデータキューのエントリ数の設定
+ */
+
+/* UDP 受信キューサイズ */
 
 #ifndef NUM_DTQ_UDP_RCVQ
-#define NUM_DTQ_UDP_RCVQ	1	/* éã³ã¼ã«ããã¯ç¨	*/
+#define NUM_DTQ_UDP_RCVQ	1	/* 非コールバック用	*/
 #endif
 
 #ifndef NUM_DTQ_UDP_OUTPUT
-#define NUM_DTQ_UDP_OUTPUT	1	/* UDP åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãº			*/
+#define NUM_DTQ_UDP_OUTPUT	1	/* UDP 出力データキューサイズ			*/
 #endif
 
 #ifndef NUM_DTQ_PPP_OUTPUT
-#define NUM_DTQ_PPP_OUTPUT	2	/* PPP åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãºã2 ä»¥ä¸	*/
+#define NUM_DTQ_PPP_OUTPUT	2	/* PPP 出力データキューサイズ、2 以上	*/
 #endif
 
 #ifndef NUM_DTQ_ETHER_OUTPUT
-#define NUM_DTQ_ETHER_OUTPUT	2	/* Ethernet åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãº	*/
+#define NUM_DTQ_ETHER_OUTPUT	2	/* Ethernet 出力データキューサイズ	*/
 #endif
 
 #ifndef NUM_DTQ_LOOP_INPUT
-#define NUM_DTQ_LOOP_INPUT	0	/* ã«ã¼ãããã¯å
-¥åãã¼ã¿ã­ã¥ã¼ãµã¤ãº	*/
+#define NUM_DTQ_LOOP_INPUT	0	/* ループバック入力データキューサイズ	*/
 #endif
 
 #ifndef NUM_DTQ_LOOP_OUTPUT
-#define NUM_DTQ_LOOP_OUTPUT	0	/* ã«ã¼ãããã¯åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãº	*/
-#endif
-
-/*
- *  TINET ãã­ãã³ã«ã¹ã¿ãã¯å
-é¨ã®ãªãã¼ã 
+#define NUM_DTQ_LOOP_OUTPUT	0	/* ループバック出力データキューサイズ	*/
+#endif
+
+/*
+ *  TINET プロトコルスタック内部のリネーム
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_defs.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_defs.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_defs.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -56,5 +44,5 @@
 
 /*
- *  ã«ã¼ãã«ã®è­å¥
+ *  カーネルの識別
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_kernel_defs.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_kernel_defs.h	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_kernel_defs.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /*
- *  ã«ã¼ãã«ã«é¢ããäºææ§å®ç¾©ãã¡ã¤ã«
+ *  カーネルに関する互換性定義ファイル
  */
 
@@ -56,51 +44,51 @@
 
 /*
- *  ãã¼ã¿åã®å®ç¾©ï¼inttype.hï¼
+ *  データ型の定義（inttype.h）
  */
 
 #ifdef _int8_
-typedef _int8_			int8_t;		/* ç¬¦å·ä»ã 8 ãããæ´æ° */
-typedef unsigned _int8_		uint8_t;	/* ç¬¦å·ç¡ã 8 ãããæ´æ° */
+typedef _int8_			int8_t;		/* 符号付き 8 ビット整数 */
+typedef unsigned _int8_		uint8_t;	/* 符号無し 8 ビット整数 */
 #endif	/* of #ifdef _int8_ */
 
 #ifdef _int16_
-typedef _int16_			int16_t;	/* ç¬¦å·ä»ã 16 ãããæ´æ° */
-typedef unsigned _int16_	uint16_t;	/* ç¬¦å·ç¡ã 16 ãããæ´æ° */
+typedef _int16_			int16_t;	/* 符号付き 16 ビット整数 */
+typedef unsigned _int16_	uint16_t;	/* 符号無し 16 ビット整数 */
 #endif	/* of #ifdef _int16_ */
 
 #ifdef _int32_
-typedef _int32_			int32_t;	/* ç¬¦å·ä»ã 32 ãããæ´æ° */
-typedef unsigned _int32_	uint32_t;	/* ç¬¦å·ç¡ã 32 ãããæ´æ° */
+typedef _int32_			int32_t;	/* 符号付き 32 ビット整数 */
+typedef unsigned _int32_	uint32_t;	/* 符号無し 32 ビット整数 */
 #endif	/* of #ifdef _int32_ */
 
 #ifdef _int64_
-typedef unsigned _int64_	uint64_t;	/* ç¬¦å·ç¡ã 64 ãããæ´æ° */
+typedef unsigned _int64_	uint64_t;	/* 符号無し 64 ビット整数 */
 #endif	/* of #ifdef _int64_ */
 
-typedef signed int		int_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
-typedef unsigned int		uint_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
+typedef signed int		int_t;		/* 自然なサイズの符号付き整数 */
+typedef unsigned int		uint_t;		/* 自然なサイズの符号無し整数 */
 
-typedef signed long		long_t;		/* é·ãã®ãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
-typedef unsigned long		ulong_t;	/* é·ãã®ãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
+typedef signed long		long_t;		/* 長めのサイズの符号付き整数 */
+typedef unsigned long		ulong_t;	/* 長めのサイズの符号無し整数 */
 
 #ifdef _vp_int_
-typedef _vp_int_		intptr_t;	/* ãã¤ã³ã¿ã¾ãã¯ç¬¦å·ä»ãæ´æ° */
+typedef _vp_int_		intptr_t;	/* ポインタまたは符号付き整数 */
 #else	/* of #ifdef _vp_int_ */
-typedef VP			intptr_t;	/* ãã¤ã³ã¿ã¾ãã¯ç¬¦å·ä»ãæ´æ° */
+typedef VP			intptr_t;	/* ポインタまたは符号付き整数 */
 #endif	/* of #ifdef _vp_int_ */
 
-typedef int			bool_t;		/* çå½å¤ */
+typedef int			bool_t;		/* 真偽値 */
 
 #ifndef true
-#define true			1		/* ç */
+#define true			1		/* 真 */
 #endif /* true */
 
 #ifndef false
-#define false			0		/* å½ */
+#define false			0		/* 偽 */
 #endif /* false */
 
 #endif	/* of #ifndef _MACRO_ONLY */
 
-/* æ§é ä½ structure ä¸­ã®ãã£ã¼ã«ã field ã®ãã¤ãä½ç½®ãè¿ããã¯ã­ */
+/* 構造体 structure 中のフィールド field のバイト位置を返すマクロ */
 #ifndef offsetof
 #define offsetof(structure, field) ((size_t) &(((structure *) 0)->field))
@@ -108,12 +96,12 @@
 
 /*
- *  æ´æ°å®æ°ãä½ããã¯ã­
+ *  整数定数を作るマクロ
  */
 #ifndef UINT_C
-#define UINT_C(val)		(val ## U)	/* uint_tåã®å®æ°ãä½ããã¯ã­ */
+#define UINT_C(val)		(val ## U)	/* uint_t型の定数を作るマクロ */
 #endif /* UINT_C */
 
 #ifndef ULONG_C
-#define ULONG_C(val)		(val ## UL)	/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
+#define ULONG_C(val)		(val ## UL)	/* ulong_t型の定数を作るマクロ */
 #endif /* ULONG_C */
 
Index: EcnlProtoTool/trunk/asp3_dcre/utils/applyrename.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/utils/applyrename.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/utils/applyrename.rb	(revision 321)
@@ -10,49 +10,34 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 # 
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 # 
-#  $Id: applyrename.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#  $Id$
 # 
 
@@ -60,5 +45,5 @@
 
 #
-#  ãã¡ã¤ã«ã«ãªãã¼ã ãé©ç¨ãã
+#  ファイルにリネームを適用する
 #
 def applyRename(inFileName, syms)
@@ -82,10 +67,8 @@
 
   if FileUtils.cmp(inFileName, outFileName)
-    # ãã¡ã¤ã«ã®å
-å®¹ãå¤åããªãã£ãå ´å
+    # ファイルの内容が変化しなかった場合
     FileUtils.remove(outFileName)
   else
-    # ãã¡ã¤ã«ã®å
-å®¹ãå¤åããå ´å
+    # ファイルの内容が変化した場合
     FileUtils.move(inFileName, inFileName + ".bak")
     FileUtils.move(outFileName, inFileName)
@@ -95,5 +78,5 @@
 
 #
-#  ã¨ã©ã¼ãã§ãã¯
+#  エラーチェック
 #
 if ARGV.length < 1
@@ -102,5 +85,5 @@
 
 #
-#  åæå
+#  初期化
 #
 syms = []
@@ -108,5 +91,5 @@
 
 #
-#  ã·ã³ãã«ãªã¹ããèª­ã¿è¾¼ã
+#  シンボルリストを読み込む
 #
 defFileName = name + "_rename.def"
@@ -130,5 +113,5 @@
 
 #
-#  ãã¡ã¤ã«ã«ãªãã¼ã ãé©ç¨ãã
+#  ファイルにリネームを適用する
 #
 ARGV.each do |inFileName|
Index: EcnlProtoTool/trunk/asp3_dcre/utils/genrename.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/utils/genrename.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/utils/genrename.rb	(revision 321)
@@ -10,54 +10,38 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 # 
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 # 
-#  $Id: genrename.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#  $Id$
 # 
 
 #
-#  å
-é ­ã«ã¤ããæå­å
+#  先頭につける文字列
 #
 def prefixString(sym)
@@ -70,5 +54,5 @@
 
 #
-#  ãªãã¼ã å®ç¾©ãçæãã
+#  リネーム定義を生成する
 #
 def generateDefine(outFile, sym, prefix)
@@ -79,5 +63,5 @@
 
 #
-#  ãªãã¼ã è§£é¤ãçæãã
+#  リネーム解除を生成する
 #
 def generateUndef(outFile, sym, prefix)
@@ -86,5 +70,5 @@
 
 #
-#  ã³ã¡ã³ããçæãã
+#  コメントを生成する
 #
 def generateComment(outFile, comment)
@@ -95,5 +79,5 @@
 
 #
-#  ã¨ã©ã¼ãã§ãã¯
+#  エラーチェック
 #
 if ARGV.length < 1
@@ -102,5 +86,5 @@
 
 #
-#  åæå
+#  初期化
 #
 syms = []
@@ -112,5 +96,5 @@
 
 #
-#  ã·ã³ãã«ãªã¹ããèª­ã¿è¾¼ã
+#  シンボルリストを読み込む
 #
 begin
@@ -125,5 +109,5 @@
 
 #
-#  ???_rename.h ãçæãã
+#  ???_rename.h を生成する
 #
 begin
@@ -162,5 +146,5 @@
 
 #
-#  ???_unrename.h ãçæãã
+#  ???_unrename.h を生成する
 #
 begin
Index: EcnlProtoTool/trunk/asp3_dcre/utils/gentest.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/utils/gentest.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/utils/gentest.rb	(revision 321)
@@ -8,57 +8,42 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 # 
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 # 
-#  $Id: gentest.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#  $Id$
 # 
 
 #
-#		ãã¹ããã­ã°ã©ã çæãã¼ã«
+#		テストプログラム生成ツール
 #
 	
 #
-#  çæåä½ãæ±ºããããã®è¨­å®
+#  生成動作を決めるための設定
 #
 $parameterDefinition = {
@@ -117,17 +102,17 @@
 
 #
-#  å¦çåä½ã®ã³ã¼ããæ ¼ç´ããã¯ã©ã¹
+#  処理単位のコードを格納するクラス
 #
 class PUCode
-  # åæå
+  # 初期化
   def initialize(puName)
-    @puName = puName						# å¦çåä½ã®åå
-    @currentCount = ""						# å¦çã«ã¦ã³ã
-    @countFlag = false						# å¦çã«ã¦ã³ããä½¿ãããã
-    @code = Hash.new { |h,k| h[k] = [] }	# å¦çåä½ã®ã³ã¼ã
-    @variableList = {}						# å¦çåä½ã®å¤æ°
-    @silFlag = false						# SILãä½¿ãããã
-
-    # å¦çã«ã¦ã³ãå¤æ°åã®çæ
+    @puName = puName						# 処理単位の名前
+    @currentCount = ""						# 処理カウント
+    @countFlag = false						# 処理カウントが使われたか
+    @code = Hash.new { |h,k| h[k] = [] }	# 処理単位のコード
+    @variableList = {}						# 処理単位の変数
+    @silFlag = false						# SILが使われたか
+
+    # 処理カウント変数名の生成
     case puName
     when /^TASK([0-9]*)$/
@@ -148,5 +133,5 @@
   end
 
-  # å¦çã«ã¦ã³ãã®è¨­å®
+  # 処理カウントの設定
   def setCount(count)
     @countFlag = true if count != ""
@@ -154,5 +139,5 @@
   end
 
-  # å¦çã«ã¦ã³ãã®ã¤ã³ã¯ãªã¡ã³ã
+  # 処理カウントのインクリメント
   def incrementCount
     if @currentCount != ""
@@ -161,5 +146,5 @@
   end
 
-  # ã³ã¼ãã®è¿½å 
+  # コードの追加
   def append(*lines)
     lines.each do |line|
@@ -168,25 +153,25 @@
   end
 
-  # å¤æ°ã®è¿½å 
+  # 変数の追加
   def addVariable(varName, typeName)
     @variableList[varName] = typeName
   end
 
-  # SILã®ä½¿ç¨
+  # SILの使用
   def useSil
     @silFlag = true
   end
 
-  # å¦çåä½ã®ã³ã¼ãã®åºå
+  # 処理単位のコードの出力
   def generateCode
-    # ä¸è¦ãªå¦çåä½ã®å¤å®
+    # 不要な処理単位の判定
     return if @code.length == 0
 
-    # å¦çã«ã¦ã³ãå¤æ°ã®çæ
+    # 処理カウント変数の生成
     if @countFlag
       print("\nstatic uint_t\t#{@count_var} = 0;\n")
     end
 
-    # é¢æ°ãããã®çæ
+    # 関数ヘッダの生成
     case @puName
     when /^TASK([0-9]*)$/
@@ -272,5 +257,5 @@
 
 #
-#  ãµã¼ãã¹ã³ã¼ã«å¼ã³åºãã®èª­ã¿è¾¼ã¿
+#  サービスコール呼び出しの読み込み
 #
 def genServiceCall(pu, svc_call, error_code)
@@ -293,8 +278,8 @@
 
   if !error_code
-    # E_OKãè¿ãå ´å
+    # E_OKが返る場合
     pu.append("\tcheck_ercd(ercd, E_OK);", "")
   elsif error_code == "noreturn"
-    # ãªã¿ã¼ã³ããªãå ´å
+    # リターンしない場合
     pu.append("")
   else
@@ -304,8 +289,8 @@
 
 #
-#  ãã¹ãéå§ã³ã¼ãã®çæ
+#  テスト開始コードの生成
 #
 def testStartCode(pu)
-  # ãã¹ãéå§ã³ã¼ãã¯ä¸åº¦ã®ã¿åºåãã
+  # テスト開始コードは一度のみ出力する
   if $startFlag == 0
     pu.append("\ttest_start(__FILE__);", "")
@@ -315,5 +300,5 @@
 
 #
-#  ã¿ã¼ã²ããä¾å­é¨é¢æ°ã®æ¯ãèãã®èª­ã¿è¾¼ã¿
+#  ターゲット依存部関数の振る舞いの読み込み
 #
 def targetFunction(line, checkNum)
@@ -322,5 +307,5 @@
     line = $2
     if (pu = $puList[functionName]).nil?
-      # æ°ããå¦çåä½ã®çæ
+      # 新しい処理単位の生成
       pu = $puList[functionName] = PUCode.new(functionName)
       pu.setCount("1")
@@ -352,14 +337,14 @@
 
 #
-#  ãã¹ãã¹ã¯ãªããã®èª­ã¿è¾¼ã¿
+#  テストスクリプトの読み込み
 #
 def parseLine(line)
   if /^==\s*(([a-zA-Z_]+)[0-9]*)(.*)$/ =~ line
-    # å¦çåä½ã®éå§
+    # 処理単位の開始
     $procFlag = 1
     puName = $1
     line2 = $3
     if (pu = $puList[puName]).nil?
-      # æ°ããå¦çåä½ã®çæ
+      # 新しい処理単位の生成
       pu = $puList[puName] = PUCode.new(puName)
     end
@@ -378,5 +363,5 @@
     pu = $currentPu
     if /^([0-9]+\:)\s*(.*)$/ =~ line
-      # ãã§ãã¯ãã¤ã³ãçªå·ã®å¦ç
+      # チェックポイント番号の処理
       originalCheckNum = $1
       line = $2
@@ -423,5 +408,5 @@
 
 #
-#  ã¨ã©ã¼ãã§ãã¯
+#  エラーチェック
 #
 if ARGV.length < 1
@@ -430,16 +415,16 @@
 
 #
-#  åæå
+#  初期化
 #
 inFileName = ARGV.shift
 
 #
-#  ã¹ã¯ãªãããã¡ã¤ã«èª­ã¿è¾¼ã¿å¦ç
-#
-$lastCheckPoint = 0		# æå¾ã®ãã§ãã¯ãã¤ã³ãçªå·
-$procFlag = 0				# ã¹ã¯ãªããå¦çä¸­ãã©ã°
-$startFlag = 0			# ãã¹ãéå§ã³ã¼ãã®åºåãã©ã°
-$currentPu = nil			# èª­ã¿è¾¼ã¿ä¸­ã®å¦çåä½
-$puList = {}				# å¦çåä½ã®ãªã¹ã
+#  スクリプトファイル読み込み処理
+#
+$lastCheckPoint = 0		# 最後のチェックポイント番号
+$procFlag = 0				# スクリプト処理中フラグ
+$startFlag = 0			# テスト開始コードの出力フラグ
+$currentPu = nil			# 読み込み中の処理単位
+$puList = {}				# 処理単位のリスト
 
 begin
@@ -471,5 +456,5 @@
 
 #
-#  ãã¹ããã­ã°ã©ã åºåå¦ç
+#  テストプログラム出力処理
 #
 $puList.keys.sort.each do |puName|
Index: EcnlProtoTool/trunk/asp3_dcre/utils/makerelease.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/utils/makerelease.rb	(revision 299)
+++ EcnlProtoTool/trunk/asp3_dcre/utils/makerelease.rb	(revision 321)
@@ -8,49 +8,34 @@
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
-#  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#      ã¨ï¼
-#    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#        å ±åãããã¨ï¼
-#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#      å
-è²¬ãããã¨ï¼
+#  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 # 
-#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#  ã®è²¬ä»»ãè² ããªãï¼
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 # 
-#  $Id: makerelease.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#  $Id$
 # 
 
@@ -58,8 +43,8 @@
 
 #
-#  ".."ãå«ããã¹ã®æ´å½¢
+#  ".."を含むパスの整形
 #
-#  ä¾ï¼"yyy/../zzz" â "zzz"
-#  ä¾ï¼"xxx/yyy/../zzz" â "xxx/zzz"
+#  例）"yyy/../zzz" → "zzz"
+#  例）"xxx/yyy/../zzz" → "xxx/zzz"
 #
 def canonicalPath(path)
@@ -69,5 +54,5 @@
 
 #
-#  ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+#  ファイルの読み込み
 #
 def readFile(inFileName)
@@ -135,5 +120,5 @@
 
 #
-#  åæå
+#  初期化
 #
 $package = ""
@@ -143,5 +128,5 @@
 
 #
-#  ããªãã£ãã¯ã¹ï¼./ã«ã¬ã³ããã£ã¬ã¯ããªåï¼ã®åãåºã
+#  プリフィックス（./カレントディレクトリ名）の取り出し
 #
 cwd = Shell.new.cwd
@@ -149,5 +134,5 @@
 
 #
-#  ãã©ã¡ã¼ã¿ã®åãåºã
+#  パラメータの取り出し
 #
 if ARGV.length >= 1
@@ -160,5 +145,5 @@
 
 #
-#  ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+#  ファイルの読み込み
 #
 readFile(arg)
@@ -171,5 +156,5 @@
 
 #
-#  RELEASEãã£ã¬ã¯ããªã®ä½æ
+#  RELEASEディレクトリの作成
 #
 if !File.directory?("RELEASE")
@@ -178,5 +163,5 @@
 
 #
-#  ã¢ã¼ã«ã¤ãï¼.tar.gzï¼ã®ä½æ
+#  アーカイブ（.tar.gz）の作成
 #
 archiveName = $package + "-" + $version + ".tar.gz"
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/arduino.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/arduino.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/arduino.c	(revision 321)
@@ -19,5 +19,5 @@
 #include "sRtc.h"
 
-//ãã¼ã¸ã§ã³ã®ã»ãã
+//バージョンのセット
 volatile char	ProgVer[] = {WRBB_VERSION};
 
@@ -26,25 +26,25 @@
 void mrb_mruby_arduino_gem_init(mrb_state *mrb)
 {
-	kernel_Init(mrb);	/* ã«ã¼ãã«é¢é£ã¡ã½ããã®è¨­å® */
-	sys_Init(mrb);		/* ã·ã¹ãã é¢é£ã¡ã½ããã®è¨­å® */
-	serial_Init(mrb);	/* ã·ãªã¢ã«éä¿¡é¢é£ã¡ã½ããã®è¨­å® */
-	mem_Init(mrb);		/* ãã¡ã¤ã«é¢é£ã¡ã½ããã®è¨­å® */
-	i2c_Init(mrb);		/* I2Cé¢é£ã¡ã½ããã®è¨­å® */
-	servo_Init(mrb);	/* ãµã¼ãé¢é£ã¡ã½ããã®è¨­å® */
+	kernel_Init(mrb);	/* カーネル関連メソッドの設定 */
+	sys_Init(mrb);		/* システム関連メソッドの設定 */
+	serial_Init(mrb);	/* シリアル通信関連メソッドの設定 */
+	mem_Init(mrb);		/* ファイル関連メソッドの設定 */
+	i2c_Init(mrb);		/* I2C関連メソッドの設定 */
+	servo_Init(mrb);	/* サーボ関連メソッドの設定 */
 
 #if REALTIMECLOCK
-	rtc_Init(mrb);		/* RTCé¢é£ã¡ã½ããã®è¨­å® */
+	rtc_Init(mrb);		/* RTC関連メソッドの設定 */
 #endif
 
 #if FIRMWARE == JAM
-	pancake_Init(mrb);		/* PanCakeé¢é£ã¡ã½ããã®è¨­å® */
+	pancake_Init(mrb);		/* PanCake関連メソッドの設定 */
 #endif
 
 #if BOARD == BOARD_GR || FIRMWARE == SDBT || FIRMWARE == SDWF
-	sdcard_Init(mrb);		/* SDã«ã¼ãé¢é£ã¡ã½ããã®è¨­å® */
+	sdcard_Init(mrb);		/* SDカード関連メソッドの設定 */
 #endif
 
 #if FIRMWARE == SDWF
-	esp8266_Init(mrb);		/* WiFié¢é£ã¡ã½ããã®è¨­å® */
+	esp8266_Init(mrb);		/* WiFi関連メソッドの設定 */
 #endif
 }
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * I2Céä¿¡é¢é£
+ * I2C通信関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -23,5 +23,5 @@
 
 /******************************************************/
-/* ã¡ã¢ãªã®éæ¾æã«èµ°ã*/
+/* メモリの開放時に走る*/
 /******************************************************/
 static void i2c_free(mrb_state *mrb, void *ptr)
@@ -32,15 +32,15 @@
 
 /******************************************************/
-/* ãã®æ§é ä½ã®æå³ã¯ããããã£ã¦ããªã*/
+/* この構造体の意味はよくわかっていない*/
 /******************************************************/
 static struct mrb_data_type i2c_type = {"I2c", i2c_free};
 
 /******************************************************/
-/* I2Cãåæåãã¾ã: I2c.new*/
-/*  I2c.new(num)ã*/
-/*  num: éä¿¡çªå·(0:SDA-0/SCL-1, 1:SDA-5/SCL-6, 2:SDA-7/SCL-8, 3:SDA-12/SCL-11, 4:SDA-9(26)/SCL-3)*/
-/**/
-/* æ»ãå¤*/
-/*  I2cã®ã¤ã³ã¹ã¿ã³ã¹*/
+/* I2Cを初期化します: I2c.new*/
+/*  I2c.new(num)　*/
+/*  num: 通信番号(0:SDA-0/SCL-1, 1:SDA-5/SCL-6, 2:SDA-7/SCL-8, 3:SDA-12/SCL-11, 4:SDA-9(26)/SCL-3)*/
+/**/
+/* 戻り値*/
+/*  I2cのインスタンス*/
 /******************************************************/
 static mrb_value mrb_i2c_initialize(mrb_state *mrb, mrb_value self)
@@ -55,5 +55,5 @@
 
 	if (num <= 0 && num >= WIRE_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -66,13 +66,13 @@
 
 /******************************************************/
-/* ã¢ãã¬ã¹ã«ãã¼ã¿ãæ¸ãè¾¼ã¿ã¾ã: I2c.write*/
+/* アドレスにデータを書き込みます: I2c.write*/
 /*  I2c.write( deviceID, address, data )*/
-/*	deviceID: ããã¤ã¹ID*/
-/*  address: æ¸ãè¾¼ã¿ã¢ãã¬ã¹*/
-/*  data: ãã¼ã¿*/
-/**/
-/*  æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*		0: æå*/
-/*		4: ãã®ä»ã®ã¨ã©ã¼*/
+/*	deviceID: デバイスID*/
+/*  address: 書き込みアドレス*/
+/*  data: データ*/
+/**/
+/*  戻り値は以下のとおり*/
+/*		0: 成功*/
+/*		4: その他のエラー*/
 /******************************************************/
 mrb_value mrb_i2c_write(mrb_state *mrb, mrb_value self)
@@ -88,11 +88,11 @@
 
 /******************************************************/
-/* ã¢ãã¬ã¹ãããã¼ã¿ãèª­ã¿è¾¼ã¿: I2c.read*/
+/* アドレスからデータを読み込み: I2c.read*/
 /*  I2c.read( deviceID, addressL[, addressH] )*/
-/*	deviceID: ããã¤ã¹ID*/
-/*  addressL: èª­ã¿è¾¼ã¿ä¸ä½ã¢ãã¬ã¹*/
-/*  addressH: èª­ã¿è¾¼ã¿ä¸ä½ã¢ãã¬ã¹*/
-/**/
-/*  æ»ãå¤ã¯èª­ã¿è¾¼ãã å¤*/
+/*	deviceID: デバイスID*/
+/*  addressL: 読み込み下位アドレス*/
+/*  addressH: 読み込み上位アドレス*/
+/**/
+/*  戻り値は読み込んだ値*/
 /******************************************************/
 mrb_value mrb_i2c_read(mrb_state *mrb, mrb_value self)
@@ -113,9 +113,8 @@
 
 /******************************************************/
-/* I2Cããã¤ã¹ã«å¯¾ãã¦éä¿¡ãéå§ããããã®æºåããã: I2c.begin*/
+/* I2Cデバイスに対して送信を開始するための準備をする: I2c.begin*/
 /*	I2c.begin( deviceID )*/
-/*	ãã®é¢æ°ã¯éä¿¡ãããã¡ãåæåããã ãã§ãå®éã®åä½ã¯è¡ããªããç¹°ãè¿ãå¼ã¶ã¨ãéä¿¡ãããã¡ãå
-é ­ã«æ»ãã*/
-/*	deviceID: ããã¤ã¹ID 0ï½0x7Fã¾ã§ã®ç´ç²ãªã¢ãã¬ã¹*/
+/*	この関数は送信バッファを初期化するだけで、実際の動作は行わない。繰り返し呼ぶと、送信バッファが先頭に戻る。*/
+/*	deviceID: デバイスID 0～0x7Fまでの純粋なアドレス*/
 /******************************************************/
 mrb_value mrb_i2c_beginTransmission(mrb_state *mrb, mrb_value self)
@@ -130,14 +129,14 @@
 	i2c_byte_write(i2c, deviceID);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* éä¿¡ãããã¡ã®æ«å°¾ã«æ°å¤ãè¿½å ãã: I2c.lwrite*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 送信バッファの末尾に数値を追加する: I2c.lwrite*/
 /*	I2c.lwrite( data )*/
-/*	data: ã»ããããå¤*/
-/**/
-/* æ»ãå¤ã¯ãéä¿¡ãããã¤ãæ°(ãããã¡ã«æºãããã¤ãæ°)ãè¿ãã*/
-/*	éä¿¡ãããã¡(260ãã¤ã)ã«ç©ºãå®¹éãç¡ããã°å¤±æãã¦0ãè¿ã*/
+/*	data: セットする値*/
+/**/
+/* 戻り値は、送信したバイト数(バッファに溜めたバイト数)を返す。*/
+/*	送信バッファ(260バイト)に空き容量が無ければ失敗して0を返す*/
 /******************************************************/
 mrb_value mrb_i2c_lwrite(mrb_state *mrb, mrb_value self)
@@ -153,11 +152,11 @@
 
 /******************************************************/
-/* ããã¤ã¹ã«å¯¾ãã¦I2Cã®éä¿¡ã·ã¼ã±ã³ã¹ãçºè¡ãã: I2c.end*/
+/* デバイスに対してI2Cの送信シーケンスを発行する: I2c.end*/
 /*	I2c.end()*/
-/*	I2Cã®éä¿¡ã¯ãã®é¢æ°ãå®è¡ãã¦åãã¦å®éã«è¡ãããã*/
-/**/
-/* æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*	0: æå*/
-/*	4: ãã®ä»ã®ã¨ã©ã¼*/
+/*	I2Cの送信はこの関数を実行して初めて実際に行われる。*/
+/**/
+/* 戻り値は以下のとおり*/
+/*	0: 成功*/
+/*	4: その他のエラー*/
 /******************************************************/
 mrb_value mrb_i2c_endTransmission(mrb_state *mrb, mrb_value self)
@@ -169,11 +168,11 @@
 
 /******************************************************/
-/* ããã¤ã¹ã«å¯¾ãã¦åä¿¡ã·ã¼ã±ã³ã¹ãçºè¡ããã¼ã¿ãèª­ã¿åºã: I2c.request*/
+/* デバイスに対して受信シーケンスを発行しデータを読み出す: I2c.request*/
 /*	I2c.request( address, count )*/
-/*  num: éä¿¡çªå·(0:SDA-0/SCL-1, 1:SDA-5/SCL-6, 2:SDA-7/SCL-8, 3:SDA-12/SCL-11, 4:SDA-9(26)/SCL-3)*/
-/*	address: èª­ã¿è¾¼ã¿éå§ã¢ãã¬ã¹*/
-/*	count: èª­ã¿åºãæ°*/
-/**/
-/*  æ»ãå¤ã¯ãå®éã«åä¿¡ãããã¤ãæ°ã*/
+/*  num: 通信番号(0:SDA-0/SCL-1, 1:SDA-5/SCL-6, 2:SDA-7/SCL-8, 3:SDA-12/SCL-11, 4:SDA-9(26)/SCL-3)*/
+/*	address: 読み込み開始アドレス*/
+/*	count: 読み出す数*/
+/**/
+/*  戻り値は、実際に受信したバイト数。*/
 /******************************************************/
 mrb_value mrb_i2c_requestFrom(mrb_state *mrb, mrb_value self)
@@ -192,8 +191,8 @@
 
 /******************************************************/
-/* ããã¤ã¹ã«å¯¾ãã¦åä¿¡ã·ã¼ã±ã³ã¹ãçºè¡ããã¼ã¿ãèª­ã¿åºã: I2c.lread*/
+/* デバイスに対して受信シーケンスを発行しデータを読み出す: I2c.lread*/
 /*	I2c.lread()*/
 /**/
-/*  æ»ãå¤ã¯èª­ã¿è¾¼ãã å¤*/
+/*  戻り値は読み込んだ値*/
 /******************************************************/
 mrb_value mrb_i2c_lread(mrb_state *mrb, mrb_value self)
@@ -204,9 +203,8 @@
 
 /******************************************************/
-/* ããã¤ã¹ã«å¯¾ãã¦åä¿¡ãããã¡å
-ã«ãããã¼ã¿æ°ãèª¿ã¹ã: I2c.available*/
+/* デバイスに対して受信バッファ内にあるデータ数を調べる: I2c.available*/
 /*	I2c.available()*/
 /**/
-/*  æ»ãå¤ã¯ãã¼ã¿æ°*/
+/*  戻り値はデータ数*/
 /******************************************************/
 mrb_value mrb_i2c_available(mrb_state *mrb, mrb_value self)
@@ -217,8 +215,8 @@
 #if 0
 /******************************************************/
-/* å¨æ³¢æ°ãå¤æ´ãã: I2c.freq*/
+/* 周波数を変更する: I2c.freq*/
 /*  I2c.freq( Hz )*/
-/*  Hz: ã¯ã­ãã¯ã®å¨æ³¢æ°ãHzåä½ã§æå®ããã*/
-/*      æå¹ãªå¤ã¯1ï½200000ç¨åº¦ãåºæ¬çã«ã½ããã§ãã£ã¦ããã®ã§400kHzã¯åºãªãã*/
+/*  Hz: クロックの周波数をHz単位で指定する。*/
+/*      有効な値は1～200000程度。基本的にソフトでやっているので400kHzは出ない。*/
 /******************************************************/
 mrb_value mrb_i2c_freq(mrb_state *mrb, mrb_value self)
@@ -230,9 +228,9 @@
 	i2c_frequency(i2c, fq);
 
-	return mrb_nil_value();			/* æ»ãå¤ã¯ç¡ãã§ããã */
+	return mrb_nil_value();			/* 戻り値は無しですよ。 */
 }
 #endif
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void i2c_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sI2c.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * I2Céä¿¡é¢é£
+ * I2C通信関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void i2c_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã«ã¼ãã«é¢é£
+ * カーネル関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -17,8 +17,8 @@
 
 /******************************************************/
-/* ãã¸ã¿ã«ã©ã¤ã*/
+/* デジタルライト*/
 /*  digitalWrite(pin, value) */
 /*	pin*/
-/*		ãã³ã®çªå·*/
+/*		ピンの番号*/
 /*	value*/
 /*		0: LOW*/
@@ -34,19 +34,19 @@
 	pin = get_pin(pintype_gpio, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	gpio_write(&pin->gpio, value);
 
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* PINã®ã¢ã¼ãè¨­å®*/
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* PINのモード設定*/
 /*  pinMode(pin, mode) */
 /*  pin*/
-/*		ãã³ã®çªå·*/
+/*		ピンの番号*/
 /*	mode*/
-/*		0: INPUTã¢ã¼ã*/
-/*		1: OUTPUTã¢ã¼ã*/
+/*		0: INPUTモード*/
+/*		1: OUTPUTモード*/
 /******************************************************/
 mrb_value mrb_kernel_pinMode(mrb_state *mrb, mrb_value self)
@@ -59,16 +59,16 @@
 	pin = get_pin(pintype_gpio, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	gpio_dir(&pin->gpio, value);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãã£ã¬ã¤ å¼·å¶GCãè¡ã£ã¦ãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ディレイ 強制GCを行っています*/
 /*  delay(value) */
 /*	value*/
-/*		æé(ms)*/
+/*		時間(ms)*/
 /******************************************************/
 mrb_value mrb_kernel_delay(mrb_state *mrb, mrb_value self)
@@ -78,6 +78,5 @@
 	mrb_get_args(mrb, "i", &value);
 
-	/*è©¦ãã«å¼·å¶gcãå
-¥ãã¦è¦ã*/
+	/*試しに強制gcを入れて見る*/
 	mrb_full_gc(mrb);
 
@@ -86,13 +85,13 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-
-/******************************************************/
-/* ããªç§ãåå¾ãã¾ã: millis*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+
+/******************************************************/
+/* ミリ秒を取得します: millis*/
 /*	millis()*/
-/* æ»ãå¤*/
-/*	èµ·åãã¦ããã®ããªç§æ°*/
+/* 戻り値*/
+/*	起動してからのミリ秒数*/
 /******************************************************/
 mrb_value mrb_kernel_millis(mrb_state *mrb, mrb_value self)
@@ -102,8 +101,8 @@
 
 /******************************************************/
-/* ãã¤ã¯ã­ç§ãåå¾ãã¾ã: micros*/
+/* マイクロ秒を取得します: micros*/
 /*	micros()*/
-/* æ»ãå¤*/
-/*	èµ·åãã¦ããã®ãã¤ã¯ã­ç§æ°*/
+/* 戻り値*/
+/*	起動してからのマイクロ秒数*/
 /******************************************************/
 mrb_value mrb_kernel_micros(mrb_state *mrb, mrb_value self)
@@ -113,7 +112,7 @@
 
 /******************************************************/
-/* ãã¸ã¿ã«ãªã¼ã: digitalRead*/
+/* デジタルリード: digitalRead*/
 /*  digitalRead(pin) */
-/*	pin: ãã³ã®çªå·*/
+/*	pin: ピンの番号*/
 /*	*/
 /*		0:LOW*/
@@ -129,5 +128,5 @@
 	pin = get_pin(pintype_gpio, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	value = gpio_read(&pin->gpio);
@@ -138,10 +137,8 @@
 
 /******************************************************/
-/* ã¢ãã­ã°ãªãã¡ã¬ã³ã¹: analogReference*/
+/* アナログリファレンス: analogReference*/
 /*	analogReference(mode)*/
-/*  ã¢ãã­ã°å
-¥åã§ä½¿ãããåºæºé»å§ãè¨­å®ãã¾ã*/
-/*	mode: 0:DEFAULTï¼5.0V Arduinoäºæ, 1:INTERNALï¼1.1V å
-èµé»å§, 2:EXTERNALï¼AVREFãã³ä¾çµ¦é»å§, 3:RAW12BITï¼3.3V 12ãããA/Då¤æãè¡ã*/
+/*  アナログ入力で使われる基準電圧を設定します*/
+/*	mode: 0:DEFAULT：5.0V Arduino互換, 1:INTERNAL：1.1V 内蔵電圧, 2:EXTERNAL：AVREFピン供給電圧, 3:RAW12BIT：3.3V 12ビットA/D変換を行う*/
 /******************************************************/
 mrb_value mrb_kernel_analogReference(mrb_state *mrb, mrb_value self)
@@ -165,13 +162,13 @@
 		break;
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¢ãã­ã°ãªã¼ã: analogRead*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* アナログリード: analogRead*/
 /*  analogRead(pin) */
-/*	pin: ã¢ãã­ã°ã®çªå·*/
+/*	pin: アナログの番号*/
 /*	*/
-/*		10ãããã®å¤(0ï½1023)*/
+/*		10ビットの値(0～1023)*/
 /******************************************************/
 mrb_value mrb_kernel_analogRead(mrb_state *mrb, mrb_value self)
@@ -184,5 +181,5 @@
 	pin = get_pin(pintype_analogin, anapin);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	value = analogin_read_u16(&pin->analogin);
@@ -193,8 +190,8 @@
 #if 0
 /****************************************************/
-/* åºåãã³ãä¸¦åæ¥ç¶ããã¦ãããã³ã¨ã·ã§ã¼ããããã©ããèª¿ã¹ã¾ã*/
+/* 出力ピンが並列接続されているピンとショートするかどうか調べます*/
 /**/
-/* true: è¡çªãã¦ãã*/
-/* false: è¡çªãã¦ããªããçæ¹ãINPUTã§ããã*/
+/* true: 衝突している*/
+/* false: 衝突していない。片方がINPUTである。*/
 /****************************************************/
 bool IsWritePinCollision(int pinSub)
@@ -209,9 +206,9 @@
 
 /******************************************************/
-/* PWMåºå: pwm*/
+/* PWM出力: pwm*/
 /*	pwm(pin, value)*/
-/*	pin: ãã³ã®çªå·(0,1,7,8,11,23ãã³ãPWMå¯è½)*/
-/*       ãã ãã23ãã³ã¯5ãã³ã¨24ãã³ç­çµ¡ãã¦ããã®ã§ãä½¿ç¨æã¯5ãã³ã¨24ãã³ãINPUTã«ãã¦ãã*/
-/*  value:	åºåPWMæ¯ç(0ï½255)*/
+/*	pin: ピンの番号(0,1,7,8,11,23ピンがPWM可能)*/
+/*       ただし、23ピンは5ピンと24ピン短絡しているので、使用時は5ピンと24ピンをINPUTにしておく*/
+/*  value:	出力PWM比率(0～255)*/
 /******************************************************/
 mrb_value mrb_kernel_pwm(mrb_state *mrb, mrb_value self)
@@ -224,15 +221,15 @@
 	pin = get_pin(pintype_pwmout, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	pwmout_pulsewidth_us(&pin->pwmout, value);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 #if 0
 /******************************************************/
-/* PWMå¨æ³¢æ°è¨­å®: pwmHz*/
+/* PWM周波数設定: pwmHz*/
 /*	pwmHz(value)*/
-/*  value:	å¨æ³¢æ°(12ï½184999)Hz*/
+/*  value:	周波数(12～184999)Hz*/
 /******************************************************/
 mrb_value mrb_kernel_pwmHz(mrb_state *mrb, mrb_value self)
@@ -245,5 +242,5 @@
 	pin = get_pin(pintype_pwmout, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	if (value >= 12 && value < 18500) {
@@ -254,11 +251,11 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 #endif
 /******************************************************/
-/* ãã¼ã³åºååæ­¢: noTone*/
+/* トーン出力停止: noTone*/
 /*	noTone(pin)*/
-/*  pin: ãã³çªå·*/
+/*  pin: ピン番号*/
 /******************************************************/
 mrb_value mrb_kernel_noTone(mrb_state *mrb, mrb_value self)
@@ -269,18 +266,18 @@
 
 	if (pin == 4 || pin >= 20) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	noTone(pin);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãã¼ã³åºå: tone*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* トーン出力: tone*/
 /*	tone(pin, frequency[,duration])*/
-/*  pin: ãã³çªå·*/
-/*  frequency: å¨æ³¢æ°(2ï½62500)Hz*/
-/*  duration: åºåãç¶­æããæé[ms]ãçç¥æã0æå®æã¯åºåãç¶ããã*/
+/*  pin: ピン番号*/
+/*  frequency: 周波数(2～62500)Hz*/
+/*  duration: 出力を維持する時間[ms]。省略時、0指定時は出力し続ける。*/
 /******************************************************/
 mrb_value mrb_kernel_tone(mrb_state *mrb, mrb_value self)
@@ -293,5 +290,5 @@
 
 	if (pin == 4 || pin >= 20) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -301,9 +298,9 @@
 		tone(pin, freq, dura);
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¢ãã­ã°DACãã³åæå: initDac*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* アナログDACピン初期化: initDac*/
 /*	initDac()*/
 /******************************************************/
@@ -311,11 +308,11 @@
 {
 	setPinModeDac(RB_PIN9);
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¢ãã­ã°DACåºå: analogDac*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* アナログDAC出力: analogDac*/
 /*	analogDac(value)*/
-/*  value:	10bitç²¾åº¦(0ï½4095)*/
+/*  value:	10bit精度(0～4095)*/
 /******************************************************/
 mrb_value mrb_kernel_analogDac(mrb_state *mrb, mrb_value self)
@@ -330,5 +327,5 @@
 		pin = get_pin(pintype_dac, RB_PIN9);
 		if (pin == NULL)
-			return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+			return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 		analogout_write_u16(&pin->dac, (value << 6) | (value >> 4));
@@ -336,5 +333,5 @@
 #endif
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 
@@ -351,5 +348,5 @@
 
 /******************************************************/
-/* LEDãªã³ãªã: led*/
+/* LEDオンオフ: led*/
 /*	led(sw)*/
 /******************************************************/
@@ -369,11 +366,11 @@
 #endif
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ä¹±æ°ãå¾ãããã®ç¨®ãä¸ãã¾ã: randomSeed*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 乱数を得るための種を与えます: randomSeed*/
 /*  randomSeed(value)*/
-/*  value: ç¨®ã¨ãªãå¤*/
+/*  value: 種となる値*/
 /******************************************************/
 mrb_value mrb_kernel_randomSeed(mrb_state *mrb, mrb_value self)
@@ -385,12 +382,12 @@
 	randomSeed(value);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ä¹±æ°ãåå¾ãã¾ã: random*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 乱数を取得します: random*/
 /*  random([min,] max)*/
-/*  min: ä¹±æ°ã®åãããæå°å¤ãçç¥å¯*/
-/*  max: ä¹±æ°ã®åãããæå¤§å¤*/
+/*  min: 乱数の取りうる最小値。省略可*/
+/*  max: 乱数の取りうる最大値*/
 /******************************************************/
 mrb_value mrb_kernel_random(mrb_state *mrb, mrb_value self)
@@ -408,5 +405,5 @@
 
 /******************************************************/
-/* é ãã³ãã³ãã§ã:  El_Psy.Congroo*/
+/* 隠しコマンドです:  El_Psy.Congroo*/
 /*	El_Psy.Congroo()*/
 /******************************************************/
@@ -415,9 +412,9 @@
 	mrb_raise(mrb, mrb_class_get(mrb, "Sys#exit Called"), "Normal Completion");
 
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ライブラリを定義します*/
 /******************************************************/
 void kernel_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sKernel.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã«ã¼ãã«é¢é£
+ * カーネル関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -12,5 +12,5 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void kernel_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ãã¡ã¤ã«é¢é£
+ * ファイル関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -17,14 +17,14 @@
 
 FILEEEP Fpj0;
-FILEEEP *Fp0 = &Fpj0;			/*ã³ãã³ãç¨*/
+FILEEEP *Fp0 = &Fpj0;			/*コマンド用*/
 FILEEEP Fpj1;
-FILEEEP *Fp1 = &Fpj1;			/*ã³ãã³ãç¨*/
-
-/******************************************************/
-/* openãããã¡ã¤ã«ãã1ãã¤ãèª­ã¿è¾¼ã¿ã¾ã: MemFile.read*/
+FILEEEP *Fp1 = &Fpj1;			/*コマンド用*/
+
+/******************************************************/
+/* openしたファイルから1バイト読み込みます: MemFile.read*/
 /*	MemFile.read( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/* æ»ãå¤*/
-/*	0x00ï½0xFFãè¿ãããã¡ã¤ã«ã®æå¾ã ã£ãã-1ãè¿ãã*/
+/*	number: ファイル番号 0 または 1*/
+/* 戻り値*/
+/*	0x00～0xFFが返る。ファイルの最後だったら-1が返る。*/
 /******************************************************/
 mrb_value mrb_mem_read(mrb_state *mrb, mrb_value self)
@@ -46,11 +46,11 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ãã¤ããªãã¼ã¿ãæ¸ãè¾¼ã: MemFile.write*/
+/* openしたファイルバイナリデータを書き込む: MemFile.write*/
 /*	MemFile.write( number, buf, len )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	buf: æ¸ãè¾¼ããã¼ã¿*/
-/*	len: æ¸ãè¾¼ããã¼ã¿ãµã¤ãº*/
-/* æ»ãå¤*/
-/*	å®éã«æ¸ãããã¤ãæ°*/
+/*	number: ファイル番号 0 または 1*/
+/*	buf: 書き込むデータ*/
+/*	len: 書き込むデータサイズ*/
+/* 戻り値*/
+/*	実際に書いたバイト数*/
 /******************************************************/
 mrb_value mrb_mem_write(mrb_state *mrb, mrb_value self)
@@ -78,11 +78,11 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ããªã¼ãã³ãã¾ã: MemFile.open*/
+/* ファイルをオープンします: MemFile.open*/
 /*	MemFile.open( number, filename[, mode] )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	filename: ãã¡ã¤ã«å(8.3å½¢å¼)*/
+/*	number: ファイル番号 0 または 1*/
+/*	filename: ファイル名(8.3形式)*/
 /*	mode: 0:Read, 1:Append, 2:New Create*/
-/* æ»ãå¤*/
-/*	æå: çªå·, å¤±æ: -1*/
+/* 戻り値*/
+/*	成功: 番号, 失敗: -1*/
 /******************************************************/
 mrb_value mrb_mem_open(mrb_state *mrb, mrb_value self)
@@ -142,7 +142,7 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãã¯ã­ã¼ãºãã¾ã: MemFile.close( number )*/
+/* ファイルをクローズします: MemFile.close( number )*/
 /*	MemFile.close( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
+/*	number: ファイル番号 0 または 1*/
 /******************************************************/
 mrb_value mrb_mem_close(mrb_state *mrb, mrb_value self)
@@ -159,14 +159,14 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* openãããã¡ã¤ã«ã®èª­ã¿åºãä½ç½®ãç§»åãã: MemFile.seek*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* openしたファイルの読み出し位置を移動する: MemFile.seek*/
 /*	MemFile.seek( number, byte )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	byte: seekãããã¤ãæ°(-1)ã§ãã¡ã¤ã«ã®æå¾ã«ç§»åãã*/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*	number: ファイル番号 0 または 1*/
+/*	byte: seekするバイト数(-1)でファイルの最後に移動する*/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_mem_seek(mrb_state *mrb, mrb_value self)
@@ -206,13 +206,11 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãã³ãã¼ãã¾ã: MemFile.cp*/
+/* ファイルをコピーします: MemFile.cp*/
 /*  MemFile.cp( srcFilename, dstFilename[, mode] )*/
-/*  srcFilename: ã³ãã¼å
-ãã¡ã¤ã«å*/
-/*  dstFilename: ã³ãã¼å
-ãã¡ã¤ã«å*/
-/*  mode: 0ä¸æ¸ãããªã, 1:ä¸æ¸ããã*/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  srcFilename: コピー元ファイル名*/
+/*  dstFilename: コピー先ファイル名*/
+/*  mode: 0上書きしない, 1:上書きする*/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_mem_cp(mrb_state *mrb, mrb_value self)
@@ -247,9 +245,9 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãåé¤ãã¾ã: MemFile.rm*/
+/* ファイルを削除します: MemFile.rm*/
 /*  MemFile.rm( Filename )*/
-/*  Filename: åé¤ãããã¡ã¤ã«å*/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  Filename: 削除するファイル名*/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_mem_rm(mrb_state *mrb, mrb_value self)
@@ -267,5 +265,5 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void mem_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sMem.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ãã¡ã¤ã«é¢é£
+ * ファイル関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void mem_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * PanCakeé¢é£
+ * PanCake関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -27,7 +27,7 @@
 
 /******************************************************/
-/* ç»é¢ãæ¶å»: PanCake.clear*/
+/* 画面を消去: PanCake.clear*/
 /*  PanCake.clear(cn)*/
-/*  cn: è²çªå·*/
+/*  cn: 色番号*/
 /******************************************************/
 mrb_value mrb_pancake_Clear(mrb_state *mrb, mrb_value self)
@@ -44,12 +44,12 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ç»é¢ã«ç·ãå¼ã: PanCake.line*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 画面に線を引く: PanCake.line*/
 /*  PanCake.line(x1,y1,x2,y2,cn)*/
-/*  (x1,y1)-(x2,y2)ã«ç·ãå¼ãã¾ã*/
-/*  cn: è²çªå·*/
+/*  (x1,y1)-(x2,y2)に線を引きます*/
+/*  cn: 色番号*/
 /******************************************************/
 mrb_value mrb_pancake_Line(mrb_state *mrb, mrb_value self)
@@ -74,13 +74,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ç»é¢ã«åãæã: PanCake.circle*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 画面に円を描く: PanCake.circle*/
 /*  PanCake.circle(xc, yc, ra, cn)*/
-/*  (xc,yc)ãä¸­å¿ã«åãæã*/
-/*  ra: åå¾*/
-/*  cn: è²çªå·*/
+/*  (xc,yc)を中心に円を描く*/
+/*  ra: 半径*/
+/*  cn: 色番号*/
 /******************************************************/
 mrb_value mrb_pancake_Circle(mrb_state *mrb, mrb_value self)
@@ -103,18 +103,18 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 
 int hex2int(char s)
 {
-	/* '0' ãã '9' ã®æå­ãªã*/
+	/* '0' から '9' の文字なら*/
 	if ('0' <= s && s <= '9') {
 		return(s - '0');
 	}
-	/*'A' ãã 'F' ã®æå­ãªã*/
+	/*'A' から 'F' の文字なら*/
 	else if ('A' <= s && s <= 'F') {
 		return(s - 'A' + 10);
 	}
-	/*'a' ãã 'f' ã®æå­ãªã*/
+	/*'a' から 'f' の文字なら*/
 	else if ('a' <= s && s <= 'f') {
 		return(s - 'a' + 10);
@@ -125,9 +125,9 @@
 
 /******************************************************/
-/* ç»é¢ã«8x8ã®çµµãæã: PanCake.stamp*/
+/* 画面に8x8の絵を描く: PanCake.stamp*/
 /*  PanCake.stamp(px, py, tc, string)*/
-/*  px,py: çµµã®å·¦ä¸åº§æ¨*/
-/*  tc: éæè²*/
-/*  string: 16é²æ°ã®æå­åã64å*/
+/*  px,py: 絵の左上座標*/
+/*  tc: 透明色*/
+/*  string: 16進数の文字列が64個*/
 /******************************************************/
 mrb_value mrb_pancake_Stamp(mrb_state *mrb, mrb_value self)
@@ -155,13 +155,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ç»é¢ã«8x8ã®1è²ã®çµµãæã: PanCake.stamp1*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 画面に8x8の1色の絵を描く: PanCake.stamp1*/
 /*  PanCake.stamp1(px, py, cn, string)*/
-/*  px,py: çµµã®å·¦ä¸åº§æ¨*/
-/*  cn: æãè²*/
-/*  string: 16é²æ°ã®æå­åã16å*/
+/*  px,py: 絵の左上座標*/
+/*  cn: 描く色*/
+/*  string: 16進数の文字列が16個*/
 /******************************************************/
 mrb_value mrb_pancake_Stamp1(mrb_state *mrb, mrb_value self)
@@ -189,11 +189,11 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ç»é¢ã«çµã¿è¾¼ã¿ç»åãæã: PanCake.image*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 画面に組み込み画像を描く: PanCake.image*/
 /*  PanCake.image(num)*/
-/*  num: çµã¿è¾¼ã¿ç»åã®çªå·*/
+/*  num: 組み込み画像の番号*/
 /******************************************************/
 mrb_value mrb_pancake_Image(mrb_state *mrb, mrb_value self)
@@ -210,11 +210,11 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãããªåºåã®ON/OFF: PanCake.video*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ビデオ出力のON/OFF: PanCake.video*/
 /*  PanCake.video(sw)*/
-/*  sw: ã¹ã¤ããON/OFF[01/00]*/
+/*  sw: スイッチON/OFF[01/00]*/
 /******************************************************/
 mrb_value mrb_pancake_Video(mrb_state *mrb, mrb_value self)
@@ -231,14 +231,14 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* 4chåæã«é³ãé³´ãã: PanCake.sound*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 4ch同時に音を鳴らす: PanCake.sound*/
 /*  PanCake.sound(o0, s0, o1, s1, o2, s2, o3, s3)*/
-/*  o0,o1,o2,o3: ãªã¯ã¿ã¼ã(0ï½4ï½7)*/
-/*  s0,s1,s2,s3: é³ç¨(0ï½b) eã¯ãã¤ãºé³*/
-/*               HighBits4ã¯é³è²(0ï½3)*/
-/*               é³ãæ¶ãã®ã¯ FF*/
+/*  o0,o1,o2,o3: オクターブ(0～4～7)*/
+/*  s0,s1,s2,s3: 音程(0～b) eはノイズ音*/
+/*               HighBits4は音色(0～3)*/
+/*               音を消すのは FF*/
 /******************************************************/
 mrb_value mrb_pancake_Sound(mrb_state *mrb, mrb_value self)
@@ -263,15 +263,15 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* 1ché³ãé³´ãã: PanCake.sound1*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 1ch音を鳴らす: PanCake.sound1*/
 /*  PanCake.sound1(cn, on, sn)*/
-/*  cn: ãã£ãã«*/
-/*  on: ãªã¯ã¿ã¼ã(0ï½4ï½7)*/
-/*  sn: é³ç¨(0ï½b) eã¯ãã¤ãºé³*/
-/*      HighBits4ã¯é³è²(0ï½3)*/
-/*      é³ãæ¶ãã®ã¯ FF*/
+/*  cn: チャネル*/
+/*  on: オクターブ(0～4～7)*/
+/*  sn: 音程(0～b) eはノイズ音*/
+/*      HighBits4は音色(0～3)*/
+/*      音を消すのは FF*/
 /******************************************************/
 mrb_value mrb_pancake_Sound1(mrb_state *mrb, mrb_value self)
@@ -290,10 +290,9 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* åæç¶æ
-ã«ãã: PanCake.reset*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 初期状態にする: PanCake.reset*/
 /*  PanCake.reset()*/
 /******************************************************/
@@ -306,11 +305,11 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* OUTãã¼ãã«åºå: PanCake.out*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* OUTポートに出力: PanCake.out*/
 /*  PanCake.out(pf)*/
-/*  pf: HIGHã«ãããã¼ãçªå·ã16é²æ°ã§æå®*/
+/*  pf: HIGHにするポート番号を16進数で指定*/
 /******************************************************/
 mrb_value mrb_pancake_Out(mrb_state *mrb, mrb_value self)
@@ -327,13 +326,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ããéå§ãã: Sprite.start*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトを開始する: Sprite.start*/
 /*  Sprite.start(num)*/
-/*  num: èæ¯ã«ä½¿ãçµã¿è¾¼ã¿ç»åçªå·*/
-/*       èæ¯ããã¿å¡ãã«ããå ´åã¯ num ã®HighBitsã1ã«ãã¾ãã*/
-/*      ã¹ãã©ã¤ãå¦çãåæ­¢ããã«ã¯ num ã FF ã«ãã¾ãã*/
+/*  num: 背景に使う組み込み画像番号*/
+/*       背景をベタ塗りにする場合は num のHighBitsを1にします。*/
+/*      スプライト処理を停止するには num を FF にします。*/
 /******************************************************/
 mrb_value mrb_pancake_Start(mrb_state *mrb, mrb_value self)
@@ -350,13 +349,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ããä½ã: Sprite.create*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトを作る: Sprite.create*/
 /*  Sprite.create(sn, si)*/
-/*  sn: ã¹ãã©ã¤ãçªå· 0ï½15*/
-/*  si: çµã¿è¾¼ã¿ã¹ãã©ã¤ãç»åçªå·*/
-/*      æ¶ãã®ã¯ FF*/
+/*  sn: スプライト番号 0～15*/
+/*  si: 組み込みスプライト画像番号*/
+/*      消すのは FF*/
 /******************************************************/
 mrb_value mrb_pancake_Create(mrb_state *mrb, mrb_value self)
@@ -374,12 +373,12 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ãã®ç§»å: Sprite.move*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトの移動: Sprite.move*/
 /*  Sprite.move(sn, px,py)*/
-/*  sn: ã¹ãã©ã¤ãçªå· 0ï½15*/
-/*  px,py: ç»é¢åº§æ¨*/
+/*  sn: スプライト番号 0～15*/
+/*  px,py: 画面座標*/
 /******************************************************/
 mrb_value mrb_pancake_Move(mrb_state *mrb, mrb_value self)
@@ -398,9 +397,9 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* é³æ¥½åçãã: Music.play*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 音楽再生する: Music.play*/
 /*  Music.play(sw)*/
 /*  sw: START/STOP[01/00]*/
@@ -419,9 +418,9 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* C D E F G A B ã0x0 ï½ 0xBã«ç½®ãæãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* C D E F G A B を0x0 ～ 0xBに置き換えます*/
 /* C  D  E  F  G  A  B*/
 /* 0  2  4  5  7  9  B*/
@@ -454,10 +453,10 @@
 
 /******************************************************/
-/* MMLããµã¦ã³ãchã«ç»é²ãã: Music.score*/
+/* MMLをサウンドchに登録する: Music.score*/
 /*  Music.score(ch, pn, tt, string)*/
-/*  ch: ãã£ã³ãã«(00ï½03)*/
-/*  pn: 01:å³åçã00:å¾ã§åç*/
-/*  tt: ãã³ã(0ï½F)+é³è² [ex. 30 == ãã³ã3ãé³è²0]*/
-/*  string: MML 64ãã¤ãã¾ã§*/
+/*  ch: チャンネル(00～03)*/
+/*  pn: 01:即再生、00:後で再生*/
+/*  tt: テンポ(0～F)+音色 [ex. 30 == テンポ3、音色0]*/
+/*  string: MML 64バイトまで*/
 /******************************************************/
 mrb_value mrb_pancake_Score(mrb_state *mrb, mrb_value self)
@@ -539,11 +538,11 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* PanCakeã§ä½¿ãã·ãªã¢ã«ãã¼ãçªå·ãæå®: PanCake.serial*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* PanCakeで使うシリアルポート番号を指定: PanCake.serial*/
 /*  PanCake.serial(num)*/
-/*  num: ã·ãªã¢ã«ãã¼ãçªå·(1ï½3)*/
+/*  num: シリアルポート番号(1～3)*/
 /******************************************************/
 mrb_value mrb_pancake_Serial(mrb_state *mrb, mrb_value self)
@@ -560,5 +559,5 @@
 	SerialNum = num;
 
-	/*ã·ãªã¢ã«éä¿¡ã®åæåããã¾ã*/
+	/*シリアル通信の初期化をします*/
 	if (serial[SerialNum] != 0) {
 		serial_free(serial[SerialNum]);
@@ -567,5 +566,5 @@
 
 	if(!portToPins(SCI_SCI0P2x, &txpin, &rxpin))
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	serial[SerialNum] = mrb_malloc(mrb, sizeof(serial_t));
@@ -573,11 +572,11 @@
 	serial_baud(serial[SerialNum], PANCAKE_BAURATE);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ãã®å·¦å³åè»¢: Sprite.flip*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトの左右反転: Sprite.flip*/
 /*  Sprite.flip(sn, fs)*/
-/*  sn: ã¹ãã©ã¤ãçªå· 0ï½15*/
+/*  sn: スプライト番号 0～15*/
 /*  fs: ON/OFF[01/00]*/
 /******************************************************/
@@ -596,12 +595,12 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ãã®åè»¢: Sprite.rotate*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライトの回転: Sprite.rotate*/
 /*  Sprite.rotate(sn, ra)*/
-/*  sn: ã¹ãã©ã¤ãçªå· 0ï½15*/
-/*  ra: è§åº¦[0:0Â°,1:-90Â°,2:180Â°,3:90Â°]*/
+/*  sn: スプライト番号 0～15*/
+/*  ra: 角度[0:0°,1:-90°,2:180°,3:90°]*/
 /******************************************************/
 mrb_value mrb_pancake_Rotate(mrb_state *mrb, mrb_value self)
@@ -619,13 +618,13 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã¹ãã©ã¤ãç¨8x8ç»åã®å®ç¾©: Sprite.user*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* スプライト用8x8画像の定義: Sprite.user*/
 /*  Sprite.user(dn, tc, string)*/
-/*  dn: ã¹ãã©ã¤ãã®å®ç¾©çªå· FD ã FE*/
-/*  tc: éæè²*/
-/*  string: 16é²æ°ã®æå­åã64å(è²ã®çªå·ã§ã)*/
+/*  dn: スプライトの定義番号 FD か FE*/
+/*  tc: 透明色*/
+/*  string: 16進数の文字列が64個(色の番号です)*/
 /******************************************************/
 mrb_value mrb_pancake_User(mrb_state *mrb, mrb_value self)
@@ -650,9 +649,9 @@
 	serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ライブラリを定義します*/
 /******************************************************/
 void pancake_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * PanCakeé¢é£
+ * PanCake関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void pancake_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * RTCé¢é£
+ * RTC関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -19,16 +19,15 @@
 
 /******************************************************/
-/* RTCã®æè¨ãåå¾ãã¾ã: Rtc.getTime*/
+/* RTCの時計を取得します: Rtc.getTime*/
 /*  Rtc.getTime()*/
 /**/
-/*  æ»ãå¤ã¯ä»¥ä¸ã®å¤ãé
-åã§è¿ãã¾ã*/
-/*  year: å¹´(2000-2099)*/
-/*  mon: æ(1-12)*/
-/*  day: æ¥(1-31)*/
-/*  hour: æ(0-23)*/
-/*  min: å(0-59)*/
-/*  second: ç§(0-59)*/
-/*  weekday: ææ¥(0-6)0:æ¥,1:æ,2:ç«,3:æ°´,4:æ¨,5:é,6:å*/
+/*  戻り値は以下の値が配列で返ります*/
+/*  year: 年(2000-2099)*/
+/*  mon: 月(1-12)*/
+/*  day: 日(1-31)*/
+/*  hour: 時(0-23)*/
+/*  min: 分(0-59)*/
+/*  second: 秒(0-59)*/
+/*  weekday: 曜日(0-6)0:日,1:月,2:火,3:水,4:木,5:金,6:土*/
 /******************************************************/
 mrb_value mrb_rtc_getTime(mrb_state *mrb, mrb_value self)
@@ -49,12 +48,11 @@
 
 /******************************************************/
-/* RTCã®æè¨ãã»ãããã¾ã: Rtc.setTime*/
+/* RTCの時計をセットします: Rtc.setTime*/
 /*  Rtc.setTime( array )*/
-/*  array: å¹´(0000-9999),æ(1-12),æ¥(1-31),æ(0-23),å(0-59),ç§(0-59)ã®é
-å*/
+/*  array: 年(0000-9999),月(1-12),日(1-31),時(0-23),分(0-59),秒(0-59)の配列*/
 /**/
-/*  æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*		0: å¤±æ*/
-/*		1: æå*/
+/*  戻り値は以下のとおり*/
+/*		0: 失敗*/
+/*		1: 成功*/
 /******************************************************/
 mrb_value mrb_rtc_setTime(mrb_state *mrb, mrb_value self)
@@ -75,10 +73,10 @@
 
 /******************************************************/
-/* RTCãåæ­¢ãã¾ã: Rtc.deinit*/
+/* RTCを停止します: Rtc.deinit*/
 /*  Rtc.deinit()*/
 /**/
-/* æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*	0: å¤±æ*/
-/*	1: æå*/
+/* 戻り値は以下のとおり*/
+/*	0: 失敗*/
+/*	1: 成功*/
 /******************************************************/
 mrb_value mrb_rtc_deinit(mrb_state *mrb, mrb_value self)
@@ -89,11 +87,11 @@
 
 /******************************************************/
-/* RTCãèµ·åãã¾ã: Rtc.init*/
+/* RTCを起動します: Rtc.init*/
 /*  Rtc.init()*/
 /**/
-/* æ»ãå¤ã¯ä»¥ä¸ã®ã¨ãã*/
-/*	0: èµ·åå¤±æ*/
-/*	1: èµ·åæå*/
-/*	2: RTCã¯æ¢ã«èµ·åãã¦ãã(æå)*/
+/* 戻り値は以下のとおり*/
+/*	0: 起動失敗*/
+/*	1: 起動成功*/
+/*	2: RTCは既に起動していた(成功)*/
 /******************************************************/
 mrb_value mrb_rtc_init(mrb_state *mrb, mrb_value self)
@@ -108,5 +106,5 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void rtc_Init(mrb_state *mrb)
@@ -123,27 +121,27 @@
 
 /*rtc_attach_alarm_handler*/
-/*æ¦è¦ 	ã¢ã©ã¼ã çºçæã«å¦çããé¢æ°ãç»é²ãã¾ãã*/
-/*ææ³ 	rtc_attach_alarm_handler(void(*)(void) function)*/
-/*ãã©ã¡ã¼ã¿ 	function: å¦çããé¢æ°*/
-/*æ»ãå¤ 	ãªã*/
+/*概要 	アラーム発生時に処理する関数を登録します。*/
+/*文法 	rtc_attach_alarm_handler(void(*)(void) function)*/
+/*パラメータ 	function: 処理する関数*/
+/*戻り値 	なし*/
 /**/
 /*rtc_set_alarm_time*/
-/*æ¦è¦ 	ã¢ã©ã¼ã æéãè¨­å®ãã¾ãã*/
-/*ææ³ 	int rtc_set_alarm_time (int hour, int min, int week_flag)*/
-/*ãã©ã¡ã¼ã¿ 	hour: æ*/
-/*min: å*/
-/*week_flag: ææ¥ï¼è¤æ°æå®ã®å ´åã¯è«çåã§æå®ï¼*/
-/*æ»ãå¤ 	0:å¤±æã1:æå*/
+/*概要 	アラーム時間を設定します。*/
+/*文法 	int rtc_set_alarm_time (int hour, int min, int week_flag)*/
+/*パラメータ 	hour: 時*/
+/*min: 分*/
+/*week_flag: 曜日（複数指定の場合は論理和で指定）*/
+/*戻り値 	0:失敗、1:成功*/
 /**/
 /*rtc_alarm_on*/
-/*æ¦è¦ 	ã¢ã©ã¼ã ãONã«ãã¾ãã*/
-/*ææ³ 	rtc_alarm_on()*/
-/*ãã©ã¡ã¼ã¿ 	ãªã*/
-/*æ»ãå¤ 	ãªã*/
+/*概要 	アラームをONにします。*/
+/*文法 	rtc_alarm_on()*/
+/*パラメータ 	なし*/
+/*戻り値 	なし*/
 /**/
 /*rtc_alarm_off*/
-/*æ¦è¦ 	ã¢ã©ã¼ã ãOFFã«ãã¾ãã*/
-/*ææ³ 	rtc_alarm_off()*/
-/*ãã©ã¡ã¼ã¿ 	ãªã*/
-/*æ»ãå¤ 	ãªã*/
+/*概要 	アラームをOFFにします。*/
+/*文法 	rtc_alarm_off()*/
+/*パラメータ 	なし*/
+/*戻り値 	なし*/
 /**/
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sRtc.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * RTCé¢é£
+ * RTC関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void rtc_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * SDã«ã¼ãé¢é£
+ * SDカード関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -21,10 +21,10 @@
 
 /******************************************************/
-/*ãã¡ã¤ã«ãå­å¨ãããã©ããèª¿ã¹ã: SD_exists*/
+/*ファイルが存在するかどうか調べる: SD_exists*/
 /*	SD_exists( filename )*/
-/*  filename: èª¿ã¹ããã¡ã¤ã«å*/
-/**/
-/* æ»ãå¤*/
-/*	å­å¨ãã: 1, å­å¨ããªã: 0*/
+/*  filename: 調べるファイル名*/
+/**/
+/* 戻り値*/
+/*	存在する: 1, 存在しない: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_exists(mrb_state *mrb, mrb_value self)
@@ -46,10 +46,10 @@
 
 /******************************************************/
-/* ãã£ã¬ã¯ããªãä½æãã: SD_mkdir*/
+/* ディレクトリを作成する: SD_mkdir*/
 /*	SD_mkdir( dirname )*/
-/*  dirname: ä½æãããã£ã¬ã¯ããªå*/
-/**/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  dirname: 作成するディレクトリ名*/
+/**/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_mkdir(mrb_state *mrb, mrb_value self)
@@ -71,10 +71,10 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãåé¤ãã: SD_remove*/
+/* ファイルを削除する: SD_remove*/
 /*	SD_remove( filename )*/
-/*  filename: åé¤ãããã¡ã¤ã«å*/
-/**/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  filename: 削除するファイル名*/
+/**/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_remove(mrb_state *mrb, mrb_value self)
@@ -96,13 +96,11 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ãã³ãã¼ãã: SD_copy*/
+/* ファイルをコピーする: SD_copy*/
 /*	SD_copy( srcfilename, distfilename )*/
-/*  srcfilename: ã³ãã¼å
-ãã¡ã¤ã«å*/
-/*  distfilename: ã³ãã¼å
-ãã¡ã¤ã«å*/
-/**/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  srcfilename: コピー元ファイル名*/
+/*  distfilename: コピー先ファイル名*/
+/**/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_copy(mrb_state *mrb, mrb_value self)
@@ -124,5 +122,5 @@
 	}
 
-	/*æ¢å­ã®ãã¡ã¤ã«ãã³ãã¼ãã*/
+	/*既存のファイルをコピーする*/
 	File *s = &Fp[0];
 	File *d = &Fp[1];
@@ -147,10 +145,10 @@
 
 /******************************************************/
-/* ãã£ã¬ã¯ããªãåé¤ãã: SD_rmdir*/
+/* ディレクトリを削除する: SD_rmdir*/
 /*	SD_rmdir( dirname )*/
-/*  dirname: åé¤ãããã£ã¬ã¯ããªå*/
-/**/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*  dirname: 削除するディレクトリ名*/
+/**/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_rmdir(mrb_state *mrb, mrb_value self)
@@ -172,11 +170,11 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ããªã¼ãã³ãã¾ã: SD_open*/
+/* ファイルをオープンします: SD_open*/
 /*	SD_open( number, filename[, mode] )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	filename: ãã¡ã¤ã«å(8.3å½¢å¼)*/
+/*	number: ファイル番号 0 または 1*/
+/*	filename: ファイル名(8.3形式)*/
 /*	mode: 0:Read, 1:Append, 2:New Create*/
-/* æ»ãå¤*/
-/*	æå: çªå·, å¤±æ: -1*/
+/* 戻り値*/
+/*	成功: 番号, 失敗: -1*/
 /******************************************************/
 mrb_value mrb_sdcard_open(mrb_state *mrb, mrb_value self)
@@ -196,5 +194,5 @@
 
 	if (mode == 2) {
-		/*æ°è¦æ¸ãè¾¼ã¿*/
+		/*新規書き込み*/
 		if (SD_exists(str) == true) {
 			SD_remove(str);
@@ -221,7 +219,7 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ãã¯ã­ã¼ãºãã¾ã: SD_close*/
+/* openしたファイルをクローズします: SD_close*/
 /*	SD_close( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
+/*	number: ファイル番号 0 または 1*/
 /******************************************************/
 mrb_value mrb_sdcard_close(mrb_state *mrb, mrb_value self)
@@ -235,13 +233,13 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* openãããã¡ã¤ã«ãã1ãã¤ãèª­ã¿è¾¼ã¿ã¾ã: SD_read*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* openしたファイルから1バイト読み込みます: SD_read*/
 /*	SD_read( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/* æ»ãå¤*/
-/*	0x00ï½0xFFãè¿ãããã¡ã¤ã«ã®æå¾ã ã£ãã-1ãè¿ãã*/
+/*	number: ファイル番号 0 または 1*/
+/* 戻り値*/
+/*	0x00～0xFFが返る。ファイルの最後だったら-1が返る。*/
 /******************************************************/
 mrb_value mrb_sdcard_read(mrb_state *mrb, mrb_value self)
@@ -260,10 +258,10 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ã®èª­ã¿åºãä½ç½®ãç§»åãã: SD_seek*/
+/* openしたファイルの読み出し位置を移動する: SD_seek*/
 /*	SD_seek( number, byte )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	byte: seekãããã¤ãæ°(-1)ã§ãã¡ã¤ã«ã®æå¾ã«ç§»åãã*/
-/* æ»ãå¤*/
-/*	æå: 1, å¤±æ: 0*/
+/*	number: ファイル番号 0 または 1*/
+/*	byte: seekするバイト数(-1)でファイルの最後に移動する*/
+/* 戻り値*/
+/*	成功: 1, 失敗: 0*/
 /******************************************************/
 mrb_value mrb_sdcard_seek(mrb_state *mrb, mrb_value self)
@@ -291,11 +289,11 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ã«ãã¤ããªãã¼ã¿ãæ¸ãè¾¼ã: SD_write*/
+/* openしたファイルにバイナリデータを書き込む: SD_write*/
 /*	SD_write( number, buf, len )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/*	buf: æ¸ãè¾¼ããã¼ã¿*/
-/*	len: æ¸ãè¾¼ããã¼ã¿ãµã¤ãº*/
-/* æ»ãå¤*/
-/*	å®éã«æ¸ãããã¤ãæ°*/
+/*	number: ファイル番号 0 または 1*/
+/*	buf: 書き込むデータ*/
+/*	len: 書き込むデータサイズ*/
+/* 戻り値*/
+/*	実際に書いたバイト数*/
 /******************************************************/
 mrb_value mrb_sdcard_write(mrb_state *mrb, mrb_value self)
@@ -318,7 +316,7 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ã®æ¸ãè¾¼ã¿ããã©ãã·ã¥ãã¾ã: SD_flush*/
+/* openしたファイルの書き込みをフラッシュします: SD_flush*/
 /*	SD_flush( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
+/*	number: ファイル番号 0 または 1*/
 /******************************************************/
 mrb_value mrb_sdcard_flush(mrb_state *mrb, mrb_value self)
@@ -332,14 +330,14 @@
 	}
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* openãããã¡ã¤ã«ã®ãµã¤ãºãåå¾ãã¾ã: SD_size*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* openしたファイルのサイズを取得します: SD_size*/
 /*	SD_size( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/**/
-/* æ»ãå¤*/
-/*	ãã¡ã¤ã«ãµã¤ãº*/
+/*	number: ファイル番号 0 または 1*/
+/**/
+/* 戻り値*/
+/*	ファイルサイズ*/
 /******************************************************/
 mrb_value mrb_sdcard_size(mrb_state *mrb, mrb_value self)
@@ -358,10 +356,10 @@
 
 /******************************************************/
-/* openãããã¡ã¤ã«ã®seekä½ç½®ãåå¾ãã¾ã: SD_position*/
+/* openしたファイルのseek位置を取得します: SD_position*/
 /*	SD_position( number )*/
-/*	number: ãã¡ã¤ã«çªå· 0 ã¾ãã¯ 1*/
-/**/
-/* æ»ãå¤*/
-/*	ã·ã¼ã¯ä½ç½®*/
+/*	number: ファイル番号 0 または 1*/
+/**/
+/* 戻り値*/
+/*	シーク位置*/
 /******************************************************/
 mrb_value mrb_sdcard_position(mrb_state *mrb, mrb_value self)
@@ -380,9 +378,9 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 int sdcard_Init(mrb_state *mrb)
 {
-	/*æ¥ä»ã¨æå»ãè¿ãé¢æ°ãç»é²*/
+	/*日付と時刻を返す関数を登録*/
 	/*SdFile::dateTimeCallback( &SD_DateTime );*/
 
@@ -408,5 +406,5 @@
 
 /******************************************************/
-/* æ¥ä»ã¨æå»ãè¿ãã³ã¼ã«ããã¯é¢æ°*/
+/* 日付と時刻を返すコールバック関数*/
 /******************************************************/
 void SD_DateTime(uint16_t *date, uint16_t *time)
@@ -427,8 +425,8 @@
 	second = tm->tm_sec;
 
-	/* FAT_DATEãã¯ã­ã§ãã£ã¼ã«ããåãã¦æ¥ä»ãè¿ã*/
+	/* FAT_DATEマクロでフィールドを埋めて日付を返す*/
 	*date = (year - 1980) << 9 | month << 5 | day;
 
-	/* FAT_TIMEãã¯ã­ã§ãã£ã¼ã«ããåãã¦æéãè¿ã*/
+	/* FAT_TIMEマクロでフィールドを埋めて時間を返す*/
 	*time = hour << 11 | minute << 5 | second >> 1;
 }
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSdCard.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * SDã«ã¼ãé¢é£
+ * SDカード関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 int sdcard_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã·ãªã¢ã«éä¿¡é¢é£
+ * シリアル通信関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -24,5 +24,5 @@
 
 /******************************************************/
-/* ã¡ã¢ãªã®éæ¾æã«èµ°ã*/
+/* メモリの開放時に走る*/
 /******************************************************/
 static void mrb_serial_free(mrb_state *mrb, void *ptr)
@@ -33,5 +33,5 @@
 
 /******************************************************/
-/* ãã®æ§é ä½ã®æå³ã¯ããããã£ã¦ããªã*/
+/* この構造体の意味はよくわかっていない*/
 /******************************************************/
 static struct mrb_data_type serial_type = {"Serial", mrb_serial_free};
@@ -39,11 +39,11 @@
 
 /******************************************************/
-/* ã·ãªã¢ã«éä¿¡ãåæåãã¾ã: Serial.new*/
-/*  Serial.new(num[, bps])ã*/
-/*  num: éä¿¡çªå·(0:USB, 1:TX-0/RX-1, 2:TX-5/RX-6, 3:TX-7/RX-8, 4:TX-12/RX-11, 5:TX-9(26)/RX-3)*/
-/*  bps: ãã¼ã¬ã¼ã*/
+/* シリアル通信を初期化します: Serial.new*/
+/*  Serial.new(num[, bps])　*/
+/*  num: 通信番号(0:USB, 1:TX-0/RX-1, 2:TX-5/RX-6, 3:TX-7/RX-8, 4:TX-12/RX-11, 5:TX-9(26)/RX-3)*/
+/*  bps: ボーレート*/
 /**/
-/* æ»ãå¤*/
-/*  Serialã®ã¤ã³ã¹ã¿ã³ã¹*/
+/* 戻り値*/
+/*  Serialのインスタンス*/
 /******************************************************/
 static mrb_value mrb_serial_initialize(mrb_state *mrb, mrb_value self)
@@ -60,9 +60,9 @@
 
 	if (num < 0 && num >= SERIAL_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	if(!portToPins(num, &txpin, &rxpin))
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	serial_t* serialc = mrb_malloc(mrb, sizeof(serial_t));
@@ -78,7 +78,7 @@
 
 /******************************************************/
-/* ãã¼ã¬ã¼ããè¨­å®ãã¾ã: Serial.bps*/
+/* ボーレートを設定します: Serial.bps*/
 /*  Serial.bps(bps)*/
-/*  bps: ãã¼ã¬ã¼ã */
+/*  bps: ボーレート */
 /******************************************************/
 mrb_value mrb_serial_bps(mrb_state *mrb, mrb_value self)
@@ -92,12 +92,12 @@
 	serial_baud(serialc, bps);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã·ãªã¢ã«ã«åºåãã¾ã: Serial.print*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* シリアルに出力します: Serial.print*/
 /*  Serial.print([str])*/
-/*  str: æå­å*/
-/*    çç¥æã¯ä½ãåºåãã¾ãã*/
+/*  str: 文字列*/
+/*    省略時は何も出力しません*/
 /******************************************************/
 mrb_value mrb_serial_print(mrb_state *mrb, mrb_value self)
@@ -112,12 +112,12 @@
 		serial_print(serialc, RSTRING_PTR(text));
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã·ãªã¢ã«ã«\r\nä»ãã§åºåãã¾ã: Serial.println*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* シリアルに\r\n付きで出力します: Serial.println*/
 /*  Serial.println([str])*/
-/*  str: æå­å*/
-/*    çç¥æã¯æ¹è¡ã®ã¿*/
+/*  str: 文字列*/
+/*    省略時は改行のみ*/
 /******************************************************/
 mrb_value mrb_serial_println(mrb_state *mrb, mrb_value self)
@@ -135,11 +135,11 @@
 		serial_println(serialc, "");
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã·ãªã¢ã«ãã¼ã¿ããããã©ããèª¿ã¹ã¾ã: Serial.available*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* シリアルデータがあるかどうか調べます: Serial.available*/
 /*  Serial.available()*/
-/*  æ»ãå¤ ã·ãªã¢ã«ãããã¡ã«ãããã¼ã¿ã®ãã¤ãæ°ã0ã®å ´åã¯ãã¼ã¿ãªã*/
+/*  戻り値 シリアルバッファにあるデータのバイト数。0の場合はデータなし*/
 /******************************************************/
 mrb_value mrb_serial_available(mrb_state *mrb, mrb_value self)
@@ -151,9 +151,8 @@
 
 /******************************************************/
-/* ã·ãªã¢ã«ãããã¼ã¿ãåå¾ãã¾ã: Serial.read*/
+/* シリアルからデータを取得します: Serial.read*/
 /*  Serial.read()*/
-/* æ»ãå¤*/
-/*	ãã¼ã¿é
-å*/
+/* 戻り値*/
+/*	データ配列*/
 /******************************************************/
 mrb_value mrb_serial_read(mrb_state *mrb, mrb_value self)
@@ -176,10 +175,10 @@
 
 /******************************************************/
-/* ã·ãªã¢ã«ã«ãã¼ã¿ãåºåãã¾ã: Serial.write*/
+/* シリアルにデータを出力します: Serial.write*/
 /*  Serial.write(buf,len)*/
-/*	buf: åºåãã¼ã¿*/
-/*	len: åºåãã¼ã¿ãµã¤ãº*/
-/* æ»ãå¤*/
-/*	åºåãããã¤ãæ°*/
+/*	buf: 出力データ*/
+/*	len: 出力データサイズ*/
+/* 戻り値*/
+/*	出力したバイト数*/
 /******************************************************/
 mrb_value mrb_serial_write(mrb_state *mrb, mrb_value self)
@@ -202,5 +201,5 @@
 
 /******************************************************/
-/* ã·ãªã¢ã«ãã¼ã¿ããã©ãã·ã¥ãã¾ã: Serial.flash*/
+/* シリアルデータをフラッシュします: Serial.flash*/
 /*  Serial.flash()*/
 /******************************************************/
@@ -211,12 +210,12 @@
 	//serial_flush(serialc);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 #if 0
 unsigned char WiFiData[256];
 /***************************************************/
-/* USBãã¼ãã¨ESP8266ãã·ãªã¢ã«ã§ç´çµãã¾ã: WiFi.bypass*/
+/* USBポートとESP8266をシリアルで直結します: WiFi.bypass*/
 /*  WiFi.bypass()*/
-/* ãªã»ããããã¾ã§ãå¦çã¯æ»ãã¾ããã*/
+/* リセットするまで、処理は戻りません。*/
 //**************************************************/
 mrb_value mrb_wifi_bypass(mrb_state *mrb, mrb_value self)
@@ -238,8 +237,8 @@
 				WiFiData[i] = (unsigned char)serial_read(RbSerial[0]);
 
-				if(WiFiData[i] == 0x0d){ /*0x0Dã®ã¿ã®æ¹è¡ãé£æãããbypassã¢ã¼ããæãã*/
+				if(WiFiData[i] == 0x0d){ /*0x0Dのみの改行を連打したらbypassモードを抜ける*/
 					retCnt++;
 					if(retCnt > 20){
-						return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+						return mrb_nil_value();			/*戻り値は無しですよ。*/
 					}
 				}
@@ -260,10 +259,10 @@
 		}
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
 }
 #endif
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void serial_Init(mrb_state* mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSerial.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã·ãªã¢ã«éä¿¡é¢é£
+ * シリアル通信関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void serial_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ãµã¼ãã»ãã¼ãé¢é£
+ * サーボ・ハード関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -22,12 +22,10 @@
 
 /******************************************************/
-/* ãµã¼ãåºåãä»»æã®ãã³ã«å²ãå½ã¦ã¾ã: Servo.attach*/
+/* サーボ出力を任意のピンに割り当てます: Servo.attach*/
 /* Servo.attach(ch, pin[,min,max])*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/*  pin: å²ãå½ã¦ããã³çªå·*/
-/*  min: ãµã¼ãã®è§åº¦ã0åº¦ã®ã¨ãã®ãã«ã¹å¹
-(ãã¤ã¯ã­ç§)ãããã©ã«ãã¯544*/
-/*  max: ãµã¼ãã®è§åº¦ã180åº¦ã®ã¨ãã®ãã«ã¹å¹
-(ãã¤ã¯ã­ç§)ãããã©ã«ãã¯2400*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/*  pin: 割り当てるピン番号*/
+/*  min: サーボの角度が0度のときのパルス幅(マイクロ秒)。デフォルトは544*/
+/*  max: サーボの角度が180度のときのパルス幅(マイクロ秒)。デフォルトは2400*/
 /******************************************************/
 mrb_value mrb_servo_attach(mrb_state *mrb, mrb_value self)
@@ -42,13 +40,13 @@
 
 	if (pinno >= 20) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-	}
-
-	/* nã2ä»¥ä¸ã®ã¨ãã¯ãminãå¼æ°ã«ç¡ãã®ã§ã */
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
+	}
+
+	/* nが2以下のときは、minが引数に無いので、 */
 	if (n <= 2) {
 		min = 544;
 	}
 
-	/* nã3ä»¥ä¸ã®ã¨ãã¯ãmaxãå¼æ°ã«ç¡ãã®ã§ã */
+	/* nが3以下のときは、maxが引数に無いので、 */
 	if (n <= 3) {
 		max = 2400;
@@ -56,5 +54,5 @@
 
 	if (ch < 0 || ch >= ATTACH_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -66,5 +64,5 @@
 	pin = get_pin(pintype_pwmout, pinno);
 	if (pin == NULL)
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 
 	servo[ch] = pin;
@@ -72,12 +70,12 @@
 	servo[ch]->max = max;
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãµã¼ãã®è§åº¦ãã»ãããã¾ã: Servo.write*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* サーボの角度をセットします: Servo.write*/
 /* Servo.write(ch,angle)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/*  angle: è§åº¦ 0ï½180*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/*  angle: 角度 0～180*/
 /******************************************************/
 mrb_value mrb_servo_write(mrb_state *mrb, mrb_value self)
@@ -91,9 +89,9 @@
 
 	if (ch < 0 || ch >= ATTACH_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	if (servo[ch] == NULL) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -106,15 +104,14 @@
 	pwmout_pulsewidth_us(&servo[ch]->pwmout, (angle * (max - min)) / 180 + min);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãµã¼ãã¢ã¼ã¿ã«usåä½ã§è§åº¦ãæå®ãã: Servo.us*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* サーボモータにus単位で角度を指定する: Servo.us*/
 /* Servo.us(ch,us)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/*  us: åºåããããã«ã¹ã®å¹
- 1ï½19999, 0ã§åºå OFF*/
-/*   ãµã¼ãã¢ã¼ã¿ã«ä¸ãããããã«ã¹ã¯20mså¨æã§ã1å¨æä¸­ã®Highã®æéãç´æ¥æå®ããã*/
-/*   å®è³ªçã«PWMåºåãé£ç¶åè»¢ã¿ã¤ãã®ãµã¼ãã§ã¯ãåè»¢ã®ã¹ãã¼ããè¨­å®ãããã¨ãã§ããã*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/*  us: 出力したいパルスの幅 1～19999, 0で出力 OFF*/
+/*   サーボモータに与えられるパルスは20ms周期で、1周期中のHighの時間を直接指定する。*/
+/*   実質的にPWM出力。連続回転タイプのサーボでは、回転のスピードが設定することができる。*/
 /******************************************************/
 mrb_value mrb_servo_us(mrb_state *mrb, mrb_value self)
@@ -126,22 +123,22 @@
 
 	if (ch < 0 || ch >= ATTACH_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	if (servo[ch] == 0) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	pwmout_pulsewidth_us(&servo[ch]->pwmout, us);
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* æå¾ã«è¨­å®ãããè§åº¦ãèª­ã¿åºã: Servo.read*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 最後に設定された角度を読み出す: Servo.read*/
 /* Servo.read(ch)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/* æ»ãå¤*/
-/*  ãã¤ã¯ã­ç§åä½ us(ch) ã§ä¸ããå¤ã¯èª­ã¿ã¨ããªã*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/* 戻り値*/
+/*  マイクロ秒単位 us(ch) で与えた値は読みとれない*/
 /******************************************************/
 mrb_value mrb_servo_read(mrb_state *mrb, mrb_value self)
@@ -166,10 +163,10 @@
 
 /******************************************************/
-/* ãã³ã«ãµã¼ããå²ãå½ã¦ããã¦ããããç¢ºèªãã: Servo.attached*/
+/* ピンにサーボが割り当てられているかを確認する: Servo.attached*/
 /* Servo.attached(ch)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½11ã¾ã§æå®ã§ãã¾ã*/
-/* æ»ãå¤*/
-/*  1: å²ãå½ã¦ããã¦ãã*/
-/*  0: å²ãå½ã¦ã¯ãªã*/
+/*	ch: サーボのチャネル 0～11まで指定できます*/
+/* 戻り値*/
+/*  1: 割り当てられている*/
+/*  0: 割り当てはない*/
 /******************************************************/
 mrb_value mrb_servo_attached(mrb_state *mrb, mrb_value self)
@@ -196,7 +193,7 @@
 
 /******************************************************/
-/* ãµã¼ãã®åä½ãæ­¢ããå²ãè¾¼ã¿ãç¦æ­¢ãã: Servo.detach*/
+/* サーボの動作を止め、割り込みを禁止する: Servo.detach*/
 /* Servo.detach(ch)*/
-/*	ch: ãµã¼ãã®ãã£ãã« 0ï½9ã¾ã§æå®ã§ãã¾ã*/
+/*	ch: サーボのチャネル 0～9まで指定できます*/
 /******************************************************/
 mrb_value mrb_servo_detach(mrb_state *mrb, mrb_value self)
@@ -207,9 +204,9 @@
 
 	if (ch < 0 || ch >= ATTACH_MAX) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
 	if (servo[ch] == NULL) {
-		return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
+		return mrb_nil_value();			/*戻り値は無しですよ。*/
 	}
 
@@ -217,9 +214,9 @@
 	servo[ch] = 0;
 
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ライブラリを定義します*/
 /******************************************************/
 void servo_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ãµã¼ãã»ãã¼ãé¢é£
+ * サーボ・ハード関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void servo_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã·ã¹ãã é¢é£
+ * システム関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -28,7 +28,7 @@
 
 /******************************************************/
-/* çµäºããã¾ã*/
+/* 終了させます*/
 /*	System.exit()*/
-/*	ã¨ã©ã¼å¤ããã©ããå³çµäº*/
+/*	エラー値がもどり、即終了*/
 /******************************************************/
 mrb_value mrb_system_exit(mrb_state *mrb, mrb_value self)
@@ -36,9 +36,9 @@
 	mrb_raise(mrb, mrb_class_get(mrb, "Sys#exit Called"), "Normal Completion");
 
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* æ¬¡ã«å®è¡ããã¹ã¯ãªãããã¡ã¤ã«ãVmFilenameã«ã»ãããã¾ãã*/
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* 次に実行するスクリプトファイルをVmFilenameにセットします。*/
 /* System.setRun( filename )*/
 /******************************************************/
@@ -56,11 +56,11 @@
 	RubyFilename[0] = '\0';
 
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã·ã¹ãã ã®ãã¼ã¸ã§ã³ãåå¾ãã¾ã*/
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* システムのバージョンを取得します*/
 /* System.version([R])*/
-/* å¼æ°ãããã°mrubyã®ãã¼ã·ã§ã³ãè¿ã*/
+/* 引数があればmrubyのバーションを返す*/
 /******************************************************/
 mrb_value mrb_system_version(mrb_state *mrb, mrb_value self)
@@ -78,11 +78,11 @@
 
 /******************************************************/
-/*ãã©ãã·ã¥ã¡ã¢ãªã«æ¸ãè¾¼ã¿ã¾ã*/
+/*フラッシュメモリに書き込みます*/
 /* System.push(address, buf, length)*/
-/*	address: æ¸ãè¾¼ã¿éå§ã¢ãã¬ã¹(0x0000ï½0x00ff)*/
-/*  buf: æ¸ãè¾¼ããã¼ã¿*/
-/*  length: æ¸ãè¾¼ããµã¤ãº*/
-/* æ»ãå¤*/
-/*  1:æå, 0:å¤±æ*/
+/*	address: 書き込み開始アドレス(0x0000～0x00ff)*/
+/*  buf: 書き込むデータ*/
+/*  length: 書き込むサイズ*/
+/* 戻り値*/
+/*  1:成功, 0:失敗*/
 /******************************************************/
 mrb_value mrb_system_push(mrb_state *mrb, mrb_value self)
@@ -115,10 +115,10 @@
 
 /******************************************************/
-/*ãã©ãã·ã¥ã¡ã¢ãªããèª­ã¿åºãã¾ã*/
+/*フラッシュメモリから読み出します*/
 /* System.pop(address, length)*/
-/*	address: èª­ã¿è¾¼ã¿ã¢ãã¬ã¹(0x0000ï½0x00ff)*/
-/*  length: èª­ã¿è¾¼ã¿ãµã¤ãº(MAX 32ãã¤ã)*/
-/* æ»ãå¤*/
-/*  èª­ã¿è¾¼ãã ãã¼ã¿*/
+/*	address: 読み込みアドレス(0x0000～0x00ff)*/
+/*  length: 読み込みサイズ(MAX 32バイト)*/
+/* 戻り値*/
+/*  読み込んだデータ*/
 /******************************************************/
 mrb_value mrb_system_pop(mrb_state *mrb, mrb_value self)
@@ -147,39 +147,37 @@
 
 /******************************************************/
-/* ãã¡ã¤ã«ã­ã¼ãã¼ãå¼ã³åºãã¾ã*/
+/* ファイルローダーを呼び出します*/
 /* System.fileload()*/
 /******************************************************/
 mrb_value mrb_system_fileload(mrb_state *mrb, mrb_value self)
 {
-	/*ãã¡ã¤ã«ã­ã¼ãã¼ã®å¼ã³åºã*/
+	/*ファイルローダーの呼び出し*/
 	if (fileloader((const char*)ProgVer, MRUBY_VERSION) == 1) {
-		mrb_full_gc(mrb);	/*å¼·å¶GCãå
-¥ãã*/
-		/*å¼·å¶çµäº*/
+		mrb_full_gc(mrb);	/*強制GCを入れる*/
+		/*強制終了*/
 		mrb_raise(mrb, mrb_class_get(mrb, "Sys#exit Called"), "Normal Completion");
 	}
 
-	mrb_full_gc(mrb);	/*å¼·å¶GCãå
-¥ãã*/
-
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ãªã»ãããã¾ã*/
+	mrb_full_gc(mrb);	/*強制GCを入れる*/
+
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* リセットします*/
 /* System.reset()*/
 /******************************************************/
 mrb_value mrb_system_reset(mrb_state *mrb, mrb_value self)
 {
-	system_reboot(REBOOT_USERAPP);	/*ãªã»ããå¾ã«ã¦ã¼ã¶ã¢ããªãèµ·åãã*/
-
-	return mrb_nil_value();	/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* SDã«ã¼ããä½¿ããããã«ãã¾ã: System.useSD*/
+	system_reboot(REBOOT_USERAPP);	/*リセット後にユーザアプリを起動する*/
+
+	return mrb_nil_value();	/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* SDカードを使えるようにします: System.useSD*/
 /* System.useSD()*/
-/*æ»ãå¤*/
-/* 0:ä½¿ç¨ä¸å¯, 1:ä½¿ç¨å¯è½*/
+/*戻り値*/
+/* 0:使用不可, 1:使用可能*/
 /******************************************************/
 mrb_value mrb_system_useSD(mrb_state *mrb, mrb_value self)
@@ -188,5 +186,5 @@
 
 #if BOARD == BOARD_GR || FIRMWARE == SDBT || FIRMWARE == SDWF || BOARD == BOARD_P05 || BOARD == BOARD_P06
-	ret = sdcard_Init(mrb);		/*SDã«ã¼ãé¢é£ã¡ã½ããã®è¨­å®*/
+	ret = sdcard_Init(mrb);		/*SDカード関連メソッドの設定*/
 #endif
 
@@ -195,8 +193,8 @@
 
 /******************************************************/
-/* WiFiã¢ã¸ã¥ã¼ã«ESP8266ãã¼ããä½¿ããããã«ãã¾ã: System.useWiFi*/
+/* WiFiモジュールESP8266ボードを使えるようにします: System.useWiFi*/
 /* System.useWiFi()*/
-/*æ»ãå¤*/
-/* 0:ä½¿ç¨ä¸å¯, 1:ä½¿ç¨å¯è½*/
+/*戻り値*/
+/* 0:使用不可, 1:使用可能*/
 /******************************************************/
 mrb_value mrb_system_useWiFi(mrb_state *mrb, mrb_value self)
@@ -205,5 +203,5 @@
 
 #if (BOARD == FIRMWARE && BOARD == SDWF) || BOARD == BOARD_P05 || BOARD == BOARD_P06
-	ret = esp8266_Init(mrb);		/*ESP8266ãã¼ãé¢é£ã¡ã½ããã®è¨­å®*/
+	ret = esp8266_Init(mrb);		/*ESP8266ボード関連メソッドの設定*/
 #endif
 
@@ -212,8 +210,8 @@
 
 /******************************************************/
-/* å®è¡ãã¦ããmrbãã¡ã¤ã«ãã¹ãåå¾ãã¾ã: System.getMrbPath*/
+/* 実行しているmrbファイルパスを取得します: System.getMrbPath*/
 /* System.getMrbPath()*/
-/*æ»ãå¤*/
-/* å®è¡ãã¦ããmrbãã¡ã¤ã«ãã¹*/
+/*戻り値*/
+/* 実行しているmrbファイルパス*/
 /******************************************************/
 mrb_value mrb_system_getmrbpath(mrb_state *mrb, mrb_value self)
@@ -223,5 +221,5 @@
 
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void sys_Init(mrb_state *mrb)
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sSys.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ã·ã¹ãã é¢é£
+ * システム関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 void sys_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.c	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ESP-WROOM-02é¢é£
+ * ESP-WROOM-02関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -26,11 +26,11 @@
 
 unsigned char WiFiData[256];
-int WiFiRecvOutlNum = -1;	/*ESP8266ããã®åä¿¡ãåºåããã·ãªã¢ã«çªå·: -1ã®å ´åã¯åºåããªãã*/
-
-/******************************************************/
-/* OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããã*/
-/* æå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+int WiFiRecvOutlNum = -1;	/*ESP8266からの受信を出力するシリアル番号: -1の場合は出力しない。*/
+
+/******************************************************/
+/* OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読むか、*/
+/* 指定されたシリアルポートに出力します*/
 /**/
-/* 1:åä¿¡ãã, 0:åä¿¡ã§ããªãã£ã*/
+/* 1:受信した, 0:受信できなかった*/
 /******************************************************/
 int getData(int wait_msec)
@@ -49,8 +49,7 @@
 	times = us_ticker_read() / 1000;
 	while (n < 256) {
-		/*digitalWrite(get_pin(WIFI_CTS), 0);	//éä¿¡è¨±å¯*/
-
-		/*wait_msec å¾
-ã¤*/
+		/*digitalWrite(get_pin(WIFI_CTS), 0);	//送信許可*/
+
+		/*wait_msec 待つ*/
 		if ((us_ticker_read() / 1000) - times > wait_msec) {
 			DEBUG_PRINT("WiFi get Data", "Time OUT");
@@ -63,5 +62,5 @@
 				c = serial_getc(RbSerial[WIFI_SERIAL]);
 
-				/*æå®ã®ã·ãªã¢ã«ãã¼ãã«åºãè¨­å®ã§ããã°ãåä¿¡å¤ãåºåãã¾ã*/
+				/*指定のシリアルポートに出す設定であれば、受信値を出力します*/
 				if (WiFiRecvOutlNum >= 0) {
 					serial_putc(RbSerial[WiFiRecvOutlNum], (unsigned char)c);
@@ -107,10 +106,10 @@
 		}
 	}
-	/*digitalWrite(get_pin(WIFI_CTS), 0);	//éä¿¡è¨±å¯*/
+	/*digitalWrite(get_pin(WIFI_CTS), 0);	//送信許可*/
 	return 1;
 }
 
 /******************************************************/
-/* ã¹ãã¼ã·ã§ã³ã¢ã¼ãã®è¨­å®: WiFi.cwmode*/
+/* ステーションモードの設定: WiFi.cwmode*/
 /*  WiFi.cwmode(mode)*/
 /*  mode: 1:Station, 2:SoftAP, 3:Station + SoftAP*/
@@ -128,5 +127,5 @@
 	serial_println(RbSerial[WIFI_SERIAL], tmode);
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããæå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読か、指定されたシリアルポートに出力します*/
 	getData(WIFI_WAIT_MSEC);
 
@@ -135,9 +134,8 @@
 
 /******************************************************/
-/* ã³ãã³ãå¿ç­ã®ã·ãªã¢ã«åºåè¨­å®: WiFi.sout*/
+/* コマンド応答のシリアル出力設定: WiFi.sout*/
 /*  WiFi.sout( mode[,serialNumber] )*/
-/*	mode: 0:åºåããªã, 1:åºåãã*/
-/*  serialNumber: åºåå
-ã®ã·ãªã¢ã«çªå·*/
+/*	mode: 0:出力しない, 1:出力する*/
+/*  serialNumber: 出力先のシリアル番号*/
 /******************************************************/
 mrb_value mrb_wifi_Sout(mrb_state *mrb, mrb_value self)
@@ -158,13 +156,12 @@
 		}
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ATã³ãã³ãã®éä¿¡: WiFi.at*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ATコマンドの送信: WiFi.at*/
 /*  WiFi.at( command[, mode] )*/
-/*	commnad: ATã³ãã³ãå
-å®¹*/
-/*  mode: 0:'AT+'ãèªåè¿½å ããã1:'AT+'ãèªåè¿½å ããªã*/
+/*	commnad: ATコマンド内容*/
+/*  mode: 0:'AT+'を自動追加する、1:'AT+'を自動追加しない*/
 /******************************************************/
 mrb_value mrb_wifi_at(mrb_state *mrb, mrb_value self)
@@ -191,5 +188,5 @@
 	/*DEBUG_PRINT("WiFi.at",(const char*)WiFiData);*/
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããæå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読か、指定されたシリアルポートに出力します*/
 	getData(WIFI_WAIT_MSEC);
 
@@ -198,8 +195,8 @@
 
 /******************************************************/
-/* WiFiæ¥ç¶ãã¾ã: WiFi.cwjap*/
+/* WiFi接続します: WiFi.cwjap*/
 /*  WiFi.cwjap(SSID,Passwd)*/
-/*  SSID: WiFiã®SSID*/
-/*  Passwd: ãã¹ã¯ã¼ã*/
+/*  SSID: WiFiのSSID*/
+/*  Passwd: パスワード*/
 /******************************************************/
 mrb_value mrb_wifi_Cwjap(mrb_state *mrb, mrb_value self)
@@ -245,5 +242,5 @@
 	serial_println(RbSerial[WIFI_SERIAL], (const char*)WiFiData);
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããæå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読か、指定されたシリアルポートに出力します*/
 	getData(WIFI_WAIT_MSEC);
 
@@ -252,5 +249,5 @@
 
 /******************************************************/
-/* IPã¢ãã¬ã¹ã¨MACã¢ãã¬ã¹ã®è¡¨ç¤º: WiFi.cifsr*/
+/* IPアドレスとMACアドレスの表示: WiFi.cifsr*/
 /*  WiFi.cwjap()*/
 /******************************************************/
@@ -259,5 +256,5 @@
 	serial_println(RbSerial[WIFI_SERIAL], "AT+CIFSR");
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ããæå®ãããã·ãªã¢ã«ãã¼ãã«åºåãã¾ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読か、指定されたシリアルポートに出力します*/
 	getData(WIFI_WAIT_MSEC);
 
@@ -266,7 +263,7 @@
 
 /******************************************************/
-/* USBãã¼ãã¨ESP8266ãã·ãªã¢ã«ã§ç´çµãã¾ã: WiFi.bypass*/
+/* USBポートとESP8266をシリアルで直結します: WiFi.bypass*/
 /*  WiFi.bypass()*/
-/* ãªã»ããããã¾ã§ãå¦çã¯æ»ãã¾ããã*/
+/* リセットするまで、処理は戻りません。*/
 /******************************************************/
 mrb_value mrb_wifi_bypass(mrb_state *mrb, mrb_value self)
@@ -297,9 +294,9 @@
 		}
 	}
-	return mrb_nil_value();			/*æ»ãå¤ã¯ç¡ãã§ããã*/
-}
-
-/******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+	return mrb_nil_value();			/*戻り値は無しですよ。*/
+}
+
+/******************************************************/
+/* ライブラリを定義します*/
 /******************************************************/
 int esp8266_Init(mrb_state *mrb)
@@ -307,13 +304,13 @@
 	PinName txpin, rxpin;
 
-	/*ESP8266ããã®åä¿¡ãåºåããªãã«è¨­å®*/
+	/*ESP8266からの受信を出力しないに設定*/
 	WiFiRecvOutlNum = -1;
 
-	/*CTSç¨ã«PIN15ãOUTPUTã«è¨­å®ãã¾ã*/
+	/*CTS用にPIN15をOUTPUTに設定します*/
 	/*pinMode(get_pin(WIFI_CTS), 1);*/
 	/*digitalWrite(get_pin(WIFI_CTS), 1);*/
 
-	/*WiFiã®ã·ãªã¢ã«3ãè¨­å®*/
-	/*ã·ãªã¢ã«éä¿¡ã®åæåããã¾ã*/
+	/*WiFiのシリアル3を設定*/
+	/*シリアル通信の初期化をします*/
 	portToPins(SCI_SCI0P2x, &txpin, &rxpin);
 	serial_init(RbSerial[WIFI_SERIAL], txpin, rxpin);
@@ -321,5 +318,5 @@
 	int len;
 
-	/*åä¿¡ãããã¡ãç©ºã«ãã¾ã*/
+	/*受信バッファを空にします*/
 	while ((len = serial_readable(RbSerial[WIFI_SERIAL])) > 0) {
 		/*serial_print(RbSerial[0], len);*/
@@ -329,8 +326,8 @@
 	}
 
-	/*ECHOãªãã³ãã³ããéä¿¡ãã*/
+	/*ECHOオフコマンドを送信する*/
 	serial_println(RbSerial[WIFI_SERIAL], "ATE0");
 
-	/*OK 0d0a ã ERROR 0d0aãæ¥ãã¾ã§ WiFiData[]ã«èª­ã*/
+	/*OK 0d0a か ERROR 0d0aが来るまで WiFiData[]に読む*/
 	if (getData(500) == 0) {
 		return 0;
Index: EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sWiFi.h	(revision 321)
@@ -1,4 +1,4 @@
 /*
- * ESP-WROOM-02é¢é£
+ * ESP-WROOM-02関連
  *
  * Copyright (c) 2016 Wakayama.rb Ruby Board developers
@@ -9,5 +9,5 @@
  */
 /******************************************************/
-/* ã©ã¤ãã©ãªãå®ç¾©ãã¾ã*/
+/* ライブラリを定義します*/
 /******************************************************/
 int esp8266_Init(mrb_state *mrb);
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
@@ -62,5 +47,5 @@
 
 /*
- * ECHONET Liteãµã¼ãã¹å¦çéå§
+ * ECHONET Liteサービス処理開始
  */
 ER ecn_sta_svc(ecnl_svc_task_t *svc)
@@ -72,18 +57,11 @@
 
 /*
- * ECHONETãªãã¸ã§ã¯ãåç
-§
- * å¼æ°
- * ID		fa_eobjid	ECHONETãªãã¸ã§ã¯ãID
- * T_REOBJ	*fp_eobj	ECHONETãªãã¸ã§ã¯ãã®è¨­å®å
-å®¹ã³ãã¼å
-
+ * ECHONETオブジェクト参照
+ * 引数
+ * ID		fa_eobjid	ECHONETオブジェクトID
+ * T_REOBJ	*fp_eobj	ECHONETオブジェクトの設定内容コピー先
  *
- * eobjidã§æå®ããECHONETãªãã¸ã§ã¯ãã®è¨­å®å
-å®¹ãåç
-§ããã
- * åç
-§ããè¨­å®å
-å®¹ã¯pk_eobjã«æå®ããã¡ã¢ãªã«è¿ãããã
+ * eobjidで指定したECHONETオブジェクトの設定内容を参照する。
+ * 参照した設定内容はpk_eobjに指定したメモリに返される。
  */
 ER ecn_ref_eobj(ecnl_svc_task_t *svc, ID fa_eobjid, T_REOBJ *fp_eobj)
@@ -92,8 +70,8 @@
 
 	if (!fp_eobj)
-		return E_PAR;	/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
+		return E_PAR;	/* パラメータエラー */
 
 	if ((fa_eobjid <= 0) || (fa_eobjid > svc->tmax_eobjid))
-		return E_OBJ;	/* ãªãã¸ã§ã¯ãæªç»é² */
+		return E_OBJ;	/* オブジェクト未登録 */
 
 	p_obj = echonet_svctask_get_eobjinib(svc, fa_eobjid);
@@ -105,19 +83,12 @@
 
 /*
- * ECHONETãã­ããã£åç
-§
- * å¼æ°
- * ID			fa_eobjid	ECHONETãªãã¸ã§ã¯ãID
- * uint8_t		fa_epc		ãã­ããã£ã³ã¼ã
- * T_RPRP		*fp_eprp	ECHONETãªãã¸ã§ã¯ãã®ãã­ããã£è¨­å®å
-å®¹ã³ãã¼å
-
+ * ECHONETプロパティ参照
+ * 引数
+ * ID			fa_eobjid	ECHONETオブジェクトID
+ * uint8_t		fa_epc		プロパティコード
+ * T_RPRP		*fp_eprp	ECHONETオブジェクトのプロパティ設定内容コピー先
  *
- * eobjidã§æå®ããECHONETãªãã¸ã§ã¯ãã®ãepcã§æå®ãããã­ããã£ã®è¨­å®å
-å®¹ãåç
-§ããã
- * åç
-§ããè¨­å®å
-å®¹ã¯pk_eprpã«æå®ããã¡ã¢ãªã«è¿ãããã
+ * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定内容を参照する。
+ * 参照した設定内容はpk_eprpに指定したメモリに返される。
  */
 ER ecn_ref_eprp(ecnl_svc_task_t *svc, ID fa_eobjid, uint8_t fa_epc, T_RPRP *fp_eprp)
@@ -128,13 +99,12 @@
 
 	if (!fp_eprp)
-		return E_PAR;	/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
+		return E_PAR;	/* パラメータエラー */
 
 	if ((fa_eobjid <= 0) || (fa_eobjid > svc->tmax_eobjid))
-		return E_OBJ;	/* ãªãã¸ã§ã¯ãæªç»é² */
+		return E_OBJ;	/* オブジェクト未登録 */
 
 	p_obj = svc->eobjinib_table[fa_eobjid - 1];
 
-	/* eojã®æã¤ãã­ããã£åæåå®ç¾©é
-åããæ¤ç´¢ */
+	/* eojの持つプロパティ初期化定義配列から検索 */
 	p = p_obj->eprp;
 	for (i = 0; i < p_obj->eprpcnt; i++, p++) {
@@ -145,25 +115,21 @@
 	}
 
-	return E_PAR;	/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
-}
-
-/*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
- * uint8_t			fa_pdc		ãã­ããã£å¤ãã¼ã¿ãµã¤ãº
- * const void		*p_edt		ãã­ããã£å¤ãã¼ã¿
+	return E_PAR;	/* パラメータエラー */
+}
+
+/*
+ * プロパティ値書き込み要求（応答不要）電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
+ * uint8_t			fa_pdc		プロパティ値データサイズ
+ * const void		*p_edt		プロパティ値データ
  *
- *	ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æãä½æããã
- *	é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- *	é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã¨pdcãp_edtã§æå®ããã
- *	ãã­ããã£ã³ã¼ãããã¼ã¿ãµã¤ãºããã¼ã¿ãé»æã«è¨­å®ããã
- *	ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ *	プロパティ値書き込み要求（応答不要）電文を作成する。
+ *	電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ *	電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
+ *	プロパティコード、データサイズ、データを電文に設定する。
+ *	作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_seti(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
@@ -174,21 +140,17 @@
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
- * uint8_t			fa_pdc		ãã­ããã£å¤ãã¼ã¿ãµã¤ãº
- * const void		*p_edt		ãã­ããã£å¤ãã¼ã¿
+ * プロパティ値書き込み要求（応答要）電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
+ * uint8_t			fa_pdc		プロパティ値データサイズ
+ * const void		*p_edt		プロパティ値データ
  *
- *	ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æãä½æããã
- *	é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- *	é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã¨pdcãp_edtã§æå®ããã
- *	ãã­ããã£ã³ã¼ãããã¼ã¿ãµã¤ãºããã¼ã¿ãé»æã«è¨­å®ããã
- *	ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ *	プロパティ値書き込み要求（応答要）電文を作成する。
+ *	電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ *	電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
+ *	プロパティコード、データサイズ、データを電文に設定する。
+ *	作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_setc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
@@ -199,19 +161,15 @@
 
 /*
- * ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
+ * プロパティ値読み出し要求電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
  *
- * ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æãä½æããã
- * é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- * é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã§æå®ããã
- * ãã­ããã£ã³ã¼ããé»æã«è¨­å®ããã
- * ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ * プロパティ値読み出し要求電文を作成する。
+ * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ * 電文の初めのプロパティ値として、epcで指定された
+ * プロパティコードを電文に設定する。
+ * 作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
@@ -221,19 +179,15 @@
 
 /*
- * ãã­ããã£å¤éç¥è¦æ±é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
+ * プロパティ値通知要求電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
  *
- * ãã­ããã£å¤éç¥è¦æ±é»æãä½æããã
- * é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- * é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã§æå®ããã
- * ãã­ããã£ã³ã¼ããé»æã«è¨­å®ããã
- * ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ * プロパティ値通知要求電文を作成する。
+ * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ * 電文の初めのプロパティ値として、epcで指定された
+ * プロパティコードを電文に設定する。
+ * 作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_inf_req(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
@@ -243,21 +197,17 @@
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc		ãã­ããã£ã³ã¼ã
- * uint8_t			fa_pdc		ãã­ããã£å¤ãã¼ã¿ãµã¤ãº
- * const void		*p_edt		ãã­ããã£å¤ãã¼ã¿
+ * プロパティ値書き込み・読み出し要求電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc		プロパティコード
+ * uint8_t			fa_pdc		プロパティ値データサイズ
+ * const void		*p_edt		プロパティ値データ
  *
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æãä½æããã
- * é»æã¯deojã§æå®ããECHONETãªãã¸ã§ã¯ããå®å
-ã¨ãã
- * é»æã®åãã®ãã­ããã£å¤ã¨ãã¦ãepcã¨pdcãp_edtã§æå®ããã
- * ãã­ããã£ã³ã¼ãããã¼ã¿ãµã¤ãºããã¼ã¿ãé»æã«è¨­å®ããã
- * ä½æããé»æã®å
-é ­ã¢ãã¬ã¹ã¯ãã¤ã³ã¿çµç±ã§è¿ãããã
+ * プロパティ値書き込み・読み出し要求電文を作成する。
+ * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
+ * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
+ * プロパティコード、データサイズ、データを電文に設定する。
+ * 作成した電文の先頭アドレスはポインタ経由で返される。
  */
 ER ecn_esv_set_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
@@ -268,9 +218,7 @@
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æï¼æãè¿ãæå®
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æä¸­ã®ãæ¸ãè¾¼ã¿ãã­ããã£é
-åãçµãã¦
- * èª­ã¿åºããã­ããã£é
-åã«ç§»ãæã«ç¨ããã
+ * プロパティ値書き込み・読み出し要求電文作成：折り返し指定
+ * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティ配列を終えて
+ * 読み出しプロパティ配列に移る時に用いる。
  */
 ER ecn_trn_set_get(mrb_state *mrb, T_EDATA *ppk_esv, int *p_trn_pos)
@@ -283,9 +231,8 @@
 		return E_PAR;
 
-	/* ãã­ããã£èª­ã¿è¾¼ã¿ä»¶æ°æ¸ãè¾¼ã¿æã®ãããæ
-å ±ãè¨é² */
+	/* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
 	*p_trn_pos = _ecn_fbs_get_datalen(*(ECN_FBS_ID *)&ppk_esv);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å ã»ãã®æç¹ã§ã®å¿ç­é»æä¸­ãã­ããã£ä»¶æ°ãè¨é² */
+	/* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, *(ECN_FBS_ID *)&ppk_esv, &ppk_esv->hdr.edata.opc, 1);
 	if (a_ret) {
@@ -294,5 +241,5 @@
 	}
 
-	/* å¿ç­é»æä¸­ãã­ããã£ä»¶æ°ã 0 ã«æ»ãï¼ä»å¾ãçµäºæå®ããã¾ã§ã¯èª­ã¿åºããã­ããã£ä»¶æ°ã«ãªãï¼ */
+	/* 応答電文中プロパティ件数を 0 に戻す（今後、終了指定するまでは読み出しプロパティ件数になる） */
 	ppk_esv->hdr.edata.opc = 0;
 
@@ -301,7 +248,6 @@
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æï¼çµäºæå®
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æä¸­ã®ãèª­ã¿åºããã­ããã£é
-åãçµããæã«ç¨ããã
+ * プロパティ値書き込み・読み出し要求電文作成：終了指定
+ * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティ配列を終える時に用いる。
  */
 ER ecn_end_set_get(mrb_state *mrb, T_EDATA *ppk_esv, int fa_trn_pos)
@@ -314,8 +260,8 @@
 		return E_PAR;
 
-	/* ãã®æç¹ã§ã®å¿ç­é»æä¸­ãã­ããã£ä»¶æ°(èª­ã¿åºããã­ããã£ä»¶æ°)ãä¿æ */
+	/* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */
 	a_rd_opc = ppk_esv->hdr.edata.opc;
 
-	/* å¿ç­é»æä¸­ãã­ããã£ä»¶æ°(æ¸ãè¾¼ã¿ãã­ããã£ä»¶æ°)ãä¿å­ä½ç½®ããèª­ã¿åã */
+	/* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */
 	a_wr_opc = _ecn_fbs_peek(mrb, *(ECN_FBS_ID *)&ppk_esv, fa_trn_pos);
 	if (a_wr_opc < 0) {
@@ -324,9 +270,8 @@
 	}
 
-	/* å¿ç­é»æä¸­ãã­ããã£ä»¶æ°(æ¸ãè¾¼ã¿ãã­ããã£ä»¶æ°)ãå¾©å
- */
+	/* 応答電文中プロパティ件数(書き込みプロパティ件数)を復元 */
 	ppk_esv->hdr.edata.opc = (uint8_t)a_wr_opc;
 
-	/* å¿ç­é»æä¸­ãã­ããã£ä»¶æ°(èª­ã¿åºããã­ããã£ä»¶æ°)ãä¿å­ä½ç½®ã«æ¸ãè¾¼ã¿ */
+	/* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */
 	a_ret = _ecn_fbs_poke(mrb, *(ECN_FBS_ID *)&ppk_esv, fa_trn_pos, a_rd_opc);
 	if (a_ret) {
@@ -339,14 +284,10 @@
 
 /*
- * ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼é»æä½æ
- * å¼æ°
- * T_EDATA			**ppk_esv	åå¾ããé»æã®æ ¼ç´å
-
- * ID				fa_deoj		å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * ID				fa_seoj		éä¿¡å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_sepc		éä¿¡å
-ã®ãã­ããã£ã³ã¼ã
+ * プロパティ値通知（応答要）電文作成
+ * 引数
+ * T_EDATA			**ppk_esv	取得した電文の格納先
+ * ID				fa_deoj		宛先のECHONETオブジェクトID
+ * ID				fa_seoj		送信元のECHONETオブジェクトID
+ * uint8_t			fa_sepc		送信元のプロパティコード
  */
 ER ecn_esv_infc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID fa_deoj, ID fa_seoj, uint8_t fa_sepc)
@@ -356,5 +297,5 @@
 
 /*
- * è¦æ±é»æã¸ã®ãã­ããã£æå®è¿½å  (ãã­ããã£ãã¼ã¿ãä»éããªãå ´åã«ç¨ãã)
+ * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる)
  */
 ER ecn_add_epc(mrb_state *mrb, T_EDATA *pk_esv, uint8_t epc)
@@ -364,5 +305,5 @@
 
 /*
- * è¦æ±é»æã¸ã®ãã­ããã£ãã¼ã¿è¿½å  (ãã­ããã£ããã³ä»éãã¼ã¿ãè¿½å ãã)
+ * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する)
  */
 ER ecn_add_edt(mrb_state *mrb, T_EDATA *pk_esv, uint8_t fa_epc, uint8_t fa_pdc, const void *p_edt)
@@ -373,16 +314,15 @@
 
 	if (!pk_esv)
-		return E_PAR; /* åå¾ããFBS_IDã®æ ¼ç´å
-ãNULL */
+		return E_PAR; /* 取得したFBS_IDの格納先がNULL */
 	if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
-		return E_PAR; /* ãã­ããã£å¤ãµã¤ãºãå¤§ãããã */
+		return E_PAR; /* プロパティ値サイズが大きすぎる */
 	if (!p_edt && 0 < fa_pdc)
-		return E_PAR; /* ãã­ããã£å¤ãµã¤ãºã1ä»¥ä¸ãªã®ã«ãã¼ã¿ãã¤ã³ã¿ãNULL */
+		return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
 
 	a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_esv;
 	if (((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc == 0xFF)
-		return E_PAR; /* ãã­ããã£ãå¤ããã */
-
-	/* è¦æ±é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+		return E_PAR; /* プロパティが多すぎる */
+
+	/* 要求電文用メモリにデータ追加 */
 	memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
 	a_ecn_prp.epc = fa_epc;
@@ -395,5 +335,5 @@
 	}
 	if (0 < fa_pdc) {
-		/* ä»éãã¼ã¿è¿½å  */
+		/* 付随データ追加 */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, p_edt, fa_pdc);
 		if (a_ret) {
@@ -403,5 +343,5 @@
 		}
 	}
-	/* ãã­ããã£æ°ã¤ã³ã¯ãªã¡ã³ã */
+	/* プロパティ数インクリメント */
 	((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc++;
 
@@ -411,8 +351,7 @@
 
 /*
- * è¦æ±é»æã®éä¿¡
- * esvã§æå®ãããè¦æ±é»æãéä¿¡ããã
- * é»æã«æå®ãããå®å
-ããéä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãç¹å®ããUDPãã±ããã¨ãã¦éä¿¡ããã
+ * 要求電文の送信
+ * esvで指定された要求電文を送信する。
+ * 電文に指定された宛先から通信レイヤーアドレスを特定し、UDPパケットとして送信する。
  */
 ER ecn_snd_esv(ecnl_svc_task_t *svc, T_EDATA *pk_esv)
@@ -424,11 +363,8 @@
 
 /*
- * å¿ç­é»æã®åä¿¡ãã¼ãªã³ã°
- * å¿ç­é»æãåä¿¡ããã®ãå¾
-ã¤ã
- * åä¿¡ããå¿ç­é»æã¯ppk_esvã§æå®ãããã¤ã³ã¿ã¼ã«å
-é ­ã¢ãã¬ã¹ãè¿ãããã
- * å¿ç­é»æã®åä¿¡ã®æç¡ã«ããããããå¾
-ããã«é¢æ°ãæããã
+ * 応答電文の受信ポーリング
+ * 応答電文を受信するのを待つ。
+ * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
+ * 応答電文の受信の有無にかかわらず、待たずに関数を抜ける。
  */
 ER ecn_prcv_esv(ecnl_svc_task_t *svc, T_EDATA **ppk_esv)
@@ -451,5 +387,5 @@
 
 /*
- * å¿ç­é»æã®ç ´æ£
+ * 応答電文の破棄
  */
 ER ecn_rel_esv(mrb_state *mrb, T_EDATA *pk_esv)
@@ -464,6 +400,5 @@
 
 /*
- * å¿ç­é»æã®éä¿¡å
-ãã¼ããåå¾ãã
+ * 応答電文の送信元ノードを取得する
  */
 ID ecn_get_enod(ecnl_svc_task_t *svc, T_EDATA *pk_esv)
@@ -487,6 +422,5 @@
 
 /*
- * å¿ç­é»æã®éä¿¡å
-æ©å¨ãªãã¸ã§ã¯ããåå¾ãã
+ * 応答電文の送信元機器オブジェクトを取得する
  */
 ID ecn_get_eobj(ecnl_svc_task_t *svc, T_EDATA *pk_esv)
@@ -499,10 +433,10 @@
 	p_snod = _ecn_eno_fnd(svc, ((T_ECN_FST_BLK *)pk_esv)->hdr.sender.id);
 	if (p_snod != NULL) {
-		/* ãã¼ããã­ãã¡ã¤ã«ã®å ´å */
+		/* ノードプロファイルの場合 */
 		if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
 			&& (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
 			p_sobj = p_snod->profile;
 		}
-		/* æ©å¨ãªãã¸ã§ã¯ãã®å ´å */
+		/* 機器オブジェクトの場合 */
 		else {
 			p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
@@ -520,5 +454,5 @@
 
 /*
- * å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼åæå
+ * 応答電文解析イテレーター初期化
  */
 ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv)
@@ -532,14 +466,14 @@
 	pk_itr->pk_esv = pk_esv;
 	pk_itr->count = pk_esv->hdr.edata.opc;
-								/* ä»ã®ãã­ãã¯ã§ã®ãã­ããã£ç·æ° */
-	pk_itr->got_ct = 0;			/* ä»ã®ãã­ãã¯ã§ãèª­ã¿åã£ãæ° */
-	pk_itr->next_blk_ct = 0;	/* å¾ç¶ãã­ãã¯æ° */
-	pk_itr->is_eof = 0;			/* çµç«¯ã«éããæãé0 */
+								/* 今のブロックでのプロパティ総数 */
+	pk_itr->got_ct = 0;			/* 今のブロックで、読み取った数 */
+	pk_itr->next_blk_ct = 0;	/* 後続ブロック数 */
+	pk_itr->is_eof = 0;			/* 終端に達した時、非0 */
 	pk_itr->cur = offsetof(T_ECN_EDT_HDR, ecn_prp);
 
 	switch (pk_esv->hdr.edata.esv) {
-	case ESV_SET_GET:		/* 0x6E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±		*/
-	case ESV_SET_GET_RES:	/* 0x7E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãå¿ç­		*/
-	case ESV_SET_GET_SNA:	/* 0x5E	ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãä¸å¯å¿ç­	*/
+	case ESV_SET_GET:		/* 0x6E プロパティ値書き込み・読み出し要求		*/
+	case ESV_SET_GET_RES:	/* 0x7E プロパティ値書き込み・読み出し応答		*/
+	case ESV_SET_GET_SNA:	/* 0x5E	プロパティ値書き込み・読み出し不可応答	*/
 		pk_itr->next_blk_ct ++;
 	default:
@@ -551,5 +485,5 @@
 
 /*
- * å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã
+ * 応答電文解析イテレーターインクリメント
  */
 ER ecn_itr_nxt(mrb_state *mrb, T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt)
@@ -571,14 +505,13 @@
 
 	if (pk_itr->is_eof)
-		return E_BOVR; /* ãã¼ã¿çµäº */
+		return E_BOVR; /* データ終了 */
 	if (pk_itr->count <= pk_itr->got_ct && pk_itr->next_blk_ct < 1) {
-		pk_itr->is_eof = 1;			/* çµç«¯ã«éããæãé0 */
-		return E_BOVR; /* ãã¼ã¿çµäº */
+		pk_itr->is_eof = 1;			/* 終端に達した時、非0 */
+		return E_BOVR; /* データ終了 */
 	}
 
 	a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_itr->pk_esv;
 
-	/* å
-ã®ã«ã¼ã½ã«ä½ç½®ãä¿å­ããã¤ãã¬ã¼ã¿ã®ã«ã¼ã½ã«ä½ç½®ã«ãã */
+	/* 元のカーソル位置を保存し、イテレータのカーソル位置にする */
 	a_rd_bak = a_fbs_id.ptr->hdr.rd;
 	a_fbs_id.ptr->hdr.rd = pk_itr->cur;
@@ -588,10 +521,10 @@
 #endif
 	if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) {
-		/* æ¬¡ãã­ãã¯ã«ç§»å */
+		/* 次ブロックに移動 */
 		pk_itr->next_blk_ct --;
-		pk_itr->count = 0;		/* ä»ã®ãã­ãã¯ã§ã®ãã­ããã£ç·æ° */
-		pk_itr->got_ct = 0;		/* ä»ã®ãã­ãã¯ã§ãèª­ã¿åã£ãæ° */
-
-		/* æ¬¡ãã­ãã¯ã®ãã­ããã£æ°ãèª­ã¿åã */
+		pk_itr->count = 0;		/* 今のブロックでのプロパティ総数 */
+		pk_itr->got_ct = 0;		/* 今のブロックで、読み取った数 */
+
+		/* 次ブロックのプロパティ数を読み取る */
 		a_rd_len = 0;
 		a_ret = _ecn_fbs_get_data(mrb, a_fbs_id, &a_ecn_prp.pdc, 1, &a_rd_len);
@@ -599,11 +532,11 @@
 			goto lb_except;
 		if (0 < a_rd_len) {
-			pk_itr->count = a_ecn_prp.pdc;	/* ä»ã®ãã­ãã¯ã§ã®ãã­ããã£ç·æ° */
+			pk_itr->count = a_ecn_prp.pdc;	/* 今のブロックでのプロパティ総数 */
 		}
-		a_ret = E_BOVR;	/* ãã¼ã¿çµäº */
+		a_ret = E_BOVR;	/* データ終了 */
 		goto lb_finally;
 	}
 
-	/* ãã­ããã£ã³ã¼ãã¨ãã¼ã¿ãµã¤ãºãèª­ã¿åã */
+	/* プロパティコードとデータサイズを読み取る */
 	memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
 	a_rd_len = 0;
@@ -613,6 +546,6 @@
 	if (a_rd_len < sizeof(a_ecn_prp)) {
 		ECN_DBG_PUT_1("ecn_itr_nxt() ecn_prp read fault. rd.cur=%d", pk_itr->cur);
-		pk_itr->is_eof = 1;			/* çµç«¯ã«éããæãé0 */
-		a_ret = E_BOVR;	/* ãã¼ã¿çµäº */
+		pk_itr->is_eof = 1;			/* 終端に達した時、非0 */
+		a_ret = E_BOVR;	/* データ終了 */
 		goto lb_finally;
 	}
@@ -627,5 +560,5 @@
 		}
 		else {
-			/* ä»éãã¼ã¿ãèª­ã¿åã */
+			/* 付随データを読み取る */
 			a_rd_len = 0;
 			a_ret = _ecn_fbs_get_data(mrb, a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len);
@@ -635,6 +568,6 @@
 				ECN_DBG_PUT_3("ecn_itr_nxt() edt read fault. rd.cur=%d,epc=0x%02X,pdc=%u",
 					pk_itr->cur, a_ecn_prp.epc , a_ecn_prp.pdc);
-				pk_itr->is_eof = 1;			/* çµç«¯ã«éããæãé0 */
-				a_ret = E_BOVR;	/* ãã¼ã¿çµäº */
+				pk_itr->is_eof = 1;			/* 終端に達した時、非0 */
+				a_ret = E_BOVR;	/* データ終了 */
 				goto lb_finally;
 			}
@@ -648,10 +581,9 @@
 
 lb_finally:
-	/* ã¤ãã¬ã¼ã¿ã®ã«ã¼ã½ã«ä½ç½®ãæ´æ° */
+	/* イテレータのカーソル位置を更新 */
 	pk_itr->cur = a_fbs_id.ptr->hdr.rd;
 
 lb_except:
-	/* å
-ã®ã«ã¼ã½ã«ä½ç½®ã«æ»ã */
+	/* 元のカーソル位置に戻す */
 	a_fbs_id.ptr->hdr.rd = a_rd_bak;
 	return a_ret;
@@ -659,19 +591,17 @@
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿éä¿¡
+ * 応答電文待ちの割り込み送信
  */
 ER ecn_brk_wai(ecnl_svc_task_t *svc, const void *p_dat, int fa_datsz)
 {
 	ER				a_ret;
-	ECN_FBS_ID		a_fbs_id = { 0 };	/* è¦æ±é»æç¨ã¡ã¢ãª	*/
-
-	/* å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿é»æä½æ */
+	ECN_FBS_ID		a_fbs_id = { 0 };	/* 要求電文用メモリ	*/
+
+	/* 応答電文待ちの割り込み電文作成 */
 	a_ret = _ecn_mk_brk_wai(svc, &a_fbs_id, p_dat, fa_datsz);
 	if (a_ret)
 		return a_ret;
 
-	/* å²ãè¾¼ã¿éä¿¡ */
+	/* 割り込み送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_id, true);
 	if (a_ret) {
@@ -681,9 +611,9 @@
 	}
 
-	/* æ­£å¸¸çµäº */
+	/* 正常終了 */
 	return a_ret;
 
 lb_except:
-	/* ãã¼ã¿ä½æå¤±æãããé åè§£æ¾ */
+	/* データ作成失敗したら領域解放 */
 	if (a_fbs_id.ptr)
 		_ecn_fbs_del(svc->mrb, a_fbs_id);
@@ -693,5 +623,5 @@
 
 /*
- * å²ãè¾¼ã¿ãã¼ã¿ã®åå¾
+ * 割り込みデータの取得
  */
 ER ecn_get_brk_dat(mrb_state *mrb, T_EDATA *pk_esv, void *p_buf, int fa_bufsz, int *p_datsz)
@@ -713,6 +643,5 @@
 	}
 
-	/* èª­ã¿åãä½ç½®ãå
-é ­ã«æ»ã */
+	/* 読み取り位置を先頭に戻す */
 	a_ret = _ecn_fbs_set_rpos(a_fbs, 0);
 	if (a_ret) {
@@ -722,5 +651,5 @@
 	}
 
-	/* ä»éãã¼ã¿ãèª­ã¿è¾¼ã */
+	/* 付随データを読み込む */
 	if (p_buf && 0 < fa_bufsz) {
 		a_len = 0;
@@ -739,5 +668,5 @@
 #ifndef ECN_USER_DATA_PROP_SET
 /*
- * ãã¼ã¿è¨­å®é¢æ°
+ * データ設定関数
  */
 int ecn_data_prop_set(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno)
@@ -757,5 +686,5 @@
 #ifndef ECN_USER_DATA_PROP_GET
 /*
- * ãã¼ã¿åå¾é¢æ°
+ * データ取得関数
  */
 int ecn_data_prop_get(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size)
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
@@ -64,67 +49,63 @@
 
 #ifndef TOPPERS_T_STDDEF_H
-typedef char			bool_t;		/* çå½å¤ */
-
-typedef signed int		int_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
-typedef unsigned int	uint_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
-
-typedef int_t			ER;			/* ã¨ã©ã¼ã³ã¼ã */
-typedef int_t			ID;			/* ãªãã¸ã§ã¯ãã®IDçªå· */
-typedef uint_t			ATR;		/* ãªãã¸ã§ã¯ãã®å±æ§ */
-typedef int_t			TMO;		/* ã¿ã¤ã ã¢ã¦ãæå® */
+typedef char			bool_t;		/* 真偽値 */
+
+typedef signed int		int_t;		/* 自然なサイズの符号付き整数 */
+typedef unsigned int	uint_t;		/* 自然なサイズの符号無し整数 */
+
+typedef int_t			ER;			/* エラーコード */
+typedef int_t			ID;			/* オブジェクトのID番号 */
+typedef uint_t			ATR;		/* オブジェクトの属性 */
+typedef int_t			TMO;		/* タイムアウト指定 */
 
 #ifndef NULL
-#define NULL		0			/* ç¡å¹ãã¤ã³ã¿ */
+#define NULL		0			/* 無効ポインタ */
 #endif /* NULL */
 
 #ifndef true
-#define true		1			/* ç */
+#define true		1			/* 真 */
 #endif /* true */
 
 #ifndef false
-#define false		0			/* å½ */
+#define false		0			/* 偽 */
 #endif /* false */
 
-#define E_OK		0			/* æ­£å¸¸çµäº */
-
-#define E_SYS		(-5)		/* ã·ã¹ãã ã¨ã©ã¼ */
-#define E_PAR		(-17)		/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
-#define E_NOMEM		(-33)		/* ã¡ã¢ãªä¸è¶³ */
-#define E_OBJ		(-41)		/* ãªãã¸ã§ã¯ãç¶æ
-ã¨ã©ã¼ */
-#define E_NOEXS		(-42)		/* ãªãã¸ã§ã¯ãæªçæ */
-#define E_TMOUT		(-50)		/* ãã¼ãªã³ã°å¤±æã¾ãã¯ã¿ã¤ã ã¢ã¦ã */
-#define E_BOVR		(-58)		/* ãããã¡ãªã¼ãã¼ãã­ã¼ */
-#define E_BRK		(-100)		/* ã¦ã¼ã¶ã¼ã«ããä¸­æ­ */
-
-#define TMO_FEVR	(-1)		/* æ°¸ä¹
-å¾
-ã¡ */
+#define E_OK		0			/* 正常終了 */
+
+#define E_SYS		(-5)		/* システムエラー */
+#define E_PAR		(-17)		/* パラメータエラー */
+#define E_NOMEM		(-33)		/* メモリ不足 */
+#define E_OBJ		(-41)		/* オブジェクト状態エラー */
+#define E_NOEXS		(-42)		/* オブジェクト未生成 */
+#define E_TMOUT		(-50)		/* ポーリング失敗またはタイムアウト */
+#define E_BOVR		(-58)		/* バッファオーバーフロー */
+#define E_BRK		(-100)		/* ユーザーによる中断 */
+
+#define TMO_FEVR	(-1)		/* 永久待ち */
 #endif
 
 #define EOBJ_NULL 0x00
-#define EOBJ_LOCAL_NODE 0x01			/* èªãã¼ã */
-#define EOBJ_SYNC_REMOTE_NODE 0x02		/* ä»ãã¼ã */
-#define EOBJ_ASYNC_REMOTE_NODE 0x04		/* ä»ãã¼ãï¼éåæï¼ */
-#define EOBJ_DEVICE 0x08				/* æ©å¨ãªãã¸ã§ã¯ã */
+#define EOBJ_LOCAL_NODE 0x01			/* 自ノード */
+#define EOBJ_SYNC_REMOTE_NODE 0x02		/* 他ノード */
+#define EOBJ_ASYNC_REMOTE_NODE 0x04		/* 他ノード（非同期） */
+#define EOBJ_DEVICE 0x08				/* 機器オブジェクト */
 
 #define EPC_NONE 0x00
-#define EPC_RULE_SET 0x01				/* ã¢ã¯ã»ã¹ã«ã¼ã« Set */
-#define EPC_RULE_GET 0x02				/* ã¢ã¯ã»ã¹ã«ã¼ã« Get */
-#define EPC_RULE_ANNO 0x04				/* ã¢ã¯ã»ã¹ã«ã¼ã« Anno */
-#define EPC_ANNOUNCE 0x40				/* ç¶æ
-å¤åæéç¥ */
-#define EPC_VARIABLE 0x80				/* å¯å¤é·ãã¼ã¿ */
+#define EPC_RULE_SET 0x01				/* アクセスルール Set */
+#define EPC_RULE_GET 0x02				/* アクセスルール Get */
+#define EPC_RULE_ANNO 0x04				/* アクセスルール Anno */
+#define EPC_ANNOUNCE 0x40				/* 状態変化時通知 */
+#define EPC_VARIABLE 0x80				/* 可変長データ */
 
 typedef enum _echonet_enod_id
 {
-	ENOD_NOT_MATCH_ID	= -1,			/* ã¢ãã¬ã¹IDç»é²ãªã */
-	ENOD_MULTICAST_ID	= 0,			/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ID */
-	ENOD_LOCAL_ID		= 1,			/* èªãã¼ãã¢ãã¬ã¹ID */
-	ENOD_API_ID			= 2,			/* APIã¢ãã¬ã¹ID */
-	ENOD_REMOTE_ID		= 3,			/* ä»ãã¼ãã¢ãã¬ã¹ID */
+	ENOD_NOT_MATCH_ID	= -1,			/* アドレスID登録なし */
+	ENOD_MULTICAST_ID	= 0,			/* マルチキャストアドレスID */
+	ENOD_LOCAL_ID		= 1,			/* 自ノードアドレスID */
+	ENOD_API_ID			= 2,			/* APIアドレスID */
+	ENOD_REMOTE_ID		= 3,			/* 他ノードアドレスID */
 } ECN_ENOD_ID;
 
-/* ECHONET Liteè¦æ ¼ */
+/* ECHONET Lite規格 */
 typedef enum
 {
@@ -132,31 +113,31 @@
 } ECN_EHD1_ECL_VERSION;
 
-/* é»æå½¢å¼1/2 */
+/* 電文形式1/2 */
 typedef enum
 {
-	ECN_EDH2_FORMAT_1 = 0x81,	/* é»æå½¢å¼1 */
-	ECN_EDH2_FORMAT_2 = 0x82	/* é»æå½¢å¼2 */
+	ECN_EDH2_FORMAT_1 = 0x81,	/* 電文形式1 */
+	ECN_EDH2_FORMAT_2 = 0x82	/* 電文形式2 */
 } ECN_EHD2_FORMAT;
 
-/* ECHONET Liteãµã¼ãã¹ã³ã¼ã */
+/* ECHONET Liteサービスコード */
 typedef enum _echonet_service_code
 {
-	ESV_NOP				=	0,		/* (æ©è½æå®ãªã)							*/
-	ESV_SET_I			=	0x60,	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼		*/
-	ESV_SET_C			=	0x61,	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼		*/
-	ESV_GET				=	0x62,	/* ãã­ããã£å¤èª­ã¿åºãè¦æ±					*/
-	ESV_INF_REQ			=	0x63,	/* ãã­ããã£å¤éç¥è¦æ±						*/
-	ESV_SET_GET			=	0x6E,	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±		*/
-	ESV_SET_RES			=	0x71,	/* ãã­ããã£å¤æ¸ãè¾¼ã¿å¿ç­					*/
-	ESV_GET_RES			=	0x72,	/* ãã­ããã£å¤èª­ã¿åºãå¿ç­					*/
-	ESV_INF				=	0x73,	/* ãã­ããã£å¤éç¥							*/
-	ESV_INFC			=	0x74,	/* ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼				*/
-	ESV_INFC_RES		=	0x7A,	/* ãã­ããã£å¤éç¥å¿ç­						*/
-	ESV_SET_GET_RES		=	0x7E,	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãå¿ç­		*/
-	ESV_SET_I_SNA		=	0x50,	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­			*/
-	ESV_SET_C_SNA		=	0x51,	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­			*/
-	ESV_GET_SNA			=	0x52,	/* ãã­ããã£å¤èª­ã¿åºãä¸å¯å¿ç­				*/
-	ESV_INF_SNA			=	0x53,	/* ãã­ããã£å¤éç¥ä¸å¯å¿ç­					*/
-	ESV_SET_GET_SNA		=	0x5E	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãä¸å¯å¿ç­	*/
+	ESV_NOP				=	0,		/* (機能指定なし)							*/
+	ESV_SET_I			=	0x60,	/* プロパティ値書き込み要求（応答不要）		*/
+	ESV_SET_C			=	0x61,	/* プロパティ値書き込み要求（応答要）		*/
+	ESV_GET				=	0x62,	/* プロパティ値読み出し要求					*/
+	ESV_INF_REQ			=	0x63,	/* プロパティ値通知要求						*/
+	ESV_SET_GET			=	0x6E,	/* プロパティ値書き込み・読み出し要求		*/
+	ESV_SET_RES			=	0x71,	/* プロパティ値書き込み応答					*/
+	ESV_GET_RES			=	0x72,	/* プロパティ値読み出し応答					*/
+	ESV_INF				=	0x73,	/* プロパティ値通知							*/
+	ESV_INFC			=	0x74,	/* プロパティ値通知（応答要）				*/
+	ESV_INFC_RES		=	0x7A,	/* プロパティ値通知応答						*/
+	ESV_SET_GET_RES		=	0x7E,	/* プロパティ値書き込み・読み出し応答		*/
+	ESV_SET_I_SNA		=	0x50,	/* プロパティ値書き込み要求不可応答			*/
+	ESV_SET_C_SNA		=	0x51,	/* プロパティ値書き込み要求不可応答			*/
+	ESV_GET_SNA			=	0x52,	/* プロパティ値読み出し不可応答				*/
+	ESV_INF_SNA			=	0x53,	/* プロパティ値通知不可応答					*/
+	ESV_SET_GET_SNA		=	0x5E	/* プロパティ値書き込み・読み出し不可応答	*/
 } ECN_SRV_CODE;
 
@@ -173,48 +154,46 @@
 
 /*
- *  ECHONET Liteé»æãããã¼
+ *  ECHONET Lite電文ヘッダー
  */
 typedef struct
 {
-	uint8_t	ehd1;		/* ECHONET Liteé»æãããã¼1 ECN_EHD1_ECL_VERSION */
-	uint8_t	ehd2;		/* ECHONET Liteé»æãããã¼2 ECN_EHD2_FORMAT */
-	uint16_t	tid;	/* ãã©ã³ã¶ã¯ã·ã§ã³ID */
+	uint8_t	ehd1;		/* ECHONET Lite電文ヘッダー1 ECN_EHD1_ECL_VERSION */
+	uint8_t	ehd2;		/* ECHONET Lite電文ヘッダー2 ECN_EHD2_FORMAT */
+	uint16_t	tid;	/* トランザクションID */
 } __attribute__((packed)) T_ECN_HDR;
 
 /*
- *  ECHONET Liteãªãã¸ã§ã¯ãã³ã¼ã
+ *  ECHONET Liteオブジェクトコード
  */
 typedef struct
 {
-	uint8_t	eojx1;		/* ã¯ã©ã¹ã°ã«ã¼ãã³ã¼ã */
-	uint8_t	eojx2;		/* ã¯ã©ã¹ã³ã¼ã */
-	uint8_t	eojx3;		/* ã¤ã³ã¹ã¿ã³ã¹ã³ã¼ã */
+	uint8_t	eojx1;		/* クラスグループコード */
+	uint8_t	eojx2;		/* クラスコード */
+	uint8_t	eojx3;		/* インスタンスコード */
 } __attribute__((packed)) T_ECN_EOJ;
 
 /*
- *  ECHONET Liteãã¼ã¿ãããã¼
+ *  ECHONET Liteデータヘッダー
  */
 typedef struct
 {
-	T_ECN_EOJ	seoj;	/* éä¿¡å
-ECHONET Liteãªãã¸ã§ã¯ãæå® */
-	T_ECN_EOJ	deoj;	/* ç¸æå
-ECHONET Liteãªãã¸ã§ã¯ãæå® */
-	uint8_t	esv;		/* ECHONET Liteãµã¼ãã¹ (ECN_SRV_CODE) */
-	uint8_t	opc;		/* å¦çãã­ããã£æ° */
+	T_ECN_EOJ	seoj;	/* 送信元ECHONET Liteオブジェクト指定 */
+	T_ECN_EOJ	deoj;	/* 相手先ECHONET Liteオブジェクト指定 */
+	uint8_t	esv;		/* ECHONET Liteサービス (ECN_SRV_CODE) */
+	uint8_t	opc;		/* 処理プロパティ数 */
 } __attribute__((packed)) T_ECN_EDATA_BODY;
 
 /*
- *  ECHONET Liteãã­ããã£
+ *  ECHONET Liteプロパティ
  */
 typedef struct
 {
-	uint8_t	epc;		/* ECHONET Liteãã­ããã£ã³ã¼ã */
-	uint8_t	pdc;		/* EDTã®ãã¤ãæ° */
-	/*void	*p_edt;*/	/* ãã­ããã£å¤ãã¼ã¿ */
+	uint8_t	epc;		/* ECHONET Liteプロパティコード */
+	uint8_t	pdc;		/* EDTのバイト数 */
+	/*void	*p_edt;*/	/* プロパティ値データ */
 } __attribute__((packed)) T_ECN_PRP;
 
 /*
- *  ECHONET Liteãã¼ã¿
+ *  ECHONET Liteデータ
  */
 typedef struct
@@ -226,5 +205,5 @@
 
 /*
- *  ECHONET Lite é»æ
+ *  ECHONET Lite 電文
  */
 typedef struct echonet_object_data
@@ -246,13 +225,13 @@
 
 /*
- *  å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼
+ *  応答電文解析イテレーター
  */
 typedef struct echonet_epc_enumerator
 {
 	T_EDATA *pk_esv;
-	uint8_t count;			/* ä»èª­ã¿åãä¸­ã®ãã­ãã¯ã«ãããã­ããã£ç·æ° */
-	uint8_t got_ct;			/* ä»èª­ã¿åãä¸­ã®ãã­ãã¯ã§ãèª­ã¿åã£ãæ° */
-	uint8_t next_blk_ct;	/* å¾ç¶ãã­ãã¯æ° */
-	uint8_t is_eof;			/* çµç«¯ã«éããæãé0 */
+	uint8_t count;			/* 今読み取り中のブロックにあるプロパティ総数 */
+	uint8_t got_ct;			/* 今読み取り中のブロックで、読み取った数 */
+	uint8_t next_blk_ct;	/* 後続ブロック数 */
+	uint8_t is_eof;			/* 終端に達した時、非0 */
 	int cur;
 } T_ENUM_EPC;
@@ -263,57 +242,55 @@
 
 /*
- * ECHONET Lite ãã­ããã£ã®è¨­å®é¢æ°
+ * ECHONET Lite プロパティの設定関数
  */
 typedef int (EPRP_SETTER)(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno);
 
 /*
- * ECHONET Lite ãã­ããã£ã®åå¾é¢æ°
+ * ECHONET Lite プロパティの取得関数
  */
 typedef int (EPRP_GETTER)(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size);
 
 /*
- *  ECHONET Lite ãã­ããã£åæåãã­ãã¯
+ *  ECHONET Lite プロパティ初期化ブロック
  */
 struct echonet_property_initialization_block
 {
-	uint8_t		eprpcd;			/* ECHONET Lite ãã­ããã£ã³ã¼ã */
-	ATR			eprpatr;		/* ECHONET Lite ãã­ããã£å±æ§ */
-	uint8_t		eprpsz;			/* ECHONET Lite ãã­ããã£ã®ãµã¤ãº */
-	intptr_t	exinf;			/* ECHONET Lite ãã­ããã£ã®æ¡å¼µæ
-å ± */
-	EPRP_SETTER	*eprpset;		/* ECHONET Lite ãã­ããã£ã®è¨­å®é¢æ° */
-	EPRP_GETTER	*eprpget;		/* ECHONET Lite ãã­ããã£ã®åå¾é¢æ° */
+	uint8_t		eprpcd;			/* ECHONET Lite プロパティコード */
+	ATR			eprpatr;		/* ECHONET Lite プロパティ属性 */
+	uint8_t		eprpsz;			/* ECHONET Lite プロパティのサイズ */
+	intptr_t	exinf;			/* ECHONET Lite プロパティの拡張情報 */
+	EPRP_SETTER	*eprpset;		/* ECHONET Lite プロパティの設定関数 */
+	EPRP_GETTER	*eprpget;		/* ECHONET Lite プロパティの取得関数 */
 };
 
-#define TMIN_EOBJID		1		/* ECHONET Lite ãªãã¸ã§ã¯ãIDã®æå°å¤ */
-
-/*
- *  ECHONET Lite ãªãã¸ã§ã¯ãåæåãã­ãã¯
+#define TMIN_EOBJID		1		/* ECHONET Lite オブジェクトIDの最小値 */
+
+/*
+ *  ECHONET Lite オブジェクト初期化ブロック
  */
 typedef struct echonet_object_initialization_block
 {
-	ATR			eobjatr;		/* ECHONET Lite ãªãã¸ã§ã¯ãå±æ§ */
-	ID			enodid;			/* ECHONET Lite ãã¼ããã­ãã¡ã¤ã«ãªãã¸ã§ã¯ãID */
-	intptr_t	exinf;			/* ECHONET Lite ãªãã¸ã§ã¯ãã®æ¡å¼µæ
-å ± */
-	uint8_t		eojx1;			/* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ã°ã«ã¼ãã³ã¼ã */
-	uint8_t		eojx2;			/* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ã³ã¼ã */
-	uint8_t		eojx3;			/* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã³ã¼ã */
-	const EPRPINIB **eprp;		/* ECHONET Lite ãã­ããã£åæåãã­ãã¯ */
-	uint_t		eprpcnt;		/* ECHONET Lite ãã­ããã£åæåãã­ãã¯æ° */
+	ATR			eobjatr;		/* ECHONET Lite オブジェクト属性 */
+	ID			enodid;			/* ECHONET Lite ノードプロファイルオブジェクトID */
+	intptr_t	exinf;			/* ECHONET Lite オブジェクトの拡張情報 */
+	uint8_t		eojx1;			/* ECHONET Lite オブジェクトのクラスグループコード */
+	uint8_t		eojx2;			/* ECHONET Lite オブジェクトのクラスコード */
+	uint8_t		eojx3;			/* ECHONET Lite オブジェクトのインスタンスコード */
+	const EPRPINIB **eprp;		/* ECHONET Lite プロパティ初期化ブロック */
+	uint_t		eprpcnt;		/* ECHONET Lite プロパティ初期化ブロック数 */
 } EOBJINIB;
 
 /*
- *  ECHONET Lite ãã¼ãç®¡çãã­ãã¯
+ *  ECHONET Lite ノード管理ブロック
  */
 typedef struct echonet_object_control_block
 {
-	const EOBJINIB *profile;	/* ECHONET Lite ãã¼ããã­ãã¡ã¤ã«ã¸ã®ãã¤ã³ã¿ */
-	const EOBJINIB **eobjs;		/* ECHONET Lite ãªãã¸ã§ã¯ããªã¹ãã¸ã®ãã¤ã³ã¿ */
-	uint_t		eobjcnt;		/* ECHONET Lite ãªãã¸ã§ã¯ãæ° */
+	const EOBJINIB *profile;	/* ECHONET Lite ノードプロファイルへのポインタ */
+	const EOBJINIB **eobjs;		/* ECHONET Lite オブジェクトリストへのポインタ */
+	uint_t		eobjcnt;		/* ECHONET Lite オブジェクト数 */
 } EOBJCB;
 
 /*
- *  ECHONET Lite ãªãã¸ã§ã¯ãæ©è½ã®åæå
+ *  ECHONET Lite オブジェクト機能の初期化
  */
 extern void initialize_echonet_object(void);
@@ -324,125 +301,120 @@
 
 /*
- * ECHONET Liteãµã¼ãã¹å¦çéå§
+ * ECHONET Liteサービス処理開始
  */
 ER ecn_sta_svc(ecnl_svc_task_t *svc);
 
 /*
- * ECHONETãªãã¸ã§ã¯ãåç
-§
+ * ECHONETオブジェクト参照
  */
 ER ecn_ref_eobj(ecnl_svc_task_t *svc, ID eobjid, T_REOBJ *pk_eobj);
 
 /*
- * ECHONETãã­ããã£åç
-§
+ * ECHONETプロパティ参照
  */
 ER ecn_ref_eprp(ecnl_svc_task_t *svc, ID eobjid, uint8_t epc, T_RPRP *pk_eprp);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æä½æ
+ * プロパティ値書き込み要求（応答不要）電文作成
  */
 ER ecn_esv_seti(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æä½æ
+ * プロパティ値書き込み要求（応答要）電文作成
  */
 ER ecn_esv_setc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æä½æ
+ * プロパティ値読み出し要求電文作成
  */
 ER ecn_esv_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
 
 /*
- * ãã­ããã£å¤éç¥è¦æ±é»æä½æ
+ * プロパティ値通知要求電文作成
  */
 ER ecn_esv_inf_req(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æ
+ * プロパティ値書き込み・読み出し要求電文作成
  */
 ER ecn_esv_set_get(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»ææãè¿ãæå®
+ * プロパティ値書き込み・読み出し要求電文折り返し指定
  */
 ER ecn_trn_set_get(mrb_state *mrb, T_EDATA *pk_esv, int *p_trn_pos);
 
 /*
- * ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æçµäºæå®
+ * プロパティ値書き込み・読み出し要求電文終了指定
  */
 ER ecn_end_set_get(mrb_state *mrb, T_EDATA *pk_esv, int trn_pos);
 
 /*
- * ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼é»æä½æ
+ * プロパティ値通知（応答要）電文作成
  */
 ER ecn_esv_infc(ecnl_svc_task_t *svc, T_EDATA **ppk_esv, ID eobjid, ID seobjid, uint8_t sepc);
 
 /*
- * è¦æ±é»æã¸ã®ãã­ããã£æå®è¿½å 
+ * 要求電文へのプロパティ指定追加
  */
 ER ecn_add_epc(mrb_state *mrb, T_EDATA *pk_esv, uint8_t epc);
 
 /*
- * è¦æ±é»æã¸ã®ãã­ããã£ãã¼ã¿è¿½å 
+ * 要求電文へのプロパティデータ追加
  */
 ER ecn_add_edt(mrb_state *mrb, T_EDATA *pk_esv, uint8_t epc, uint8_t pdc, const void *p_edt);
 
 /*
- * è¦æ±é»æã®éä¿¡
+ * 要求電文の送信
  */
 ER ecn_snd_esv(ecnl_svc_task_t *svc, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æã®åä¿¡ãã¼ãªã³ã°
+ * 応答電文の受信ポーリング
  */
 ER ecn_prcv_esv(ecnl_svc_task_t *svc, T_EDATA **ppk_esv);
 
 /*
- * å¿ç­é»æã®ç ´æ£
+ * 応答電文の破棄
  */
 ER ecn_rel_esv(mrb_state *mrb, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æã®éä¿¡å
-ãã¼ããåå¾ãã
+ * 応答電文の送信元ノードを取得する
  */
 ID ecn_get_enod(ecnl_svc_task_t *svc, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æã®éä¿¡å
-æ©å¨ãªãã¸ã§ã¯ããåå¾ãã
+ * 応答電文の送信元機器オブジェクトを取得する
  */
 ID ecn_get_eobj(ecnl_svc_task_t *svc, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼åæå
+ * 応答電文解析イテレーター初期化
  */
 ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv);
 
 /*
- * å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã
+ * 応答電文解析イテレーターインクリメント
  */
 ER ecn_itr_nxt(mrb_state *mrb, T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt);
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿éä¿¡
+ * 応答電文待ちの割り込み送信
  */
 ER ecn_brk_wai(ecnl_svc_task_t *svc, const void *p_dat, int datsz);
 
 /*
- * å²ãè¾¼ã¿ãã¼ã¿ã®åå¾
+ * 割り込みデータの取得
  */
 ER ecn_get_brk_dat(mrb_state *mrb, T_EDATA *pk_esv, void *p_buf, int bufsz, int *p_datsz);
 
 /*
- * ãã¼ã¿è¨­å®é¢æ°
+ * データ設定関数
  */
 int ecn_data_prop_set(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno);
 
 /*
- * ãã¼ã¿åå¾é¢æ°
+ * データ取得関数
  */
 int ecn_data_prop_get(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size);
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2015-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *		ECHONET Lite åççæãã¼ã
+ *		ECHONET Lite 動的生成ノード
  */
 
@@ -158,7 +143,7 @@
 
 /*
- *  ã­ã¥ã¼ã®åæå
+ *  キューの初期化
  *
- *  p_queueã«ã¯ã­ã¥ã¼ããããæå®ããï¼
+ *  p_queueにはキューヘッダを指定する．
  */
 static void
@@ -173,11 +158,8 @@
 
 /*
- *  ã­ã¥ã¼ã®åã¨ã³ããªã¸ã®æ¿å
-¥
+ *  キューの前エントリへの挿入
  *
- *  p_queueã®åã«p_entryãæ¿å
-¥ããï¼p_queueã«ã­ã¥ã¼ããããæå®ããå ´
- *  åã«ã¯ï¼ã­ã¥ã¼ã®æ«å°¾ã«p_entryãæ¿å
-¥ãããã¨ã«ãªãï¼
+ *  p_queueの前にp_entryを挿入する．p_queueにキューヘッダを指定した場
+ *  合には，キューの末尾にp_entryを挿入することになる．
  */
 static void
@@ -195,7 +177,7 @@
 
 /*
- *  ã¨ã³ããªã®åé¤
+ *  エントリの削除
  *
- *  p_entryãã­ã¥ã¼ããåé¤ããï¼
+ *  p_entryをキューから削除する．
  */
 static void
@@ -310,5 +292,5 @@
 	int i = eobjid;
 
-	/* ãªãã¸ã§ã¯ãIDããå®ä½ãåå¾ */
+	/* オブジェクトIDから実体を取得 */
 	i -= (svc->tmax_eobjid + 1);
 	if ((i < 0)
@@ -321,8 +303,8 @@
 		return false;
 
-	/* ãªãã¸ã§ã¯ãã®EOJãã³ãã¼ */
+	/* オブジェクトのEOJをコピー */
 	memcpy(eoj, &buf->cnt.obj.inib.eojx1, sizeof(*eoj));
 
-	/* æå±ãããã¼ãã®ãªãã¸ã§ã¯ãIDãåå¾ */
+	/* 所属するノードのオブジェクトIDを取得 */
 	if(buf->cnt.obj.inib.enodid == 0)
 		i = buf->cnt.obj.eobjId;
@@ -336,5 +318,5 @@
 	}
 
-	/* ãã¼ãIDãåå¾ */
+	/* ノードIDを取得 */
 	buf = &agent->blockes[i];
 	*enodid = buf->cnt.node.node.enodId;
@@ -365,11 +347,10 @@
 void ecn_agent_init(ecnl_svc_task_t *svc)
 {
-	svc->agent.eprpinib.eprpcd = 0x00;					/* ãã­ããã£ã³ã¼ã */
-	svc->agent.eprpinib.eprpatr = EPC_RULE_SET | EPC_RULE_GET;		/* ãã­ããã£å±æ§ */
-	svc->agent.eprpinib.eprpsz = 255;					/* ãã­ããã£ã®ãµã¤ãº */
-	svc->agent.eprpinib.exinf = (intptr_t)&svc->agent;	/* ãã­ããã£ã®æ¡å¼µæ
-å ± */
-	svc->agent.eprpinib.eprpset = ecn_agent_eprpset;	/* ãã­ããã£ã®è¨­å®é¢æ° */
-	svc->agent.eprpinib.eprpget = ecn_agent_eprpget;	/* ãã­ããã£ã®åå¾é¢æ° */
+	svc->agent.eprpinib.eprpcd = 0x00;					/* プロパティコード */
+	svc->agent.eprpinib.eprpatr = EPC_RULE_SET | EPC_RULE_GET;		/* プロパティ属性 */
+	svc->agent.eprpinib.eprpsz = 255;					/* プロパティのサイズ */
+	svc->agent.eprpinib.exinf = (intptr_t)&svc->agent;	/* プロパティの拡張情報 */
+	svc->agent.eprpinib.eprpset = ecn_agent_eprpset;	/* プロパティの設定関数 */
+	svc->agent.eprpinib.eprpget = ecn_agent_eprpget;	/* プロパティの取得関数 */
 
 	svc->agent.peprpinib = &svc->agent.eprpinib;
@@ -390,5 +371,5 @@
 	T_ECN_EOJ *eoj, *end;
 
-	// ãã­ããã£éç¥ãåå¾å¿ç­ã§ã
+	// プロパティ通知か取得応答で、
 	switch (esv->hdr.edata.esv) {
 	case ESV_GET_RES:
@@ -400,5 +381,5 @@
 	}
 
-	// ãã¼ããã­ãã¡ã¤ã«å®ã®å ´å
+	// ノードプロファイル宛の場合
 	eoj = &esv->hdr.edata.seoj;
 	if ((eoj->eojx1 != EOJ_X1_PROFILE) || (eoj->eojx2 != EOJ_X2_NODE_PROFILE)
@@ -413,9 +394,9 @@
 	while (ecn_itr_nxt(mrb, &enm, &epc, &pdc, &edt) == E_OK) {
 		switch (epc) {
-		// ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®å ´å
+		// インスタンスリスト通知の場合
 		case 0xD5:
-		// èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³éç¥ã®å ´å
+		// 自ノードインスタンスリストＳ通知の場合
 		case 0xD6:
-			// ãµã¤ãºãåããªãå ´å
+			// サイズが合わない場合
 			if (pdc != (1 + edt[0] * sizeof(T_ECN_EOJ)))
 				return NULL;
@@ -765,8 +746,7 @@
 	ecn_obj_t *sobj;
 
-	/* éçã«å®ç¾©ãããéä¿¡å
-ã®å ´å */
+	/* 静的に定義された送信元の場合 */
 	if ((*ppk_snod != NULL) && (*ppk_snod)->eobjs != NULL) {
-		/* å¦çããªã */
+		/* 処理しない */
 		return;
 	}
@@ -774,10 +754,7 @@
 	snod = ecn_agent_find_node2(svc, *ppk_snod);
 
-	/* éä¿¡å
-ãç¥ããªãã£ãã */
+	/* 送信元を知らなかったら */
 	if (snod == NULL) {
-		/* éä¿¡å
-ã®ãã¼ãæ
-å ±ãæ°è¦ã«ä½æ */
+		/* 送信元のノード情報を新規に作成 */
 		snod = ecn_agent_create_node(svc, agent, esv);
 		if (snod == NULL)
@@ -787,10 +764,10 @@
 	sobj = ecn_agent_find_obj2(snod, *ppk_sobj);
 
-	/* ãã¼ããã­ãã¡ã¤ã«ã®å ´å */
+	/* ノードプロファイルの場合 */
 	if ((esv->hdr.edata.seoj.eojx1 == EOJ_X1_PROFILE)
 		&& (esv->hdr.edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
 		sobj = &snod->node.base;
 	}
-	/* æ©å¨ãªãã¸ã§ã¯ãã®å ´å */
+	/* 機器オブジェクトの場合 */
 	else {
 		sobj = ecn_agent_find_eobj(&snod->node.eobj, esv->hdr.edata.seoj);
@@ -837,5 +814,5 @@
 	ecn_obj_t *obj = node->current;
 
-	// ãã­ããã£å¤èª­ã¿åºãè¦æ±
+	// プロパティ値読み出し要求
 	ecn_esv_get(svc, &esv, obj->eobjId, 0x9E);
 	ecn_snd_esv(svc, esv);
@@ -850,5 +827,5 @@
 	ecn_obj_t *obj = node->current;
 
-	// ãã­ããã£å¤èª­ã¿åºãè¦æ±
+	// プロパティ値読み出し要求
 	ecn_esv_get(svc, &esv, obj->eobjId, 0x9F);
 	ecn_snd_esv(svc, esv);
@@ -863,5 +840,5 @@
 	ecn_obj_t *obj = node->current;
 
-	// ãã­ããã£å¤èª­ã¿åºãè¦æ±
+	// プロパティ値読み出し要求
 	ecn_esv_get(svc, &esv, obj->eobjId, 0x9D);
 	ecn_snd_esv(svc, esv);
@@ -877,22 +854,21 @@
 	ecn_device_t *device;
 
-	/* objãæå®ããã¦ããªãå ´å */
+	/* objが指定されていない場合 */
 	if(obj == NULL){
-		/* ãã®ãã¼ããè¿ã */
+		/* このノードを返す */
 		node->current = &node->node.base;
 		return;
 	}
-	/* ãã¼ãã®å ´å */
+	/* ノードの場合 */
 	else if((obj->inib.eojx1 == EOJ_X1_PROFILE) && (obj->inib.eojx2 == EOJ_X2_NODE_PROFILE)){
 		node = (ecn_node_agent_t *)obj;
 
-		/* é
-ä¸ã®æ©å¨ãè¿ã */
+		/* 配下の機器を返す */
 		queue = node->node.devices.p_next;
 		device = (ecn_device_t *)cast_obj(queue);
 	}
-	/* æ©å¨ã®å ´å */
+	/* 機器の場合 */
 	else{
-		/* æ¬¡ã®æ©å¨ãè¿ã */
+		/* 次の機器を返す */
 		node = (ecn_node_agent_t *)((ecn_device_t *)obj)->node;
 		queue = cast_queue(obj)->p_next;
@@ -900,5 +876,5 @@
 	}
 
-	/* ãã®æ©å¨ãæ«å°¾ã ã£ãå ´å */
+	/* その機器が末尾だった場合 */
 	if(&node->node.devices == queue){
 		node->current = NULL;
@@ -1037,6 +1013,5 @@
 	bool_t has = false;
 
-	/* ãã¼ãã®å ´åã¯ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã¨èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³éç¥ãå¿
-é ã§åãåã */
+	/* ノードの場合はインスタンスリスト通知と自ノードインスタンスリストＳ通知を必須で受け取る */
 	if ((fp_obj->enodid == 0) && ((fa_epc == 0xD5) || (fa_epc == 0xD6)))
 		has = true;
@@ -1072,7 +1047,7 @@
 
 	switch (item->eprpcd) {
-	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®å ´å */
+	/* インスタンスリスト通知の場合 */
 	case 0xD5:
-	/* èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³éç¥ã®å ´å */
+	/* 自ノードインスタンスリストＳ通知の場合 */
 	case 0xD6:
 		if ((node != NULL) && (node->state == ecn_node_state_idle)) {
@@ -1092,10 +1067,10 @@
 		}
 		break;
-	/* éç¥ãã­ããã£ãããã®å ´å */
+	/* 通知プロパティマップの場合 */
 	case 0x9D:
 		eprpcnt = edt[0];
 
 		if (eprpcnt < 16) {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (eprpcnt + 1 != size)
 				return 0;
@@ -1105,5 +1080,5 @@
 		}
 		else {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (size != 17)
 				return 0;
@@ -1114,10 +1089,10 @@
 		sobj->pmapFlag |= PMAP_FLAG_ANNO;
 		break;
-	/* SETãã­ããã£ãããã®å ´å */
+	/* SETプロパティマップの場合 */
 	case 0x9E:
 		eprpcnt = edt[0];
 
 		if (eprpcnt < 16) {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (eprpcnt + 1 != size)
 				return 0;
@@ -1127,5 +1102,5 @@
 		}
 		else {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (size != 17)
 				return 0;
@@ -1136,10 +1111,10 @@
 		sobj->pmapFlag |= PMAP_FLAG_SET;
 		break;
-	/* GETãã­ããã£ãããã®å ´å */
+	/* GETプロパティマップの場合 */
 	case 0x9F:
 		eprpcnt = edt[0];
 
 		if (eprpcnt < 16) {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (eprpcnt + 1 != size)
 				return 0;
@@ -1149,5 +1124,5 @@
 		}
 		else {
-			/* ãµã¤ãºãã§ãã¯ */
+			/* サイズチェック */
 			if (size != 17)
 				return 0;
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2015-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *		ECHONET Lite åççæãã¼ã
+ *		ECHONET Lite 動的生成ノード
  */
 
@@ -65,12 +50,12 @@
 
 /*
- *  ã­ã¥ã¼ã®ãã¼ã¿æ§é ã®å®ç¾©
+ *  キューのデータ構造の定義
  */
 typedef struct ecn_agent_queue {
 #ifdef _DEBUG
-	struct ecn_agent_queue *p_parent;	/* è¦ªã­ã¥ã¼ã¸ã®ãã¤ã³ã¿ */
+	struct ecn_agent_queue *p_parent;	/* 親キューへのポインタ */
 #endif
-	struct ecn_agent_queue *p_next;		/* æ¬¡ã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
-	struct ecn_agent_queue *p_prev;		/* åã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
+	struct ecn_agent_queue *p_next;		/* 次エントリへのポインタ */
+	struct ecn_agent_queue *p_prev;		/* 前エントリへのポインタ */
 } ecn_agent_queue_t;
 
@@ -84,13 +69,12 @@
 	ID eobjId;
 	EOBJINIB inib;
-	uint8_t pmapSet[16];		/* SETãã­ããã£ããã */
-	uint8_t pmapGet[16];		/* GETãã­ããã£ããã */
-	uint8_t pmapAnno[16];		/* ç¶æ
-å¤åæéç¥ãã­ããã£ããã */
+	uint8_t pmapSet[16];		/* SETプロパティマップ */
+	uint8_t pmapGet[16];		/* GETプロパティマップ */
+	uint8_t pmapAnno[16];		/* 状態変化時通知プロパティマップ */
 	uint8_t pmapFlag;
-	uint8_t eprpcnt;			/* ECHONET Lite ãã­ããã£æ° */
-	uint8_t annocnt;			/* éç¥ãã­ããã£ã®æ° */
-	uint8_t setcnt;				/* è¨­å®ãã­ããã£ã®æ° */
-	uint8_t getcnt;				/* åå¾ãã­ããã£ã®æ° */
+	uint8_t eprpcnt;			/* ECHONET Lite プロパティ数 */
+	uint8_t annocnt;			/* 通知プロパティの数 */
+	uint8_t setcnt;				/* 設定プロパティの数 */
+	uint8_t getcnt;				/* 取得プロパティの数 */
 } ecn_obj_t;
 
@@ -158,13 +142,11 @@
 typedef struct ecn_inm_get_device_item
 {
-	ID			eobjid;			/* ECHONET Lite ãªãã¸ã§ã¯ãID */
-	ID			enodid;			/* ECHONET Lite ãã¼ããã­ãã¡ã¤ã«ãªãã¸ã§ã¯ãID */
-	uint8_t		state;			/* æ
-å ±åéç¶æ
- */
-	uint8_t		eojx1;			/* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ã°ã«ã¼ãã³ã¼ã */
-	uint8_t		eojx2;			/* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ã³ã¼ã */
-	uint8_t		eojx3;			/* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã³ã¼ã */
-	ECN_ENOD_ID	addrid;			/* éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹åå¾ç¨ID */
+	ID			eobjid;			/* ECHONET Lite オブジェクトID */
+	ID			enodid;			/* ECHONET Lite ノードプロファイルオブジェクトID */
+	uint8_t		state;			/* 情報収集状態 */
+	uint8_t		eojx1;			/* ECHONET Lite オブジェクトのクラスグループコード */
+	uint8_t		eojx2;			/* ECHONET Lite オブジェクトのクラスコード */
+	uint8_t		eojx3;			/* ECHONET Lite オブジェクトのインスタンスコード */
+	ECN_ENOD_ID	addrid;			/* 通信レイヤーアドレス取得用ID */
 } ecn_inm_get_device_item_t;
 
@@ -191,30 +173,29 @@
 } ecn_inm_get_device_info_res_t;
 
-/* åæå */
+/* 初期化 */
 void ecn_agent_init(ecnl_svc_task_t *svc);
-/* ãã¼ããæ¤ç´¢ */
+/* ノードを検索 */
 ecn_node_t *ecn_agent_find_node(ecnl_svc_task_t *svc, ECN_ENOD_ID enodid);
-/* æ©å¨ãæ¤ç´¢ */
+/* 機器を検索 */
 ecn_obj_t *ecn_agent_find_eobj(const EOBJCB *pk_nod, T_ECN_EOJ eoj);
-/* ãªãã¸ã§ã¯ãIDãåå¾ */
+/* オブジェクトIDを取得 */
 ID ecn_agent_get_eobj(const EOBJINIB *pk_obj);
-/* æ¬¡ã®æ©å¨ãåå¾ */
+/* 次の機器を取得 */
 const EOBJINIB *ecn_agent_next_eobj(const EOBJCB *pk_nod, const EOBJINIB *pk_obj);
-/* ãªãã¸ã§ã¯ãIDããEOJã¨ãã¼ãIDãåå¾ */
+/* オブジェクトIDからEOJとノードIDを取得 */
 bool_t ecn_agent_get_eoj_enodid(ecnl_svc_task_t *svc, ID eobjid, T_ECN_EOJ *eoj, ECN_ENOD_ID *enodid);
-/* ã¿ã¤ã ã¢ã¦ãå¤ãè¿ã */
+/* タイムアウト値を返す */
 TMO ecn_agent_get_timer(ecnl_svc_task_t *svc);
-/* ã¿ã¤ãã¼ã®æéãé²ãã */
+/* タイマーの時間を進める */
 void ecn_agent_progress(ecnl_svc_task_t *svc, TMO interval);
-/* ã¿ã¤ã ã¢ã¦ãå¦çï¼ã®ããã®å¼ã³åºãï¼ */
+/* タイムアウト処理（のための呼び出し） */
 void ecn_agent_timeout(ecnl_svc_task_t *svc);
-/* å
-é¨ã¡ãã»ã¼ã¸å¦ç */
+/* 内部メッセージ処理 */
 bool_t ecn_agent_proc_int_msg(ecnl_svc_task_t *svc, ECN_FBS_ID fbs, uint8_t cmd);
-/* ECHONETé»æåä¿¡å¦ç */
+/* ECHONET電文受信処理 */
 void ecn_agent_proc_ecn_msg(ecnl_svc_task_t *svc, const EOBJCB **snod, const EOBJINIB **sobj, T_EDATA *esv);
-/* ECHONETé»æåä¿¡å¦ççµäº */
+/* ECHONET電文受信処理終了 */
 void ecn_agent_proc_ecn_msg_end(ecnl_svc_task_t *svc);
-/* ãã­ããã£ãåå¾ */
+/* プロパティを取得 */
 const EPRPINIB *ecn_agent_get_property(const EOBJINIB *fp_obj, uint8_t fa_epc, const EPRPINIB *item);
 
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_class.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_class.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_class.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
@@ -53,576 +38,557 @@
 #define ECHONET_CLASS_H
 
-/* ã»ã³ãµã¼é¢é£æ©å¨ */
+/* センサー関連機器 */
 #define EOJ_X1_SENSOR 0x00
 
-/* ç©ºèª¿é¢é£æ©å¨ */
+/* 空調関連機器 */
 #define EOJ_X1_AIR_CONDITIONER 0x01
 
-/* ä½å®
-ã»è¨­åé¢é£æ©å¨ */
+/* 住宅・設備関連機器 */
 #define EOJ_X1_AMENITY 0x02
 
-/* èª¿çã»å®¶äºé¢é£æ©å¨ */
+/* 調理・家事関連機器 */
 #define EOJ_X1_HOUSEWORK 0x03
 
-/* å¥åº·é¢é£æ©å¨ */
+/* 健康関連機器 */
 #define EOJ_X1_WELLNESS 0x04
 
-/* ç®¡çã»æä½é¢é£æ©å¨ */
+/* 管理・操作関連機器 */
 #define EOJ_X1_CONTROLLER 0x05
 
-/* AVé¢é£æ©å¨ */
+/* AV関連機器 */
 #define EOJ_X1_AUDIO_VISUAL 0x06
 
-/* ãã­ãã¡ã¤ã« */
+/* プロファイル */
 #define EOJ_X1_PROFILE 0x0E
 
-/* ã¦ã¼ã¶ã¼å®ç¾© */
+/* ユーザー定義 */
 #define EOJ_X1_USER_DEFINED 0x0F
 
 /*
- * ã»ã³ãµé¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ã¬ã¹æ¼ãã»ã³ãµ */
+ * センサ関連機器クラスグループ *
+ */
+/* ガス漏れセンサ */
 #define EOJ_X2_GAS_LEAK_SENSOR 0x01
 
-/* é²ç¯ã»ã³ãµ */
+/* 防犯センサ */
 #define EOJ_X2_CRIME_PREVENTION_SENSOR 0x02
 
-/* éå¸¸ãã¿ã³ */
+/* 非常ボタン */
 #define EOJ_X2_EMERGENCY_BUTTON 0x03
 
-/* ææ¥ç¨ã»ã³ãµ */
+/* 救急用センサ */
 #define EOJ_X2_FIRST_AID_SENSOR 0x04
 
-/* å°éã»ã³ãµ */
+/* 地震センサ */
 #define EOJ_X2_EARTHQUAKE_SENSOR 0x05
 
-/* æ¼é»ã»ã³ãµ */
+/* 漏電センサ */
 #define EOJ_X2_ELECTRIC_LEAK_SENSOR 0x06
 
-/* äººä½æ¤ç¥ã»ã³ãµ */
+/* 人体検知センサ */
 #define EOJ_X2_HUMAN_DETECTION_SENSOR 0x07
 
-/* æ¥å®¢ã»ã³ãµ */
+/* 来客センサ */
 #define EOJ_X2_VISITOR_SENSOR 0x08
 
-/* å¼ã³åºãã»ã³ãµ */
+/* 呼び出しセンサ */
 #define EOJ_X2_CALL_SENSOR 0x09
 
-/* çµé²ã»ã³ãµ */
+/* 結露センサ */
 #define EOJ_X2_CONDENSATION_SENSOR 0x0A
 
-/* ç©ºæ°æ±æã»ã³ãµ */
+/* 空気汚染センサ */
 #define EOJ_X2_AIR_POLLUTION_SENSOR 0x0B
 
-/* é
-¸ç´ ã»ã³ãµ */
+/* 酸素センサ */
 #define EOJ_X2_OXYGEN_SENSOR 0x0C
 
-/* ç
-§åº¦ã»ã³ãµ */
+/* 照度センサ */
 #define EOJ_X2_ILLUMINANCE_SENSOR 0x0D
 
-/* é³ã»ã³ãµ */
+/* 音センサ */
 #define EOJ_X2_SOUND_SENSOR 0x0E
 
-/* æå½ã»ã³ãµ */
+/* 投函センサ */
 #define EOJ_X2_MAILING_SENSOR 0x0F
 
-/* éè·ã»ã³ãµ */
+/* 重荷センサ */
 #define EOJ_X2_WEIGHT_SENSOR 0x10
 
-/* æ¸©åº¦ã»ã³ãµ */
+/* 温度センサ */
 #define EOJ_X2_TEMPERATURE_SENSOR 0x11
 
-/* æ¹¿åº¦ã»ã³ãµ */
+/* 湿度センサ */
 #define EOJ_X2_HUMIDITY_SENSOR 0x12
 
-/* é¨ã»ã³ãµ */
+/* 雨センサ */
 #define EOJ_X2_RAIN_SENSOR 0x13
 
-/* æ°´ä½ã»ã³ãµ */
+/* 水位センサ */
 #define EOJ_X2_WATER_LEVEL_SENSOR 0x14
 
-/* é¢¨åæ°´ä½ã»ã³ãµ */
+/* 風呂水位センサ */
 #define EOJ_X2_BATH_WATER_LEVEL_SENSOR 0x15
 
-/* é¢¨åæ²¸ãä¸ããã»ã³ãµ */
+/* 風呂沸き上がりセンサ */
 #define EOJ_X2_BATH_HEATING_STATUS_SENSOR 0x16
 
-/* æ°´æ¼ãã»ã³ãµ */
+/* 水漏れセンサ */
 #define EOJ_X2_WATER_LEAK_SENSOR 0x17
 
-/* æ°´ããµãã»ã³ãµ */
+/* 水あふれセンサ */
 #define EOJ_X2_WATER_OVERFLOW_SENSOR 0x18
 
-/* ç«ç½ã»ã³ãµ */
+/* 火災センサ */
 #define EOJ_X2_FIRE_SENSOR 0x19
 
-/* ã¿ãã³ç
-ã»ã³ãµ */
+/* タバコ煙センサ */
 #define EOJ_X2_CIGARETTE_SMOKE_SENSOR 0x1A
 
-/* ï¼£ï¼¯ï¼ã»ã³ãµ */
+/* ＣＯ２センサ */
 #define EOJ_X2_CO2_SENSOR 0x1B
 
-/* ã¬ã¹ã»ã³ãµ */
+/* ガスセンサ */
 #define EOJ_X2_GAS_SENSOR 0x1C
 
-/* ï¼¶ï¼¯ï¼£ã»ã³ãµ */
+/* ＶＯＣセンサ */
 #define EOJ_X2_VOC_SENSOR 0x1D
 
-/* å·®å§ã»ã³ãµ */
+/* 差圧センサ */
 #define EOJ_X2_DIFFERENTIAL_PRESSURE_SENSOR 0x1E
 
-/* é¢¨éã»ã³ãµ */
+/* 風速センサ */
 #define EOJ_X2_AIR_SPEED_SENSOR 0x1F
 
-/* è­ãã»ã³ãµ */
+/* 臭いセンサ */
 #define EOJ_X2_ODOR_SENSOR 0x20
 
-/* çã»ã³ãµ */
+/* 炎センサ */
 #define EOJ_X2_FLAME_SENSOR 0x21
 
-/* é»åéã»ã³ãµ */
+/* 電力量センサ */
 #define EOJ_X2_ELECTRIC_ENERGY_SENSOR 0x22
 
-/* é»æµéã»ã³ãµ */
+/* 電流量センサ */
 #define EOJ_X2_CURRENT_VALUE_SENSOR 0x23
 
-/* æ¼å
-ã»ã³ãµ */
+/* 昼光センサ */
 #define EOJ_X2_DAYLIGHT_SENSOR 0x24
 
-/* æ°´æµéã»ã³ãµ */
+/* 水流量センサ */
 #define EOJ_X2_WATER_FLOW_RATE_SENSOR 0x25
 
-/* å¾®åã»ã³ãµ */
+/* 微動センサ */
 #define EOJ_X2_MICROMOTION_SENSOR 0x26
 
-/* ééã»ã³ãµ */
+/* 通過センサ */
 #define EOJ_X2_PASSAGE_SENSOR 0x27
 
-/* å¨åºã»ã³ãµ */
+/* 在床センサ */
 #define EOJ_X2_BED_PRESENCE_SENSOR 0x28
 
-/* ééã»ã³ãµ */
+/* 開閉センサ */
 #define EOJ_X2_OPEN_CLOSE_SENSOR 0x29
 
-/* æ´»åéã»ã³ãµ */
+/* 活動量センサ */
 #define EOJ_X2_ACTIVITY_AMOUNT_SENSOR 0x2A
 
-/* äººä½ä½ç½®ã»ã³ãµ */
+/* 人体位置センサ */
 #define EOJ_X2_HUMAN_BODY_LOCATION_SENSOR 0x2B
 
-/* éªã»ã³ãµ */
+/* 雪センサ */
 #define EOJ_X2_SNOW_SENSOR 0x2C
 
 /*
- * ç©ºèª¿é¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* å®¶åº­ç¨ã¨ã¢ã³ã³ */
+ * 空調関連機器クラスグループ *
+ */
+/* 家庭用エアコン */
 #define EOJ_X2_HOME_AIR_CONDITIONER 0x30
 
-/* å·é¢¨æ© */
+/* 冷風機 */
 #define EOJ_X2_COLD_BLASTER 0x31
 
-/* æé¢¨æ© */
+/* 扇風機 */
 #define EOJ_X2_ELECTRIC_FAN 0x32
 
-/* ææ°æ */
+/* 換気扇 */
 #define EOJ_X2_VENTILATION_FAN 0x33
 
-/* ç©ºèª¿ææ°æ */
+/* 空調換気扇 */
 #define EOJ_X2_AIR_CONDITIONING_VENTILATION_FAN 0x34
 
-/* ç©ºæ°æ¸
-æµå¨ */
+/* 空気清浄器 */
 #define EOJ_X2_AIR_CLEANER 0x35
 
-/* å·é¢¨æ */
+/* 冷風扇 */
 #define EOJ_X2_COLD_BLAST_FAN 0x36
 
-/* ãµã¼ã­ã¥ã¬ã¼ã¿ */
+/* サーキュレータ */
 #define EOJ_X2_CIRCULATOR 0x37
 
-/* é¤æ¹¿æ© */
+/* 除湿機 */
 #define EOJ_X2_DEHUMIDIFIER 0x38
 
-/* å æ¹¿å¨ */
+/* 加湿器 */
 #define EOJ_X2_HUMIDIFIER 0x39
 
-/* å¤©äºæ */
+/* 天井扇 */
 #define EOJ_X2_CEILING_FAN 0x3A
 
-/* é»æ°ããã¤ */
+/* 電気こたつ */
 #define EOJ_X2_ELECTRIC_KOTATSU 0x3B
 
-/* é»æ°ããã */
+/* 電気あんか */
 #define EOJ_X2_ELECTRIC_HEATING_PAD 0x3C
 
-/* é»æ°æ¯å¸ */
+/* 電気毛布 */
 #define EOJ_X2_ELECTRIC_BLANKET 0x3D
 
-/* ã¹ãã¼ã */
+/* ストーブ */
 #define EOJ_X2_SPACE_HEATER 0x3E
 
-/* ããã«ãã¼ã¿ */
+/* パネルヒータ */
 #define EOJ_X2_PANEL_HEATER 0x3F
 
-/* é»æ°ã«ã¼ããã */
+/* 電気カーペット */
 #define EOJ_X2_ELECTRIC_CARPET 0x40
 
-/* ãã­ã¢ãã¼ã¿ */
+/* フロアヒータ */
 #define EOJ_X2_FLOOR_HEATER 0x41
 
-/* é»æ°ææ¿å¨ */
+/* 電気暖房器 */
 #define EOJ_X2_ELECTRIC_HEATER 0x42
 
-/* ãã¡ã³ãã¼ã¿ */
+/* ファンヒータ */
 #define EOJ_X2_FAN_HEATER 0x43
 
-/* å
-
-é»å¨ */
+/* 充電器 */
 #define EOJ_X2_BATTERY_CHARGER 0x44
 
-/* æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³å®¤å
-æ© */
+/* 業務用パッケージエアコン室内機 */
 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_INDOOR_UNIT 0x45
 
-/* æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³å®¤å¤æ© */
+/* 業務用パッケージエアコン室外機 */
 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_OUTDOOR_UNIT 0x46
 
-/* æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³èç±ã¦ããã */
+/* 業務用パッケージエアコン蓄熱ユニット */
 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_THERMAL_STORAGE_UNIT 0x47
 
-/* æ¥­åç¨ãã¡ã³ã³ã¤ã«ã¦ããã */
+/* 業務用ファンコイルユニット */
 #define EOJ_X2_COMMERCIAL_FAN_COIL_UNIT 0x48
 
-/* æ¥­åç¨ç©ºèª¿å·ç±æº(ãã©ã¼) */
+/* 業務用空調冷熱源(チラー) */
 #define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_COLD_SOURCE_CHILLER 0x49
 
-/* æ¥­åç¨ç©ºèª¿æ¸©ç±æº(ãã¤ã©ã¼) */
+/* 業務用空調温熱源(ボイラー) */
 #define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_HEAT_SOURCE_BOILER 0x50
 
-/* æ¥­åç¨ç©ºèª¿VAV */
+/* 業務用空調VAV */
 #define EOJ_X2_AIR_CONDITIONING_VAV_FOR_COMMERCIAL_APPLICATION 0x51
 
-/* æ¥­åç¨ç©ºèª¿ã¨ã¢ãã³ããªã³ã°ã¦ããã */
+/* 業務用空調エアハンドリングユニット */
 #define EOJ_X2_AIR_HANDLING_UNIT_AIR_CONDITIONING_FOR_COMMERCIAL_APPLICATION 0x52
 
-/* ã¦ãããã¯ã¼ã©ã¼ */
+/* ユニットクーラー */
 #define EOJ_X2_UNIT_COOLER 0x53
 
-/* æ¥­åç¨ã³ã³ãã³ã·ã³ã°ã¦ããã */
+/* 業務用コンデンシングユニット */
 #define EOJ_X2_CONDENSING_UNIT_FOR_COMMERCIAL_APPLICATION 0x54
 
 /*
- * ä½å®
-ã»è¨­åé¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* é»åãã©ã¤ã³ã */
+ * 住宅・設備関連機器クラスグループ *
+ */
+/* 電動ブラインド */
 #define EOJ_X2_ELECTRICALLY_OPERATED_SHADE 0x60
 
-/* é»åã·ã£ãã¿ã¼ */
+/* 電動シャッター */
 #define EOJ_X2_ELECTRICALLY_OPERATED_SHUTTER 0x61
 
-/* é»åã«ã¼ãã³ */
+/* 電動カーテン */
 #define EOJ_X2_ELECTRICALLY_OPERATED_CURTAIN 0x62
 
-/* é»åé¨æ¸ */
+/* 電動雨戸 */
 #define EOJ_X2_ELECTRICALLY_OPERATED_STORM_WINDOW 0x63
 
-/* é»åã¬ã¬ã¼ã¸ */
+/* 電動ガレージ */
 #define EOJ_X2_ELECTRICALLY_OPERATED_DOOR 0x64
 
-/* é»åå¤©çª */
+/* 電動天窓 */
 #define EOJ_X2_ELECTRICALLY_OPERATED_SKYLIGHT 0x65
 
-/* ãªã¼ãã³ã°ï¼æ¥ããï¼ */
+/* オーニング（日よけ） */
 #define EOJ_X2_AWNING 0x66
 
-/* æ£æ°´å¨ï¼åº­ç¨ï¼ */
+/* 散水器（庭用） */
 #define EOJ_X2_GARDEN_SPRINKLER 0x67
 
-/* æ£æ°´å¨ï¼ç«ç½ç¨ï¼ */
+/* 散水器（火災用） */
 #define EOJ_X2_FIRE_SPRINKLER 0x68
 
-/* å´æ°´ */
+/* 噴水 */
 #define EOJ_X2_FOUNTAIN 0x69
 
-/* ç¬éæ¹¯æ²¸å¨ */
+/* 瞬間湯沸器 */
 #define EOJ_X2_INSTANTANEOUS_WATER_HEATERS 0x6A
 
-/* é»æ°æ¸©æ°´å¨ */
+/* 電気温水器 */
 #define EOJ_X2_ELECTRIC_WATER_HEATER 0x6B
 
-/* å¤ªé½ç±æ¸©æ°´å¨ */
+/* 太陽熱温水器 */
 #define EOJ_X2_SOLAR_WATER_HEATER 0x6C
 
-/* å¾ªç°ãã³ã */
+/* 循環ポンプ */
 #define EOJ_X2_CIRCULATION_PUMP 0x6D
 
-/* é»æ°ä¾¿åº§ï¼æ¸©æ°´æ´æµä¾¿åº§ãææ¿ä¾¿åº§ãªã©ï¼ */
+/* 電気便座（温水洗浄便座、暖房便座など） */
 #define EOJ_X2_BIDET_EQUIPPED_TOILET 0x6E
 
-/* é»æ°é  */
+/* 電気錠 */
 #define EOJ_X2_ELECTRIC_KEY 0x6F
 
-/* ã¬ã¹å
-å¼ */
+/* ガス元弁 */
 #define EOJ_X2_GAS_LINE_VALVE 0x70
 
-/* ãã¼ã ãµã¦ã */
+/* ホームサウナ */
 #define EOJ_X2_HOME_SAUNA 0x71
 
-/* ç¬éå¼çµ¦æ¹¯å¨ */
+/* 瞬間式給湯器 */
 #define EOJ_X2_HOT_WATER_GENERATOR 0x72
 
-/* æµ´å®¤ææ¿ä¹¾ç¥æ© */
+/* 浴室暖房乾燥機 */
 #define EOJ_X2_BATHROOM_DRYER 0x73
 
-/* ãã¼ã ã¨ã¬ãã¼ã¿ */
+/* ホームエレベータ */
 #define EOJ_X2_HOME_ELEVATOR 0x74
 
-/* é»åéä»åã */
+/* 電動間仕切り */
 #define EOJ_X2_ELECTRICALLY_OPERATED_ROOM_DIVIDER 0x75
 
-/* æ°´å¹³ãã©ã³ã¹ãã¡ */
+/* 水平トランスファ */
 #define EOJ_X2_HORIZONTAL_TRANSFER 0x76
 
-/* é»åç©å¹²ã */
+/* 電動物干し */
 #define EOJ_X2_ELECTRICALLY_OPERATED_CLOTHES_DRYING_POLE 0x77
 
-/* æµåæ§½ */
+/* 浄化槽 */
 #define EOJ_X2_SEPTIC_TANK 0x78
 
-/* ä½å®
-ç¨å¤ªé½å
-çºé» */
+/* 住宅用太陽光発電 */
 #define EOJ_X2_HOME_SOLAR_POWER_GENERATION 0x79
 
-/* å·æ¸©æ°´ç±æºæ© */
+/* 冷温水熱源機 */
 #define EOJ_X2_COLD_AND_HOT_WATER_HEAT_SOURCE_EQUIPMENT 0x7A
 
-/* åºææ¿ */
+/* 床暖房 */
 #define EOJ_X2_FLOOR_HEATING 0x7B
 
-/* çæé»æ±  */
+/* 燃料電池 */
 #define EOJ_X2_FUEL_CELL 0x7C
 
-/* èé»æ±  */
+/* 蓄電池 */
 #define EOJ_X2_STORAGE_BATTERY 0x7D
 
-/* é»æ°èªåè»å
-
-æ¾é»ã·ã¹ãã  */
+/* 電気自動車充放電システム */
 #define EOJ_X2_ELECTRIC_VEHICLE 0x7E
 
-/* é»åéã¡ã¼ã¿ */
+/* 電力量メータ */
 #define EOJ_X2_ELECTRIC_ENERGY_METER 0x80
 
-/* æ°´æµéã¡ã¼ã¿ */
+/* 水流量メータ */
 #define EOJ_X2_WATER_FLOW_METER 0x81
 
-/* ã¬ã¹ã¡ã¼ã¿ */
+/* ガスメータ */
 #define EOJ_X2_GAS_METER 0x82
 
-/* LPã¬ã¹ã¡ã¼ã¿ */
+/* LPガスメータ */
 #define EOJ_X2_LP_GAS_METERS 0x83
 
-/* æè¨ */
+/* 時計 */
 #define EOJ_X2_CLOCK 0x84
 
-/* èªåãã¢ */
+/* 自動ドア */
 #define EOJ_X2_AUTOMATIC_DOOR 0x85
 
-/* æ¥­åç¨ã¨ã¬ãã¼ã¿ */
+/* 業務用エレベータ */
 #define EOJ_X2_COMMERCIAL_ELEVATOR 0x86
 
-/* åé»ç¤ã¡ã¼ã¿ãªã³ã° */
+/* 分電盤メータリング */
 #define EOJ_X2_DISTRIBUTION_PANEL_METERING 0x87
 
-/* ã¹ãã¼ãé»åéã¡ã¼ã¿ */
+/* スマート電力量メータ */
 #define EOJ_X2_SMART_ELECTRIC_ENERGY_METER 0x88
 
-/* ã¹ãã¼ãã¬ã¹ã¡ã¼ã¿ */
+/* スマートガスメータ */
 #define EOJ_X2_SMART_GAS_METER 0x89
 
-/* ä¸è¬ç
-§æ */
+/* 一般照明 */
 #define EOJ_X2_GENERAL_LIGHTING_CLASS 0x90
 
-/* éå¸¸ç
-§æ */
+/* 非常照明 */
 #define EOJ_X2_EMERGENCY_LIGHTING 0x99
 
-/* è¨­åç
-§æ */
+/* 設備照明 */
 #define EOJ_X2_EQUIPMENT_LIGHT 0x9D
 
-/* ãã¶ã¼ */
+/* ブザー */
 #define EOJ_X2_BUZZER 0xA0
 
 /*
- * èª¿çã»å®¶äºé¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ã³ã¼ãã¼ã¡ã¼ã« */
+ * 調理・家事関連機器クラスグループ *
+ */
+/* コーヒーメーカ */
 #define EOJ_X2_COFFEE_MACHINE 0xB0
 
-/* ã³ã¼ãã¼ãã« */
+/* コーヒーミル */
 #define EOJ_X2_COFFEE_MILL 0xB1
 
-/* é»æ°ããã */
+/* 電気ポット */
 #define EOJ_X2_ELECTRIC_HOT_WATER_POT 0xB2
 
-/* é»æ°ããã */
+/* 電気こんろ */
 #define EOJ_X2_ELECTRIC_STOVE 0xB3
 
-/* ãã¼ã¹ã¿ */
+/* トースタ */
 #define EOJ_X2_TOASTER 0xB4
 
-/* ã¸ã¥ã¼ãµã»ãã­ãµ */
+/* ジューサ・ミキサ */
 #define EOJ_X2_JUICER_FOOD_MIXER 0xB5
 
-/* ãã¼ããã­ã»ããµ */
+/* フードプロセッサ */
 #define EOJ_X2_FOOD_PROCESSOR 0xB6
 
-/* å·åå·èµåº« */
+/* 冷凍冷蔵庫 */
 #define EOJ_X2_REFRIGERATOR_FREEZER 0xB7
 
-/* ãªã¼ãã³ã¬ã³ã¸ */
+/* オーブンレンジ */
 #define EOJ_X2_COMBINATION_MICROWAVE_OVEN 0xB8
 
-/* ã¯ãã­ã³ã°ãã¼ã¿ */
+/* クッキングヒータ */
 #define EOJ_X2_COOKING_HEATER 0xB9
 
-/* ãªã¼ãã³ */
+/* オーブン */
 #define EOJ_X2_OVEN 0xBA
 
-/* çé£¯å¨ */
+/* 炊飯器 */
 #define EOJ_X2_RICE_COOKER 0xBB
 
-/* é»å­ã¸ã£ã¼ */
+/* 電子ジャー */
 #define EOJ_X2_ELECTRONIC_JAR 0xBC
 
-/* é£å¨æ´ãæ© */
+/* 食器洗い機 */
 #define EOJ_X2_DISH_WASHER 0xBD
 
-/* é£å¨ä¹¾ç¥æ© */
+/* 食器乾燥機 */
 #define EOJ_X2_DISH_DRYER 0xBE
 
-/* é»æ°ãã¡ã¤ãæ© */
+/* 電気もちつき機 */
 #define EOJ_X2_ELECTRIC_RICE_CAKE_COOKER 0xBF
 
-/* ä¿æ¸©æ© */
+/* 保温機 */
 #define EOJ_X2_KEEP_WARM_MACHINE 0xC0
 
-/* ç²¾ç±³æ© */
+/* 精米機 */
 #define EOJ_X2_RICE_MILL 0xC1
 
-/* èªåè£½ãã³æ© */
+/* 自動製パン機 */
 #define EOJ_X2_AUTOMATIC_BREAD_COOKER 0xC2
 
-/* ã¹ã­ã¼ã¯ãã«ã¼ */
+/* スロークッカー */
 #define EOJ_X2_SLOW_COOKER 0xC3
 
-/* é»æ°æ¼¬ç©æ© */
+/* 電気漬物機 */
 #define EOJ_X2_ELECTRIC_PICKLES_COOKER 0xC4
 
-/* æ´æ¿¯æ© */
+/* 洗濯機 */
 #define EOJ_X2_WASHING_MACHINE 0xC5
 
-/* è¡£é¡ä¹¾ç¥æ© */
+/* 衣類乾燥機 */
 #define EOJ_X2_CLOTH_DRYER 0xC6
 
-/* é»æ°ã¢ã¤ã­ã³ */
+/* 電気アイロン */
 #define EOJ_X2_ELECTRIC_IRON 0xC7
 
-/* ãºãã³ãã¬ããµ */
+/* ズボンプレッサ */
 #define EOJ_X2_TROUSER_PRESS 0xC8
 
-/* ãµã¨ãä¹¾ç¥æ© */
+/* ふとん乾燥機 */
 #define EOJ_X2_FUTON_DRYER 0xC9
 
-/* å°ç©ã»ãã¤ä¹¾ç¥æ© */
+/* 小物・くつ乾燥機 */
 #define EOJ_X2_SMALL_ARTICLE_SHOES_DRYER 0xCA
 
-/* é»æ°æé¤æ©ï¼ã»ã³ãã©ã«ã¯ãªã¼ãå«ãï¼ */
+/* 電気掃除機（セントラルクリーナ含む） */
 #define EOJ_X2_ELECTRIC_VACUUM_CLEANER 0xCB
 
-/* ãã£ã¹ãã¼ã¶ */
+/* ディスポーザ */
 #define EOJ_X2_DISPOSER 0xCC
 
-/* é»æ°èåãæ© */
+/* 電気蚊取り機 */
 #define EOJ_X2_ELECTRIC_MOSQUITO_CATCHER 0xCD
 
-/* æ¥­åç¨ã·ã§ã¼ã±ã¼ã¹ */
+/* 業務用ショーケース */
 #define EOJ_X2_COMMERCIAL_SHOW_CASE 0xCE
 
-/* æ¥­åç¨å·èµåº« */
+/* 業務用冷蔵庫 */
 #define EOJ_X2_COMMERCIAL_REFRIGERATOR 0xCF
 
-/* æ¥­åç¨ãããã±ã¼ã¹ */
+/* 業務用ホットケース */
 #define EOJ_X2_COMMERCIAL_HOT_CASE 0xD0
 
-/* æ¥­åç¨ãã©ã¤ã¤ã¼ */
+/* 業務用フライヤー */
 #define EOJ_X2_COMMERCIAL_FRYER 0xD1
 
-/* æ¥­åç¨é»å­ã¬ã³ã¸ */
+/* 業務用電子レンジ */
 #define EOJ_X2_COMMERCIAL_MICROWAVE_OVEN 0xD2
 
-/* æ´æ¿¯ä¹¾ç¥æ© */
+/* 洗濯乾燥機 */
 #define EOJ_X2_WASHER_AND_DRYER 0xD3
 
 /*
- * å¥åº·é¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ä½éè¨ */
+ * 健康関連機器クラスグループ *
+ */
+/* 体重計 */
 #define EOJ_X2_WEIGHING_MACHINE 0x01
 
-/* ä½æ¸©è¨ */
+/* 体温計 */
 #define EOJ_X2_CLINICAL_THERMOMETER 0x02
 
-/* è¡å§è¨ */
+/* 血圧計 */
 #define EOJ_X2_BLOOD_PRESSURE_METER 0x03
 
-/* è¡ç³å¤è¨ */
+/* 血糖値計 */
 #define EOJ_X2_BLOOD_SUGAR_METER 0x04
 
-/* ä½èèªè¨ */
+/* 体脂肪計 */
 #define EOJ_X2_BODY_FAT_METER 0x05
 
 /*
- * ç®¡çã»æä½é¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ã»ã­ã¥ã¢éä¿¡ç¨å
-±æéµè¨­å®ãã¼ã */
+ * 管理・操作関連機器クラスグループ *
+ */
+/* セキュア通信用共有鍵設定ノード */
 #define EOJ_X2_SECURE_COMMUNICATION_SHARED_KEY_SETUP_NODE 0xFC
 
-/* ã¹ã¤ããï¼JEMA/HAç«¯å­å¯¾å¿ï¼ */
+/* スイッチ（JEMA/HA端子対応） */
 #define EOJ_X2_SWITCH 0xFD
 
-/* æºå¸¯ç«¯æ« */
+/* 携帯端末 */
 #define EOJ_X2_PORTABLE_TERMINAL 0xFE
 
-/* ã³ã³ãã­ã¼ã© */
+/* コントローラ */
 #define EOJ_X2_CONTROLLER 0xFF
 
 /*
- * ï¼¡ï¼¶é¢é£æ©å¨ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ãã£ã¹ãã¬ã¼ */
+ * ＡＶ関連機器クラスグループ *
+ */
+/* ディスプレー */
 #define EOJ_X2_DISPLAY 0x01
 
-/* ãã¬ã */
+/* テレビ */
 #define EOJ_X2_TELEVISION 0x02
 
 /*
- * ãã­ãã¡ã¤ã«ã¯ã©ã¹ã°ã«ã¼ã *
- */
-/* ãã¼ããã­ãã¡ã¤ã« */
+ * プロファイルクラスグループ *
+ */
+/* ノードプロファイル */
 #define EOJ_X2_NODE_PROFILE 0xF0
 
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.c	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯ ãããã°åºå
+ *		ECHONET Lite タスク デバッグ出力
  */
 
@@ -76,6 +61,5 @@
 static ER _ecn_dbg_wai_syslog(void);
 /*
- *  syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤
+ *  syslog()バッファに余裕ができるまで待つ
  */
 static ER _ecn_dbg_wai_syslog(void)
@@ -118,6 +102,6 @@
 
 /*
- * ãããã°åºå
- * ä¾ï¼		ECN_DBG_PUT_2("task start");
+ * デバッグ出力
+ * 例：		ECN_DBG_PUT_2("task start");
  */
 int _ecn_dbg_dbgput(ecnl_svc_task_t *svc, const char *fp_srcloc, const char *fp_form, ...)
@@ -127,10 +111,10 @@
 #ifdef ECN_DBG_PUT_USE_STATIC
  #ifndef SEM_ECN_DBG_PUT
-	/* 256byteãããã¡8æ¬ã­ã¼ãã¼ã·ã§ã³ */
+	/* 256byteバッファ8本ローテーション */
 	static char				a_buf[8][256];
 	static volatile uint_t	a_buf_idx = 0;
 	uint_t					a_buf_idx_a;
  #else
-	/* ã»ããã©ãç¨ãã¦ã1æ¬ã®ãããã¡ä¸ã«æå­åãä¸¦ã¹ã¦ä½¿ã */
+	/* セマフォを用いて、1本のバッファ上に文字列を並べて使う */
 	static char				a_buf[1024];
 	static volatile uint_t	a_buf_pos = 0;
@@ -155,10 +139,9 @@
 	p_buf = a_buf[a_buf_idx_a & 0x07];
  #else
-	if (sizeof(a_buf) - a_buf_pos < 80)	/* æ®ãã80byteæªæºã«ãªã£ãããå
-é ­ã«æ»ã */
+	if (sizeof(a_buf) - a_buf_pos < 80)	/* 残りが80byte未満になったら、先頭に戻る */
 		a_buf_pos = 0;
 	p_buf = a_buf + a_buf_pos;
 	a_buf_len = sizeof(a_buf) - a_buf_pos - 1;
-	if (80 * 2 <= a_buf_len)	/* 80byte*2ä»¥ä¸ã®ä½ç½ããããã¡ã¯ãæ«å°¾80byteãæ®ã */
+	if (80 * 2 <= a_buf_len)	/* 80byte*2以上の余白があるうちは、末尾80byteを残す */
 		a_buf_len -= 80;
  #endif /* #ifdef SEM_ECN_DBG_PUT */
@@ -184,8 +167,7 @@
  #ifdef SEM_ECN_DBG_PUT
 	a_buf_len = strlen(p_buf) + 1;
-	/* æ®ãã80byteæªæºã«ãªã£ãã */
+	/* 残りが80byte未満になったら */
 	if (sizeof(a_buf) - a_buf_pos - a_buf_len < 80) {
-		/* å
-é ­ã«æ»ã */
+		/* 先頭に戻る */
 		a_buf_pos = 0;
 	} else {
@@ -195,6 +177,5 @@
 #endif
 
-	_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+	_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 
 #ifdef SEM_ECN_DBG_PUT
@@ -212,5 +193,5 @@
 }
 
-/* ECN_ENOD_IDã®æå­åå¤æ */
+/* ECN_ENOD_IDの文字列変換 */
 const char *_ecn_dbg_enod2str(ECN_ENOD_ID fa_enod_id)
 {
@@ -260,9 +241,9 @@
 
 /*
- * ãã¤ããªãã³ãåºå
+ * バイナリダンプ出力
  */
 void _ecn_dbg_bindmp(const uint8_t *buffer, size_t len)
 {
-	/* staticé åã®ãããã¡ãåãæ¿ããåæ°(2^n) */
+	/* static領域のバッファを切り替える個数(2^n) */
 	#define _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT (4)
 /*	*/
@@ -270,23 +251,23 @@
  #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
   #undef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
-  /* ã»ããã©(SEM_ECN_DBG_BINDMP)ãå®ç¾©ããã¦ããå ´åããããã¡åãæ¿ãã¯ä¸è¦ãªã®ã§undef */
+  /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */
  #endif
 #endif
 #ifndef _ECN_FBS_DBG_BINDMP_BUFLEN
- /* ãããã¡ãµã¤ãº(bindmpä¸­ã®1è¡ãåã¾ããµã¤ãº) */
+ /* バッファサイズ(bindmp中の1行が収まるサイズ) */
  #define _ECN_FBS_DBG_BINDMP_BUFLEN (80)
 #endif
 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
-	/* staticé åã®ãããã¡ãåãæ¿ããããã®ç®¡çç¨å¤æ° */
+	/* static領域のバッファを切り替えるための管理用変数 */
 	static volatile uint8_t a_idx_vol = 0;
-	/* staticé åã®ãããã¡åãæ¿ãé å */
+	/* static領域のバッファ切り替え領域 */
 	static char a_buf_area[1 << _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT][_ECN_FBS_DBG_BINDMP_BUFLEN];
 	uint8_t a_idx;
 	char *a_buf;
 #else
-	/* staticé åã®ãããã¡é å */
+	/* static領域のバッファ領域 */
 	static char a_buf[_ECN_FBS_DBG_BINDMP_BUFLEN];
 #endif
-	const uint8_t *p = buffer;			/* èª­ã¿åããã¤ã³ã¿ */
+	const uint8_t *p = buffer;			/* 読み取りポインタ */
 	int i, a_blk, a_blk_max, a_pos = 0;
 	const T_ECN_EDT_HDR *p_req_esv;
@@ -305,5 +286,5 @@
 	}
 	#ifndef ECN_DBG_BINDMP_MAXLEN
-	 /* bindmpåºåã®æå¤§ãµã¤ãº */
+	 /* bindmp出力の最大サイズ */
 	 #define ECN_DBG_BINDMP_MAXLEN 1600
 	#endif
@@ -320,6 +301,5 @@
 	for (a_blk = 0; p && a_blk < a_blk_max; p = ((T_ECN_FST_BLK *)buffer)->lnk.p_sub[a_blk++]->payload) {
 		if (0 < a_blk) {
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf("p_sub[%d] (0x%p)", a_blk - 1, p);
 		}
@@ -328,6 +308,5 @@
 			if (i % 16 == 0) {
 				if (a_buf[0]) {
-					_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+					_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 					printf("%s", a_buf);
 				}
@@ -349,6 +328,5 @@
 		}
 		if (a_buf[0]) {
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf("%s", a_buf);
 		}
@@ -361,23 +339,18 @@
 		case ECN_MSG_ECHONET:
 			p_req_esv = (T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->payload;
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" sender: %d %s, target: %d %s",
 				((T_ECN_FST_BLK *)buffer)->hdr.sender.id, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.sender.id),
 				((T_ECN_FST_BLK *)buffer)->hdr.target.id, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.target.id));
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" ecn_hdr: 0x%02X 0x%02X 0x%04X", p_req_esv->ecn_hdr.ehd1, p_req_esv->ecn_hdr.ehd2, p_req_esv->ecn_hdr.tid);
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
 				p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
 				p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
 				p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
-			_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+			_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 			printf(" cur(blk/pos): wr %d, rd %d",
 				(int)((T_ECN_FST_BLK *)buffer)->hdr.wr,
@@ -419,15 +392,12 @@
 	&& ((const T_ECN_FST_BLK *)buffer)->payload[1] == 0x81) {
 		p_req_esv = (const T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->payload[0];
-		_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+		_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 		printf(" ecn_hdr: 0x%02X 0x%02X 0x%04X", p_req_esv->ecn_hdr.ehd1, p_req_esv->ecn_hdr.ehd2, p_req_esv->ecn_hdr.tid);
-		_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+		_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 		printf(" edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
 			p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
 			p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
 			p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
-		_ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾
-ã¤ */
+		_ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
 		printf(" ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
 	}
@@ -438,25 +408,25 @@
 
 /*
- * ECHONET Liteãµã¼ãã¹ã³ã¼ãæå­åå¤æ
+ * ECHONET Liteサービスコード文字列変換
  */
 const char *_ecn_dbg_esv2str(uint8_t fa_esv)
 {
 	switch (fa_esv) {
-	case ESV_SET_I_SNA:		return "ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­";			/* 0x50 */
-	case ESV_SET_C_SNA:		return "ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­";			/* 0x51	*/
-	case ESV_GET_SNA:		return "ãã­ããã£å¤èª­ã¿åºãä¸å¯å¿ç­";				/* 0x52	*/
-	case ESV_INF_SNA:		return "ãã­ããã£å¤éç¥ä¸å¯å¿ç­";					/* 0x53 */
-	case ESV_SET_GET_SNA:	return "ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãä¸å¯å¿ç­";	/* 0x5E	*/
-	case ESV_SET_I:			return "ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼";		/* 0x60 */
-	case ESV_SET_C:			return "ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼";		/* 0x61 */
-	case ESV_GET:			return "ãã­ããã£å¤èª­ã¿åºãè¦æ±";					/* 0x62 */
-	case ESV_INF_REQ:		return "ãã­ããã£å¤éç¥è¦æ±";						/* 0x63 */
-	case ESV_SET_GET:		return "ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±";		/* 0x6E */
-	case ESV_SET_RES:		return "ãã­ããã£å¤æ¸ãè¾¼ã¿å¿ç­";					/* 0x71 */
-	case ESV_GET_RES:		return "ãã­ããã£å¤èª­ã¿åºãå¿ç­";					/* 0x72 */
-	case ESV_INF:			return "ãã­ããã£å¤éç¥";							/* 0x73 */
-	case ESV_INFC:			return "ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼";				/* 0x74 */
-	case ESV_SET_GET_RES:	return "ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãå¿ç­";		/* 0x7E */
-	case ESV_INFC_RES:		return "ãã­ããã£å¤éç¥å¿ç­";						/* 0x7A */
+	case ESV_SET_I_SNA:		return "プロパティ値書き込み要求不可応答";			/* 0x50 */
+	case ESV_SET_C_SNA:		return "プロパティ値書き込み要求不可応答";			/* 0x51	*/
+	case ESV_GET_SNA:		return "プロパティ値読み出し不可応答";				/* 0x52	*/
+	case ESV_INF_SNA:		return "プロパティ値通知不可応答";					/* 0x53 */
+	case ESV_SET_GET_SNA:	return "プロパティ値書き込み・読み出し不可応答";	/* 0x5E	*/
+	case ESV_SET_I:			return "プロパティ値書き込み要求（応答不要）";		/* 0x60 */
+	case ESV_SET_C:			return "プロパティ値書き込み要求（応答要）";		/* 0x61 */
+	case ESV_GET:			return "プロパティ値読み出し要求";					/* 0x62 */
+	case ESV_INF_REQ:		return "プロパティ値通知要求";						/* 0x63 */
+	case ESV_SET_GET:		return "プロパティ値書き込み・読み出し要求";		/* 0x6E */
+	case ESV_SET_RES:		return "プロパティ値書き込み応答";					/* 0x71 */
+	case ESV_GET_RES:		return "プロパティ値読み出し応答";					/* 0x72 */
+	case ESV_INF:			return "プロパティ値通知";							/* 0x73 */
+	case ESV_INFC:			return "プロパティ値通知（応答要）";				/* 0x74 */
+	case ESV_SET_GET_RES:	return "プロパティ値書き込み・読み出し応答";		/* 0x7E */
+	case ESV_INFC_RES:		return "プロパティ値通知応答";						/* 0x7A */
 	default:
 		return "(unknown)";
@@ -467,13 +437,12 @@
 {
 	switch (errorno) {
-	case E_SYS:		return "ã·ã¹ãã ã¨ã©ã¼";
-	case E_PAR:		return "ãã©ã¡ã¼ã¿ã¨ã©ã¼";
-	case E_NOMEM:	return "ã¡ã¢ãªä¸è¶³";
-	case E_OBJ:		return "ãªãã¸ã§ã¯ãç¶æ
-ã¨ã©ã¼";
-	case E_NOEXS:	return "ãªãã¸ã§ã¯ãæªçæ";
-	case E_TMOUT:	return "ãã¼ãªã³ã°å¤±æã¾ãã¯ã¿ã¤ã ã¢ã¦ã";
-	case E_BOVR:	return "ãããã¡ãªã¼ãã¼ãã­ã¼";
-	case E_BRK:		return "ã¦ã¼ã¶ã¼ã«ããä¸­æ­";
+	case E_SYS:		return "システムエラー";
+	case E_PAR:		return "パラメータエラー";
+	case E_NOMEM:	return "メモリ不足";
+	case E_OBJ:		return "オブジェクト状態エラー";
+	case E_NOEXS:	return "オブジェクト未生成";
+	case E_TMOUT:	return "ポーリング失敗またはタイムアウト";
+	case E_BOVR:	return "バッファオーバーフロー";
+	case E_BRK:		return "ユーザーによる中断";
 	default:
 		return "(unknown)";
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.h	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯ ãããã°åºå
+ *		ECHONET Lite タスク デバッグ出力
  */
 
@@ -79,5 +64,5 @@
 #endif
 
-/* ãããã°åºå(CARP) */
+/* デバッグ出力(CARP) */
 #ifdef ECN_CAP_PUT_ENA
 #define ECN_CAP_PUT(a)					printf(a)
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.c	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  */
 
 /*
- * åºå®é·ãããã¡å¯å¤é·ã¹ããªã¼ã 
+ * 固定長バッファ可変長ストリーム
  */
 
@@ -264,5 +249,5 @@
 }
 
-/* ã¡ã¢ãªãã­ãã¯åå¾ ok:ãã¤ã³ã¿ NG:NULL */
+/* メモリブロック取得 ok:ポインタ NG:NULL */
 void *_ecn_fbs_mbx_get(mrb_state *mrb, ECN_FBS_SIZE_T fa_req_size)
 {
@@ -281,5 +266,5 @@
 }
 
-/* ã¡ã¢ãªãã­ãã¯è§£æ¾ */
+/* メモリブロック解放 */
 ER _ecn_fbs_mbx_rel(mrb_state *mrb, void *p)
 {
@@ -289,5 +274,5 @@
 }
 
-/* é åç¢ºä¿ */
+/* 領域確保 */
 ER _ecn_fbs_cre(mrb_state *mrb, ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id)
 {
@@ -295,5 +280,5 @@
 }
 
-/* é åè§£æ¾ */
+/* 領域解放 */
 ER _ecn_fbs_del(mrb_state *mrb, ECN_FBS_ID fa_id)
 {
@@ -301,5 +286,5 @@
 }
 
-/* ä¿æãã¼ã¿ã®æç¡ */
+/* 保持データの有無 */
 bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id)
 {
@@ -307,5 +292,5 @@
 }
 
-/* ä¿æãã¼ã¿é·ã®åå¾ */
+/* 保持データ長の取得 */
 ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id)
 {
@@ -313,5 +298,5 @@
 }
 
-/* èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®åå¾ */
+/* 読み取りカーソルの位置取得 */
 ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id)
 {
@@ -319,8 +304,8 @@
 }
 
-/* èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®è¨­å® */
+/* 読み取りカーソルの位置設定 */
 ER _ecn_fbs_set_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_pos)
 {
-	if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos)	/* ä½ç½®æå®ãå¤§ãããã */
+	if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos)	/* 位置指定が大きすぎる */
 		return E_PAR;
 
@@ -330,5 +315,5 @@
 }
 
-/* èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®ç§»å */
+/* 読み取りカーソルの位置移動 */
 ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek)
 {
@@ -340,5 +325,5 @@
 }
 
-/* ä»»ææå®ä½ç½®ã®1byteèª­ã¿åã */
+/* 任意指定位置の1byte読み取り */
 int _ecn_fbs_peek(mrb_state *mrb, ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek)
 {
@@ -351,5 +336,5 @@
 }
 
-/* ä»»ææå®ä½ç½®ã®1byteæ¸ãè¾¼ã¿ */
+/* 任意指定位置の1byte書き込み */
 ER _ecn_fbs_poke(mrb_state *mrb, ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val)
 {
@@ -362,5 +347,5 @@
 }
 
-/* ãã¼ã¿è¿½å  */
+/* データ追加 */
 ER _ecn_fbs_add_data(mrb_state *mrb, ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len)
 {
@@ -372,5 +357,5 @@
 }
 
-/* ãã¼ã¿è¿½å (é åãèªåçã«æ¡å¼µãã) */
+/* データ追加(領域を自動的に拡張する) */
 ER _ecn_fbs_add_data_ex(mrb_state *mrb, ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len)
 {
@@ -379,5 +364,5 @@
 }
 
-/* ãã¼ã¿åå¾ */
+/* データ取得 */
 ER _ecn_fbs_get_data(mrb_state *mrb, ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen, ECN_FBS_SSIZE_T *p_len)
 {
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_fbs.h	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
- * 
- */
-
-/*
- * åºå®é·ãããã¡å¯å¤é·ã¹ããªã¼ã 
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ */
+
+/*
+ * 固定長バッファ可変長ストリーム
  */
 
@@ -66,46 +51,42 @@
 
 #ifndef NUM_ECHONET_MEMPOOL_BLOCK
-#define NUM_ECHONET_MEMPOOL_BLOCK (60)		/* é»æç¨ã¡ã¢ãªãã­ãã¯ã®æ° */
+#define NUM_ECHONET_MEMPOOL_BLOCK (60)		/* 電文用メモリブロックの数 */
 #endif /* NUM_ECHONET_MEMPOOL_BLOCK */
 
 #ifndef ECHONET_MEMPOOL_BLOCK_SIZE
-#define ECHONET_MEMPOOL_BLOCK_SIZE (256)	/* é»æç¨ã¡ã¢ãªãã­ãã¯ã®ãµã¤ãº */
+#define ECHONET_MEMPOOL_BLOCK_SIZE (256)	/* 電文用メモリブロックのサイズ */
 #endif /* ECHONET_MEMPOOL_BLOCK_SIZE */
 
-typedef unsigned int ECN_FBS_SIZE_T;	/* size_tç¸å½  */
-typedef int ECN_FBS_SSIZE_T;			/* ssize_tç¸å½ */
-
-/* T_EDATAç®¡çé åãµã¤ãº */
+typedef unsigned int ECN_FBS_SIZE_T;	/* size_t相当  */
+typedef int ECN_FBS_SSIZE_T;			/* ssize_t相当 */
+
+/* T_EDATA管理領域サイズ */
 #define DEF_ECN_EDT_HDR_LEN (sizeof(intptr_t))
 
-/* ç®¡çé åãµã¤ãº(64byte - sizeof(T_MSG)) */
+/* 管理領域サイズ(64byte - sizeof(T_MSG)) */
 /* #define DEF_ECN_FBS_LIB_HDR_LEN ((ECHONET_MEMPOOL_BLOCK_SIZE + sizeof(int) - 1)>> 2) // */
 #define DEF_ECN_FBS_LIB_HDR_LEN (64 - DEF_ECN_EDT_HDR_LEN)
 
-/* ç®¡çé åãå«ããã­ãã¯ã«ä¿æãããã¼ã¿ãµã¤ãº */
+/* 管理領域を含むブロックに保持するデータサイズ */
 #define DEF_ECN_FBS_FST_DAT_LEN (64)
 
-/* ãªã³ã¯ãã¤ã³ã¿é
-åã®ãµã¤ãº(byte) */
+/* リンクポインタ配列のサイズ(byte) */
 #define DEF_ECN_FBS_LNK_LEN (ECHONET_MEMPOOL_BLOCK_SIZE - DEF_ECN_EDT_HDR_LEN - DEF_ECN_FBS_LIB_HDR_LEN - DEF_ECN_FBS_FST_DAT_LEN)
 
-/* åºå®é·ãããã¡æå¤§ãµã¤ãº */
+/* 固定長バッファ最大サイズ */
 #define DEF_ECN_FBS_BUF_MAXLEN ((DEF_ECN_FBS_LNK_LEN / sizeof(void *)) * ECHONET_MEMPOOL_BLOCK_SIZE + DEF_ECN_FBS_FST_DAT_LEN)
 
-/* å­è¦ç´ ãããã¡ã®ãµã¤ãº */
+/* 子要素バッファのサイズ */
 #define DEF_ECN_FBS_SUB_BUF_LEN ECHONET_MEMPOOL_BLOCK_SIZE
 
-/* é»æã®ç¨®å¥(å
-å®¹ã¯ä»®) */
+/* 電文の種別(内容は仮) */
 typedef enum
 {
-	ECN_FBS_TYPE_BLANK		=	0,		/* æªä½¿ç¨ã¹ããªã¼ã  */
-	ECN_FBS_TYPE_INTERNAL	=	1,		/* å
-é¨ã¡ãã»ã¼ã¸ */
-	ECN_FBS_TYPE_ECHONET	=	2		/* ECHONETé»æ */
+	ECN_FBS_TYPE_BLANK		=	0,		/* 未使用ストリーム */
+	ECN_FBS_TYPE_INTERNAL	=	1,		/* 内部メッセージ */
+	ECN_FBS_TYPE_ECHONET	=	2		/* ECHONET電文 */
 } TA_ECN_MSG_TYPE;
 
-/* ãªã³ã¯ãã¤ã³ã¿é
-åã«åæããããå­è¦ç´ ãããã¡ */
+/* リンクポインタ配列に列挙される、子要素バッファ */
 typedef struct
 {
@@ -113,6 +94,5 @@
 } T_ECN_SUB_BLK;
 
-/* ãªã³ã¯ãã¤ã³ã¿é
-å */
+/* リンクポインタ配列 */
 typedef union
 {
@@ -121,45 +101,33 @@
 } T_ECN_FBS_LNK;
 
-/* ç®¡çé å(64byte - sizeof(T_MSG)) */
+/* 管理領域(64byte - sizeof(T_MSG)) */
 typedef struct
 {
-	uint16_t	length;			/* ã¡ãã»ã¼ã¸é· */
-	uint16_t	type;			/* ã¡ãã»ã¼ã¸ã¿ã¤ã */
+	uint16_t	length;			/* メッセージ長 */
+	uint16_t	type;			/* メッセージタイプ */
 	union{
-		ECN_ENOD_ID id;			/* éä¿¡å
-ãã¼ãIDï¼ECHONETé»æï¼ */
-		struct ecn_fbs_queue *mbxid;	/* éä¿¡å
-ã¡ã¼ã«ããã¯ã¹IDï¼å
-é¨ã¡ãã»ã¼ã¸ï¼ */
+		ECN_ENOD_ID id;			/* 送信元ノードID（ECHONET電文） */
+		struct ecn_fbs_queue *mbxid;	/* 送信元メールボックスID（内部メッセージ） */
 	}sender;
 	union{
-		ECN_ENOD_ID id;			/* éä¿¡å
-ãã¼ãIDï¼ECHONETé»æï¼ */
-		struct ecn_fbs_queue *mbxid;	/* éä¿¡å
-ã¡ã¼ã«ããã¯ã¹IDï¼å
-é¨ã¡ãã»ã¼ã¸ï¼ */
+		ECN_ENOD_ID id;			/* 送信先ノードID（ECHONET電文） */
+		struct ecn_fbs_queue *mbxid;	/* 送信先メールボックスID（内部メッセージ） */
 	}target;
 	union{
-		ECN_ENOD_ID id;			/* è¿ä¿¡å
-ãã¼ãIDï¼ECHONETé»æï¼ */
-		struct ecn_fbs_queue *mbxid;	/* è¿ä¿¡å
-ã¡ã¼ã«ããã¯ã¹IDï¼å
-é¨ã¡ãã»ã¼ã¸ï¼ */
+		ECN_ENOD_ID id;			/* 返信先ノードID（ECHONET電文） */
+		struct ecn_fbs_queue *mbxid;	/* 返信先メールボックスID（内部メッセージ） */
 	}reply;
 
-	int			rd;				/*	èª­ã¿åããããæ
-å ±	*/
-	int			wr;				/*	æ¸ãè¾¼ã¿ãããæ
-å ±	*/
+	int			rd;				/*	読み取りヘッド情報	*/
+	int			wr;				/*	書き込みヘッド情報	*/
 } T_ECN_FBS_HDR;
 
-/* ç®¡çé åãå«ããã­ãã¯ã®æ§é  */
+/* 管理領域を含むブロックの構造 */
 typedef struct
 {
 	uint8_t	_msg[DEF_ECN_EDT_HDR_LEN];	/* T_MSG */
-	T_ECN_FBS_HDR	hdr;	/*	ç®¡çé å  64byte  - sizeof(T_MSG)	*/
+	T_ECN_FBS_HDR	hdr;	/*	管理領域  64byte  - sizeof(T_MSG)	*/
 	uint8_t			_gap[DEF_ECN_FBS_LIB_HDR_LEN - sizeof(T_ECN_FBS_HDR)];
-	T_ECN_FBS_LNK	lnk;	/*	ãªã³ã¯ãã¤ã³ã¿é
-å	128byte			*/
+	T_ECN_FBS_LNK	lnk;	/*	リンクポインタ配列	128byte			*/
 	uint8_t			payload[DEF_ECN_FBS_FST_DAT_LEN];
 } T_ECN_FST_BLK;
@@ -171,129 +139,125 @@
 } ECN_FBS_ID;
 
-/* ã¡ãã»ã¼ã¸ã­ã¥ã¼ */
+/* メッセージキュー */
 typedef struct ecn_fbs_queue
 {
-	T_ECN_FST_BLK	*pk_head;		/* å
-é ­ã®ã¡ãã»ã¼ã¸ */
-	T_ECN_FST_BLK	*pk_last;		/* æ«å°¾ã®ã¡ãã»ã¼ã¸ */
+	T_ECN_FST_BLK	*pk_head;		/* 先頭のメッセージ */
+	T_ECN_FST_BLK	*pk_last;		/* 末尾のメッセージ */
 } T_ECN_FBS_QUEUE;
 
-/* ã¡ã¢ãªãã­ãã¯åå¾ ok:ãã¤ã³ã¿ NG:NULL */
+/* メモリブロック取得 ok:ポインタ NG:NULL */
 void *_ecn_fbs_mbx_get(mrb_state *mrb, ECN_FBS_SIZE_T fa_req_size);
 
-/* ã¡ã¢ãªãã­ãã¯è§£æ¾ ok:0 NG:é0 */
+/* メモリブロック解放 ok:0 NG:非0 */
 ER _ecn_fbs_mbx_rel(mrb_state *mrb, void *p);
 
 /*
- * é åç¢ºä¿
- *	å¼æ°
- *		ECN_FBS_SIZE_T	fa_req_size		è¦æ±ãããã¡ãµã¤ãº(byte)
+ * 領域確保
+ *	引数
+ *		ECN_FBS_SIZE_T	fa_req_size		要求バッファサイズ(byte)
  *										max: DEF_ECN_FBS_BUF_MAXLEN
- *		ECN_FBS_ID		*fp_id			ç¢ºä¿ããFBS-IDã®æ ¼ç´å
-
- *	æ»ãå¤
- *		ER				0:ok é0:NG
+ *		ECN_FBS_ID		*fp_id			確保したFBS-IDの格納先
+ *	戻り値
+ *		ER				0:ok 非0:NG
  */
 ER _ecn_fbs_cre(mrb_state *mrb, ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id);
 
 /*
- * é åè§£æ¾
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * 領域解放
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_del(mrb_state *mrb, ECN_FBS_ID fa_id);
 
 /*
- * ä¿æãã¼ã¿ã®æç¡
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		bool_t			0:ç¡ã, 1:ãã
+ * 保持データの有無
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		bool_t			0:無し, 1:あり
  */
 bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id);
 
 /*
- * ä¿æãã¼ã¿é·ã®åå¾
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		ECN_FBS_SSIZE_T	ä¿æãã¦ãããã¼ã¿ã®é·ã(byte) -1:NG
+ * 保持データ長の取得
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		ECN_FBS_SSIZE_T	保持しているデータの長さ(byte) -1:NG
  */
 ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id);
 
 /*
- * èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®åå¾
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		ECN_FBS_SIZE_T	å
-é ­ããã®çµ¶å¯¾ä½ç½® -1:NG
+ * 読み取りカーソルの位置取得
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		ECN_FBS_SIZE_T	先頭からの絶対位置 -1:NG
  */
 ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id);
 
 /*
- * èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®è¨­å®
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *		ECN_FBS_SIZE_T	fa_pos	è¨­å®ããä½ç½®(å
-é ­ããã®çµ¶å¯¾ä½ç½®)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * 読み取りカーソルの位置設定
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		ECN_FBS_SIZE_T	fa_pos	設定する位置(先頭からの絶対位置)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_set_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_pos);
 
 /*
- * èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®ç§»å
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *		ECN_FBS_SIZE_T	fa_seek	ç§»åé(ç¾ç¶ãåé²ã®ã¿)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * 読み取りカーソルの位置移動
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		ECN_FBS_SIZE_T	fa_seek	移動量(現状、前進のみ)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek);
 
 /*
- * ä»»ææå®ä½ç½®ã®1byteèª­ã¿åã
+ * 任意指定位置の1byte読み取り
  */
 int _ecn_fbs_peek(mrb_state *mrb, ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek);
 
 /*
- * ä»»ææå®ä½ç½®ã®1byteæ¸ãè¾¼ã¿
+ * 任意指定位置の1byte書き込み
  */
 ER _ecn_fbs_poke(mrb_state *mrb, ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val);
 
 /*
- * ãã¼ã¿è¿½å 
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *		const void *	fa_dat	è¿½å ãããã¼ã¿
- *		ECN_FBS_SSIZE_T	fa_len	è¿½å ããé·ã(byte)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * データ追加
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		const void *	fa_dat	追加するデータ
+ *		ECN_FBS_SSIZE_T	fa_len	追加する長さ(byte)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_add_data(mrb_state *mrb, ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
 
 /*
- * ãã¼ã¿è¿½å (é åãèªåçã«æ¡å¼µãã)
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *		const void *	fa_dat	è¿½å ãããã¼ã¿
- *		ECN_FBS_SSIZE_T	fa_len	è¿½å ããé·ã(byte)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * データ追加(領域を自動的に拡張する)
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		const void *	fa_dat	追加するデータ
+ *		ECN_FBS_SSIZE_T	fa_len	追加する長さ(byte)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_add_data_ex(mrb_state *mrb, ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
 
 /*
- * ãã¼ã¿åå¾
- *	å¼æ°
- *		ecn_fbs_idå	ç¢ºä¿ããFBS-ID
- *		void *			fa_buf		åå¾ãããããã¡
- *		ECN_FBS_SSIZE_T	fa_maxlen	åå¾ããé·ã(byte)
- *		ECN_FBS_SSIZE_T	*p_len		åå¾ããé·ã(byte)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * データ取得
+ *	引数
+ *		ecn_fbs_id型	確保したFBS-ID
+ *		void *			fa_buf		取得するバッファ
+ *		ECN_FBS_SSIZE_T	fa_maxlen	取得する長さ(byte)
+ *		ECN_FBS_SSIZE_T	*p_len		取得した長さ(byte)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ecn_fbs_get_data(mrb_state *mrb, ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen,
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.c	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite LCLéä¿¡å¦çã¿ã¹ã¯
+ *		ECHONET Lite LCL通信処理タスク
  */
 
@@ -90,5 +75,5 @@
 
 /*
- * åä¿¡ããLCLãã¼ã¿ãMAILBOXã«éã
+ * 受信したLCLデータをMAILBOXに送る
  */
 ER _ecn_lcl2mbx(ecnl_svc_task_t *svc, const uint8_t *buffer, size_t fa_len, const mrb_value dst);
@@ -106,6 +91,6 @@
 
 	a_rcv_pkt.buffer = buffer;
-	if (	a_rcv_pkt.t_esv->ecn_hdr.ehd1 != ECN_EDH1_ECHONET_LITE	/* ECHONET Liteè¦æ ¼	*/
-	||	a_rcv_pkt.t_esv->ecn_hdr.ehd2 != ECN_EDH2_FORMAT_1			/* é»æå½¢å¼1		*/) {
+	if (	a_rcv_pkt.t_esv->ecn_hdr.ehd1 != ECN_EDH1_ECHONET_LITE	/* ECHONET Lite規格	*/
+	||	a_rcv_pkt.t_esv->ecn_hdr.ehd2 != ECN_EDH2_FORMAT_1			/* 電文形式1		*/) {
 		ECN_DBG_PUT_2("[LCL ECHO SRV] illegal type (0x%02X,0x%02X)", a_rcv_pkt.t_esv->ecn_hdr.ehd1, a_rcv_pkt.t_esv->ecn_hdr.ehd2);
 		return E_PAR;
@@ -130,5 +115,5 @@
 	a_fbs_id.ptr->hdr.sender.id = ENOD_NOT_MATCH_ID;
 
-	/* éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãããªã¢ã¼ãECHONETãã¼ãã¸å¤æ */
+	/* 通信レイヤーアドレスからリモートECHONETノードへ変換 */
 	a_enod_id = lcl_get_id(svc, (T_EDATA *)a_fbs_id.ptr, dst);
 	if (!lcl_is_valid_addrid(svc, a_enod_id)) {
@@ -136,11 +121,10 @@
 			ip2str(NULL, &dst->lcladdr));
 	} else {
-		/* éä¿¡å
-ECHONETãã¼ããè¨é² */
+		/* 送信元ECHONETノードを記録 */
 		a_fbs_id.ptr->hdr.sender.id = a_enod_id;
 	}
 	a_fbs_id.ptr->hdr.reply.id = a_fbs_id.ptr->hdr.sender.id;
 
-	/* echonet_taskã«éã */
+	/* echonet_taskに送る */
 	a_ret = ecn_fbs_enqueue(&svc->svc_mbxid, a_fbs_id.ptr);
 	if (a_ret != E_OK) {
@@ -155,5 +139,5 @@
 
 /*
-* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¿ã¤ãã¼å¤åå¾
+* ECHONET Lite 通信レイヤータスク タイマー値取得
 */
 TMO echonet_lcltask_get_timer(ecnl_svc_task_t *svc)
@@ -168,5 +152,5 @@
 
 /*
-* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ æéçµéå¦ç
+* ECHONET Lite 通信レイヤータスク 時間経過処理
 */
 void echonet_lcltask_progress(ecnl_svc_task_t *svc, TMO a_timer)
@@ -176,5 +160,5 @@
 
 /*
-* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¡ãã»ã¼ã¸åä¿¡å¦ç
+* ECHONET Lite 通信レイヤータスク メッセージ受信処理
 */
 void echonet_lcltask_recv_msg(ecnl_svc_task_t *svc, T_ECN_FST_BLK *p_msg)
@@ -185,5 +169,5 @@
 	a_fbs_id.ptr = p_msg;
 
-	/* éä¿¡ãã¼ã¿é·ãåå¾ */
+	/* 送信データ長を取得 */
 	a_snd_len = _ecn_fbs_get_datalen(a_fbs_id);
 
@@ -191,11 +175,10 @@
 
 	switch (a_fbs_id.ptr->hdr.type) {
-		/* å
-é¨ä½¿ç¨ã¡ãã»ã¼ã¸ */
+		/* 内部使用メッセージ */
 	case ECN_MSG_INTERNAL:
 		_ecn_int_msg(svc, a_fbs_id, a_snd_len);
 		break;
 
-		/* ECHONETç¨ã¡ãã»ã¼ã¸ */
+		/* ECHONET用メッセージ */
 	case ECN_MSG_ECHONET:
 		_ecn_esv_msg(svc, a_fbs_id);
@@ -206,10 +189,10 @@
 	}
 
-	/* é åè§£æ¾ */
+	/* 領域解放 */
 	_ecn_fbs_del(svc->mrb, a_fbs_id);
 }
 
 /*
-* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¿ã¤ã ã¢ã¦ãå¦ç
+* ECHONET Lite 通信レイヤータスク タイムアウト処理
 */
 void echonet_lcltask_timeout(ecnl_svc_task_t *svc)
@@ -218,5 +201,5 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å®(sender/targetã®è¨­å®) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 static ER _ecn_lcl_cre_req_fbs(ecnl_svc_task_t *svc, T_ECN_FBS_QUEUE *sender, uint8_t cmd, ECN_FBS_ID *pk_req)
 {
@@ -248,5 +231,5 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å®(sender/targetã®è¨­å®) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 static ER _ecn_lcl_cre_res_fbs(ecnl_svc_task_t *svc, ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
 {
@@ -279,6 +262,5 @@
 
 /*
- *  å
-é¨ã¡ãã»ã¼ã¸åä¿¡å¦ç
+ *  内部メッセージ受信処理
  */
 void _ecn_int_msg(ecnl_svc_task_t *svc, ECN_FBS_ID fbs_id, ECN_FBS_SSIZE_T a_snd_len)
@@ -300,5 +282,5 @@
 
 	switch(cmd){
-	// éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãè¿ä¿¡
+	// 通信レイヤーアドレスを返信
 	case ECN_LCL_MSG_GET_LCLADDR_REQ:
 		if (a_snd_len < sizeof(msg)) {
@@ -370,5 +352,5 @@
 
 /*
- *  ECHONET é»æåä¿¡å¦ç
+ *  ECHONET 電文受信処理
  */
 void _ecn_esv_msg(ecnl_svc_task_t *svc, ECN_FBS_ID fbs_id)
@@ -381,9 +363,8 @@
 	ECN_FBS_SSIZE_T a_snd_len;
 
-	/* éä¿¡å
-éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ */
+	/* 送信先通信レイヤーアドレス */
 	a_dst = lcl_get_addr(svc, fbs_id.ptr->hdr.target.id);
 	if (mrb_type(a_dst) != MRB_TT_FALSE/*nil*/) {
-		ECN_DBG_PUT_4("[LCL TSK] echonet-node 0x%02X-0x%02X-0x%02X â lcl dest(%s)",
+		ECN_DBG_PUT_4("[LCL TSK] echonet-node 0x%02X-0x%02X-0x%02X → lcl dest(%s)",
 			((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx1,
 			((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx2,
@@ -393,5 +374,5 @@
 		a_msg = mrb_str_buf_new(mrb, a_len);
 
-		/* fbsããåºåé åã«ãã¼ã¿ãæ½åº */
+		/* fbsから出力領域にデータを抽出 */
 		a_snd_len = 0;
 		a_ret = _ecn_fbs_get_data(mrb, fbs_id, RSTRING_PTR(a_msg), a_len, &a_snd_len);
@@ -402,7 +383,6 @@
 			RSTR_SET_LEN(RSTRING(a_msg), a_snd_len);
 
-			/* éä¿¡å
-ã127.0.0.1 â mbxã«è»¢é */
-			ECN_DBG_PUT_1("redirect svc->lcl_mbxid â svc->svc_mbxid (esv:0x%02X)",
+			/* 送信先が127.0.0.1 → mbxに転送 */
+			ECN_DBG_PUT_1("redirect svc->lcl_mbxid → svc->svc_mbxid (esv:0x%02X)",
 				((T_EDATA *)fbs_id.ptr)->hdr.edata.esv);
 
@@ -420,5 +400,5 @@
 			_ecn_dbg_bindmp(RSTRING_PTR(a_msg), a_snd_len);
 #endif
-			/* éä¿¡ã¬ã¤ã¤ã¼ã¸éä¿¡ */
+			/* 通信レイヤーへ送信 */
 			a_ret = lcl_snd_msg(svc, a_dst, a_msg);
 			if (a_ret < 0) {
@@ -427,5 +407,5 @@
 		}
 
-		/* ãã¼ã¿ãé·ããã¦1ãã±ããã«åã¾ããªãã£ãå ´å */
+		/* データが長すぎて1パケットに収まらなかった場合 */
 		if (_ecn_fbs_exist_data(fbs_id)) {
 			ECN_DBG_PUT_1("[LCL TSK] send, data so long: %dbyte(s)", _ecn_fbs_get_datalen(fbs_id));
@@ -440,5 +420,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 ER echonet_lcl_input_msg(ecnl_svc_task_t *svc, mrb_value ep, mrb_value data)
@@ -452,5 +432,5 @@
 
 /*
- *  ãªã¢ã¼ãECHONETãã¼ãã®é©åç¢ºèª
+ *  リモートECHONETノードの適合確認
  */
 bool_t ecn_is_match(ecnl_svc_task_t *svc, const EOBJCB *enodcb, T_EDATA *edata, mrb_value ep)
@@ -470,5 +450,5 @@
 		return false;
 
-	/* ãã¼ãã¹ã¿ã¼ãæã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ä»¥å¤ã¯é¤å¤ */
+	/* ノードスタート時インスタンスリスト通知以外は除外 */
 	if (	edata->hdr.edata.esv != ESV_INF
 		||	edata->hdr.edata.deoj.eojx1 != EOJ_X1_PROFILE
@@ -492,18 +472,17 @@
 		}
 		ECN_DBG_PUT_2("ecn_is_match(): ecn_itr_nxt() result: epc=0x%02X, pdc=%d", epc, pdc);
-		/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã¾ãã¯èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³ä»¥å¤ã¯é¤å¤ */
+		/* インスタンスリスト通知または自ノードインスタンスリストＳ以外は除外 */
 		if ((epc != 0xD5) && (epc != 0xD6)) {
 			continue;
 		}
 
-		/* ï¼ãã¤ãç®ä»¥éã«eojãåæããã¦ãã */
+		/* ２バイト目以降にeojが列挙されている */
 		count = (pdc - 1) / sizeof(T_ECN_EOJ);
 
-		/* ãã¼ãå
-ã®æ©å¨ãªãã¸ã§ã¯ããæ¤ç´¢ */
+		/* ノード内の機器オブジェクトを検索 */
 		for (k = 0; k < enodcb->eobjcnt; k++) {
 			p_eobj = enodcb->eobjs[k];
 
-			/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããç¢ºèª */
+			/* インスタンスリストを確認 */
 			match = false;
 			for (i = 0, j = 1; i < count; i++, j += sizeof(T_ECN_EOJ)) {
@@ -523,5 +502,5 @@
 		}
 
-		/* ãã¹ã¦æã£ã¦ãããé©åï¼ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãã®æ¹ãå¤ãã¦ããããã¨ã¨ããï¼ */
+		/* すべて揃っていたら適合（インスタンスリストの方が多くてもいいこととする） */
 		return true;
 	}
@@ -531,5 +510,5 @@
 
 /*
- *  éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãããªã¢ã¼ãECHONETãã¼ãã¸å¤æ
+ *  通信レイヤーアドレスからリモートECHONETノードへ変換
  */
 ECN_ENOD_ID lcl_get_id(ecnl_svc_task_t *svc, T_EDATA *edata, const mrb_value ep)
@@ -542,5 +521,5 @@
 		return ENOD_MULTICAST_ID;
 
-	/* éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ã®åããã®ãæ¤ç´¢ */
+	/* 通信レイヤーアドレスの同じものを検索 */
 	if ((id = lcl_get_remote_id(svc, ep)) != ENOD_NOT_MATCH_ID) {
 		ECN_CAP_PUT_2("lcl_get_id(): ip-found remote(%d) = %s",
@@ -549,5 +528,5 @@
 	}
 
-	/* å¯¾å¿ãããªã¢ã¼ããã¼ããããã°éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãè¨­å® */
+	/* 対応するリモートノードがあれば通信レイヤーアドレスを設定 */
 	if ((id = lcl_set_remote_addr(svc, edata, ep)) != ENOD_NOT_MATCH_ID) {
 		ECN_CAP_PUT_2("lcl_get_id(): enod-found remote(%d) = %s",
@@ -556,5 +535,5 @@
 	}
 
-	/* ç©ºãé åãæ¢ãã¦èªåç»é² */
+	/* 空き領域を探して自動登録 */
 	if ((id = lcl_add_remote_addr(svc, edata, ep)) != ENOD_NOT_MATCH_ID) {
 		ECN_CAP_PUT_2("lcl_get_id(): empty-found remote(%d) = %s",
@@ -567,16 +546,15 @@
 
 /*
- *  ãªã¢ã¼ãECHONETãã¼ãããéä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ã¸å¤æ
+ *  リモートECHONETノードから通信レイヤーアドレスへ変換
  */
 mrb_value lcl_get_addr(ecnl_svc_task_t *svc, ECN_ENOD_ID fa_enodid)
 {
 	if (fa_enodid == ENOD_MULTICAST_ID) {
-		/* targetãENOD_MULTICAST_IDã®å ´åããã«ãã­ã£ã¹ããè¡ã */
+		/* targetがENOD_MULTICAST_IDの場合、マルチキャストを行う */
 		return lcl_get_multicast_addr(svc);
 	}
 
 	if (fa_enodid < ENOD_REMOTE_ID) {
-		/* targetãæªå®ç¾©ã»LOCALã»APIã®å ´åãã­ã¼ã«ã«é
-éãè¡ã */
+		/* targetが未定義・LOCAL・APIの場合、ローカル配送を行う */
 		return lcl_get_local_addr(svc);
 	}
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_lcl_task.h	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯
+ *		ECHONET Lite タスク
  */
 
@@ -66,5 +51,5 @@
 
 /*
- *  ECHONET Lite ä¸æåå ±ã¢ãã¬ã¹
+ *  ECHONET Lite 一斉同報アドレス
  */
 #ifdef SIL_ENDIAN_LITTLE
@@ -75,13 +60,12 @@
 
 /*
- *  ECHONET Lite ã¿ã¹ã¯é¢é£ã®å®æ°ã®ããã©ã«ãå¤ã®å®ç¾©
+ *  ECHONET Lite タスク関連の定数のデフォルト値の定義
  */
 #ifndef ECHONET_LCL_TASK_PRIORITY
-#define ECHONET_LCL_TASK_PRIORITY	3		/* åæåªå
-åº¦ */
+#define ECHONET_LCL_TASK_PRIORITY	3		/* 初期優先度 */
 #endif /* ECHONET_LCL_TASK_PRIORITY */
 
 #ifndef ECHONET_LCL_TASK_STACK_SIZE
-#define ECHONET_LCL_TASK_STACK_SIZE	1024	/* ã¹ã¿ãã¯é åã®ãµã¤ãº */
+#define ECHONET_LCL_TASK_STACK_SIZE	1024	/* スタック領域のサイズ */
 #endif /* ECHONET_LCL_TASK_STACK_SIZE */
 
@@ -90,22 +74,21 @@
 #endif /* NUM_ECHONET_LCL_MAILBOX */
 
- /* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¿ã¤ãã¼å¤åå¾ */
+ /* ECHONET Lite 通信レイヤータスク タイマー値取得 */
 TMO echonet_lcltask_get_timer(ecnl_svc_task_t *svc);
 
-/* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ æéçµéå¦ç */
+/* ECHONET Lite 通信レイヤータスク 時間経過処理 */
 void echonet_lcltask_progress(ecnl_svc_task_t *svc, TMO a_timer);
 
-/* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¡ãã»ã¼ã¸åä¿¡å¦ç */
+/* ECHONET Lite 通信レイヤータスク メッセージ受信処理 */
 void echonet_lcltask_recv_msg(ecnl_svc_task_t *svc, T_ECN_FST_BLK *p_msg);
 
-/* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¿ã¹ã¯ ã¿ã¤ã ã¢ã¦ãå¦ç */
+/* ECHONET Lite 通信レイヤータスク タイムアウト処理 */
 void echonet_lcltask_timeout(ecnl_svc_task_t *svc);
 
-/* ECHONET Lite éä¿¡ã¬ã¤ã¤ã¼ã¡ãã»ã¼ã¸å
-¥å */
+/* ECHONET Lite 通信レイヤーメッセージ入力 */
 ER echonet_lcl_input_msg(ecnl_svc_task_t *svc, mrb_value ep, mrb_value data);
 
 /*
- *  ãªã¢ã¼ãECHONETãã¼ãã®é©åç¢ºèª
+ *  リモートECHONETノードの適合確認
  */
 bool_t ecn_is_match(ecnl_svc_task_t *svc, const EOBJCB *eobjcb, T_EDATA *edata, mrb_value ep);
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.c	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯
+ *		ECHONET Lite タスク
  */
 
@@ -120,5 +105,5 @@
 			i += - ENOD_REMOTE_ID + 1;
 			if (from_app && (i < svc->tnum_enodid)) {
-				/* éåæã®ãªã¢ã¼ããã¼ãã¯ãµã¼ãã¹å¦çã¿ã¹ã¯ã§å¦çãã */
+				/* 非同期のリモートノードはサービス処理タスクで処理する */
 				switch (svc->eobjcb_table[i].profile->eobjatr) {
 				case EOBJ_SYNC_REMOTE_NODE:
@@ -168,5 +153,5 @@
 
 /*
- *  ECHONET Lite ã¿ã¹ã¯ã®åæåï¼ã³ã³ã¹ãã©ã¯ã¿ç¸å½ï¼
+ *  ECHONET Lite タスクの初期化（コンストラクタ相当）
  */
 void echonet_task_init(ecnl_svc_task_t *svc, intptr_t exinf)
@@ -176,5 +161,5 @@
 
 /*
- * ã¢ã¸ã¥ã¼ã«åæå
+ * モジュール初期化
  */
 static void _ecn_tsk_int_module_init(ecnl_svc_task_t *svc)
@@ -193,5 +178,5 @@
 
 /*
- * ECHONET Lite ã¿ã¹ã¯ ã¿ã¤ãã¼å¤åå¾
+ * ECHONET Lite タスク タイマー値取得
  */
 TMO echonet_svctask_get_timer(ecnl_svc_task_t *svc)
@@ -217,5 +202,5 @@
 
 /*
- * ECHONET Lite ã¿ã¹ã¯ æéçµéå¦ç
+ * ECHONET Lite タスク 時間経過処理
  */
 void echonet_svctask_progress(ecnl_svc_task_t *svc, TMO a_timer)
@@ -228,5 +213,5 @@
 
 /*
- * ECHONET Lite ã¿ã¹ã¯ ã¡ãã»ã¼ã¸åä¿¡å¦ç
+ * ECHONET Lite タスク メッセージ受信処理
  */
 void echonet_svctask_recv_msg(ecnl_svc_task_t *svc, T_ECN_FST_BLK *p_msg)
@@ -239,11 +224,10 @@
 
 	switch (fbs_id.ptr->hdr.type) {
-	/* å
-é¨ä½¿ç¨ã¡ãã»ã¼ã¸ */
+	/* 内部使用メッセージ */
 	case ECN_MSG_INTERNAL:
 		_ecn_tsk_int_msg(svc, svc->exinf, fbs_id);
 		break;
 
-	/* ECHONETç¨ã¡ãã»ã¼ã¸ */
+	/* ECHONET用メッセージ */
 	case ECN_MSG_ECHONET:
 		_ecn_tsk_ecn_msg(svc, svc->exinf, fbs_id);
@@ -254,5 +238,5 @@
 	}
 
-	/* é åè§£æ¾ */
+	/* 領域解放 */
 	if (svc->release_esv)
 		_ecn_fbs_del(svc->mrb, fbs_id);
@@ -260,5 +244,5 @@
 
 /*
- * ECHONET Lite ã¿ã¹ã¯ ã¿ã¤ã ã¢ã¦ãå¦ç
+ * ECHONET Lite タスク タイムアウト処理
  */
 void echonet_svctask_timeout(ecnl_svc_task_t *svc)
@@ -271,5 +255,5 @@
 
 /*
- * ã·ã¼ã±ã³ã¹çªå·çæ
+ * シーケンス番号生成
  */
 static uint16_t _ecn_tsk_new_tid(ecnl_svc_task_t *svc)
@@ -279,16 +263,13 @@
 
 /*
- * è¦æ±é»æä½æ
- * å¼æ°
- * ECN_FBS_ID		*fp_fbs_id		åå¾ããFBS_IDã®æ ¼ç´å
-
- * ID				fa_seoj			éä¿¡å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * ID				fa_deoj			å®å
-ã®ECHONETãªãã¸ã§ã¯ãID
- * uint8_t			fa_epc			ãã­ããã£ã³ã¼ã
- * uint8_t			fa_pdc			ãã­ããã£å¤ãã¼ã¿ãµã¤ãº
- * const void		*p_edt			ãã­ããã£å¤ãã¼ã¿
- * ECN_SRV_CODE		fa_esv			ECHONET Light ãµã¼ãã¹ã³ã¼ã
+ * 要求電文作成
+ * 引数
+ * ECN_FBS_ID		*fp_fbs_id		取得したFBS_IDの格納先
+ * ID				fa_seoj			送信元のECHONETオブジェクトID
+ * ID				fa_deoj			宛先のECHONETオブジェクトID
+ * uint8_t			fa_epc			プロパティコード
+ * uint8_t			fa_pdc			プロパティ値データサイズ
+ * const void		*p_edt			プロパティ値データ
+ * ECN_SRV_CODE		fa_esv			ECHONET Light サービスコード
  */
 ER _ecn_tsk_mk_esv(ecnl_svc_task_t *svc, ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
@@ -298,5 +279,5 @@
 	ER				a_ret;
 	int				a_size, i;
-	ECN_FBS_ID		a_fbs_id = { 0 };	/* è¦æ±é»æç¨ã¡ã¢ãª				*/
+	ECN_FBS_ID		a_fbs_id = { 0 };	/* 要求電文用メモリ				*/
 	T_ECN_EDT_HDR	a_ecn_hdp;			/* ecn_hdr+edata+ecn_prp 14byte	*/
 	ID				a_enodid;
@@ -305,29 +286,28 @@
 
 	if (!fp_fbs_id)
-		return E_PAR; /* åå¾ããFBS_IDã®æ ¼ç´å
-ãNULL */
+		return E_PAR; /* 取得したFBS_IDの格納先がNULL */
 	if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
-		return E_PAR; /* ãã­ããã£å¤ãµã¤ãºãå¤§ãããã */
+		return E_PAR; /* プロパティ値サイズが大きすぎる */
 	if (!p_edt && 0 < fa_pdc)
-		return E_PAR; /* ãã­ããã£å¤ãµã¤ãºã1ä»¥ä¸ãªã®ã«ãã¼ã¿ãã¤ã³ã¿ãNULL */
+		return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
 
 	if (fa_seoj <= EOBJ_NULL || svc->tmax_eobjid < fa_seoj)
-		return E_NOEXS; /* ECHONETãªãã¸ã§ã¯ãIDãæªå®ç¾© */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
 #ifndef ECHONET_CONTROLLER_EXTENTION
 	if (fa_deoj < EOBJ_NULL || svc->tmax_eobjid < fa_deoj)
-		return E_NOEXS; /* ECHONETãªãã¸ã§ã¯ãIDãæªå®ç¾© */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
 #else
 	if (fa_deoj < EOBJ_NULL || (svc->tmax_eobjid + TNUM_AEOBJID) < fa_deoj)
-		return E_NOEXS; /* ECHONETãªãã¸ã§ã¯ãIDãæªå®ç¾© */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
 #endif
 	if (fa_deoj == EOBJ_NULL && fa_esv == ESV_INFC)
-		return E_NOEXS; /* ECHONETãªãã¸ã§ã¯ãIDãæªå®ç¾© */
-
-	/* è¦æ±æå°ãµã¤ãºã®åå¾ */
+		return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
+
+	/* 要求最小サイズの取得 */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* è¦æ±é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 要求電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_id);
-	if (a_ret != E_OK || !a_fbs_id.ptr) { /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT_3("_ecn_fbs_cre(%d) result = %d:%s",
 			a_size,
@@ -336,5 +316,5 @@
 	}
 
-	/* è¦æ±é»æè¨­å®						*/
+	/* 要求電文設定						*/
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 	a_ecn_hdp.ecn_hdr.ehd1 = ECN_EDH1_ECHONET_LITE;
@@ -343,9 +323,9 @@
 	memcpy(&a_ecn_hdp.edata.seoj, &echonet_svctask_get_eobjinib(svc, fa_seoj)->eojx1, sizeof(a_ecn_hdp.edata.seoj));
 	a_ecn_hdp.edata.esv = fa_esv;
-	a_ecn_hdp.edata.opc = 1;		/* å¦çãã­ããã£æ° */
-	a_ecn_hdp.ecn_prp.epc = fa_epc;	/* ãã­ããã£ã³ã¼ã */
-	a_ecn_hdp.ecn_prp.pdc = fa_pdc;	/* ä»éãã¼ã¿ãµã¤ãº */
-
-	/* è¦æ±é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	a_ecn_hdp.edata.opc = 1;		/* 処理プロパティ数 */
+	a_ecn_hdp.ecn_prp.epc = fa_epc;	/* プロパティコード */
+	a_ecn_hdp.ecn_prp.pdc = fa_pdc;	/* 付随データサイズ */
+
+	/* 要求電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, &a_ecn_hdp, a_size);
 	if (a_ret) {
@@ -356,5 +336,5 @@
 	}
 	if (0 < fa_pdc) {
-		/* ä»éãã¼ã¿è¿½å  */
+		/* 付随データ追加 */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, p_edt, fa_pdc);
 		if (a_ret) {
@@ -366,6 +346,6 @@
 	}
 	if (fa_deoj == 0) {
-		ECN_DBG_PUT("ãã«ãã­ã£ã¹ã");
-		/* fa_deoj == 0 : ãã«ãã­ã£ã¹ã */
+		ECN_DBG_PUT("マルチキャスト");
+		/* fa_deoj == 0 : マルチキャスト */
 		((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1 = EOJ_X1_PROFILE;
 		((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2 = EOJ_X2_NODE_PROFILE;
@@ -375,10 +355,10 @@
 	else if (fa_deoj <= svc->tmax_eobjid) {
 		ECN_DBG_PUT_1("fa_deoj = %d", fa_deoj);
-		/* if (fa_deoj < 1 || svc->tmax_eobjid < fa_deoj) â¦ã®ç°å¸¸ç³»ã¯é¢æ°åé ­ã§é¤å¤æ¸ã¿ã¨ãã */
+		/* if (fa_deoj < 1 || svc->tmax_eobjid < fa_deoj) …の異常系は関数冒頭で除外済みとする */
 		a_eobj = echonet_svctask_get_eobjinib(svc, fa_deoj);
 		memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &a_eobj->eojx1,
 			sizeof(((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj));
 
-		/* ãã¼ãã«ããæ¤ç´¢ */
+		/* テーブルから検索 */
 		a_fbs_id.ptr->hdr.target.id = ENOD_NOT_MATCH_ID;
 		a_enodid = (a_eobj->enodid == 0) ? fa_deoj : a_eobj->enodid;
@@ -420,5 +400,5 @@
 		ECN_ENOD_ID enodid;
 		ECN_DBG_PUT_1("fa_deoj = %d", fa_deoj);
-		/* ãªãã¸ã§ã¯ãIDããEOJã¨ãã¼ãIDãåå¾ */
+		/* オブジェクトIDからEOJとノードIDを取得 */
 		if(ecn_agent_get_eoj_enodid(svc, fa_deoj, &eoj, &enodid)){
 			memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &eoj,
@@ -452,10 +432,10 @@
 
 	((T_EDATA *)a_fbs_id.ptr)->trn_pos = -1;
-	/* æ­£å¸¸çµäº */
+	/* 正常終了 */
 	*fp_fbs_id = a_fbs_id;
 	return E_OK;
 
 lb_except:
-	/* ãã¼ã¿ä½æå¤±æãããé åè§£æ¾ */
+	/* データ作成失敗したら領域解放 */
 	if (a_fbs_id.ptr)
 		_ecn_fbs_del(mrb, a_fbs_id);
@@ -465,6 +445,5 @@
 
 /*
- * å
-é¨ä½¿ç¨ã¡ãã»ã¼ã¸
+ * 内部使用メッセージ
  */
 static void _ecn_tsk_int_msg(ecnl_svc_task_t *svc, intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
@@ -497,5 +476,5 @@
 
 /*
- * ã¿ã¹ã¯åæå
+ * タスク初期化
  */
 void _ecn_tsk_int_startup(ecnl_svc_task_t *svc)
@@ -505,11 +484,11 @@
 
 /*
- * ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡
- * ECHONET-Lite_Ver.1.10_02.pdf p.43 å³4-1-4
+ * インスタンスリスト通知の送信
+ * ECHONET-Lite_Ver.1.10_02.pdf p.43 図4-1-4
  */
 ER _ecn_tsk_ntf_inl(ecnl_svc_task_t *svc)
 {
 	mrb_state *mrb = svc->mrb;
-	const T_ECN_EOJ	a_seoj =	/* 0x01 : ä¸è¬ãã¼ãã0x02ï¼éä¿¡å°ç¨ãã¼ã */
+	const T_ECN_EOJ	a_seoj =	/* 0x01 : 一般ノード、0x02：送信専用ノード */
 		{ EOJ_X1_PROFILE, EOJ_X2_NODE_PROFILE, 0x01 };
 	const T_ECN_EOJ	a_deoj =
@@ -521,5 +500,5 @@
 	int			i;
 	uint8_t		a_count;
-	const EOBJCB	*enod = &svc->eobjcb_table[0];	/* ã­ã¼ã«ã«ãã¼ã */
+	const EOBJCB	*enod = &svc->eobjcb_table[0];	/* ローカルノード */
 	const EOBJINIB *eobj;
 
@@ -539,11 +518,11 @@
 
 		if (!a_eoj_ct) {
-			/* ã¡ã¢ãªç¢ºä¿ã»ãããæ ¼ç´ */
-			a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(svc); /* ã·ã¼ã±ã³ã¹çªå·çæ */
+			/* メモリ確保・ヘッダ格納 */
+			a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(svc); /* シーケンス番号生成 */
 			a_ret = _ecn_fbs_cre(mrb, sizeof(a_hdr), &a_fbs);
-			if (a_ret != E_OK) /* ç¢ºä¿å¤±æ */
+			if (a_ret != E_OK) /* 確保失敗 */
 				goto lb_except;
 			a_ret = _ecn_fbs_add_data(mrb, a_fbs, &a_hdr, sizeof(a_hdr));
-			if (a_ret != E_OK) /* ãã¼ã¿è¿½å å¤±æ */
+			if (a_ret != E_OK) /* データ追加失敗 */
 				goto lb_except;
 
@@ -552,26 +531,26 @@
 			a_fbs.ptr->hdr.target.id = ENOD_MULTICAST_ID;
 			a_fbs.ptr->hdr.reply.id = ENOD_LOCAL_ID;
-			((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;	/* ä»¶æ° */
-			/* ä»¶æ°ãæ ¼ç´ */
+			((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;	/* 件数 */
+			/* 件数を格納 */
 			a_count = (uint8_t)(enod->eobjcnt - i);
 			if (a_count >= ECN_IST_LST_EOJ_MAX_CT)
 				a_count = ECN_IST_LST_EOJ_MAX_CT;
 			a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs, &a_count, sizeof(a_count));
-			if (a_ret != E_OK) /* ãã¼ã¿è¿½å å¤±æ */
+			if (a_ret != E_OK) /* データ追加失敗 */
 				goto lb_except;
 		}
-		/* ECHONETãªãã¸ã§ã¯ãID(3byte)ãæ ¼ç´ */
+		/* ECHONETオブジェクトID(3byte)を格納 */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs, &eobj->eojx1, sizeof(T_ECN_EOJ));
-		if (a_ret != E_OK) /* ãã¼ã¿è¿½å å¤±æ */
+		if (a_ret != E_OK) /* データ追加失敗 */
 			goto lb_except;
 
-		/* ä»¶æ°ã»edtãµã¤ãºå ç® */
+		/* 件数・edtサイズ加算 */
 		((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc += sizeof(T_ECN_EOJ);
 		if (++a_eoj_ct < ECN_IST_LST_EOJ_MAX_CT)
 			continue;
 
-		/* 1ã¢ãã¦ã³ã¹ã§ã®ä¸éã«éããããä¸æ¦éä¿¡ */
+		/* 1アナウンスでの上限に達したら、一旦送信 */
 		a_ret = _ecn_tsk_snd_mbx(svc, a_fbs, false);
-		if (a_ret != E_OK) /* ãã¼ã¿éä¿¡å¤±æ */
+		if (a_ret != E_OK) /* データ送信失敗 */
 			goto lb_except;
 		a_eoj_ct = 0;
@@ -579,7 +558,7 @@
 	}
 	if (a_eoj_ct) {
-		/* æªéä¿¡ãã¼ã¿ããã£ãããéä¿¡ */
+		/* 未送信データがあったら、送信 */
 		a_ret = _ecn_tsk_snd_mbx(svc, a_fbs, false);
-		if (a_ret != E_OK) /* ãã¼ã¿éä¿¡å¤±æ */
+		if (a_ret != E_OK) /* データ送信失敗 */
 			goto lb_except;
 		a_fbs.ptr = 0;
@@ -625,6 +604,5 @@
 
 /*
- * 3byteã®eobjidã§é
-åä¸­ãæ¤ç´¢ãã
+ * 3byteのeobjidで配列中を検索する
  */
 const EOBJINIB *_ecn_eoj_fnd(const EOBJCB *fp_nod, const T_ECN_EOJ *fp_eoj)
@@ -659,5 +637,5 @@
 
 /*
- * é»æã®æ§æè¦ç´ æ°ã¨ãµã¤ãºã®ãã§ãã¯ãè¡ã
+ * 電文の構成要素数とサイズのチェックを行う
  */
 static bool_t _ecn_tsk_check_format(ecnl_svc_task_t *svc, T_EDATA *edata, int len)
@@ -702,5 +680,5 @@
 
 /*
- * ECHONETç¨ã¡ãã»ã¼ã¸
+ * ECHONET用メッセージ
  */
 static void _ecn_tsk_ecn_msg(ecnl_svc_task_t *svc, intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
@@ -752,5 +730,5 @@
 	}
 
-	/* é»æã®æ§æè¦ç´ æ°ã¨ãµã¤ãºã®ãã§ãã¯ãè¡ã */
+	/* 電文の構成要素数とサイズのチェックを行う */
 	if (!_ecn_tsk_check_format(svc, (T_EDATA *)fa_fbs_id.ptr, fa_fbs_id.ptr->hdr.length)) {
 		ECN_DBG_PUT("_ecn_tsk_ecn_msg() format fault");
@@ -758,17 +736,16 @@
 	}
 
-	/* éä¿¡å®ãããã¼ããæ¤ç´¢ */
+	/* 送信宛からノードを検索 */
 	p_nod = _ecn_eno_fnd(svc, fa_fbs_id.ptr->hdr.target.id);
-	/* éä¿¡å
-ãããã¼ããæ¤ç´¢ */
+	/* 送信元からノードを検索 */
 	p_snod = _ecn_eno_fnd(svc, fa_fbs_id.ptr->hdr.sender.id);
 	if (p_snod != NULL) {
 		sobjatr = p_snod->profile->eobjatr;
-		/* ãã¼ããã­ãã¡ã¤ã«ã®å ´å */
+		/* ノードプロファイルの場合 */
 		if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
 			&& (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
 			p_sobj = p_snod->profile;
 		}
-		/* æ©å¨ãªãã¸ã§ã¯ãã®å ´å */
+		/* 機器オブジェクトの場合 */
 		else {
 			p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
@@ -780,6 +757,5 @@
 #endif
 
-	/* ãã¼ãå
-ã®æ©å¨ãªãã¸ã§ã¯ããæ¤ç´¢ */
+	/* ノード内の機器オブジェクトを検索 */
 	a_prc = false;
 	a_fwd = false;
@@ -788,20 +764,20 @@
 		eobjatr = p_nod->profile->eobjatr;
 		p_eoj = &p_esv->edata.deoj;
-		/* ãã¼ããã­ãã¡ã¤ã«ã®å ´å */
+		/* ノードプロファイルの場合 */
 		if ((p_eoj->eojx1 == EOJ_X1_PROFILE)
 			&& (p_eoj->eojx2 == EOJ_X2_NODE_PROFILE)) {
 			if ((p_eoj->eojx3 == p_nod->profile->eojx3)
 				|| (p_eoj->eojx3 == 0)) {
-				/* é»æå¦çå®è¡ */
+				/* 電文処理実行 */
 				if (_ecn_tsk_ecn_msg_main(svc, fa_fbs_id, p_nod->profile, eobjatr, p_sobj, sobjatr) == 1)
 					a_fwd = true;
 				a_prc = true;
 			}
-			/* 0x74 ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ã®å ´åã®å ´åã¯é»æç ´æ£ */
+			/* 0x74 プロパティ値通知（応答要）の場合の場合は電文破棄 */
 			else if (p_esv->edata.esv == ESV_INFC) {
 				a_prc = true;
 			}
 		}
-		/* æ©å¨ãªãã¸ã§ã¯ãã®å ´å */
+		/* 機器オブジェクトの場合 */
 		else {
 			count = p_nod->eobjcnt;
@@ -822,10 +798,9 @@
 				if (p_obj->eojx2 != p_eoj->eojx2)
 					continue;
-				/* ã¤ã³ã¹ã¿ã³ã¹ã³ã¼ããï¼ã®å ´åãåãã¯ã©ã¹ã®å
-¨ã¦ã®ã¤ã³ã¹ã¿ã³ã¹å® */
+				/* インスタンスコードが０の場合、同じクラスの全てのインスタンス宛 */
 				if ((p_obj->eojx3 != p_eoj->eojx3) && (p_eoj->eojx3 != 0))
 					continue;
 
-				/* é»æå¦çå®è¡ */
+				/* 電文処理実行 */
 				if (_ecn_tsk_ecn_msg_main(svc, fa_fbs_id, p_obj, eobjatr, p_sobj, sobjatr) == 1)
 					a_fwd = true;
@@ -833,5 +808,5 @@
 			}
 
-			/* æ©å¨ãªãã¸ã§ã¯ããè¦ã¤ãããã0x74 ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ã®å ´åã¯é»æç ´æ£ */
+			/* 機器オブジェクトが見つからず、0x74 プロパティ値通知（応答要）の場合は電文破棄 */
 			if (!a_prc && (p_esv->edata.esv == ESV_INFC)) {
 				a_prc = true;
@@ -839,12 +814,12 @@
 		}
 	}
-	/* æ©å¨ãªãã¸ã§ã¯ããè¦ã¤ãããªãå ´åã§ã */
+	/* 機器オブジェクトが見つからない場合でも */
 	if (!a_prc) {
-		/* é»æå¦çå®è¡ï¼å¿ç­åä¿¡ç¨ï¼ */
+		/* 電文処理実行（応答受信用） */
 		if (_ecn_tsk_ecn_msg_main(svc, fa_fbs_id, NULL, EPC_NONE, p_sobj, sobjatr) == 1)
 			a_fwd = true;
 	}
 
-	/* å¿ç­ã®å ´åã¢ããªã±ã¼ã·ã§ã³ã«è»¢éãã */
+	/* 応答の場合アプリケーションに転送する */
 	if (a_fwd && ((p_esv->ecn_hdr.tid == svc->api_tid)
 		|| svc->forward_esv))
@@ -852,5 +827,5 @@
 		svc->release_esv = false;
 
-		ECN_CAP_PUT_1("redirect svc->svc_mbxid â svc->api_mbxid (esv:0x%02X)",
+		ECN_CAP_PUT_1("redirect svc->svc_mbxid → svc->api_mbxid (esv:0x%02X)",
 			p_esv->edata.esv);
 		fa_fbs_id.ptr->hdr.target.id = ENOD_API_ID;
@@ -878,5 +853,5 @@
 
 	switch (p_esv->edata.esv) {
-	/* 0x60 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼ */
+	/* 0x60 プロパティ値書き込み要求（応答不要） */
 	case ESV_SET_I:
 		if (!p_obj) {
@@ -890,5 +865,5 @@
 		break;
 
-	/* 0x61 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼ */
+	/* 0x61 プロパティ値書き込み要求（応答要） */
 	case ESV_SET_C:
 		if (!p_obj) {
@@ -902,5 +877,5 @@
 		break;
 
-	/* 0x62 ãã­ããã£å¤èª­ã¿åºãè¦æ± */
+	/* 0x62 プロパティ値読み出し要求 */
 	case ESV_GET:
 		if (!p_obj) {
@@ -914,5 +889,5 @@
 		break;
 
-	/* 0x63 ãã­ããã£å¤éç¥è¦æ± */
+	/* 0x63 プロパティ値通知要求 */
 	case ESV_INF_REQ:
 		if (!p_obj) {
@@ -927,5 +902,5 @@
 		break;
 
-	/* 0x6E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ± */
+	/* 0x6E プロパティ値書き込み・読み出し要求 */
 	case ESV_SET_GET:
 		if (!p_obj) {
@@ -939,34 +914,32 @@
 		break;
 
-	/* 0x74 ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ */
+	/* 0x74 プロパティ値通知（応答要） */
 	case ESV_INFC:
 		if (!p_sobj)
-			/* éä¿¡å
-ãæªç¥ã®ä»ãã¼ãã§ãã£ãå ´åãå¿ç­ãè¿ã */
+			/* 送信元が未知の他ノードであった場合、応答を返す */
 			_ecn_tsk_eoj_res(svc, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES); /* 0x7A; 0x7A */
 		else if (fromapp)
-			/* ã¢ããªã±ã¼ã·ã§ã³ããã®è¦æ±ã®å ´åããã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ãéä¿¡ãã */
+			/* アプリケーションからの要求の場合、プロパティ値通知（応答要）を送信する */
 			_ecn_tsk_eoj_get(svc, p_sobj, sobjatr, true, (EPC_RULE_GET|EPC_RULE_ANNO), fa_fbs_id, ESV_INFC, ESV_NOP); /* 0x74; 0 */
 		else
-			/* éä¿¡å
-ãæ¢ç¥ã®ä»ãã¼ãã§ãã£ãå ´åããã­ããã£å¤ãæ´æ°ãå¿ç­ãè¿ã */
+			/* 送信元が既知の他ノードであった場合、プロパティ値を更新し応答を返す */
 			_ecn_tsk_eoj_set(svc, p_sobj, sobjatr, fromapp, true, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES, &a_fbs_anno); /* 0x7A; 0x7A */
 		result = 0;
 		break;
 
-	/* 0x60 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼ */
-	case ESV_SET_I_SNA:		/* 0x50 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­ */
+	/* 0x60 プロパティ値書き込み要求（応答不要） */
+	case ESV_SET_I_SNA:		/* 0x50 プロパティ値書き込み要求不可応答 */
 		result = 1;
 		break;
 
-	/* 0x61 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼ */
-	case ESV_SET_RES:		/* 0x71 ãã­ããã£å¤æ¸ãè¾¼ã¿å¿ç­ */
-	case ESV_SET_C_SNA:		/* 0x51 ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­ */
+	/* 0x61 プロパティ値書き込み要求（応答要） */
+	case ESV_SET_RES:		/* 0x71 プロパティ値書き込み応答 */
+	case ESV_SET_C_SNA:		/* 0x51 プロパティ値書き込み要求不可応答 */
 		result = 1;
 		break;
 
-	/* 0x62 ãã­ããã£å¤èª­ã¿åºãè¦æ± */
-	case ESV_GET_RES:		/* 0x72 ãã­ããã£å¤èª­ã¿åºãå¿ç­ */
-	case ESV_GET_SNA:		/* 0x52 ãã­ããã£å¤èª­ã¿åºãä¸å¯å¿ç­ */
+	/* 0x62 プロパティ値読み出し要求 */
+	case ESV_GET_RES:		/* 0x72 プロパティ値読み出し応答 */
+	case ESV_GET_SNA:		/* 0x52 プロパティ値読み出し不可応答 */
 		if (!p_sobj) {
 			ECN_DBG_PUT_1("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
@@ -979,7 +952,7 @@
 		break;
 
-	/* 0x63 ãã­ããã£å¤éç¥è¦æ± */
-	case ESV_INF:			/* 0x73 ãã­ããã£å¤éç¥ */
-	case ESV_INF_SNA:		/* 0x53 ãã­ããã£å¤éç¥ä¸å¯å¿ç­ */
+	/* 0x63 プロパティ値通知要求 */
+	case ESV_INF:			/* 0x73 プロパティ値通知 */
+	case ESV_INF_SNA:		/* 0x53 プロパティ値通知不可応答 */
 		if (!p_sobj) {
 			ECN_DBG_PUT_1("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
@@ -992,7 +965,7 @@
 		break;
 
-	/* 0x6E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ± */
-	case ESV_SET_GET_RES:	/* 0x7E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãå¿ç­ */
-	case ESV_SET_GET_SNA:	/* 0x5E ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãä¸å¯å¿ç­ */
+	/* 0x6E プロパティ値書き込み・読み出し要求 */
+	case ESV_SET_GET_RES:	/* 0x7E プロパティ値書き込み・読み出し応答 */
+	case ESV_SET_GET_SNA:	/* 0x5E プロパティ値書き込み・読み出し不可応答 */
 		if (!p_sobj) {
 			ECN_DBG_PUT_1("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
@@ -1005,6 +978,6 @@
 		break;
 
-	/* 0x74 ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼ */
-	case ESV_INFC_RES:		/* 0x7A ãã­ããã£å¤éç¥å¿ç­ */
+	/* 0x74 プロパティ値通知（応答要） */
+	case ESV_INFC_RES:		/* 0x7A プロパティ値通知応答 */
 		result = 1;
 		break;
@@ -1016,5 +989,5 @@
 	}
 
-	/* ãã­ããã£éç¥è¦æ±ãéä¿¡ */
+	/* プロパティ通知要求を送信 */
 	if (a_fbs_anno.ptr != NULL) {
 		ER a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_anno, true);
@@ -1093,13 +1066,11 @@
 
 /*
- * ECN_FBS_IDããT_ECN_PRP1ä»¶ã¨ãã®ä»éãã¼ã¿(edt)ãæ½åºããedtã®ãã¤ã³ã¿ãè¿ã
- * å¼æ°
- * ECN_FBS_ID fa_fbs_id					èª­ã¿åãFBS
- * T_ECN_PRP *fp_prp					epc+pdcã®æ ¼ç´å
-
- * T_ECN_SUB_BLK * const fp_prev_blk	ååä½¿ã£ãã¡ã¢ãªã®ãã¤ã³ã¿(ç¡ããã°0)
- * æ­£å¸¸ï¼ãã¤ã³ã¿ NG:0
- * ãã¤ã³ã¿ã¯_ecn_fbs_mbx_rel()ã§è§£æ¾ããå¿
-è¦ããã
+ * ECN_FBS_IDからT_ECN_PRP1件とその付随データ(edt)を抽出し、edtのポインタを返す
+ * 引数
+ * ECN_FBS_ID fa_fbs_id					読み取るFBS
+ * T_ECN_PRP *fp_prp					epc+pdcの格納先
+ * T_ECN_SUB_BLK * const fp_prev_blk	前回使ったメモリのポインタ(無ければ0)
+ * 正常：ポインタ NG:0
+ * ポインタは_ecn_fbs_mbx_rel()で解放する必要がある
  */
 static T_ECN_SUB_BLK *_ecn_tsk_get_prp_pce(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, T_ECN_PRP *fp_prp,
@@ -1111,7 +1082,7 @@
 	ER		a_ret;
 
-	/* ãã­ããã£ç¨ã¡ã¢ãªã®åå¾ */
+	/* プロパティ用メモリの取得 */
 	if (fp_prev_blk) {
-		p_blk = fp_prev_blk; /* ååä½¿ã£ãã¡ã¢ãªããããªããåå©ç¨ãã */
+		p_blk = fp_prev_blk; /* 前回使ったメモリがあるなら、再利用する */
 	}
 	else {
@@ -1119,10 +1090,10 @@
 		if (!p_blk) {
 			ECN_DBG_PUT("_ecn_fbs_mbx_get() fault.");
-			return 0;	/* ã¡ã¢ãªä¸è¶³ */
+			return 0;	/* メモリ不足 */
 		}
 	}
 	memset(p_blk, 0, sizeof(*p_blk));
 
-	/* T_ECN_PRPé¨å(epc,pdc)ãèª­ã¿åã */
+	/* T_ECN_PRP部分(epc,pdc)を読み取る */
 	a_size = 0;
 	a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, fp_prp, sizeof(*fp_prp), &a_size);
@@ -1133,5 +1104,5 @@
 
 	if (0 < fp_prp->pdc) {
-		/* ä»éãã¼ã¿é¨å(edt)ãèª­ã¿åã */
+		/* 付随データ部分(edt)を読み取る */
 		a_size = 0;
 		a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, p_blk, fp_prp->pdc, &a_size);
@@ -1145,5 +1116,5 @@
 
 lb_except:
-	/* ãã­ããã£ç¨ã¡ã¢ãªè§£æ¾ */
+	/* プロパティ用メモリ解放 */
 	if (p_blk && !fp_prev_blk)
 		_ecn_fbs_mbx_rel(mrb, p_blk);
@@ -1155,5 +1126,5 @@
 	ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
 	int *p_sw_ok);
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿å®è¡ */
+/* プロパティ値書き込み実行 */
 static ER _ecn_tsk_eoj_set_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, bool_t fa_update,
 	ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
@@ -1172,5 +1143,5 @@
 
 	for (i = 0; i < a_count; i++) {
-		/* ECN_FBS_IDããT_ECN_PRP1ä»¶ã¨ãã®ä»éãã¼ã¿ãæ½åºãããã®ãã¤ã³ã¿ãè¿ã */
+		/* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出し、そのポインタを返す */
 		p_edt = _ecn_tsk_get_prp_pce(svc, fa_fbs_id, &a_prp, p_edt);
 		if (!p_edt) {
@@ -1179,7 +1150,7 @@
 		}
 
-		/* ãã­ããã£ã®è¨­å® set_prp(obj, reqp, resp) */
+		/* プロパティの設定 set_prp(obj, reqp, resp) */
 		a_size = a_prp.pdc;
-		/* obj,epcã«å¯¾å¿ããseté¢æ°ãå¼ã¶ */
+		/* obj,epcに対応するset関数を呼ぶ */
 		a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
 		if ((a_eprp != NULL)
@@ -1203,11 +1174,11 @@
 				fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
 				a_prp.epc, p_edt->payload[0], a_size);
-			*p_sw_ok = 0;	/* ãã­ããã£è¨­å®å¤±æ */
-			/* å¿ç­å¦çã®å ´åEDTã¯è¨­å®ããªã */
+			*p_sw_ok = 0;	/* プロパティ設定失敗 */
+			/* 応答処理の場合EDTは設定しない */
 			if (fa_update)
 				a_prp.pdc = 0;
 		}
 
-		/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å (epc,pdcã®2byte) */
+		/* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_prp, sizeof(a_prp));
 		if (a_ret) {
@@ -1217,5 +1188,5 @@
 
 		if (0 < a_prp.pdc) {
-			/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å (edt n-byte) */
+			/* 応答電文用メモリにデータ追加(edt n-byte) */
 			a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, p_edt->payload, a_prp.pdc);
 			if (a_ret) {
@@ -1226,5 +1197,5 @@
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc ++;
 
-		/* ãã­ããã£éç¥ããã®å ´å */
+		/* プロパティ通知ありの場合 */
 		if (a_anno && (a_ans == a_size)) {
 			if (fa_fbs_anno->ptr == NULL) {
@@ -1244,5 +1215,5 @@
 
 lb_finally:
-	/* ãã­ããã£ç¨ã¡ã¢ãªè§£æ¾ */
+	/* プロパティ用メモリ解放 */
 	if (p_edt)
 		_ecn_fbs_mbx_rel(mrb, p_edt);
@@ -1253,5 +1224,5 @@
 static ER _ecn_tsk_eoj_get_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
 	ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
-/* ãã­ããã£å¤èª­ã¿åºãå®è¡ */
+/* プロパティ値読み出し実行 */
 static ER _ecn_tsk_eoj_get_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
 	ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
@@ -1259,5 +1230,5 @@
 	mrb_state *mrb = svc->mrb;
 	T_ECN_SUB_BLK	*p_edt		=	0;
-	void				*p_prp_buf	=	0;	/* ä½æ¥­é å */
+	void				*p_prp_buf	=	0;	/* 作業領域 */
 	const EPRPINIB		*a_eprp;
 	ER					a_ret		=	E_SYS;
@@ -1267,13 +1238,13 @@
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
 
-	/* ä½æ¥­é åç¢ºä¿ */
+	/* 作業領域確保 */
 	p_prp_buf = _ecn_fbs_mbx_get(mrb, ECHONET_MEMPOOL_BLOCK_SIZE);
 	if (!p_prp_buf) {
 		ECN_DBG_PUT_2("_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret));
-		goto lb_except;	/* ã¡ã¢ãªä¸è¶³ */
+		goto lb_except;	/* メモリ不足 */
 	}
 
 	for (i = 0; i < a_count; i++) {
-		/* ECN_FBS_IDããT_ECN_PRP1ä»¶ã¨ãã®ä»éãã¼ã¿ãæ½åº */
+		/* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
 		p_edt = _ecn_tsk_get_prp_pce(svc, fa_fbs_id, &a_prp, p_edt);
 		if (!p_edt) {
@@ -1282,7 +1253,7 @@
 		}
 
-		/* ãã­ããã£ã®åå¾ get_eprp(obj, reqp, resp, size) */
+		/* プロパティの取得 get_eprp(obj, reqp, resp, size) */
 		memset(p_prp_buf, 0, ECHONET_MEMPOOL_BLOCK_SIZE);
-		/* obj,epcã«å¯¾å¿ããgeté¢æ°ãå¼ã¶ */
+		/* obj,epcに対応するget関数を呼ぶ */
 		a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
 		if ((a_eprp != NULL) && (((a_eprp->eprpatr & fa_access) != 0) && (fa_eobjatr == EOBJ_LOCAL_NODE) || fa_forward)) {
@@ -1295,10 +1266,10 @@
 			a_prp.pdc = (uint8_t)a_ans;
 		} else {
-			*p_sw_ok = 0;	/* ãã­ããã£åå¾å¤±æ */
+			*p_sw_ok = 0;	/* プロパティ取得失敗 */
 			a_ans = 0;
 			a_prp.pdc = 0;
 		}
 
-		/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å (epc,pdcã®2byte) */
+		/* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_prp, sizeof(a_prp));
 		if (a_ret) {
@@ -1307,5 +1278,5 @@
 		}
 		if (0 < a_ans) {
-			/* ä»éãã¼ã¿è¿½å  */
+			/* 付随データ追加 */
 			a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, p_prp_buf, a_ans);
 			if (a_ret) {
@@ -1323,9 +1294,9 @@
 
 lb_finally:
-	/* ä½æ¥­é åè§£æ¾ */
+	/* 作業領域解放 */
 	if (p_prp_buf)
 		_ecn_fbs_mbx_rel(mrb, p_prp_buf);
 
-	/* ãã­ããã£ç¨ã¡ã¢ãªè§£æ¾ */
+	/* プロパティ用メモリ解放 */
 	if (p_edt)
 		_ecn_fbs_mbx_rel(mrb, p_edt);
@@ -1335,10 +1306,10 @@
 
 static ER _ecn_tsk_eoj_res_main(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
-/* ãã­ããã£å¤èª­ã¿åºãå®è¡ */
+/* プロパティ値読み出し実行 */
 static ER _ecn_tsk_eoj_res_main(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
 {
 	mrb_state *mrb = svc->mrb;
 	T_ECN_SUB_BLK	*p_edt		=	0;
-	void				*p_prp_buf	=	0;	/* ä½æ¥­é å */
+	void				*p_prp_buf	=	0;	/* 作業領域 */
 	ER					a_ret		=	E_SYS;
 	T_ECN_PRP			a_prp;			/* epc+pdc */
@@ -1347,13 +1318,13 @@
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
 
-	/* ä½æ¥­é åç¢ºä¿ */
+	/* 作業領域確保 */
 	p_prp_buf = _ecn_fbs_mbx_get(mrb, ECHONET_MEMPOOL_BLOCK_SIZE);
 	if (!p_prp_buf) {
 		ECN_DBG_PUT_2("_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret));
-		goto lb_except;	/* ã¡ã¢ãªä¸è¶³ */
+		goto lb_except;	/* メモリ不足 */
 	}
 
 	for (i = 0; i < a_count; i++) {
-		/* ECN_FBS_IDããT_ECN_PRP1ä»¶ã¨ãã®ä»éãã¼ã¿ãæ½åº */
+		/* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
 		p_edt = _ecn_tsk_get_prp_pce(svc, fa_fbs_id, &a_prp, p_edt);
 		if (!p_edt) {
@@ -1364,5 +1335,5 @@
 		a_prp.pdc = 0;
 
-		/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å (epc,pdcã®2byte) */
+		/* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_prp, sizeof(a_prp));
 		if (a_ret) {
@@ -1379,9 +1350,9 @@
 
 lb_finally:
-	/* ä½æ¥­é åè§£æ¾ */
+	/* 作業領域解放 */
 	if (p_prp_buf)
 		_ecn_fbs_mbx_rel(mrb, p_prp_buf);
 
-	/* ãã­ããã£ç¨ã¡ã¢ãªè§£æ¾ */
+	/* プロパティ用メモリ解放 */
 	if (p_edt)
 		_ecn_fbs_mbx_rel(mrb, p_edt);
@@ -1390,5 +1361,5 @@
 }
 
-/* ãã­ããã£å¤èª­ã¿é£ã°ãå®è¡ */
+/* プロパティ値読み飛ばし実行 */
 static ER _ecn_tsk_eoj_skip_main(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ECN_FBS_ID fa_fbs_id,
 	int a_count);
@@ -1402,5 +1373,5 @@
 
 	for (i = 0; i < a_count; i++) {
-		/* T_ECN_PRPé¨å(epc,pdc)ãèª­ã¿åã */
+		/* T_ECN_PRP部分(epc,pdc)を読み取る */
 		a_size = 0;
 		a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, &a_prp, sizeof(a_prp), &a_size);
@@ -1410,5 +1381,5 @@
 		}
 
-		/* pdcåèª­ã¿é£ã°ã */
+		/* pdc分読み飛ばし */
 		a_ret = _ecn_fbs_seek_rpos(fa_fbs_id, a_prp.pdc);
 		if (a_ret) {
@@ -1429,5 +1400,5 @@
 static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
 	T_ECN_EDT_HDR const *fp_req_esv);
-/* å¿ç­é»æè¨­å® */
+/* 応答電文設定 */
 static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
 	T_ECN_EDT_HDR const *fp_req_esv)
@@ -1454,7 +1425,7 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å® */
+/* 応答電文用fbs設定 */
 static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr);
-/* å¿ç­é»æç¨fbsè¨­å®(sender/targetã®è¨­å®) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr)
 {
@@ -1465,5 +1436,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±	*/
+/* プロパティ値書き込み要求	*/
 static void _ecn_tsk_eoj_set(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_fromapp, bool_t fa_update,
 	ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv,
@@ -1481,13 +1452,13 @@
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 
-	/* å¿ç­æå¤§ãµã¤ãºã®åå¾ */
+	/* 応答最大サイズの取得 */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
 		return;
 
-	/* å¿ç­é»æè¨­å® */
+	/* 応答電文設定 */
 	if(p_req_esv->edata.deoj.eojx3 != 0)
 		_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
@@ -1495,10 +1466,7 @@
 		_ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
 
-	/* æ­£å¸¸æã®å¿ç­é»æããã­ããã£å¤éç¥å¿ç­ã®å ´å */
+	/* 正常時の応答電文がプロパティ値通知応答の場合 */
 	if (fa_res_esv == ESV_INFC_RES) {
-		/* éä¿¡å
-ã¨å®å
-ãå
-¥ãæ¿ã */
+		/* 送信元と宛先を入れ替え */
 		eoj = a_ecn_hdp.edata.seoj;
 		a_ecn_hdp.edata.seoj = a_ecn_hdp.edata.deoj;
@@ -1506,7 +1474,7 @@
 	}
 
-	f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj ãããã°åºå */
-
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
 				sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1514,14 +1482,13 @@
 		goto lb_except;
 
-	/* payloadå
-é ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ãèª­ã¿é£ã°ã */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret)
 		goto lb_except;
 
-	/* å¿ç­é»æç¨fbsè¨­å® */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿å®è¡ */
+	/* プロパティ値書き込み実行 */
 	a_ret = _ecn_tsk_eoj_set_main(svc, fp_obj, fa_eobjatr, fa_fromapp, fa_update, fa_fbs_id, a_fbs_res,
 		fa_fbs_anno, p_req_esv->edata.opc, &a_sw_ok);
@@ -1529,23 +1496,23 @@
 		goto lb_except;
 
-	/* å¿ç­è¦ã®å ´å */
+	/* 応答要の場合 */
 	if (a_sw_ok) {
 		if (!fa_res_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çæå */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
 		if (!fa_sna_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çå¤±æ */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* å¿ç­éä¿¡ */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
 	if (a_ret == E_OK)
@@ -1553,5 +1520,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(mrb, a_fbs_res);
@@ -1561,5 +1528,5 @@
 }
 
-/* ãã­ããã£å¤èª­ã¿åºãè¦æ±	*/
+/* プロパティ値読み出し要求	*/
 static void _ecn_tsk_eoj_get(ecnl_svc_task_t *svc, const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
 	ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv)
@@ -1575,15 +1542,15 @@
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 
-	/* åæåå¾ãµã¤ãº */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) { /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT_2("_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret));
 		goto lb_finally;
 	}
 
-	/* å¿ç­é»æè¨­å® */
+	/* 応答電文設定 */
 	if(p_req_esv->edata.deoj.eojx3 != 0)
 		_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
@@ -1591,7 +1558,7 @@
 		_ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
 
-	f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj ãããã°åºå */
-
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
 			sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1601,6 +1568,5 @@
 	}
 
-	/* payloadå
-é ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ãèª­ã¿é£ã°ã */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret) {
@@ -1609,8 +1575,8 @@
 	}
 
-	/* å¿ç­é»æç¨fbsè¨­å® */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* ãã­ããã£å¤èª­ã¿è¾¼ã¿å®è¡ */
+	/* プロパティ値読み込み実行 */
 	a_ret = _ecn_tsk_eoj_get_main(svc, fp_obj, fa_eobjatr, fa_forward, fa_access, fa_fbs_id, a_fbs_res,
 		((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
@@ -1622,25 +1588,25 @@
 	if (a_sw_ok) {
 		if (!fa_res_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çæå */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
 		if (!fa_sna_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çå¤±æ */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 
-		/* ä¸å¯å¿ç­ã®å ´åã¯åå¥éä¿¡ãã */
+		/* 不可応答の場合は個別送信する */
 		if (a_fbs_res.ptr->hdr.target.id == ENOD_MULTICAST_ID) {
 			a_fbs_res.ptr->hdr.target.id = fa_fbs_id.ptr->hdr.sender.id;
 		}
 	}
-	/* å¿ç­éä¿¡ */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
 	if (a_ret != E_OK) {
@@ -1651,5 +1617,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(mrb, a_fbs_res);
@@ -1659,5 +1625,5 @@
 }
 
-/* ãã­ããã£å¤èª­ã¿åºãè¦æ±	*/
+/* プロパティ値読み出し要求	*/
 static void _ecn_tsk_eoj_res(ecnl_svc_task_t *svc, ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv,
 	ECN_SRV_CODE fa_sna_esv)
@@ -1673,20 +1639,20 @@
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
 
-	/* åæåå¾ãµã¤ãº */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) { /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT_2("_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret));
 		goto lb_finally;
 	}
 
-	/* å¿ç­é»æè¨­å®						*/
+	/* 応答電文設定						*/
 	_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
 
-	f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj ãããã°åºå */
-
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
 			sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1696,6 +1662,5 @@
 	}
 
-	/* payloadå
-é ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ãèª­ã¿é£ã°ã */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret) {
@@ -1704,8 +1669,8 @@
 	}
 
-	/* å¿ç­é»æç¨fbsè¨­å® */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* ãã­ããã£å¤èª­ã¿è¾¼ã¿å®è¡ */
+	/* プロパティ値読み込み実行 */
 	a_ret = _ecn_tsk_eoj_res_main(svc, fa_fbs_id, a_fbs_res,
 		((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
@@ -1717,20 +1682,20 @@
 	if (a_sw_ok) {
 		if (!fa_res_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çæå */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
 		if (!fa_sna_esv) {
-			/* å¿ç­ä¸è¦ã®å ´å */
+			/* 応答不要の場合 */
 			_ecn_fbs_del(mrb, a_fbs_res);
 			goto lb_finally;
 		}
-		/* è¨­å®å¦çå¤±æ */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* å¿ç­éä¿¡ */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
 	if (a_ret != E_OK) {
@@ -1741,5 +1706,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(mrb, a_fbs_res);
@@ -1757,9 +1722,9 @@
 	T_ECN_EDT_HDR	a_ecn_hdp;
 	ECN_FBS_ID		a_fbs_res	= { 0 };
-	int				a_rdprp_wrpos;	/*	ãã­ããã£èª­ã¿è¾¼ã¿ä»¶æ°æ¸ãè¾¼ã¿æã®ãããä½ç½®	*/
+	int				a_rdprp_wrpos;	/*	プロパティ読み込み件数書き込み時のヘッド位置	*/
 	ER		a_ret;
 	int		i, a_size, a_rdlen;
 	int		a_sw_ok = 1;
-	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* å¦çãã­ããã£æ° */
+	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* 処理プロパティ数 */
 
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
@@ -1768,13 +1733,13 @@
 		fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3);
 
-	/* åæåå¾ãµã¤ãº */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã®åå¾ */
+	/* 応答電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_res);
-	if (a_ret != E_OK || !a_fbs_res.ptr) /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
 		goto lb_finally;
 
-	/* å¿ç­é»æè¨­å® */
+	/* 応答電文設定 */
 	if(p_req_esv->edata.deoj.eojx3 != 0)
 		_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
@@ -1783,7 +1748,7 @@
 	a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
 
-	f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj ãããã°åºå */
-
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  */
+	f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
+
+	/* 応答電文用メモリにデータ追加 */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &a_ecn_hdp,
 				sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
@@ -1791,14 +1756,13 @@
 		goto lb_except;
 
-	/* payloadå
-é ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ãèª­ã¿é£ã°ã */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret)
 		goto lb_except;
 
-	/* å¿ç­é»æç¨fbsè¨­å® */
+	/* 応答電文用fbs設定 */
 	_ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿å®è¡ */
+	/* プロパティ値書き込み実行 */
 	a_ret = _ecn_tsk_eoj_set_main(svc, fp_obj, fa_eobjatr, fa_fromapp, false, fa_fbs_id, a_fbs_res,
 		fa_fbs_anno, a_count, &a_sw_ok);
@@ -1813,6 +1777,6 @@
 		(a_sw_ok ? "true" : "false"));
 
-	/* æ¬¡ã®ä»¶æ°ãèª­ã¿åã(1byte)						*/
-	/* â ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]	*/
+	/* 次の件数を読み取る(1byte)						*/
+	/* → ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]	*/
 	a_rdlen = i = 0;
 	a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, &i, 1, &a_rdlen);
@@ -1821,18 +1785,17 @@
 	a_count = *(uint8_t *)&i;
 
-	/* ãã­ããã£èª­ã¿è¾¼ã¿ä»¶æ°æ¸ãè¾¼ã¿æã®ãããæ
-å ±ãè¨é² */
+	/* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
 	a_rdprp_wrpos = _ecn_fbs_get_datalen(a_fbs_res);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªã«ãã¼ã¿è¿½å  (OPCGet 1byte) */
+	/* 応答電文用メモリにデータ追加 (OPCGet 1byte) */
 	a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_res, &i, 1);
 	if (a_ret)
 		goto lb_except;
 
-	/* ãã®æç¹ã§ã®å¿ç­é»æä¸­ãã­ããã£ä»¶æ°ãè¨é² */
+	/* この時点での応答電文中プロパティ件数を記録 */
 	i = ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc;
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
 
-	/* ãã­ããã£å¤èª­ã¿è¾¼ã¿å®è¡ */
+	/* プロパティ値読み込み実行 */
 	a_ret = _ecn_tsk_eoj_get_main(svc, fp_obj, fa_eobjatr, false, EPC_RULE_GET, fa_fbs_id, a_fbs_res,
 		a_count, &a_sw_ok);
@@ -1847,20 +1810,19 @@
 		(a_sw_ok ? "true" : "false"));
 
-	/* ãã­ããã£èª­ã¿è¾¼ã¿ä»¶æ°æ¸ãè¾¼ã¿æã®ãããæ
-å ±ã§ãèª­ã¿åºãä»¶æ°ãè¨é² */
+	/* プロパティ読み込み件数書き込み時のヘッド情報で、読み出し件数を記録 */
 	_ecn_fbs_poke(mrb, a_fbs_res, a_rdprp_wrpos, ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc);
 
-	/* è¨é²ãã¦ããããã­ããã£ä»¶æ°ï¼æ¸ãè¾¼ã¿ä»¶æ°ï¼ãæ¸ãæ»ã */
+	/* 記録しておいたプロパティ件数（書き込み件数）を書き戻す */
 	((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = (uint8_t)i;
 
-	/* å¿ç­è¦ã®å ´å */
+	/* 応答要の場合 */
 	if (a_sw_ok) {
-		/* è¨­å®å¦çæå */
+		/* 設定処理成功 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
 	} else {
-		/* è¨­å®å¦çå¤±æ */
+		/* 設定処理失敗 */
 		((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
 	}
-	/* å¿ç­éä¿¡ */
+	/* 応答送信 */
 	a_ret = _ecn_tsk_snd_mbx(svc, a_fbs_res, false);
 	if (a_ret == E_OK)
@@ -1868,5 +1830,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_res.ptr)
 		_ecn_fbs_del(mrb, a_fbs_res);
@@ -1886,5 +1848,5 @@
 	int		i, a_size, a_rdlen;
 	int		a_sw_ok = 1;
-	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* å¦çãã­ããã£æ° */
+	int		a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;	/* 処理プロパティ数 */
 
 	memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
@@ -1893,23 +1855,22 @@
 		fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3);
 
-	/* åæåå¾ãµã¤ãº */
+	/* 初期取得サイズ */
 	a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
 
-	/* å¿ç­é»æç¨ã¡ã¢ãªï¼ããã¼ï¼ã®åå¾ */
+	/* 応答電文用メモリ（ダミー）の取得 */
 	a_ret = _ecn_fbs_cre(mrb, a_size, &a_fbs_dmy);
-	if (a_ret != E_OK || !a_fbs_dmy.ptr) /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_dmy.ptr) /* 確保失敗 */
 		goto lb_finally;
 
-	/* å¿ç­é»æè¨­å®						*/
+	/* 応答電文設定						*/
 	_ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
 	a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
 
-	/* payloadå
-é ­ã®T_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)ãèª­ã¿é£ã°ã */
+	/* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
 	a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
 	if (a_ret)
 		goto lb_except;
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿å¿ç­èª­ã¿é£ã°ãå®è¡ */
+	/* プロパティ値書き込み応答読み飛ばし実行 */
 	a_ret = _ecn_tsk_eoj_skip_main(svc, fp_obj, fa_fbs_id, a_count);
 	if (a_ret) {
@@ -1923,6 +1884,6 @@
 		(a_sw_ok ? "true" : "false"));
 
-	/* æ¬¡ã®ä»¶æ°ãèª­ã¿åã(1byte)						*/
-	/* â ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]	*/
+	/* 次の件数を読み取る(1byte)						*/
+	/* → ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]	*/
 	a_rdlen = i = 0;
 	a_ret = _ecn_fbs_get_data(mrb, fa_fbs_id, &i, 1, &a_rdlen);
@@ -1931,5 +1892,5 @@
 	a_count = *(uint8_t *)&i;
 
-	/* ãã­ããã£å¤èª­ã¿åºãå¿ç­ã®æ¸ãè¾¼ã¿å®è¡ */
+	/* プロパティ値読み出し応答の書き込み実行 */
 	a_ret = _ecn_tsk_eoj_set_main(svc, fp_obj, fa_eobjatr, fa_fromapp, true, fa_fbs_id, a_fbs_dmy,
 								  fa_fbs_anno, a_count, &a_sw_ok);
@@ -1947,5 +1908,5 @@
 
 lb_except:
-	/* ãã¼ã¿éä¿¡å¤±æãããé åè§£æ¾ */
+	/* データ送信失敗したら領域解放 */
 	if (a_fbs_dmy.ptr)
 		_ecn_fbs_del(mrb, a_fbs_dmy);
@@ -1956,6 +1917,5 @@
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿é»æä½æ
+ * 応答電文待ちの割り込み電文作成
  */
 ER _ecn_mk_brk_wai(ecnl_svc_task_t *svc, ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size)
@@ -1963,5 +1923,5 @@
 	mrb_state *mrb = svc->mrb;
 	ER				a_ret;
-	ECN_FBS_ID		a_fbs_id = { 0 };	/* è¦æ±é»æç¨ã¡ã¢ãª	*/
+	ECN_FBS_ID		a_fbs_id = { 0 };	/* 要求電文用メモリ	*/
 
 	if (!pk_fbs_id)
@@ -1969,16 +1929,16 @@
 	*pk_fbs_id = a_fbs_id;
 	if (sizeof(a_fbs_id.ptr->payload) <= fa_size)
-		return E_PAR; /* ä»éãã¼ã¿ãå¤§ãããã */
+		return E_PAR; /* 付随データが大きすぎる */
 	if (!p_dat && 0 < fa_size)
-		return E_PAR; /* ä»éãã¼ã¿ãµã¤ãºã1ä»¥ä¸ãªã®ã«ãã¼ã¿ãã¤ã³ã¿ãNULL */
-
-	/* è¦æ±é»æç¨ã¡ã¢ãªã®åå¾ */
+		return E_PAR; /* 付随データサイズが1以上なのにデータポインタがNULL */
+
+	/* 要求電文用メモリの取得 */
 	a_ret = _ecn_fbs_cre(mrb, (0 < fa_size ? fa_size : 1), &a_fbs_id);
-	if (a_ret != E_OK || !a_fbs_id.ptr) { /* ç¢ºä¿å¤±æ */
+	if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
 		ECN_DBG_PUT_3("_ecn_fbs_cre(%d) result = %d:%s", fa_size, a_ret, itron_strerror(a_ret));
 		return a_ret;
 	}
 
-	/* è¦æ±é»æè¨­å® */
+	/* 要求電文設定 */
 	a_fbs_id.ptr->hdr.type = ECN_MSG_USER_BREAK;
 	a_fbs_id.ptr->hdr.sender.id = ENOD_API_ID;
@@ -1987,5 +1947,5 @@
 
 	if (0 < fa_size && p_dat) {
-		/* ä»éãã¼ã¿è¿½å  */
+		/* 付随データ追加 */
 		a_ret = _ecn_fbs_add_data_ex(mrb, a_fbs_id, p_dat, fa_size);
 		if (a_ret) {
@@ -1999,9 +1959,9 @@
 	*pk_fbs_id = a_fbs_id;
 
-	/* æ­£å¸¸çµäº */
+	/* 正常終了 */
 	return a_ret;
 
 lb_except:
-	/* ãã¼ã¿ä½æå¤±æãããé åè§£æ¾ */
+	/* データ作成失敗したら領域解放 */
 	if (a_fbs_id.ptr)
 		_ecn_fbs_del(mrb, a_fbs_id);
@@ -2010,5 +1970,5 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å®(sender/targetã®è¨­å®) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 ER _ecn_tsk_cre_req_fbs(ecnl_svc_task_t *svc, T_ECN_FBS_QUEUE *sender, uint8_t cmd, ECN_FBS_ID *pk_req)
 {
@@ -2040,5 +2000,5 @@
 }
 
-/* å¿ç­é»æç¨fbsè¨­å®(sender/targetã®è¨­å®) */
+/* 応答電文用fbs設定(sender/targetの設定) */
 ER _ecn_tsk_cre_res_fbs(ecnl_svc_task_t *svc, ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
 {
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_task.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *		ECHONET Lite ã¿ã¹ã¯
+ *		ECHONET Lite タスク
  */
 
@@ -69,13 +54,12 @@
 
 /*
- *  ECHONET Lite ã¿ã¹ã¯é¢é£ã®å®æ°ã®ããã©ã«ãå¤ã®å®ç¾©
+ *  ECHONET Lite タスク関連の定数のデフォルト値の定義
  */ 
 #ifndef ECHONET_TASK_PRIORITY
-#define ECHONET_TASK_PRIORITY	6		/* åæåªå
-åº¦ */
+#define ECHONET_TASK_PRIORITY	6		/* 初期優先度 */
 #endif /* ECHONET_TASK_PRIORITY */
 
 #ifndef ECHONET_TASK_STACK_SIZE
-#define ECHONET_TASK_STACK_SIZE	1024	/* ã¹ã¿ãã¯é åã®ãµã¤ãº */
+#define ECHONET_TASK_STACK_SIZE	1024	/* スタック領域のサイズ */
 #endif /* ECHONET_TASK_STACK_SIZE */
 
@@ -93,33 +77,33 @@
 	intptr_t exinf;
 	TMO api_timer;
-	/* ã¢ããªã±ã¼ã·ã§ã³ãè¦æ±ããé»æã®ã·ã¼ã±ã³ã¹çªå· */
+	/* アプリケーションが要求した電文のシーケンス番号 */
 	uint16_t api_tid;
-	/* åä¿¡ã¡ãã»ã¼ã¸ãéæ¾ãããå¦ã */
+	/* 受信メッセージを開放するか否か */
 	bool_t release_esv;
-	/* åä¿¡ã¡ãã»ã¼ã¸ãè»¢éãããå¦ã */
+	/* 受信メッセージを転送するか否か */
 	bool_t forward_esv;
-	/* ã³ã³ãã­ã¼ã©ã¼åã */
+	/* コントローラー向け */
 	ecn_agent_t agent;
-	/* ECHONET Lite ãªãã¸ã§ã¯ãIDã®æå¤§å¤ */
+	/* ECHONET Lite オブジェクトIDの最大値 */
 	ID tmax_eobjid;
-	/* ECHONET Lite ãªãã¸ã§ã¯ãåæåãã­ãã¯ã®ã¨ãªã¢ */
+	/* ECHONET Lite オブジェクト初期化ブロックのエリア */
 	const EOBJINIB **eobjinib_table;
-	/* ECHONET Liteãã¼ãç®¡çãã­ãã¯ã®æ° */
+	/* ECHONET Liteノード管理ブロックの数 */
 	int tnum_enodid;
-	/* ECHONET Lite ãªãã¸ã§ã¯ãç®¡çãã­ãã¯ã®ã¨ãªã¢ */
+	/* ECHONET Lite オブジェクト管理ブロックのエリア */
 	EOBJCB eobjcb_table[1];
-	/* ã¯ã©ã¹æ° */
+	/* クラス数 */
 	uint_t eclscnt;
-	/* ã¯ã©ã¹ãªã¹ã */
+	/* クラスリスト */
 	uint8_t *eclslst;
-	/* ã¡ã¼ã«ããã¯ã¹ */
+	/* メールボックス */
 	T_ECN_FBS_QUEUE api_mbxid;
 	T_ECN_FBS_QUEUE svc_mbxid;
 	T_ECN_FBS_QUEUE lcl_mbxid;
-	/* ã¢ã¸ã¥ã¼ã«åæåãã©ã° */
+	/* モジュール初期化フラグ */
 	uint8_t eobjlist_need_init;
-	/* ã·ã¼ã±ã³ã¹çªå· */
+	/* シーケンス番号 */
 	uint16_t current_tid;
-	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ä½ç½® */
+	/* インスタンスリスト通知位置 */
 	int inst_list_pos;
 };
@@ -133,13 +117,13 @@
 ID echonet_svctask_get_eobjid(ecnl_svc_task_t *svc, const EOBJINIB *eobjinib);
 
-/* ECHONET Lite ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãã®1ã¢ãã¦ã³ã¹å½ããæå¤§ãã¼ãæ° */
+/* ECHONET Lite インスタンスリストの1アナウンス当たり最大ノード数 */
 #define ECN_IST_LST_EOJ_MAX_CT (84)
 
-/* ECHONET Liteãªãã¸ã§ã¯ãã³ã¼ã x1,x2,x3(T_ECN_EOJ)ã24bitæ´æ°ã«å¤æ */
+/* ECHONET Liteオブジェクトコード x1,x2,x3(T_ECN_EOJ)を24bit整数に変換 */
 #define _ECN_EOJ2VALUE(s) (((s).eojx1 << 16) | ((s).eojx2 << 8) | (s).eojx3)
 
 enum ecn_epc_code
 {
-	ECN_EPC_INL_BCS		=	0xD5	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ãã­ããã£ */
+	ECN_EPC_INL_BCS		=	0xD5	/* インスタンスリスト通知プロパティ */
 };
 
@@ -170,11 +154,11 @@
 } T_ECN_INTERNAL_MSG;
 
-/* ã¿ã¹ã¯åæå */
+/* タスク初期化 */
 void _ecn_tsk_int_startup(ecnl_svc_task_t *svc);
-/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡ */
+/* インスタンスリスト通知の送信 */
 ER _ecn_tsk_ntf_inl(ecnl_svc_task_t *svc);
 
 /*
- * è¦æ±é»æä½æ
+ * 要求電文作成
  */
 ER _ecn_tsk_mk_esv(ecnl_svc_task_t *svc, ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
@@ -184,6 +168,5 @@
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿é»æä½æ
+ * 応答電文待ちの割り込み電文作成
  */
 ER _ecn_mk_brk_wai(ecnl_svc_task_t *svc, ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size);
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.c
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.c	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
@@ -136,5 +121,5 @@
 	rprop = RARRAY_PTR(props);
 	icnt = RARRAY_LEN(props);
-	count = icnt + 3; /* ãã­ããã£ãããå */
+	count = icnt + 3; /* プロパティマップ分 */
 
 	for (i = 0; i < icnt; i++) {
@@ -148,5 +133,5 @@
 		prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]);
 
-		/* ãã­ããã£ãããã®å ´åã¯æ¸ç® */
+		/* プロパティマップの場合は減算 */
 		switch (prop->inib.eprpcd) {
 		case 0x9D: case 0x9E: case 0x9F:
@@ -181,5 +166,5 @@
 		prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]);
 
-		/* ãã­ããã£ãããã®å ´åã¯ç¡è¦ */
+		/* プロパティマップの場合は無視 */
 		switch (prop->inib.eprpcd) {
 		case 0x9D: case 0x9E: case 0x9F:
@@ -208,5 +193,5 @@
 	T_MRB_ECNL_EPROPERTY *prop;
 
-	/* æ©å¨ãªãã¸ã§ã¯ãã®è¨­å®ã¨ãã¦åãè¾¼ã¾ããå ´åã¯ç ´æ£ããªã */
+	/* 機器オブジェクトの設定として取り込まれた場合は破棄しない */
 	if (obj->base.svc != NULL)
 		return;
@@ -293,5 +278,5 @@
 	rprop = RARRAY_PTR(props);
 	icnt = RARRAY_LEN(props);
-	count = icnt + 8; /* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å */
+	count = icnt + 8; /* インスタンスリストなどの分 */
 
 	for (i = 0; i < icnt; i++) {
@@ -305,5 +290,5 @@
 		prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]);
 
-		/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å ´åã¯æ¸ç® */
+		/* インスタンスリストなどの場合は減算 */
 		switch (prop->inib.eprpcd) {
 		case 0xD3: case 0xD4: case 0xD5: case 0xD6: case 0xD7:
@@ -315,5 +300,5 @@
 
 	nod = (ecn_node_t *)mrb_calloc(mrb, 1, sizeof(ecn_node_t) + count * sizeof(EPRPINIB *)
-		+ (sizeof(EPRPINIB) * 8)/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å */);
+		+ (sizeof(EPRPINIB) * 8)/* インスタンスリストなどの分 */);
 	DATA_TYPE(self) = &mrb_ecnl_enode_type;
 	DATA_PTR(self) = nod;
@@ -337,5 +322,5 @@
 		prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]);
 
-		/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å ´åã¯ç¡è¦ */
+		/* インスタンスリストなどの場合は無視 */
 		switch (prop->inib.eprpcd) {
 		case 0xD3: case 0xD4: case 0xD5: case 0xD6: case 0xD7:
@@ -365,5 +350,5 @@
 	T_MRB_ECNL_EPROPERTY *prop;
 
-	/* ãã¼ãã®è¨­å®ã¨ãã¦åãè¾¼ã¾ããå ´åã¯ç ´æ£ããªã */
+	/* ノードの設定として取り込まれた場合は破棄しない */
 	if (nod->base.svc != NULL)
 		return;
@@ -476,5 +461,5 @@
 	int count = 0;
 
-	/* éç¥æ°ã®ä½ç½®ãç©ºãã¦ãã */
+	/* 通知数の位置を空けておく */
 	pos++;
 	for (int i = inst_list_pos; (i < eobjcnt) && (count < 84); i++) {
@@ -489,5 +474,5 @@
 
 	inst_list_pos += count;
-	/* æå¾ã¾ã§éä¿¡ãçµãã£ã¦ãããåããã */
+	/* 最後まで送信し終わっていたら初めから */
 	if (inst_list_pos >= eobjcnt)
 		inst_list_pos = 0;
@@ -509,5 +494,5 @@
 		*pos++ = eobjcnt;
 	else
-		*pos++ = 255; /*ãªã¼ãã¼ãã­ã¼*/
+		*pos++ = 255; /*オーバーフロー*/
 
 	for (int i = 0; (i < eobjcnt) && (i < 84); i++) {
@@ -530,5 +515,5 @@
 		*pos++ = eclscnt;
 	else
-		*pos++ = 255; /*ãªã¼ãã¼ãã­ã¼*/
+		*pos++ = 255; /*オーバーフロー*/
 
 	len = 2 * eclscnt;
@@ -617,5 +602,5 @@
 		eobj = (ecn_obj_t *)DATA_PTR(prop->eobj);
 
-		/* ãã­ããã£ã®è¨­å®ã¨ãã¦åãè¾¼ã¾ããå ´åã¯ç ´æ£ããªã */
+		/* プロパティの設定として取り込まれた場合は破棄しない */
 		if (eobj != NULL)
 			return;
@@ -625,5 +610,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã³ã¼ã */
+/* ECHONET Lite プロパティコード */
 static mrb_value mrb_ecnl_eproperty_get_pcd(mrb_state *mrb, mrb_value self)
 {
@@ -635,5 +620,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£å±æ§ */
+/* ECHONET Lite プロパティ属性 */
 static mrb_value mrb_ecnl_eproperty_get_atr(mrb_state *mrb, mrb_value self)
 {
@@ -645,5 +630,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®ãµã¤ãº */
+/* ECHONET Lite プロパティのサイズ */
 static mrb_value mrb_ecnl_eproperty_get_sz(mrb_state *mrb, mrb_value self)
 {
@@ -655,6 +640,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®æ¡å¼µæ
-å ± */
+/* ECHONET Lite プロパティの拡張情報 */
 static mrb_value mrb_ecnl_eproperty_get_exinf(mrb_state *mrb, mrb_value self)
 {
@@ -666,6 +650,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®æ¡å¼µæ
-å ±è¨­å® */
+/* ECHONET Lite プロパティの拡張情報設定 */
 static mrb_value mrb_ecnl_eproperty_set_exinf(mrb_state *mrb, mrb_value self)
 {
@@ -682,5 +665,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®è¨­å®é¢æ° */
+/* ECHONET Lite プロパティの設定関数 */
 static mrb_value mrb_ecnl_eproperty_get_setcb(mrb_state *mrb, mrb_value self)
 {
@@ -695,5 +678,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®åå¾é¢æ° */
+/* ECHONET Lite プロパティの取得関数 */
 static mrb_value mrb_ecnl_eproperty_get_getcb(mrb_state *mrb, mrb_value self)
 {
@@ -708,5 +691,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®éç¥æç¡ */
+/* ECHONET Lite プロパティの通知有無 */
 static mrb_value mrb_ecnl_eproperty_get_anno(mrb_state *mrb, mrb_value self)
 {
@@ -721,5 +704,5 @@
 }
 
-/* ECHONET Lite ãã­ããã£ã®éç¥æç¡è¨­å® */
+/* ECHONET Lite プロパティの通知有無設定 */
 static mrb_value mrb_ecnl_eproperty_set_anno(mrb_state *mrb, mrb_value self)
 {
@@ -737,5 +720,5 @@
 
 /*
- * ãã¼ã¿è¨­å®é¢æ°
+ * データ設定関数
  */
 static int mrb_ecnl_prop_set(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno)
@@ -771,5 +754,5 @@
 
 /*
- * ãã¼ã¿åå¾é¢æ°
+ * データ取得関数
  */
 static int mrb_ecnl_prop_get(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size)
@@ -835,5 +818,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»ææãè¿ãæå® */
+/* プロパティ値書き込み・読み出し要求電文折り返し指定 */
 static mrb_value mrb_ecnl_trn_set_get(mrb_state *mrb, mrb_value self)
 {
@@ -851,5 +834,5 @@
 }
 
-/* è¦æ±é»æã¸ã®ãã­ããã£æå®è¿½å  */
+/* 要求電文へのプロパティ指定追加 */
 static mrb_value mrb_ecnl_add_epc(mrb_state *mrb, mrb_value self)
 {
@@ -870,5 +853,5 @@
 }
 
-/* è¦æ±é»æã¸ã®ãã­ããã£ãã¼ã¿è¿½å  */
+/* 要求電文へのプロパティデータ追加 */
 static mrb_value mrb_ecnl_add_edt(mrb_state *mrb, mrb_value self)
 {
@@ -919,5 +902,5 @@
 
 
-/* å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼åæå */
+/* 応答電文解析イテレーター初期化 */
 static mrb_value mrb_ecnl_itr_ini(mrb_state *mrb, mrb_value self)
 {
@@ -942,5 +925,5 @@
 }
 
-/* å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã */
+/* 応答電文解析イテレーターインクリメント */
 static mrb_value mrb_ecnl_itr_nxt(mrb_state *mrb, mrb_value self)
 {
@@ -1092,5 +1075,5 @@
 	svc = (ecnl_svc_task_t *)mrb_calloc(mrb, 1, sizeof(ecnl_svc_task_t)
 		+ (1 + eobjcnt) * sizeof(EOBJINIB *)
-		+ (2 * eobjcnt)/*ã¯ã©ã¹ãªã¹ãç¨*/);
+		+ (2 * eobjcnt)/*クラスリスト用*/);
 	DATA_TYPE(self) = &mrb_ecnl_svctask_type;
 	DATA_PTR(self) = svc;
@@ -1101,5 +1084,5 @@
 	svc->mrb = mrb;
 	svc->self = self;
-	svc->tnum_enodid = 1; /* ãã®çã§ã¯ã­ã¼ã«ã«ãã¼ãï¼ã¤ */
+	svc->tnum_enodid = 1; /* この版ではローカルノード１つ */
 	svc->tmax_eobjid = 1 + 1 + eobjcnt;
 	svc->eobjinib_table = (const EOBJINIB **)&svc[1];
@@ -1129,5 +1112,5 @@
 	}
 
-	/* ã¯ã©ã¹ãªã¹ãã®ä½æ */
+	/* クラスリストの作成 */
 	svc->eclslst = (uint8_t *)&svc->eobjinib_table[1 + eobjcnt];
 	uint8_t *pos = svc->eclslst;
@@ -1154,5 +1137,5 @@
 	svc->eclscnt = eclscnt;
 
-	/* ECHONETããã«ã¦ã§ã¢ãèµ·å */
+	/* ECHONETミドルウェアを起動 */
 	ret = ecn_sta_svc(svc);
 	if (ret != E_OK) {
@@ -1177,5 +1160,5 @@
 {
 	ecnl_svc_task_t *svc = (ecnl_svc_task_t *)ptr;
-#if 0 /* ã©ããã§è§£æ¾ãã¦ãããããï½¥ï½¥ï½¥ */
+#if 0 /* どこかで解放しているらしい･･･ */
 	const EOBJINIB **table = svc->eobjinib_table;
 	const EOBJINIB **end = &table[svc->tmax_eobjid];
@@ -1206,5 +1189,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æä½æ */
+/* プロパティ値書き込み要求（応答不要）電文作成 */
 static mrb_value mrb_ecnl_esv_set_i(mrb_state *mrb, mrb_value self)
 {
@@ -1245,5 +1228,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æä½æ */
+/* プロパティ値書き込み要求（応答要）電文作成 */
 static mrb_value mrb_ecnl_esv_set_c(mrb_state *mrb, mrb_value self)
 {
@@ -1285,5 +1268,5 @@
 }
 
-/* ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æä½æ */
+/* プロパティ値読み出し要求電文作成 */
 static mrb_value mrb_ecnl_esv_get(mrb_state *mrb, mrb_value self)
 {
@@ -1323,5 +1306,5 @@
 }
 
-/* ãã­ããã£å¤éç¥è¦æ±é»æä½æ */
+/* プロパティ値通知要求電文作成 */
 static mrb_value mrb_ecnl_esv_inf_req(mrb_state *mrb, mrb_value self)
 {
@@ -1361,5 +1344,5 @@
 }
 
-/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æ */
+/* プロパティ値書き込み・読み出し要求電文作成 */
 static mrb_value mrb_ecnl_esv_set_get(mrb_state *mrb, mrb_value self)
 {
@@ -1400,5 +1383,5 @@
 }
 
-/* ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼é»æä½æ */
+/* プロパティ値通知（応答要）電文作成 */
 static mrb_value mrb_ecnl_esv_infc(mrb_state *mrb, mrb_value self)
 {
@@ -1448,5 +1431,5 @@
 }
 
-/* è¦æ±é»æã®éä¿¡ */
+/* 要求電文の送信 */
 static mrb_value mrb_ecnl_snd_esv(mrb_state *mrb, mrb_value self)
 {
@@ -1486,5 +1469,5 @@
 }
 
-/* é»æã®ç ´æ£ */
+/* 電文の破棄 */
 static mrb_value mrb_ecnl_rel_esv(mrb_state *mrb, mrb_value self)
 {
@@ -1524,5 +1507,5 @@
 	svc->mrb = mrb;
 
-	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡ */
+	/* インスタンスリスト通知の送信 */
 	ret = _ecn_tsk_ntf_inl(svc);
 	if (ret != E_OK) {
@@ -1590,5 +1573,5 @@
 
 /*
- * Echoneté»æåä¿¡å¦ç
+ * Echonet電文受信処理
  */
 static void main_recv_esv(ecnl_svc_task_t *svc, T_EDATA *esv)
@@ -1603,6 +1586,5 @@
 
 /*
- * å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿å¦ç
+ * 応答電文待ちの割り込み処理
  */
 static void main_break_wait(ecnl_svc_task_t *svc, uint8_t *brkdat, int32_t len)
@@ -1623,10 +1605,10 @@
 	ER ret;
 
-	/* Echoneté»æåä¿¡ã®å ´å */
+	/* Echonet電文受信の場合 */
 	if ((p_msg)->hdr.type == ECN_MSG_ECHONET) {
-		/* Echoneté»æåä¿¡å¦ç */
+		/* Echonet電文受信処理 */
 		main_recv_esv(svc, (T_EDATA *)p_msg);
 
-		/* é åè§£æ¾ã¯GCã«ä»»ãã
+		/* 領域解放はGCに任せる
 		ret = ecn_rel_esv(mrb, (T_EDATA *)p_msg);
 		if (ret != E_OK) {
@@ -1635,9 +1617,7 @@
 		} */
 	}
-	/* å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿ã®å ´å */
+	/* 応答電文待ちの割り込みの場合 */
 	else if ((p_msg)->hdr.type == ECN_MSG_INTERNAL) {
-		/* å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿ãã¼ã¿åå¾ */
+		/* 応答電文待ちの割り込みデータ取得 */
 		ret = ecn_get_brk_dat(mrb, (T_EDATA *)p_msg, brkdat, sizeof(brkdat), &len);
 		if (ret != E_OK) {
@@ -1646,9 +1626,8 @@
 		}
 
-		/* å¿ç­é»æå¾
-ã¡ã®å²ãè¾¼ã¿å¦ç */
+		/* 応答電文待ちの割り込み処理 */
 		main_break_wait(svc, brkdat, len);
 
-		/* é åè§£æ¾ */
+		/* 領域解放 */
 		ret = ecn_rel_esv(mrb, (T_EDATA *)p_msg);
 		if (ret != E_OK) {
@@ -1688,6 +1667,5 @@
 }
 
-/* éä¿¡ã¬ã¤ã¤ã¼ããã®å
-¥å */
+/* 通信レイヤーからの入力 */
 static mrb_value mrb_ecnl_svctask_recv_msg(mrb_state *mrb, mrb_value self)
 {
@@ -1879,60 +1857,59 @@
 	_module_ecnl = mrb_define_module(mrb, "ECNL");
 
-	/* æªè¨­å® */
+	/* 未設定 */
 	mrb_define_const(mrb, _module_ecnl, "EPC_NONE", mrb_fixnum_value(EPC_NONE));
-	/* ã¢ã¯ã»ã¹ã«ã¼ã« Set */
+	/* アクセスルール Set */
 	mrb_define_const(mrb, _module_ecnl, "EPC_RULE_SET", mrb_fixnum_value(EPC_RULE_SET));
-	/* ã¢ã¯ã»ã¹ã«ã¼ã« Get */
+	/* アクセスルール Get */
 	mrb_define_const(mrb, _module_ecnl, "EPC_RULE_GET", mrb_fixnum_value(EPC_RULE_GET));
-	/* ã¢ã¯ã»ã¹ã«ã¼ã« Anno */
+	/* アクセスルール Anno */
 	mrb_define_const(mrb, _module_ecnl, "EPC_RULE_ANNO", mrb_fixnum_value(EPC_RULE_ANNO));
-	/* ç¶æ
-å¤åæéç¥ */
+	/* 状態変化時通知 */
 	mrb_define_const(mrb, _module_ecnl, "EPC_ANNOUNCE", mrb_fixnum_value(EPC_ANNOUNCE));
-	/* å¯å¤é·ãã¼ã¿ */
+	/* 可変長データ */
 	mrb_define_const(mrb, _module_ecnl, "EPC_VARIABLE", mrb_fixnum_value(EPC_VARIABLE));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼		*/
+	/* プロパティ値書き込み要求（応答不要）		*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_I", mrb_fixnum_value(ESV_SET_I));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼		*/
+	/* プロパティ値書き込み要求（応答要）		*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_C", mrb_fixnum_value(ESV_SET_C));
-	/* ãã­ããã£å¤èª­ã¿åºãè¦æ±					*/
+	/* プロパティ値読み出し要求					*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_GET", mrb_fixnum_value(ESV_GET));
-	/* ãã­ããã£å¤éç¥è¦æ±						*/
+	/* プロパティ値通知要求						*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INF_REQ", mrb_fixnum_value(ESV_INF_REQ));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±		*/
+	/* プロパティ値書き込み・読み出し要求		*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_GET", mrb_fixnum_value(ESV_SET_GET));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿å¿ç­					*/
+	/* プロパティ値書き込み応答					*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_RES", mrb_fixnum_value(ESV_SET_RES));
-	/* ãã­ããã£å¤èª­ã¿åºãå¿ç­					*/
+	/* プロパティ値読み出し応答					*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_GET_RES", mrb_fixnum_value(ESV_GET_RES));
-	/* ãã­ããã£å¤éç¥							*/
+	/* プロパティ値通知							*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INF", mrb_fixnum_value(ESV_INF));
-	/* ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼				*/
+	/* プロパティ値通知（応答要）				*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INFC", mrb_fixnum_value(ESV_INFC));
-	/* ãã­ããã£å¤éç¥å¿ç­						*/
+	/* プロパティ値通知応答						*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INFC_RES", mrb_fixnum_value(ESV_INFC_RES));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãå¿ç­		*/
+	/* プロパティ値書き込み・読み出し応答		*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_GET_RES", mrb_fixnum_value(ESV_SET_GET_RES));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­			*/
+	/* プロパティ値書き込み要求不可応答			*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_I_SNA", mrb_fixnum_value(ESV_SET_I_SNA));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç­			*/
+	/* プロパティ値書き込み要求不可応答			*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_C_SNA", mrb_fixnum_value(ESV_SET_C_SNA));
-	/* ãã­ããã£å¤èª­ã¿åºãä¸å¯å¿ç­				*/
+	/* プロパティ値読み出し不可応答				*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_GET_SNA", mrb_fixnum_value(ESV_GET_SNA));
-	/* ãã­ããã£å¤éç¥ä¸å¯å¿ç­					*/
+	/* プロパティ値通知不可応答					*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_INF_SNA", mrb_fixnum_value(ESV_INF_SNA));
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãä¸å¯å¿ç­	*/
+	/* プロパティ値書き込み・読み出し不可応答	*/
 	mrb_define_const(mrb, _module_ecnl, "ESV_SET_GET_SNA", mrb_fixnum_value(ESV_SET_GET_SNA));
 
-	/* ã¢ãã¬ã¹IDç»é²ãªã */
+	/* アドレスID登録なし */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_NOT_MATCH_ID", mrb_fixnum_value(ENOD_NOT_MATCH_ID));
-	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ID */
+	/* マルチキャストアドレスID */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_MULTICAST_ID", mrb_fixnum_value(ENOD_MULTICAST_ID));
-	/* èªãã¼ãã¢ãã¬ã¹ID */
+	/* 自ノードアドレスID */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_LOCAL_ID", mrb_fixnum_value(ENOD_LOCAL_ID));
-	/* APIã¢ãã¬ã¹ID */
+	/* APIアドレスID */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_API_ID", mrb_fixnum_value(ENOD_API_ID));
-	/* ä»ãã¼ãID */
+	/* 他ノードID */
 	mrb_define_const(mrb, _module_ecnl, "ENOD_REMOTE_ID", mrb_fixnum_value(ENOD_REMOTE_ID));
 
@@ -1941,8 +1918,8 @@
 	mrb_define_method(mrb, _class_object, "initialize", mrb_ecnl_eobject_initialize, MRB_ARGS_REQ(5));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ */
+	/* プロパティ値書き込み */
 	mrb_define_method(mrb, _class_object, "data_prop_set", mrb_ecnl_eobject_data_prop_set, MRB_ARGS_REQ(4));
 
-	/* ãã­ããã£å¤èª­ã¿åºã */
+	/* プロパティ値読み出し */
 	mrb_define_method(mrb, _class_object, "data_prop_get", mrb_ecnl_eobject_data_prop_get, MRB_ARGS_REQ(3));
 
@@ -1951,8 +1928,8 @@
 	mrb_define_method(mrb, _class_node, "initialize", mrb_ecnl_enode_initialize, MRB_ARGS_REQ(2));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ */
+	/* プロパティ値書き込み */
 	mrb_define_method(mrb, _class_node, "data_prop_set", mrb_ecnl_eobject_data_prop_set, MRB_ARGS_REQ(4));
 
-	/* ãã­ããã£å¤èª­ã¿åºã */
+	/* プロパティ値読み出し */
 	mrb_define_method(mrb, _class_node, "data_prop_get", mrb_ecnl_eobject_data_prop_get, MRB_ARGS_REQ(3));
 
@@ -1961,19 +1938,18 @@
 	mrb_define_method(mrb, _class_property, "initialize", mrb_ecnl_eproperty_initialize, MRB_ARGS_REQ(6));
 
-	/* ECHONET Lite ãã­ããã£ã³ã¼ã */
+	/* ECHONET Lite プロパティコード */
 	mrb_define_method(mrb, _class_property, "pcd", mrb_ecnl_eproperty_get_pcd, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£å±æ§ */
+	/* ECHONET Lite プロパティ属性 */
 	mrb_define_method(mrb, _class_property, "atr", mrb_ecnl_eproperty_get_atr, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£ã®ãµã¤ãº */
+	/* ECHONET Lite プロパティのサイズ */
 	mrb_define_method(mrb, _class_property, "sz", mrb_ecnl_eproperty_get_sz, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£ã®æ¡å¼µæ
-å ± */
+	/* ECHONET Lite プロパティの拡張情報 */
 	mrb_define_method(mrb, _class_property, "exinf", mrb_ecnl_eproperty_get_exinf, MRB_ARGS_NONE());
 	mrb_define_method(mrb, _class_property, "set_exinf", mrb_ecnl_eproperty_set_exinf, MRB_ARGS_REQ(1));
-	/* ECHONET Lite ãã­ããã£ã®è¨­å®é¢æ° */
+	/* ECHONET Lite プロパティの設定関数 */
 	mrb_define_method(mrb, _class_property, "setcb", mrb_ecnl_eproperty_get_setcb, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£ã®åå¾é¢æ° */
+	/* ECHONET Lite プロパティの取得関数 */
 	mrb_define_method(mrb, _class_property, "getcb", mrb_ecnl_eproperty_get_getcb, MRB_ARGS_NONE());
-	/* ECHONET Lite ãã­ããã£ã®éç¥æç¡ */
+	/* ECHONET Lite プロパティの通知有無 */
 	mrb_define_method(mrb, _class_property, "anno", mrb_ecnl_eproperty_get_anno, MRB_ARGS_NONE());
 	mrb_define_method(mrb, _class_property, "set_anno", mrb_ecnl_eproperty_set_anno, MRB_ARGS_REQ(1));
@@ -1983,17 +1959,17 @@
 	mrb_define_method(mrb, _class_data, "initialize", mrb_ecnl_edata_initialize, MRB_ARGS_NONE());
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»ææãè¿ãæå® */
+	/* プロパティ値書き込み・読み出し要求電文折り返し指定 */
 	mrb_define_method(mrb, _class_data, "trn_set_get", mrb_ecnl_trn_set_get, MRB_ARGS_NONE());
 
-	/* è¦æ±é»æã¸ã®ãã­ããã£æå®è¿½å  */
+	/* 要求電文へのプロパティ指定追加 */
 	mrb_define_method(mrb, _class_data, "add_epc", mrb_ecnl_add_epc, MRB_ARGS_REQ(1));
 
-	/* è¦æ±é»æã¸ã®ãã­ããã£ãã¼ã¿è¿½å  */
+	/* 要求電文へのプロパティデータ追加 */
 	mrb_define_method(mrb, _class_data, "add_edt", mrb_ecnl_add_edt, MRB_ARGS_REQ(2));
 
-	/* å¿ç­é»æãµã¼ãã¹ã³ã¼ãåå¾ */
+	/* 応答電文サービスコード取得 */
 	mrb_define_method(mrb, _class_data, "esv", mrb_ecnl_get_esv, MRB_ARGS_NONE());
 
-	/* å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼åæå */
+	/* 応答電文解析イテレーター初期化 */
 	mrb_define_method(mrb, _class_data, "itr_ini", mrb_ecnl_itr_ini, MRB_ARGS_NONE());
 
@@ -2002,5 +1978,5 @@
 	mrb_define_method(mrb, _class_iterator, "initialize", mrb_ecnl_eiterator_initialize, MRB_ARGS_NONE());
 
-	/* å¿ç­é»æè§£æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã */
+	/* 応答電文解析イテレーターインクリメント */
 	mrb_define_method(mrb, _class_iterator, "itr_nxt", mrb_ecnl_itr_nxt, MRB_ARGS_NONE());
 
@@ -2014,32 +1990,32 @@
 	mrb_define_method(mrb, _class_svctask, "initialize", mrb_ecnl_svctask_initialize, MRB_ARGS_NONE());
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­ä¸è¦ï¼é»æä½æ */
+	/* プロパティ値書き込み要求（応答不要）電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_set_i", mrb_ecnl_esv_set_i, MRB_ARGS_REQ(3));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿ç­è¦ï¼é»æä½æ */
+	/* プロパティ値書き込み要求（応答要）電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_set_c", mrb_ecnl_esv_set_c, MRB_ARGS_REQ(3));
 
-	/* ãã­ããã£å¤èª­ã¿åºãè¦æ±é»æä½æ */
+	/* プロパティ値読み出し要求電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_get", mrb_ecnl_esv_get, MRB_ARGS_REQ(2));
 
-	/* ãã­ããã£å¤éç¥è¦æ±é»æä½æ */
+	/* プロパティ値通知要求電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_inf_req", mrb_ecnl_esv_inf_req, MRB_ARGS_REQ(2));
 
-	/* ãã­ããã£å¤æ¸ãè¾¼ã¿ã»èª­ã¿åºãè¦æ±é»æä½æ */
+	/* プロパティ値書き込み・読み出し要求電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_set_get", mrb_ecnl_esv_set_get, MRB_ARGS_REQ(3));
 
-	/* ãã­ããã£å¤éç¥ï¼å¿ç­è¦ï¼é»æä½æ */
+	/* プロパティ値通知（応答要）電文作成 */
 	mrb_define_method(mrb, _class_svctask, "esv_infc", mrb_ecnl_esv_infc, MRB_ARGS_REQ(3));
 
-	/* è¦æ±é»æã®éä¿¡ */
+	/* 要求電文の送信 */
 	mrb_define_method(mrb, _class_svctask, "snd_esv", mrb_ecnl_snd_esv, MRB_ARGS_REQ(1));
 
-	/* é»æã®ç ´æ£ */
+	/* 電文の破棄 */
 	mrb_define_method(mrb, _class_svctask, "rel_esv", mrb_ecnl_rel_esv, MRB_ARGS_REQ(1));
 
-	/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡ */
+	/* インスタンスリスト通知の送信 */
 	mrb_define_method(mrb, _class_svctask, "ntf_inl", mrb_ecnl_svctask_ntf_inl, MRB_ARGS_NONE());
 
-	/* ã¡ãã»ã¼ã¸å¦çã«ã¼ã */
+	/* メッセージ処理ループ */
 	mrb_define_method(mrb, _class_svctask, "set_timer", mrb_ecnl_svctask_set_timer, MRB_ARGS_REQ(1));
 	mrb_define_method(mrb, _class_svctask, "timer", mrb_ecnl_svctask_get_timer, MRB_ARGS_NONE());
@@ -2048,5 +2024,5 @@
 	mrb_define_method(mrb, _class_svctask, "call_timeout", mrb_ecnl_svctask_call_timeout, MRB_ARGS_NONE());
 
-	/* ãªã¢ã¼ãECHONETãã¼ãã®é©åç¢ºèª */
+	/* リモートECHONETノードの適合確認 */
 	mrb_define_method(mrb, _class_svctask, "is_match", mrb_ecnl_svctask_is_match, MRB_ARGS_REQ(3));
 }
Index: EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.h
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.h	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
Index: EcnlProtoTool/trunk/mrbgems/mruby-onig-regexp/test/mruby_onig_regexp.rb
===================================================================
--- EcnlProtoTool/trunk/mrbgems/mruby-onig-regexp/test/mruby_onig_regexp.rb	(revision 299)
+++ EcnlProtoTool/trunk/mrbgems/mruby-onig-regexp/test/mruby_onig_regexp.rb	(revision 321)
@@ -149,5 +149,5 @@
 
 assert("OnigRegexp#match (none encoding)") do
-  assert_equal 2, /\x82/n =~ "ã"
+  assert_equal 2, /\x82/n =~ "あ"
 end
 
Index: EcnlProtoTool/trunk/mruby-1.2.0/mrbgems/mruby-string-ext/test/string.rb
===================================================================
--- EcnlProtoTool/trunk/mruby-1.2.0/mrbgems/mruby-string-ext/test/string.rb	(revision 299)
+++ EcnlProtoTool/trunk/mruby-1.2.0/mrbgems/mruby-string-ext/test/string.rb	(revision 321)
@@ -309,6 +309,6 @@
   assert_equal "-b-", "-a-".succ
   assert_equal "-aa-", "-z-".succ
-  assert_equal "ãb", "ãa".succ
-  assert_equal "ãba", "ãaz".succ
+  assert_equal "あb", "あa".succ
+  assert_equal "あba", "あaz".succ
 
   a = ""; a.succ!
@@ -379,8 +379,8 @@
   a = "-z-"; a.succ!
   assert_equal "-aa-", a
-  a = "ãb"; a.succ!
-  assert_equal "ãc", a
-  a = "ãaz"; a.succ!
-  assert_equal "ãba", a
+  a = "あb"; a.succ!
+  assert_equal "あc", a
+  a = "あaz"; a.succ!
+  assert_equal "あba", a
 end
 
@@ -484,5 +484,5 @@
 
 assert('String#ord(UTF-8)') do
-  got = "ããã«ã¡ã¯ä¸ç!".split('').map {|x| x.ord}
+  got = "こんにちは世界!".split('').map {|x| x.ord}
   expect = [0x3053,0x3093,0x306b,0x3061,0x306f,0x4e16,0x754c,0x21]
   assert_equal expect, got
@@ -493,5 +493,5 @@
 end
 assert('String#chr(UTF-8)') do
-  assert_equal "ã", "ããã«ã¡ã¯ä¸ç!".chr
+  assert_equal "こ", "こんにちは世界!".chr
 end if UTF8STRING
 
@@ -507,11 +507,11 @@
 
 assert('String#chars(UTF-8)') do
-  expect = ['ã', 'ã', 'ã«', 'ã¡', 'ã¯', 'ä¸', 'ç', '!']
-  assert_equal expect, "ããã«ã¡ã¯ä¸ç!".chars
+  expect = ['こ', 'ん', 'に', 'ち', 'は', '世', '界', '!']
+  assert_equal expect, "こんにちは世界!".chars
   s = ""
-  "ããã«ã¡ã¯ä¸ç!".chars do |x|
+  "こんにちは世界!".chars do |x|
     s += x
   end
-  assert_equal "ããã«ã¡ã¯ä¸ç!", s
+  assert_equal "こんにちは世界!", s
 end if UTF8STRING
 
@@ -526,8 +526,8 @@
 assert('String#each_char(UTF-8)') do
   s = ""
-  "ããã«ã¡ã¯ä¸ç!".each_char do |x|
+  "こんにちは世界!".each_char do |x|
     s += x
   end
-  assert_equal "ããã«ã¡ã¯ä¸ç!", s
+  assert_equal "こんにちは世界!", s
 end if UTF8STRING
 
@@ -544,7 +544,7 @@
 assert('String#codepoints(UTF-8)') do
   expect = [12371, 12435, 12395, 12385, 12399, 19990, 30028, 33]
-  assert_equal expect, "ããã«ã¡ã¯ä¸ç!".codepoints
+  assert_equal expect, "こんにちは世界!".codepoints
   cp = []
-  "ããã«ã¡ã¯ä¸ç!".codepoints do |x|
+  "こんにちは世界!".codepoints do |x|
     cp << x
   end
@@ -564,5 +564,5 @@
   expect = [12371, 12435, 12395, 12385, 12399, 19990, 30028, 33]
   cp = []
-  "ããã«ã¡ã¯ä¸ç!".each_codepoint do |x|
+  "こんにちは世界!".each_codepoint do |x|
     cp << x
   end
Index: EcnlProtoTool/trunk/mruby-1.2.0/test/t/string.rb
===================================================================
--- EcnlProtoTool/trunk/mruby-1.2.0/test/t/string.rb	(revision 299)
+++ EcnlProtoTool/trunk/mruby-1.2.0/test/t/string.rb	(revision 321)
@@ -83,10 +83,10 @@
 
 assert('String#[](UTF-8)', '15.2.10.5.6') do
-  assert_equal "ã¡", "ããã«ã¡ã¯ä¸ç"[3]
-  assert_equal nil, "ããã«ã¡ã¯ä¸ç"[20]
-  assert_equal "ä¸", "ããã«ã¡ã¯ä¸ç"[-2]
-  assert_equal "ä¸ç", "ããã«ã¡ã¯ä¸ç"[-2..-1]
-  assert_equal "ãã«", "ããã«ã¡ã¯ä¸ç"[1,2]
-  assert_equal "ä¸", "ããã«ã¡ã¯ä¸ç"["ä¸"]
+  assert_equal "ち", "こんにちは世界"[3]
+  assert_equal nil, "こんにちは世界"[20]
+  assert_equal "世", "こんにちは世界"[-2]
+  assert_equal "世界", "こんにちは世界"[-2..-1]
+  assert_equal "んに", "こんにちは世界"[1,2]
+  assert_equal "世", "こんにちは世界"["世"]
 end if UTF8STRING
 
@@ -266,10 +266,10 @@
 assert('String#chop(UTF-8)', '15.2.10.5.11') do
   a = ''.chop
-  b = 'ããã'.chop
-  c = "ã\nã".chop.chop
+  b = 'あいう'.chop
+  c = "あ\nい".chop.chop
 
   assert_equal '', a
-  assert_equal 'ãã', b
-  assert_equal 'ã', c
+  assert_equal 'あい', b
+  assert_equal 'あ', c
 end if UTF8STRING
 
@@ -287,6 +287,6 @@
 assert('String#chop!(UTF-8)', '15.2.10.5.12') do
   a = ''
-  b = "ãããã\n"
-  c = "ãããã\n"
+  b = "あいうえ\n"
+  c = "あいうえ\n"
 
   a.chop!
@@ -296,6 +296,6 @@
 
   assert_equal a, ''
-  assert_equal b, 'ãããã'
-  assert_equal c, 'ããã'
+  assert_equal b, 'あいうえ'
+  assert_equal c, 'あいう'
 end if UTF8STRING
 
@@ -450,10 +450,10 @@
 
 assert('String#reverse(UTF-8)', '15.2.10.5.29') do
-  assert_equal "ã¡", "ããã«ã¡ã¯ä¸ç"[3]
-  assert_equal nil, "ããã«ã¡ã¯ä¸ç"[20]
-  assert_equal "ä¸", "ããã«ã¡ã¯ä¸ç"[-2]
-  assert_equal "ä¸ç", "ããã«ã¡ã¯ä¸ç"[-2..-1]
-  assert_equal "ãã«", "ããã«ã¡ã¯ä¸ç"[1,2]
-  assert_equal "ä¸", "ããã«ã¡ã¯ä¸ç"["ä¸"]
+  assert_equal "ち", "こんにちは世界"[3]
+  assert_equal nil, "こんにちは世界"[20]
+  assert_equal "世", "こんにちは世界"[-2]
+  assert_equal "世界", "こんにちは世界"[-2..-1]
+  assert_equal "んに", "こんにちは世界"[1,2]
+  assert_equal "世", "こんにちは世界"["世"]
 end if UTF8STRING
 
@@ -467,9 +467,9 @@
 
 assert('String#reverse!(UTF-8)', '15.2.10.5.30') do
-  a = 'ããã«ã¡ã¯ä¸ç!'
+  a = 'こんにちは世界!'
   a.reverse!
 
-  assert_equal '!çä¸ã¯ã¡ã«ãã', a
-  assert_equal '!çä¸ã¯ã¡ã«ãã', 'ããã«ã¡ã¯ä¸ç!'.reverse!
+  assert_equal '!界世はちにんこ', a
+  assert_equal '!界世はちにんこ', 'こんにちは世界!'.reverse!
 end if UTF8STRING
 
@@ -482,9 +482,9 @@
 
 assert('String#rindex(UTF-8)', '15.2.10.5.31') do
-  str = "ããã«ã¡ã¯ä¸ç!\nããã«ã¡ã¯ä¸ç!"
-  assert_nil str.index('ã')
-  assert_equal 3, str.index('ã¡')
-  assert_equal 12, str.index('ã¡', 10)
-  assert_equal nil, str.index("ã")
+  str = "こんにちは世界!\nこんにちは世界!"
+  assert_nil str.index('さ')
+  assert_equal 3, str.index('ち')
+  assert_equal 12, str.index('ち', 10)
+  assert_equal nil, str.index("さ")
 end if UTF8STRING
 
@@ -496,5 +496,5 @@
 
 assert('String#size(UTF-8)', '15.2.10.5.33') do
-  str = 'ããã«ã¡ã¯ä¸ç!'
+  str = 'こんにちは世界!'
   assert_equal 8, str.size
   assert_not_equal str.bytesize, str.size
@@ -550,8 +550,8 @@
 
 assert('String#split(UTF-8)', '15.2.10.5.35') do
-  got = "ããã«ã¡ã¯ä¸ç!".split('')
-  assert_equal ['ã', 'ã', 'ã«', 'ã¡', 'ã¯', 'ä¸', 'ç', '!'], got
-  got = "ããã«ã¡ã¯ä¸ç!".split('ã«')
-  assert_equal ['ãã', 'ã¡ã¯ä¸ç!'], got
+  got = "こんにちは世界!".split('')
+  assert_equal ['こ', 'ん', 'に', 'ち', 'は', '世', '界', '!'], got
+  got = "こんにちは世界!".split('に')
+  assert_equal ['こん', 'ちは世界!'], got
 end if UTF8STRING
 
Index: EcnlProtoTool/trunk/ntshell/Debug/Makefile
===================================================================
--- EcnlProtoTool/trunk/ntshell/Debug/Makefile	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/Debug/Makefile	(revision 321)
@@ -53,5 +53,5 @@
 #  ã®è²¬ä»»ãè² ããªãï¼
 # 
-#  $Id: Makefile 735 2016-04-03 14:11:07Z ertl-hiro $
+#  $Id$
 # 
 
Index: EcnlProtoTool/trunk/ntshell/fatfs/ff.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/fatfs/ff.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/fatfs/ff.c	(revision 321)
@@ -325,5 +325,5 @@
 	ret_code[0] = ret_code[1] = ret_code[2] = ret_code[3] = 0;
 
-	if (chr <= 0x7f) {  // ASCIIäºæ
+	if (chr <= 0x7f) {  // ASCII互換
 		ret_code[0] = chr;
 		*ret_size = 1;
@@ -375,5 +375,5 @@
 }
 
-//2ãã¤ãã®UTF-16ã³ã¼ããå¾ããã
+//2バイトのUTF-16コードが得られる
 WCHAR Utf8_to_Utf16(const char *src, int *code_size)
 {
@@ -396,8 +396,8 @@
 	}
 
-	//æ¶è²»æå­æ°è¨­å®
+	//消費文字数設定
 	*code_size = i;
 
-	//ç¾ç¶ã2ãã¤ãéå®
+	//現状、2バイト限定
 	return uc;
 }
Index: EcnlProtoTool/trunk/ntshell/fatfs/ffarch.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/fatfs/ffarch.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/fatfs/ffarch.c	(revision 321)
@@ -4,52 +4,37 @@
  *  Copyright (C) 2014-2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
 
 /* 
- *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
+ *  サンプルプログラム(1)の本体
  */
 
@@ -101,5 +86,5 @@
 	gpio_init_in(&ins, P7_8);
 
-	/* SDã«ã¼ããåæå */
+	/* SDカードを初期化 */
 	sdfs_init(&sdfs, P8_5, P8_6, P8_3, P8_4, "sd");
 
@@ -123,5 +108,5 @@
 	}
 
-	/* uploadãã£ã¬ã¯ããªãä½æãã¦ãã */
+	/* uploadディレクトリを作成しておく */
 	f_mkdir("1:/upload");
 
Index: EcnlProtoTool/trunk/ntshell/fatfs/ffarch.cfg
===================================================================
--- EcnlProtoTool/trunk/ntshell/fatfs/ffarch.cfg	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/fatfs/ffarch.cfg	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
Index: EcnlProtoTool/trunk/ntshell/fatfs/ffarch.h
===================================================================
--- EcnlProtoTool/trunk/ntshell/fatfs/ffarch.h	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/fatfs/ffarch.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
Index: EcnlProtoTool/trunk/ntshell/ntshell/core/vtrecv.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/ntshell/core/vtrecv.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/ntshell/core/vtrecv.c	(revision 321)
@@ -2666,16 +2666,13 @@
 #if (USE_ORIGINAL_LUT==1)
 	/*
-	 * ãã¼ãã«åç
-§ã«ããå®ç¾ã
-	 * åºå®æéã§åä½ããããã³ã¼ããµã¤ãºã¯æ¯è¼çå¤§ããã
+	 * テーブル参照による実現。
+	 * 固定時間で動作するが、コードサイズは比較的大きい。
 	 */
 	return STATE_TABLE[state - 1][ch];
 #else
 	/*
-	 * ãã­ã°ã©ã ã«ããç·å½¢æ¢ç´¢ãã¼ã¸ã§ã³ã
-	 * ãã¼ãã«ã®å¾æ¹ã«ãããã¼ã¿ã«ãªãã»ã©åä½ã¯é
-ãã
-	 * ã³ã¼ããµã¤ãºã¯ãã¼ãã«åç
-§ãããå°ããã
+	 * プログラムによる線形探索バージョン。
+	 * テーブルの後方にあるデータになるほど動作は遅い。
+	 * コードサイズはテーブル参照よりも小さい。
 	 */
 	const int N = sizeof(table) / sizeof(table[0]);
Index: EcnlProtoTool/trunk/ntshell/ntshell/core/vtrecv.h
===================================================================
--- EcnlProtoTool/trunk/ntshell/ntshell/core/vtrecv.h	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/ntshell/core/vtrecv.h	(revision 321)
@@ -44,31 +44,20 @@
 
 /**
- * @brief ãªãªã¸ãã«ã«å«ã¾ããLUTãä½¿ããã©ãããæ±ºå®ããã
+ * @brief オリジナルに含まれるLUTを使うかどうかを決定する。
  * @details
- * ãªãªã¸ãã«ã§ã¯ãã·ã¼ã±ã³ã¹ã®é·ç§»ããã¼ãã«åç
-§ã§å®è£
-ãã¦ãã£ãã
- * 15ã®ã¹ãã¼ãã§åããã256ãã¿ã¼ã³ã®å
-¥åãå
-¨ç¶²ç¾
-ãããã¼ãã«ã§ããã
- * ããã¯3840åã®ãã¼ãã«ãã¼ã¿ãæã¤ãã¨ã«ãªãã
+ * オリジナルでは、シーケンスの遷移をテーブル参照で実装してあった。
+ * 15のステートで取りうる256パターンの入力を全網羅するテーブルである。
+ * これは3840個のテーブルデータを持つことになる。
  *
- * ãã¼ãã«åç
-§ã¯ã¡ã¢ãªã«å¯¾ãã¦ãªãã¢ã¢ã¯ã»ã¹å¯è½ãªãã­ã»ããµã«ããã¦
- * åºå®æéã§åä½ããããã¼ãã«åç
-§ã®ã¡ãªããã¯åºå®æéã§ã®å¦çã§ããã
+ * テーブル参照はメモリに対してリニアアクセス可能なプロセッサにおいて
+ * 固定時間で動作する。テーブル参照のメリットは固定時間での処理である。
  *
- * ä¸æ¹ãæ°ãã«å®è£
-ããæ¹æ³ã¯ãéè¤ãããã¼ã¿ãå¤æ°å­å¨ããäºã«çç®ãã
- * ãã®ã§ãåºéæ¯ã«é©ç¨ããã·ã¼ã±ã³ã¹ãå®ç¾©ãããã¼ãã«ãç¨ããã
- * ããã¯ãã¼ãã«ãç·å½¢æ¢ç´¢ããããå¾æ¹ã«ãããã¼ã¿ã«ãªãã»ã©åä½ã¯é
-ãã
- * ããããã³ã¼ããµã¤ãºã¯ãªãªã¸ãã«ã®å
-¨ç¶²ç¾
-å½¢å¼ã®ãã¼ãã«ãããå°ããã
+ * 一方、新たに実装した方法は、重複するデータが多数存在する事に着目した
+ * もので、区間毎に適用するシーケンスを定義したテーブルを用いる。
+ * これはテーブルを線形探索するため後方にあるデータになるほど動作は遅い。
+ * しかし、コードサイズはオリジナルの全網羅形式のテーブルよりも小さい。
  *
- * @retval 0 ä½¿ããªãã
- * @retval 1 ä½¿ãã
+ * @retval 0 使わない。
+ * @retval 1 使う。
  */
 #define USE_ORIGINAL_LUT (0)
Index: EcnlProtoTool/trunk/ntshell/ntshell/usrcmd.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/ntshell/usrcmd.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/ntshell/usrcmd.c	(revision 321)
@@ -149,5 +149,5 @@
 #define LS_ALL	0x01
 #define LS_LONG	0x02
-/* lsã³ãã³ã 1è¡è¡¨ç¤º */
+/* lsコマンド 1行表示 */
 void print_one_list(FILINFO *fno, BYTE list_option)
 {
@@ -195,6 +195,5 @@
 
 #define LFN_BUF_SIZE (_MAX_LFN + 1)
-/* lsã³ãã³ã dirå
- è¡¨ç¤º */
+/* lsコマンド dir内 表示 */
 void print_ls(char *path_p, char *pattern_p, BYTE list_option)
 {
@@ -236,6 +235,5 @@
 
 	while ((res == FR_OK) && (fno.fname[0] != 0)) {
-		if (pattern_p != NULL && (fno.fattrib & AM_DIR) && ((fno.fname[0] == '.') ? (pattern_p[0] == '.') : 1)) {/* DIR ã¨ãã¿ã¼ã³ããããã¦ããå ´åã¯ DIR å
-é¨ã ls ãã */
+		if (pattern_p != NULL && (fno.fattrib & AM_DIR) && ((fno.fname[0] == '.') ? (pattern_p[0] == '.') : 1)) {/* DIR とパターンマッチしている場合は DIR 内部を ls する */
 #if _USE_LFN
 			fn = *fno.lfname ? fno.lfname : fno.fname;
@@ -336,5 +334,5 @@
 		return 0;
 
-	/* å¼æ°ãã§ãã¯ */
+	/* 引数チェック */
 	for (i = 1; i < argc; i++) {
 		if (argv[i][0] == '-')
@@ -382,6 +380,5 @@
 	}
 	if (fno.fattrib & AM_DIR) {	/* src is dir */
-		/*******************************************************/	/* from dir */ /* æªå®è£
- */
+		/*******************************************************/	/* from dir */ /* 未実装 */
 	}
 	else {						/* src is file */
Index: EcnlProtoTool/trunk/ntshell/shellif.rb
===================================================================
--- EcnlProtoTool/trunk/ntshell/shellif.rb	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/shellif.rb	(revision 321)
@@ -9,8 +9,8 @@
   symbolAddress = {}
   symbolFile.each do |line|
-    # ã¹ãã¼ã¹åºåãã§åè§£
+    # スペース区切りで分解
     fields = line.split(/\s+/)
 
-    # 3åã«ãªã£ã¦ããªãè¡ã¯é¤å¤
+    # 3列になっていない行は除外
     if fields.size == 3 && fields[2].start_with?("__exp_")
       symbolAddress[fields[2].gsub("__exp_", "")] = fields[0].hex
Index: EcnlProtoTool/trunk/ntshell/src/fdtable.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/fdtable.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/fdtable.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -495,6 +480,5 @@
 	memset(evts, 0, sizeof(*evts));
 
-	/* ã¤ãã³ãå¾
-ã¡ */
+	/* イベント待ち */
 	ret = twai_flg(FLG_SELECT_WAIT, waitptn, TWF_ORW, &flgptn, tmout);
 	if (ret != E_OK) {
@@ -511,5 +495,5 @@
 	flgptn &= waitptn;
 
-	/* åãåã£ããã©ã°ã®ã¿ã¯ãªã¢ */
+	/* 受け取ったフラグのみクリア */
 	ret = clr_flg(FLG_SELECT_WAIT, ~flgptn);
 	if (ret != E_OK) {
Index: EcnlProtoTool/trunk/ntshell/src/io_stub.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/io_stub.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/io_stub.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -103,12 +88,11 @@
 		break;
 	}
-	/* ãã¡ã¤ã«ãä½æ */
+	/* ファイルを作成 */
 	if (flags & O_CREAT) {
-		/* æ¢å­ã®å
-å®¹ã¯æ¶ã */
+		/* 既存の内容は消す */
 		if (flags & O_TRUNC) {
 			fmd |= FA_CREATE_ALWAYS;
 		}
-		/* æ°è¦ä½æã®ä¿é */
+		/* 新規作成の保障 */
 		else if (flags & O_EXCL) {
 			fmd |= FA_CREATE_NEW;
@@ -118,8 +102,7 @@
 		}
 	}
-	/* ããå ´åã¯éã */
+	/* ある場合は開く */
 	else {
-		/* æ¢å­ã®å
-å®¹ã¯æ¶ã */
+		/* 既存の内容は消す */
 		if (flags & O_TRUNC) {
 			fmd |= FA_CREATE_ALWAYS;
@@ -336,5 +319,5 @@
 		}
 		int l = strlen(cwd);
-		// ã«ã¼ããã£ã¬ã¯ããªã®å ´å
+		// ルートディレクトリの場合
 		if (cwd[l - 2] == ':' && cwd[l - 1] == '/') {
 			st->st_size = 0;
Index: EcnlProtoTool/trunk/ntshell/src/main.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/main.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/main.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /* 
- *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
+ *  サンプルプログラム(1)の本体
  */
 
@@ -136,5 +121,5 @@
 
 	while (cnt > 0) {
-		/* ã¿ã¤ã ã¢ã¦ãå¦ç */
+		/* タイムアウト処理 */
 		if (tmo) {
 			tmo = false;
@@ -165,9 +150,9 @@
 			}
 
-			/* æéçµé */
+			/* 時間経過 */
 			main_progress(main_obj.now - main_obj.prev);
 
 			if (ret == E_OK) {
-				/* ã¡ãã»ã¼ã¸åä¿¡å¦ç */
+				/* メッセージ受信処理 */
 				if (main_obj.rcvmsg.ptr == NULL) {
 					main_obj.rcvmsg = msg;
@@ -194,5 +179,5 @@
 			cnt -= slen;
 
-			/* ãã¼ã¿ãç©ºã®å ´å */
+			/* データが空の場合 */
 			if (!_ws_fbs_exist_data(main_obj.rcvmsg)) {
 				ret = _ws_fbs_del(main_obj.rcvmsg);
@@ -204,5 +189,5 @@
 				main_obj.rcvmsg.ptr = NULL;
 
-				/* ã­ã¥ã¼ãããã¼ã¿ãåå¾ */
+				/* キューからデータを取得 */
 				ret = ws_fbs_dequeue(&main_obj.wbs_queue, &main_obj.rcvmsg.ptr);
 			}
@@ -258,5 +243,5 @@
 
 /*
- * ã¡ã¤ã³ã¿ã¹ã¯
+ * メインタスク
  */
 void main_task(intptr_t exinf)
@@ -270,5 +255,5 @@
 
 /*
- * åæå
+ * 初期化
  */
 static void main_initialize()
@@ -301,5 +286,5 @@
 	ether_set_link_callback(netif_link_callback);
 
-	/* åæå */
+	/* 初期化 */
 	if (mruby_arduino_init() == 0) {
 		gpio_write(&led_blue, 0);
@@ -334,5 +319,5 @@
 
 /*
- * ã¿ã¤ãã¼åå¾
+ * タイマー取得
  */
 static TMO main_get_timer()
@@ -344,5 +329,5 @@
 
 /*
- * æéçµé
+ * 時間経過
  */
 static void main_progress(TMO interval)
@@ -357,5 +342,5 @@
 
 /*
- * ã¿ã¤ã ã¢ã¦ãå¦ç
+ * タイムアウト処理
  */
 static void main_timeout()
@@ -365,5 +350,5 @@
 }
 
-/* MACã¢ãã¬ã¹ã®è¨­å®æã«å¼ã°ãã */
+/* MACアドレスの設定時に呼ばれる */
 void mbed_mac_address(char *mac)
 {
@@ -398,5 +383,5 @@
 
 /*
- *  mrubyå®è¡ã¿ã¹ã¯
+ *  mruby実行タスク
  */
 void mruby_task(intptr_t exinf)
@@ -418,6 +403,5 @@
 void shellif_into()
 {
-	/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
-åº¦ããé«ããã */
+	/* メインタスクの優先度より高くする */
 	chg_pri(MRUBY_PRIORITY, MAIN_PRIORITY + 1);
 }
@@ -425,6 +409,5 @@
 void shellif_outof()
 {
-	/* mrubyå®è¡ã¿ã¹ã¯ã®åªå
-åº¦ã«æ»ã */
+	/* mruby実行タスクの優先度に戻す */
 	chg_pri(MRUBY_PRIORITY, MRUBY_PRIORITY);
 }
Index: EcnlProtoTool/trunk/ntshell/src/main.cdl
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/main.cdl	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/main.cdl	(revision 321)
@@ -1,14 +1,14 @@
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«
+ *		サンプルプログラム(1)のコンポーネント記述ファイル
  *
  *  $Id$
  */
 /*
- *  ã«ã¼ãã«ãªãã¸ã§ã¯ãã®å®ç¾©
+ *  カーネルオブジェクトの定義
  */
 import(<kernel.cdl>);
 
 /*
- *  ã¿ã¼ã²ããéä¾å­ã®ã»ã«ã¿ã¤ãã®å®ç¾©
+ *  ターゲット非依存のセルタイプの定義
  */
 import("syssvc/tSerialPort.cdl");
@@ -20,40 +20,39 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­é¨ã®åãè¾¼ã¿
+ *  ターゲット依存部の取り込み
  */
 import("target.cdl");
 
 /*
- *  ãã»ã«ã®çµä¸ãè¨è¿°ãã¨ã¯ï¼"cell"ã§å§ã¾ãè¡ããï¼ããã«å¯¾å¿ãã"};"
- *  ã®è¡ã¾ã§ã®ãã¨ãè¨ãï¼
+ *  「セルの組上げ記述」とは，"cell"で始まる行から，それに対応する"};"
+ *  の行までのことを言う．
  */
 
 /*
- *  ã·ã¹ãã ã­ã°æ©è½ã®çµä¸ãè¨è¿°
+ *  システムログ機能の組上げ記述
  *
- *  ã·ã¹ãã ã­ã°æ©è½ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãï¼ã³
- *  ã³ãã¤ã«ãªãã·ã§ã³ã«-DTOPPERS_OMIT_SYSLOGãè¿½å ããã°ããï¼ãã ãï¼
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ã¹ãã ã­ã°æ©è½ãä½¿ç¨ããããï¼ãããå¤ããã¨
- *  ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ã¹ãã ã­ã°æ©è½ã®ã¢ããã¿ãå¤ããªããã°ãªããª
- *  ãï¼tecsgenãè­¦åã¡ãã»ã¼ã¸ãåºããï¼ç¡è¦ãã¦ããï¼
+ *  システムログ機能を外す場合には，以下のセルの組上げ記述を削除し，コ
+ *  ンパイルオプションに-DTOPPERS_OMIT_SYSLOGを追加すればよい．ただし，
+ *  システムログタスクはシステムログ機能を使用するため，それも外すこと
+ *  が必要である．また，システムログ機能のアダプタも外さなければならな
+ *  い．tecsgenが警告メッセージを出すが，無視してよい．
  */
 cell tSysLog SysLog {
-	logBufferSize = 32;					/* ã­ã°ãããã¡ã®ãµã¤ãº */
+	logBufferSize = 32;					/* ログバッファのサイズ */
 	initLogMask = C_EXP("LOG_UPTO(LOG_NOTICE)");
-										/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
+										/* ログバッファに記録すべき重要度 */
 	initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)");
-									   	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+									   	/* 低レベル出力すべき重要度 */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ã¹ãã ã­ã°æ©è½
- *  ãå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°
+ *  C言語で記述されたアプリケーションから，TECSベースのシステムログ機能
+ *  を呼び出すためのアダプタの組上げ記述
  *
- *  ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«ï¼syslogé¢æ°ã¨syslog_0é¢æ°ï½syslog_5
- *  é¢æ°ä»¥å¤ã®ãã®ï¼ã«ãCè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããå¼ã³åºããª
- *  ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ããã°ããï¼
+ *  システムログ機能のサービスコール（syslog関数とsyslog_0関数～syslog_5
+ *  関数以外のもの）ルをC言語で記述されたアプリケーションから呼び出さな
+ *  い場合には，以下のセルの組上げ記述を削除すればよい．
  */
 cell tSysLogAdapter SysLogAdapter {
@@ -62,28 +61,27 @@
 
 /*
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®çµä¸ãè¨è¿°
+ *  シリアルインタフェースドライバの組上げ記述
  *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨
- *  è¿°ãåé¤ããã°ããï¼ãã ãï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼
- *  ã¹ãã©ã¤ããä½¿ç¨ããããï¼ãããå¤ããã¨ãå¿
-è¦ã§ããï¼ã¾ãï¼ã·ãªã¢
- *  ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¢ããã¿ãå¤ããªããã°ãªããªãï¼
+ *  シリアルインタフェースドライバを外す場合には，以下のセルの組上げ記
+ *  述を削除すればよい．ただし，システムログタスクはシリアルインタフェー
+ *  スドライバを使用するため，それも外すことが必要である．また，シリア
+ *  ルインタフェースドライバのアダプタも外さなければならない．
  */
 cell tSerialPort SerialPort1 {
-	receiveBufferSize = 256;			/* åä¿¡ãããã¡ã®ãµã¤ãº */
-	sendBufferSize    = 256;			/* éä¿¡ãããã¡ã®ãµã¤ãº */
+	receiveBufferSize = 256;			/* 受信バッファのサイズ */
+	sendBufferSize    = 256;			/* 送信バッファのサイズ */
 
-	/* ã¿ã¼ã²ããä¾å­é¨ã¨ã®çµå */
+	/* ターゲット依存部との結合 */
 	cSIOPort = SIOPortTarget1.eSIOPort;
-	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* ã³ã¼ã«ããã¯ */
+	eiSIOCBR <= SIOPortTarget1.ciSIOCBR;	/* コールバック */
 };
 
 /*
- *  Cè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ããï¼TECSãã¼ã¹ã®ã·ãªã¢ã«ã¤ã³ã¿
- *  ãã§ã¼ã¹ãã©ã¤ããå¼ã³åºãããã®ã¢ããã¿ã®çµä¸ãè¨è¿°
+ *  C言語で記述されたアプリケーションから，TECSベースのシリアルインタ
+ *  フェースドライバを呼び出すためのアダプタの組上げ記述
  *
- *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãµã¼ãã¹ã³ã¼ã«ãCè¨èªã§è¨è¿°ãããã¢
- *  ããªã±ã¼ã·ã§ã³ããå¼ã³åºããªãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãå
- *  é¤ããã°ããï¼
+ *  シリアルインタフェースドライバのサービスコールをC言語で記述されたア
+ *  プリケーションから呼び出さない場合には，以下のセルの組上げ記述を削
+ *  除すればよい．
  */
 cell tSerialAdapter SerialAdapter {
@@ -92,33 +90,32 @@
 
 /*
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµä¸ãè¨è¿°
+ *  システムログタスクの組上げ記述
  *
- *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°ãåé¤ãã
- *  ã°ããï¼
+ *  システムログタスクを外す場合には，以下のセルの組上げ記述を削除すれ
+ *  ばよい．
  */
 cell tLogTask LogTask {
-	priority  = 3;					/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åªå
-åº¦ */
-	stackSize = LogTaskStackSize;	/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+	priority  = 3;					/* システムログタスクの優先度 */
+	stackSize = LogTaskStackSize;	/* システムログタスクのスタックサイズ */
 
-	/* ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¨ã®çµå */
+	/* シリアルインタフェースドライバとの結合 */
 	cSerialPort        = SerialPort1.eSerialPort;
 	cnSerialPortManage = SerialPort1.enSerialPortManage;
 
-	/* ã·ã¹ãã ã­ã°æ©è½ã¨ã®çµå */
+	/* システムログ機能との結合 */
 	cSysLog = SysLog.eSysLog;
 
-	/* ä½ã¬ãã«åºåã¨ã®çµå */
+	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
 };
 
 /*
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸åºåã®çµä¸ãè¨è¿°
+ *  カーネル起動メッセージ出力の組上げ記述
  *
- *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåãå¤ãå ´åã«ã¯ï¼ä»¥ä¸ã®ã»ã«ã®çµä¸ãè¨è¿°
- *  ãåé¤ããã°ããï¼
+ *  カーネル起動メッセージの出力を外す場合には，以下のセルの組上げ記述
+ *  を削除すればよい．
  */
 cell tBanner Banner {
-	/* å±æ§ã®è¨­å® */
+	/* 属性の設定 */
 	targetName      = BannerTargetName;
 	copyrightNotice = BannerCopyrightNotice;
Index: EcnlProtoTool/trunk/ntshell/src/main.cfg
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/main.cfg	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/main.cfg	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *  ãµã³ãã«ãã­ã°ã©ã (1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  サンプルプログラム(1)のシステムコンフィギュレーションファイル
  */
 #include "main.h"
Index: EcnlProtoTool/trunk/ntshell/src/main.h
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/main.h	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/main.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -55,43 +40,38 @@
 
 /*
- *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ããããã¡ã¤ã«
+ *		サンプルプログラム(1)のヘッダファイル
  */
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ *  ターゲット依存の定義
  */
 #include <kernel.h>
 
 /*
- *  åã¿ã¹ã¯ã®åªå
-åº¦ã®å®ç¾©
+ *  各タスクの優先度の定義
  */
 
-#define MAIN_PRIORITY	5		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
-åº¦ */
-#define MRUBY_PRIORITY	4		/* mrubyå®è¡ã¿ã¹ã¯ã®åªå
-åº¦ */
+#define MAIN_PRIORITY	5		/* メインタスクの優先度 */
+#define MRUBY_PRIORITY	4		/* mruby実行タスクの優先度 */
 
-#define MAIN_STACK_SIZE		2048	/* ã¡ã¤ã³ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®ãµã¤ãº */
-#define MRUBY_STACK_SIZE	0x100000	/* mrubyå®è¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®ãµã¤ãº */
+#define MAIN_STACK_SIZE		2048	/* メインタスクのスタック領域のサイズ */
+#define MRUBY_STACK_SIZE	0x100000	/* mruby実行タスクのスタック領域のサイズ */
 
-#define NUM_MAIN_DATAQUEUE	1	/* ã¡ã¤ã³ã¿ã¹ã¯ã§å¾
-ã¡åãã¦ãããã¼ã¿ã­ã¥ã¼ã®ãµã¤ãº */
-#define NUM_MRUBY_DATAQUEUE	1	/* mrubyå®è¡ã¿ã¹ã¯ã§å¾
-ã¡åãã¦ãããã¼ã¿ã­ã¥ã¼ã®ãµã¤ãº */
+#define NUM_MAIN_DATAQUEUE	1	/* メインタスクで待ち受けているデータキューのサイズ */
+#define NUM_MRUBY_DATAQUEUE	1	/* mruby実行タスクで待ち受けているデータキューのサイズ */
 
 /*
- *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ *  関数のプロトタイプ宣言
  */
 #ifndef TOPPERS_MACRO_ONLY
 
-/* ã¡ã¤ã³ã¿ã¹ã¯ */
+/* メインタスク */
 extern void main_task(intptr_t exinf);
 
-/* mrubyå®è¡ã¿ã¹ã¯ */
+/* mruby実行タスク */
 extern void mruby_task(intptr_t exinf);
 
 /* 
- * ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ * ノンブロッキングコールのコールバック関数
  */
 extern ER socket_udp_callback(ID cepid, FN fncd, void *p_parblk);
Index: EcnlProtoTool/trunk/ntshell/src/route_cfg.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/route_cfg.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/route_cfg.c	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -45,5 +33,5 @@
 
 /* 
- *  ã«ã¼ãã£ã³ã°è¡¨
+ *  ルーティング表
  */
 
@@ -56,5 +44,5 @@
 #include <netinet/in_var.h>
 
-/* IPv4 ã«é¢ããå®ç¾© */
+/* IPv4 に関する定義 */
 
 #ifdef SUPPORT_INET4
@@ -80,17 +68,12 @@
 T_IN4_RTENTRY routing_tbl[NUM_ROUTE_ENTRY] = {
 
-	/* ç°ãªã LANãdefault gateway ã«ããéæ¥é
-é	*/
+	/* 異なる LAN、default gateway による間接配送	*/
 	{ 0,			0,			IPV4_ADDR_DEFAULT_GW	},
 
-	/* åä¸ LAN å
-ãç´æ¥é
-é				*/
+	/* 同一 LAN 内、直接配送				*/
 	{ IPV4_ADDR_LOCAL &
 	  IPV4_ADDR_LOCAL_MASK,	IPV4_ADDR_LOCAL_MASK,	0			},
 
-	/* åä¸ LAN å
-ã¸ã®ãã­ã¼ãã­ã£ã¹ããç´æ¥é
-é	*/
+	/* 同一 LAN 内へのブロードキャスト、直接配送	*/
 	{ 0xffffffff,		0xffffffff,		0			},
 
@@ -101,5 +84,5 @@
 #endif	/* of #ifdef SUPPORT_INET4 */
 
-/* IPv6 ã«é¢ããå®ç¾© */
+/* IPv6 に関する定義 */
 
 #ifdef SUPPORT_INET6
Index: EcnlProtoTool/trunk/ntshell/src/shellif.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/shellif.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/shellif.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
Index: EcnlProtoTool/trunk/ntshell/src/socket_stub.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/socket_stub.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/socket_stub.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
Index: EcnlProtoTool/trunk/ntshell/src/socket_stub.h
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/socket_stub.h	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/socket_stub.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
Index: EcnlProtoTool/trunk/ntshell/src/tinet_app_config.h
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/tinet_app_config.h	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/tinet_app_config.h	(revision 321)
@@ -5,39 +5,27 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
- *  ã«ãã£ã¦å
-¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
- *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
- *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼
- *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
- *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
- *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
+ *  によって公表されている GNU General Public License の Version 2 に記
+ *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
+ *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
+ *  利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次の条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
+ *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
+ *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
  * 
  *  @(#) $Id$
@@ -48,7 +36,7 @@
 
 /*
- *  ã¤ã³ã¿ã¼ããããã­ãã³ã«ãã¡ããªã¼ã®ãµãã¼ã
- *
- *    Makefile ã§æå®ãã¦ãè¯ã
+ *  インターネットプロトコルファミリーのサポート
+ *
+ *    Makefile で指定しても良い
  */
 
@@ -58,6 +46,6 @@
 /*#define SUPPORT_UDP		UDP			*/
 
-/*ãã¼ã¿ãªã³ã¯å±¤ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãé¸æãã	*/
-/*ããããä¸ã¤ã ãé¸æã§ããã				*/
+/*データリンク層のネットワークインタフェースを選択する	*/
+/*いずれか一つだけ選択できる。				*/
 
 /*#define SUPPORT_PPP		PointtoPointProtocol	*/
@@ -68,11 +56,11 @@
 
 /*
- *  TCP/IP ã«é¢ããå®ç¾©
- */
-
-/* TCP ã«é¢ããå®ç¾© */
-
-/*
- *  TCPã®è½åãªã¼ãã³ã®ã¿ãµãã¼ããããã¨ãæå®ããã
+ *  TCP/IP に関する定義
+ */
+
+/* TCP に関する定義 */
+
+/*
+ *  TCPの能動オープンのみサポートすることを指定する。
  */
 
@@ -82,27 +70,27 @@
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
- *    æ³¨æ: Makefile ã§æå®ãã¦ããã
+ *  TCP 通信端点の送受信ウィンドバッファの省コピー機能
+ *    注意: Makefile で指定している。
  */
 /*#define TCP_CFG_RWBUF_CSAVE_ONLY*/
-			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+			/* TCP 通信端点の受信ウィンドバッファの省コピー機能のみ有効にする。	*/
 /*#define TCP_CFG_RWBUF_CSAVE*/
-			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
+			/* TCP 通信端点の受信ウィンドバッファの省コピー機能を有効にする。	*/
 /*#define TCP_CFG_SWBUF_CSAVE_ONLY*/
-			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+			/* TCP 通信端点の送信ウィンドバッファの省コピー機能のみ有効にする。	*/
 /*#define TCP_CFG_SWBUF_CSAVE*/
-			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
-
-/*
- *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã
- *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ã
- *  ãã ããæ­£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã
- *  ã¾ããæå®ããªãã¨å¶éããªãã
+			/* TCP 通信端点の送信ウィンドバッファの省コピー機能を有効にする。	*/
+
+/*
+ *  TCP 通信端点の受信ウィンドバッファの省コピー機能の、
+ *  受信ウィンドバッファキューの最大エントリ数。
+ *  ただし、正常に受信したセグメントも破棄するため、再送回数が増加する。
+ *  また、指定しないと制限しない。
  */
 /*#define TCP_CFG_RWBUF_CSAVE_MAX_QUEUES	2*/
 
 /*
- *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã
- *  éä¿¡ã¦ã£ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºã
+ *  TCP 通信端点の送信ウィンドバッファの省コピー機能で、
+ *  送信ウィンドバッファに使用するネットワークバッファのサイズ。
  */
 #define USE_TCP_MSS_SEG
@@ -111,21 +99,21 @@
 
 #ifdef SUPPORT_INET4
-#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IP4_MSS)		/* æå¤§ãµã¤ãº */
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IP4_MSS)		/* 最大サイズ */
 #endif
 
 #ifdef SUPPORT_INET6
-#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IPV6_MMTU)	/* æå¤§ãµã¤ãº */
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IPV6_MMTU)	/* 最大サイズ */
 #endif
 
 #else	/* of #ifdef USE_TCP_MSS_SEG */
 
-#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	IF_PDU_SIZE			/* æå¤§ãµã¤ãº */
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	IF_PDU_SIZE			/* 最大サイズ */
 
 #endif	/* of #ifdef USE_TCP_MSS_SEG */
 
-#define TCP_CFG_SWBUF_CSAVE_MIN_SIZE	0				/* æå°ãµã¤ãº */
-
-/*
- *  TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+#define TCP_CFG_SWBUF_CSAVE_MIN_SIZE	0				/* 最小サイズ */
+
+/*
+ *  TCP のノンブロッキングコール機能
  */
 
@@ -135,8 +123,8 @@
 
 /*
- *  MAX_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
- *
- *    ç¸æãã MSS ãªãã·ã§ã³ã§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã¦ãã
- *    ãã®å¤ã§ãã»ã°ã¡ã³ããµã¤ãºãå¶éã§ããã
+ *  MAX_TCP_SND_SEG: 送信セグメントサイズの最大値
+ *
+ *    相手から MSS オプションでセグメントサイズを指定されても、
+ *    この値で、セグメントサイズを制限できる。
  */
 
@@ -158,5 +146,5 @@
 
 /*
- *  DEF_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ *  DEF_TCP_RCV_SEG: 受信セグメントサイズの規定値
  */
 
@@ -178,12 +166,9 @@
 
 /*
- *  ã¿ã¹ã¯ããã® Time Wait ç¶æ
-ã® TCP éä¿¡ç«¯ç¹åé¢æ©è½
- *
- *  Time Wait ç¶æ
-ã® TCP éä¿¡ç«¯ç¹ã®ã¨ã³ããªæ°ãæå®ããã
- *  æå®ããªããã0 ãæå®ããã¨ã
- *  ã¿ã¹ã¯ãã Time Wait ç¶æ
-ã® TCP éä¿¡ç«¯ç¹ãåé¢ããæ©è½ã¯çµè¾¼ã¾ãªãã
+ *  タスクからの Time Wait 状態の TCP 通信端点分離機能
+ *
+ *  Time Wait 状態の TCP 通信端点のエントリ数を指定する。
+ *  指定しないか、0 を指定すると、
+ *  タスクから Time Wait 状態の TCP 通信端点を分離する機能は組込まない。
  */
 #if !defined(SUPPORT_TCP)
@@ -196,19 +181,17 @@
 
 /*
- *  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½
+ *  TCP ヘッダのトレース出力機能
  */
 //#define TCP_CFG_TRACE
 
 /*
- *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã® IPv4 ã¢ãã¬ã¹
- *  IPV4_ADDRANY ãæå®ããã¨ãå
-¨ã¦ã®ãã¹ããå¯¾è±¡ã¨ããã
+ *  トレース出力対象のリモートホストの IPv4 アドレス
+ *  IPV4_ADDRANY を指定すると、全てのホストを対象とする。
  */
 #define TCP_CFG_TRACE_IPV4_RADDR	IPV4_ADDRANY
 
 /*
- *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã®ãã¼ãçªå·
- *  TCP_PORTANY ãæå®ããã¨ãå
-¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ *  トレース出力対象のリモートホストのポート番号
+ *  TCP_PORTANY を指定すると、全てのポート番号を対象にする。
  */
 #define TCP_CFG_TRACE_RPORTNO		TCP_PORTANY
@@ -216,7 +199,6 @@
 
 /*
- *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ã­ã¼ã«ã«ãã¹ãã®ãã¼ãçªå·
- *  TCP_PORTANY ãæå®ããã¨ãå
-¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ *  トレース出力対象のローカルホストのポート番号
+ *  TCP_PORTANY を指定すると、全てのポート番号を対象にする。
  */
 #define TCP_CFG_TRACE_LPORTNO		TCP_PORTANY
@@ -224,14 +206,13 @@
 
 /*
- *  ITRON TCP/IP APIãTCP ã®æ¡å¼µæ©è½
+ *  ITRON TCP/IP API、TCP の拡張機能
  */
 #define TCP_CFG_EXTENTIONS
 
 /*
- *  TCP_CFG_URG_OFFSET: ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãã
- *
- *    -1: BSD ã®å®è£
-ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã
- *     0: RFC1122 ã®è¦å®ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ãã
+ *  TCP_CFG_URG_OFFSET: 緊急データの最後のバイトのオフセット
+ *
+ *    -1: BSD の実装、緊急ポインタは、緊急データの最後のバイトの次のバイトを差す。
+ *     0: RFC1122 の規定、緊急ポインタは、緊急データの最後のバイトを差す。
  */
 
@@ -239,8 +220,8 @@
 //#define TCP_CFG_URG_OFFSET	0
 
-/* UDP ã«é¢ããå®ç¾© */
-
-/*
- *  UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+/* UDP に関する定義 */
+
+/*
+ *  UDP のノンブロッキングコール機能
  */
 
@@ -250,9 +231,9 @@
 
 /*
- *  ITRON TCP/IP APIãUDP ã®æ¡å¼µæ©è½
+ *  ITRON TCP/IP API、UDP の拡張機能
  */
 #define UDP_CFG_EXTENTIONS
 
-/* IPv4 ã«é¢ããå®ç¾© */
+/* IPv4 に関する定義 */
 
 #ifdef SUPPORT_INET4
@@ -263,5 +244,5 @@
 #define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(192,168,1,21)
 #else
-#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)		/* 相手に割り当ててもらう場合	*/
 #endif
 
@@ -269,5 +250,5 @@
 #define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(192,168,1,31)
 #else
-#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(0,0,0,0)		/* 相手に割り当ててもらう場合	*/
 #endif
 
@@ -307,5 +288,5 @@
 #endif	/* of #ifdef SUPPORT_INET4 */
 
-/* IPv6 ã«é¢ããå®ç¾© */
+/* IPv6 に関する定義 */
 
 #ifdef SUPPORT_INET6
@@ -335,77 +316,75 @@
 
 /*
- *  ãã¼ã¿ãªã³ã¯å±¤ (ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹) ã«é¢ããå®ç¾©
- */
-
-/*
- *  ã¤ã¼ãµãããã«é¢ããå®ç¾©
- */
-
-/*
- *  PPP ã«é¢ããå®ç¾©
- */
-
-#define HDLC_PORTID			1	/* HDLC(PPP)ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·	*/
+ *  データリンク層 (ネットワークインタフェース) に関する定義
+ */
+
+/*
+ *  イーサネットに関する定義
+ */
+
+/*
+ *  PPP に関する定義
+ */
+
+#define HDLC_PORTID			1	/* HDLC(PPP)に用いるシリアルポート番号	*/
 
 /*#define PPP_IDLE_TIMEOUT		(180*NET_TIMER_HZ)*/
-					/* åæ­ã¾ã§ã®ã¢ã¤ãã«æéã		*/
-					/* åæ­ããªãå ´åã¯ã³ã¡ã³ãã¢ã¦ãããã	*/
-
-/*#define PPP_CFG_MODEM			 ã¢ãã æ¥ç¶ã®å ´åã¯ã³ã¡ã³ããå¤ãã	*/
+					/* 切断までのアイドル時間、		*/
+					/* 切断しない場合はコメントアウトする。	*/
+
+/*#define PPP_CFG_MODEM			 モデム接続の場合はコメントを外す。	*/
 
 #define MODEM_CFG_INIT			"ATE1&D0&S0\\V0\\Q1S0=1"
-					/* ã¢ãã åæåæå­å			*/
-					/* NTT DoComo ã¢ãã¤ã«ã¢ããã¿ 96F ç¨	*/
-					/*   E1: ã¨ã³ã¼ããã¯ãã			*/
-					/*  &D0: ERä¿¡å·ç¡è¦			*/
-					/*  &S0: DRä¿¡å·å¸¸æ ON			*/
-					/*  \V0: ãªã¶ã«ãã³ã¼ã TYPE 1		*/
-					/*  \Q1: XON/XOFF ãã­ã¼å¶å¾¡		*/
-					/* S0=1: èªåçä¿¡ãªã³ã°åæ° = 1 å	*/
+					/* モデム初期化文字列			*/
+					/* NTT DoComo モバイルアダプタ 96F 用	*/
+					/*   E1: エコーバックあり			*/
+					/*  &D0: ER信号無視			*/
+					/*  &S0: DR信号常時 ON			*/
+					/*  \V0: リザルトコード TYPE 1		*/
+					/*  \Q1: XON/XOFF フロー制御		*/
+					/* S0=1: 自動着信リング回数 = 1 回	*/
 
 #define MODEM_CFG_PHONE_NUMBER		"090-xxxx-9242"
 
-					/* èªæ§ææ
-å ±ã®è¦å®å¤			*/
+					/* 自構成情報の規定値			*/
 #define DEF_LCP_LOCAL_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
 					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
 
-					/* ç¸æã«è¨±ãæ§ææ
-å ±ã®è¦å®å¤		*/
+					/* 相手に許す構成情報の規定値		*/
 #define DEF_LCP_REMOTE_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
 					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
 
 /*
- *  èªè¨¼ã«é¢ããå®ç¾©
- */
-
-#define AUTH_CFG_CLIENT		   	/* èªè¨¼ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã	*/
-#define AUTH_CFG_SERVER			/* èªè¨¼ãµã¼ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã		*/
-
-#define AUTH_LOCAL_USER			"h8"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å	*/
-#define AUTH_LOCAL_PASSWD		"3048f"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã	*/
-#define AUTH_REMOTE_USER		"pen3"		/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å		*/
-#define AUTH_REMOTE_PASSWD		"600MHz"	/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã		*/
-
-/*
- *  ARP ã«é¢ããå®ç¾©
- */
-
-/*#define ARP_CFG_CALLBACK_DUPLICATED*/	/* IP ã¢ãã¬ã¹éè¤æ¤åºã³ã¼ã«ããã¯é¢æ°ã	*/
-					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã		*/
-
-/*
- *  ICMPv4/v6 ã«é¢ããå®ç¾©
+ *  認証に関する定義
+ */
+
+#define AUTH_CFG_CLIENT		   	/* 認証クライアントモードの時はコメントを外す。	*/
+#define AUTH_CFG_SERVER			/* 認証サーバモードの時はコメントを外す。		*/
+
+#define AUTH_LOCAL_USER			"h8"		/* 自ホストへのログイン認証ユーザ名	*/
+#define AUTH_LOCAL_PASSWD		"3048f"		/* 自ホストへのログイン認証パスワード	*/
+#define AUTH_REMOTE_USER		"pen3"		/* 相手へのログイン認証ユーザ名		*/
+#define AUTH_REMOTE_PASSWD		"600MHz"	/* 相手へのログイン認証パスワード		*/
+
+/*
+ *  ARP に関する定義
+ */
+
+/*#define ARP_CFG_CALLBACK_DUPLICATED*/	/* IP アドレス重複検出コールバック関数を	*/
+					/* 定義する場合はコメントを外す。		*/
+
+/*
+ *  ICMPv4/v6 に関する定義
  */
 
 #ifdef USE_PING
 
-#define ICMP_CFG_CALLBACK_ECHO_REPLY	/* ICMP ECHO å¿ç­ãåä¿¡ããã¨ãå¼åºãã³ã¼ã«ããã¯é¢æ°ã	*/
-					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã			*/
+#define ICMP_CFG_CALLBACK_ECHO_REPLY	/* ICMP ECHO 応答を受信したとき呼出すコールバック関数を	*/
+					/* 定義する場合はコメントを外す。			*/
 
 #endif	/* of #ifdef USE_PING */
 
 /*
- *  ãããã¯ã¼ã¯ãããã¡ã«é¢ããå®ç¾©
+ *  ネットワークバッファに関する定義
  */
 
@@ -413,15 +392,15 @@
 
 /*
- *  ã¤ã¼ãµãããã®å ´åã®ãããã¯ã¼ã¯ãããã¡æ°ã®å²ãå½ã¦
- */
-
-/*
- *  64 ãªã¯ããã
- *
- *    IPv4 ã§ã®ã¿å²ãå½ã¦ãã
- *
- *    IPv6 ã§ã¯ãTCP å¶å¾¡ã»ã°ã¡ã³ãï¼CSEGãSDU ãªãï¼ãµã¤ãºã®
- *    ãããã¯ã¼ã¯ãããã¡ï¼IF + IPv6 + TCP = 74ï¼ä»¥ä¸ã®
- *    ãããã¯ã¼ã¯ãããã¡ã¯ä¸è¦ã§ããã
+ *  イーサネットの場合のネットワークバッファ数の割り当て
+ */
+
+/*
+ *  64 オクテット
+ *
+ *    IPv4 でのみ割り当てる。
+ *
+ *    IPv6 では、TCP 制御セグメント（CSEG、SDU なし）サイズの
+ *    ネットワークバッファ（IF + IPv6 + TCP = 74）以下の
+ *    ネットワークバッファは不要である。
  */
 
@@ -437,13 +416,13 @@
 
 /*
- *  CSEGï¼IF + IP + TCPï¼
- *
- *    IPv6 ã§ã®ã¿å²ãå½ã¦ãã
- *
- *    RX62N Ethernet Controler ã®ãã£ãã¤ã¹ãã©ã¤ãï¼if_rx62nï¼ã®æä½å²å½ã¦é·ã¯ã
- *    ã¤ã¼ãµããããã¬ã¼ã ã®æç­é·ã§ãã 60ï¼CRC ã® 4 ãªã¯ããããé¤ãã
- *    æ´ã«ã¢ã©ã¤ã³ãã¦ 62ï¼ãªã¯ãããã§ããã
- *    å¾ã£ã¦ãIPv4 ã§ã¯ãCSEG ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
- *   ï¼IF + IPv4 + TCP = 54ï¼ã¯ä¸è¦ã§ããã
+ *  CSEG（IF + IP + TCP）
+ *
+ *    IPv6 でのみ割り当てる。
+ *
+ *    RX62N Ethernet Controler のディバイスドライバ（if_rx62n）の最低割当て長は、
+ *    イーサネットフレームの最短長である 60（CRC の 4 オクテットを除き、
+ *    更にアラインして 62）オクテットである。
+ *    従って、IPv4 では、CSEG サイズのネットワークバッファ
+ *   （IF + IPv4 + TCP = 54）は不要である。
  */
 
@@ -459,9 +438,9 @@
 
 /*
- *  128 ãªã¯ããã
- *
- *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
- *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *    128 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *  128 オクテット
+ *
+ *    IPv4 で、TCP MSS（IP MSS、IF + 576 オクテット）の
+ *    ネットワークバッファを割り当てる場合、
+ *    128 オクテットのネットワークバッファは割り当てない。
  */
 
@@ -477,9 +456,9 @@
 
 /*
- *  256 ãªã¯ããã
- *
- *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
- *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *    256 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *  256 オクテット
+ *
+ *    IPv4 で、TCP MSS（IP MSS、IF + 576 オクテット）の
+ *    ネットワークバッファを割り当てる場合、
+ *    256 オクテットのネットワークバッファは割り当てない。
  */
 
@@ -496,9 +475,9 @@
 
 /*
- *  512 ãªã¯ããã	
- *
- *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
- *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *    512 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *  512 オクテット	
+ *
+ *    IPv4 で、TCP MSS（IP MSS、IF + 576 オクテット）の
+ *    ネットワークバッファを割り当てる場合、
+ *    512 オクテットのネットワークバッファは割り当てない。
  */
 
@@ -514,9 +493,9 @@
 
 /*
- *  TCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼
- *
- *   ã»IPv4 ã§ã®ã¿å²ãå½ã¦ãã
- *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
- *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ *  TCP MSS（IP MSS、IF + 576 オクテット）
+ *
+ *   ・IPv4 でのみ割り当てる。
+ *   ・送受信ウィンドバッファの省コピー機能が有効で、
+ *     省コピー API を使用するときは、+1 割り当てる。
  */
 
@@ -531,18 +510,18 @@
 #define NUM_MPF_NET_BUF_IP_MSS		6
 #else
-#define NUM_MPF_NET_BUF_IP_MSS		4	/* IF + 576 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_IP_MSS		4	/* IF + 576 オクテット	*/
 #endif
 
 #else	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
 
-#define NUM_MPF_NET_BUF_IP_MSS		0	/* IF + 576 ãªã¯ããã	*/
+#define NUM_MPF_NET_BUF_IP_MSS		0	/* IF + 576 オクテット	*/
 
 #endif	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
 
 /*
- *  1024 ãªã¯ããã	
- *
- *    TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *    1024 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *  1024 オクテット	
+ *
+ *    TCP MSS のネットワークバッファを割り当てる場合、
+ *    1024 オクテットのネットワークバッファは割り当てない。
  */
 
@@ -552,15 +531,15 @@
 
 #if defined(USE_TCP_MSS_SEG)
-#define NUM_MPF_NET_BUF_1024		0	/* 1024 ãªã¯ããã	*/
-#else
-#define NUM_MPF_NET_BUF_1024		2	/* 1024 ãªã¯ããã	*/
-#endif
-
-/*
- *  TCP MSSï¼IPV6 MMTUãIF + 1280 ãªã¯ãããï¼
- *
- *   ã»IPv6 ã§ã®ã¿å²ãå½ã¦ãã
- *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
- *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+#define NUM_MPF_NET_BUF_1024		0	/* 1024 オクテット	*/
+#else
+#define NUM_MPF_NET_BUF_1024		2	/* 1024 オクテット	*/
+#endif
+
+/*
+ *  TCP MSS（IPV6 MMTU、IF + 1280 オクテット）
+ *
+ *   ・IPv6 でのみ割り当てる。
+ *   ・送受信ウィンドバッファの省コピー機能が有効で、
+ *     省コピー API を使用するときは、+1 割り当てる。
  */
 
@@ -585,10 +564,10 @@
 
 /*
- *  IF æå¤§ PDU ãµã¤ãº
- *
- *   ã»TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
- *     IF æå¤§ PDU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
- *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
- *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ *  IF 最大 PDU サイズ
+ *
+ *   ・TCP MSS のネットワークバッファを割り当てる場合、
+ *     IF 最大 PDU サイズのネットワークバッファは割り当てない。
+ *   ・送受信ウィンドバッファの省コピー機能が有効で、
+ *     省コピー API を使用するときは、+1 割り当てる。
  */
 
@@ -612,12 +591,12 @@
 
 /*
- *  65536 ãªã¯ããã
- *
- *  ã»NET_BUF_CFG_LONG_LEN ãå®ç¾©ããã¨ãã®ã¿å²ãå½ã¦ãã
+ *  65536 オクテット
+ *
+ *  ・NET_BUF_CFG_LONG_LEN を定義したときのみ割り当てる。
  */
 
 #ifdef NET_BUF_CFG_LONG_LEN
 
-/* IPv6 ç¨ */
+/* IPv6 用 */
 
 #ifdef NUM_MPF_NET_BUF6_65536
@@ -640,8 +619,8 @@
 
 /*
- *  DNS ãµã¼ãã«é¢ããå®ç¾©
- */
-
-/* DNS ãµã¼ãã® IP ã¢ãã¬ã¹ */
+ *  DNS サーバに関する定義
+ */
+
+/* DNS サーバの IP アドレス */
 
 #if !defined(DHCP6_CLI_CFG)
@@ -659,5 +638,5 @@
 #endif
 
-/* DOMAIN å */
+/* DOMAIN 名 */
 
 #if !(defined(DHCP4_CLI_CFG) || defined(DHCP6_CLI_CFG))
@@ -666,17 +645,15 @@
 
 /*
- *  DHCP ã¯ã©ã¤ã¢ã³ãã«é¢ããå®ç¾©
- */
-
-/* DHCPv6 ã®åä½ã¢ã¼ãã®è¨­å® */
+ *  DHCP クライアントに関する定義
+ */
+
+/* DHCPv6 の動作モードの設定 */
 
 #define DHCP6_CLI_CFG_MODE	DHCP6_CLI_CFG_STATELESS
 //#define DHCP6_CLI_CFG_MODE	DHCP6_CLI_CFG_STATEFULL
 
-#define ETHER_OUTPUT_PRIORITY	7	/* Ethernet åºåã¿ã¹ã¯ã®åªå
-åº¦		*/
-#define TCP_OUT_TASK_PRIORITY	6	/* TCP åºåã¿ã¹ã¯ã®åªå
-åº¦			*/
-#define NUM_DTQ_ETHER_OUTPUT	16	/* Ethernet åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãº	*/
+#define ETHER_OUTPUT_PRIORITY	7	/* Ethernet 出力タスクの優先度		*/
+#define TCP_OUT_TASK_PRIORITY	6	/* TCP 出力タスクの優先度			*/
+#define NUM_DTQ_ETHER_OUTPUT	16	/* Ethernet 出力データキューサイズ	*/
 
 #endif /* _TINET_APP_CONFIG_H_ */
Index: EcnlProtoTool/trunk/ntshell/src/tinet_main.cfg
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/tinet_main.cfg	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/src/tinet_main.cfg	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *  ãããã¯ã¼ã¯å¯¾å¿ main.c ãã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ネットワーク対応 main.c プログラムの TCP/IP コンフィギュレーションファイル
  */
 
@@ -58,9 +43,9 @@
 #include "main.h"
 
-/* DHCP ã¯ã©ã¤ã¢ã³ã */
+/* DHCP クライアント */
 /*INCLUDE("netapp/tinet_dhcp4_cli.cfg");*/
 INCLUDE("tinet_httpd.cfg");
 
-/* ECHONET Lite UDP éä¿¡ç«¯ç¹ */
+/* ECHONET Lite UDP 通信端点 */
 
 #ifdef SUPPORT_INET4
Index: EcnlProtoTool/trunk/ntshell/webserver/httpd-fs.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/httpd-fs.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/httpd-fs.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  @(#) $Id$
Index: EcnlProtoTool/trunk/ntshell/webserver/httpd-fs.h
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/httpd-fs.h	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/httpd-fs.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  @(#) $Id$
Index: EcnlProtoTool/trunk/ntshell/webserver/httpd.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/httpd.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/httpd.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  @(#) $Id$
@@ -77,5 +62,5 @@
 extern int execute_command(int wait);
 
-/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+/*  TCP 送受信ウィンドバッファ  */
 uint8_t tcp_swbuf1[TCP_SWBUF_SIZE];
 uint8_t tcp_rwbuf1[TCP_RWBUF_SIZE];
@@ -204,5 +189,5 @@
 		s->query = NULL;
 
-	/* ""ã"/"ãªã"index.html"ã«å¤æ´ */
+	/* ""か"/"なら"index.html"に変更 */
 	if ((s->message.request_url[0] == '\0') || ((s->message.request_url[0] == '/') && (s->message.request_url[1] == '\0'))) {
 		s->filename = &s->message.filename[sizeof(s->message.filename) - 2];
@@ -211,5 +196,5 @@
 		s->file.redirect = 1;
 	}
-	/* "/~/"ãªãSDã«ã¼ãããèª­ã¿è¾¼ã¿ */
+	/* "/~/"ならSDカードから読み込み */
 	else if ((s->message.request_url[0] == '/') && (s->message.request_url[1] == '~') && (s->message.request_url[2] == '/')) {
 		s->filename = &s->message.filename[sizeof(s->message.filename) - 2 - sizeof(http_www) - 1 + 2];
@@ -335,6 +320,5 @@
 		if (uploding == NULL) {
 			uploding = s;
-			// ã¢ããã­ã¼ãå
-ã¯SDã«ã¼ã
+			// アップロード先はSDカード
 			s->filename[0] = '1';
 			ntstdio_printf(&ntstdio, "create:    %s.%d %s\n", s->addr, ((T_IPV4EP *)s->dst)->portno, s->filename);
@@ -448,5 +432,5 @@
 
 /*
- *  ãããã¯ã¼ã¯å±¤ã®é¸æ
+ *  ネットワーク層の選択
  */
 
@@ -848,6 +832,5 @@
 		if ((len = tcp_rcv_buf(s->cepid, (void **)&s->in.data, TMO_POL)) <= 0) {
 			if ((len == E_TMOUT) || (len == 0)) {
-				// 3ç§ã¯å¾
-ã¤
+				// 3秒は待つ
 				//if (httpd_time - s->in.timer < 30000000) {
 					s->in.wait = true;
@@ -918,5 +901,5 @@
 
 /*
- *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ *  ノンブロッキングコールのコールバック関数
  */
 ER
@@ -934,5 +917,5 @@
 
 /*
- * HTTPãµã¼ãã¼ã¿ã¹ã¯
+ * HTTPサーバータスク
  */
 void httpd_task(intptr_t exinf)
Index: EcnlProtoTool/trunk/ntshell/webserver/httpd.cfg
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/httpd.cfg	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/httpd.cfg	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *  HTTPãµã¼ãã¼ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  HTTPサーバーのシステムコンフィギュレーションファイル
  */
 #include "httpd.h"
Index: EcnlProtoTool/trunk/ntshell/webserver/httpd.h
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/httpd.h	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/httpd.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  @(#) $Id$
@@ -55,5 +40,5 @@
 
 /*
- *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ *  ターゲット依存の定義
  */
 #include <kernel.h>
@@ -63,14 +48,12 @@
 
 /*
- *  åã¿ã¹ã¯ã®åªå
-åº¦ã®å®ç¾©
+ *  各タスクの優先度の定義
  */
 
-#define HTTPD_PRIORITY	5		/* HTTPãµã¼ãã¼ã¿ã¹ã¯ã®åªå
-åº¦ */
+#define HTTPD_PRIORITY	5		/* HTTPサーバータスクの優先度 */
 
-#define HTTPD_STACK_SIZE		1024	/* HTTPãµã¼ãã¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®ãµã¤ãº */
+#define HTTPD_STACK_SIZE		1024	/* HTTPサーバータスクのスタック領域のサイズ */
 
- /*  TCP éåä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº  */
+ /*  TCP 送受信ウィンドバッファサイズ  */
 
 #define TCP_SWBUF_SIZE	512
@@ -78,9 +61,9 @@
 
 /*
- *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ *  関数のプロトタイプ宣言
  */
 #ifndef TOPPERS_MACRO_ONLY
 
- /*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+ /*  TCP 送受信ウィンドバッファ  */
 
 extern uint8_t tcp_swbuf1[];
@@ -89,5 +72,5 @@
 extern uint8_t tcp_rwbuf2[];
 
-/* HTTPãµã¼ãã¼ã¿ã¹ã¯ */
+/* HTTPサーバータスク */
 extern void httpd_task(intptr_t exinf);
 
@@ -126,9 +109,9 @@
 
 typedef enum httpd_state_t {
-	STATE_DISCONNECTED,		/* åæ­ä¸­ */
-	STATE_CONNECTED,		/* æ¥ç¶ä¸­ */
-	STATE_WEBSOCKET,		/* WebSocketéä¿¡ä¸­ */
-	STATE_CLOSING,			/* åæ­å¦çä¸­ */
-	STATE_RESET,			/* mrubyèµ·åã®ããã®ãªã»ãã */
+	STATE_DISCONNECTED,		/* 切断中 */
+	STATE_CONNECTED,		/* 接続中 */
+	STATE_WEBSOCKET,		/* WebSocket通信中 */
+	STATE_CLOSING,			/* 切断処理中 */
+	STATE_RESET,			/* mruby起動のためのリセット */
 } httpd_state_t;
 
@@ -201,5 +184,5 @@
 
 /* 
- * ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ * ノンブロッキングコールのコールバック関数
  */
 extern ER callback_nblk_tcp(ID cepid, FN fncd, void *p_parblk);
Index: EcnlProtoTool/trunk/ntshell/webserver/tinet_httpd.cfg
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/tinet_httpd.cfg	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/tinet_httpd.cfg	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2016 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,10 +37,10 @@
 
 /*
- *  ãããã¯ã¼ã¯å¯¾å¿ main.c ãã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  ネットワーク対応 main.c プログラムの TCP/IP コンフィギュレーションファイル
  */
 
 #include "httpd.h"
 
-/* TCP åä»å£ */
+/* TCP 受付口 */
 
 #ifdef SUPPORT_INET6
@@ -71,5 +56,5 @@
 #endif	/* of #ifdef SUPPORT_INET4 */
 
-/* TCP éä¿¡ç«¯ç¹ */
+/* TCP 通信端点 */
 
 #ifdef SUPPORT_INET6
Index: EcnlProtoTool/trunk/ntshell/webserver/websocket.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/websocket.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/websocket.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2015 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -97,5 +82,5 @@
 		// MASK Payload len
 		case 1:
-			// MASK=0ã¯NG
+			// MASK=0はNG
 			if((*pos & 0x80) == 0)
 				return -1/*MASK_ERROR*/;
Index: EcnlProtoTool/trunk/ntshell/webserver/websocket.cfg
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/websocket.cfg	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/websocket.cfg	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- *  WebSocketã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *  WebSocketのシステムコンフィギュレーションファイル
  */
 #include "websocket.h"
Index: EcnlProtoTool/trunk/ntshell/webserver/websocket.h
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/websocket.h	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/websocket.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2015 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
Index: EcnlProtoTool/trunk/ntshell/webserver/websocket_fbs.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/websocket_fbs.c	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/websocket_fbs.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- * åºå®é·ãããã¡å¯å¤é·ã¹ããªã¼ã 
+ * 固定長バッファ可変長ストリーム
  */
 
@@ -291,5 +276,5 @@
 }
 
-/* ã¡ã¢ãªãã­ãã¯åå¾ ok:ãã¤ã³ã¿ NG:NULL */
+/* メモリブロック取得 ok:ポインタ NG:NULL */
 void *_ws_fbs_mbx_get(WS_FBS_SIZE_T fa_req_size)
 {
@@ -309,5 +294,5 @@
 }
 
-/* ã¡ã¢ãªãã­ãã¯è§£æ¾ */
+/* メモリブロック解放 */
 ER _ws_fbs_mbx_rel(void *p)
 {
@@ -315,5 +300,5 @@
 }
 
-/* é åç¢ºä¿ */
+/* 領域確保 */
 ER _ws_fbs_cre(WS_FBS_SIZE_T fa_req_size, WS_FBS_ID *fp_id)
 {
@@ -321,5 +306,5 @@
 }
 
-/* é åè§£æ¾ */
+/* 領域解放 */
 ER _ws_fbs_del(WS_FBS_ID fa_id)
 {
@@ -327,5 +312,5 @@
 }
 
-/* ä¿æãã¼ã¿ã®æç¡ */
+/* 保持データの有無 */
 bool_t _ws_fbs_exist_data(WS_FBS_ID fa_id)
 {
@@ -333,5 +318,5 @@
 }
 
-/* ä¿æãã¼ã¿é·ã®åå¾ */
+/* 保持データ長の取得 */
 WS_FBS_SSIZE_T _ws_fbs_get_datalen(WS_FBS_ID fa_id)
 {
@@ -339,5 +324,5 @@
 }
 
-/* èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®åå¾ */
+/* 読み取りカーソルの位置取得 */
 WS_FBS_SSIZE_T _ws_fbs_get_rpos(WS_FBS_ID fa_id)
 {
@@ -345,8 +330,8 @@
 }
 
-/* èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®è¨­å® */
+/* 読み取りカーソルの位置設定 */
 ER _ws_fbs_set_rpos(WS_FBS_ID fa_id, WS_FBS_SSIZE_T fa_pos)
 {
-	if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos)	/* ä½ç½®æå®ãå¤§ãããã */
+	if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos)	/* 位置指定が大きすぎる */
 		return E_PAR;
 
@@ -356,5 +341,5 @@
 }
 
-/* èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®ç§»å */
+/* 読み取りカーソルの位置移動 */
 ER _ws_fbs_seek_rpos(WS_FBS_ID fa_id, WS_FBS_SSIZE_T fa_seek)
 {
@@ -366,5 +351,5 @@
 }
 
-/* ä»»ææå®ä½ç½®ã®1byteèª­ã¿åã */
+/* 任意指定位置の1byte読み取り */
 int _ws_fbs_peek(WS_FBS_ID fa_id, WS_FBS_SSIZE_T fa_seek)
 {
@@ -377,5 +362,5 @@
 }
 
-/* ä»»ææå®ä½ç½®ã®1byteæ¸ãè¾¼ã¿ */
+/* 任意指定位置の1byte書き込み */
 ER _ws_fbs_poke(WS_FBS_ID fa_id, WS_FBS_SSIZE_T fa_seek, int fa_val)
 {
@@ -388,5 +373,5 @@
 }
 
-/* ãã¼ã¿è¿½å  */
+/* データ追加 */
 ER _ws_fbs_add_data(WS_FBS_ID fa_id, const void *fa_dat, WS_FBS_SSIZE_T fa_len)
 {
@@ -398,5 +383,5 @@
 }
 
-/* ãã¼ã¿è¿½å (é åãèªåçã«æ¡å¼µãã) */
+/* データ追加(領域を自動的に拡張する) */
 ER _ws_fbs_add_data_ex(WS_FBS_ID fa_id, const void *fa_dat, WS_FBS_SSIZE_T fa_len)
 {
@@ -405,5 +390,5 @@
 }
 
-/* ãã¼ã¿åå¾ */
+/* データ取得 */
 ER _ws_fbs_get_data(WS_FBS_ID fa_id, void *fa_buf, WS_FBS_SSIZE_T fa_maxlen, WS_FBS_SSIZE_T *p_len)
 {
Index: EcnlProtoTool/trunk/ntshell/webserver/websocket_fbs.h
===================================================================
--- EcnlProtoTool/trunk/ntshell/webserver/websocket_fbs.h	(revision 299)
+++ EcnlProtoTool/trunk/ntshell/webserver/websocket_fbs.h	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2017 Cores Co., Ltd. Japan
  * 
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
- * 
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
 /*
- * åºå®é·ãããã¡å¯å¤é·ã¹ããªã¼ã 
+ * 固定長バッファ可変長ストリーム
  */
 
@@ -65,50 +50,46 @@
 
 #ifndef WEBSOCKET_MEMPOOL_GET_TMO
-#define WEBSOCKET_MEMPOOL_GET_TMO	(0)			/* ã¡ã¢ãªãã¼ã«åå¾æã®ã¿ã¤ã ã¢ã¦ãæå® */
+#define WEBSOCKET_MEMPOOL_GET_TMO	(0)			/* メモリプール取得時のタイムアウト指定 */
 #endif /* WEBSOCKET_MEMPOOL_GET_TMO */
 
 #ifndef NUM_WEBSOCKET_MEMPOOL_BLOCK
-#define NUM_WEBSOCKET_MEMPOOL_BLOCK (60)		/* é»æç¨ã¡ã¢ãªãã­ãã¯ã®æ° */
+#define NUM_WEBSOCKET_MEMPOOL_BLOCK (60)		/* 電文用メモリブロックの数 */
 #endif /* NUM_WEBSOCKET_MEMPOOL_BLOCK */
 
 #ifndef WEBSOCKET_MEMPOOL_BLOCK_SIZE
-#define WEBSOCKET_MEMPOOL_BLOCK_SIZE (256)	/* é»æç¨ã¡ã¢ãªãã­ãã¯ã®ãµã¤ãº */
+#define WEBSOCKET_MEMPOOL_BLOCK_SIZE (256)	/* 電文用メモリブロックのサイズ */
 #endif /* WEBSOCKET_MEMPOOL_BLOCK_SIZE */
 
-typedef unsigned int WS_FBS_SIZE_T;	/* size_tç¸å½  */
-typedef int WS_FBS_SSIZE_T;			/* ssize_tç¸å½ */
-
-/* T_WS_FST_BLKç®¡çé åãµã¤ãº */
+typedef unsigned int WS_FBS_SIZE_T;	/* size_t相当  */
+typedef int WS_FBS_SSIZE_T;			/* ssize_t相当 */
+
+/* T_WS_FST_BLK管理領域サイズ */
 #define DEF_WS_EDT_HDR_LEN (sizeof(intptr_t))
 
-/* ç®¡çé åãµã¤ãº(64byte - sizeof(T_MSG)) */
+/* 管理領域サイズ(64byte - sizeof(T_MSG)) */
 /* #define DEF_WS_FBS_LIB_HDR_LEN ((WEBSOCKET_MEMPOOL_BLOCK_SIZE + sizeof(int) - 1)>> 2) // */
 #define DEF_WS_FBS_LIB_HDR_LEN (64 - DEF_WS_EDT_HDR_LEN)
 
-/* ç®¡çé åãå«ããã­ãã¯ã«ä¿æãããã¼ã¿ãµã¤ãº */
+/* 管理領域を含むブロックに保持するデータサイズ */
 #define DEF_WS_FBS_FST_DAT_LEN (64)
 
-/* ãªã³ã¯ãã¤ã³ã¿é
-åã®ãµã¤ãº(byte) */
+/* リンクポインタ配列のサイズ(byte) */
 #define DEF_WS_FBS_LNK_LEN (WEBSOCKET_MEMPOOL_BLOCK_SIZE - DEF_WS_EDT_HDR_LEN - DEF_WS_FBS_LIB_HDR_LEN - DEF_WS_FBS_FST_DAT_LEN)
 
-/* åºå®é·ãããã¡æå¤§ãµã¤ãº */
+/* 固定長バッファ最大サイズ */
 #define DEF_WS_FBS_BUF_MAXLEN ((DEF_WS_FBS_LNK_LEN / sizeof(void *)) * WEBSOCKET_MEMPOOL_BLOCK_SIZE + DEF_WS_FBS_FST_DAT_LEN)
 
-/* å­è¦ç´ ãããã¡ã®ãµã¤ãº */
+/* 子要素バッファのサイズ */
 #define DEF_WS_FBS_SUB_BUF_LEN WEBSOCKET_MEMPOOL_BLOCK_SIZE
 
-/* é»æã®ç¨®å¥(å
-å®¹ã¯ä»®) */
+/* 電文の種別(内容は仮) */
 typedef enum
 {
-	WS_FBS_TYPE_BLANK		=	0,		/* æªä½¿ç¨ã¹ããªã¼ã  */
-	WS_FBS_TYPE_INTERNAL	=	1,		/* å
-é¨ã¡ãã»ã¼ã¸ */
-	WS_FBS_TYPE_WEBSOCKET	=	2		/* WEBSOCKETé»æ */
+	WS_FBS_TYPE_BLANK		=	0,		/* 未使用ストリーム */
+	WS_FBS_TYPE_INTERNAL	=	1,		/* 内部メッセージ */
+	WS_FBS_TYPE_WEBSOCKET	=	2		/* WEBSOCKET電文 */
 } TA_WS_MSG_TYPE;
 
-/* ãªã³ã¯ãã¤ã³ã¿é
-åã«åæããããå­è¦ç´ ãããã¡ */
+/* リンクポインタ配列に列挙される、子要素バッファ */
 typedef struct
 {
@@ -116,6 +97,5 @@
 } T_WS_SUB_BLK;
 
-/* ãªã³ã¯ãã¤ã³ã¿é
-å */
+/* リンクポインタ配列 */
 typedef union
 {
@@ -124,39 +104,30 @@
 } T_WS_FBS_LNK;
 
-/* ç®¡çé å(64byte - sizeof(T_MSG)) */
+/* 管理領域(64byte - sizeof(T_MSG)) */
 typedef struct
 {
-	uint16_t	length;			/* ã¡ãã»ã¼ã¸é· */
-	uint16_t	type;			/* ã¡ãã»ã¼ã¸ã¿ã¤ã */
+	uint16_t	length;			/* メッセージ長 */
+	uint16_t	type;			/* メッセージタイプ */
 	union{
-		ID mbxid;				/* éä¿¡å
-ã¡ã¼ã«ããã¯ã¹IDï¼å
-é¨ã¡ãã»ã¼ã¸ï¼ */
+		ID mbxid;				/* 送信元メールボックスID（内部メッセージ） */
 	}sender;
 	union{
-		ID mbxid;				/* éä¿¡å
-ã¡ã¼ã«ããã¯ã¹IDï¼å
-é¨ã¡ãã»ã¼ã¸ï¼ */
+		ID mbxid;				/* 送信先メールボックスID（内部メッセージ） */
 	}target;
 	union{
-		ID mbxid;				/* è¿ä¿¡å
-ã¡ã¼ã«ããã¯ã¹IDï¼å
-é¨ã¡ãã»ã¼ã¸ï¼ */
+		ID mbxid;				/* 返信先メールボックスID（内部メッセージ） */
 	}reply;
 
-	int			rd;				/*	èª­ã¿åããããæ
-å ±	*/
-	int			wr;				/*	æ¸ãè¾¼ã¿ãããæ
-å ±	*/
+	int			rd;				/*	読み取りヘッド情報	*/
+	int			wr;				/*	書き込みヘッド情報	*/
 } T_WS_FBS_HDR;
 
-/* ç®¡çé åãå«ããã­ãã¯ã®æ§é  */
+/* 管理領域を含むブロックの構造 */
 typedef struct
 {
 	uint8_t	_msg[DEF_WS_EDT_HDR_LEN];	/* T_MSG */
-	T_WS_FBS_HDR	hdr;	/*	ç®¡çé å  64byte  - sizeof(T_MSG)	*/
+	T_WS_FBS_HDR	hdr;	/*	管理領域  64byte  - sizeof(T_MSG)	*/
 	uint8_t			_gap[DEF_WS_FBS_LIB_HDR_LEN - sizeof(T_WS_FBS_HDR)];
-	T_WS_FBS_LNK	lnk;	/*	ãªã³ã¯ãã¤ã³ã¿é
-å	128byte			*/
+	T_WS_FBS_LNK	lnk;	/*	リンクポインタ配列	128byte			*/
 	uint8_t			payload[DEF_WS_FBS_FST_DAT_LEN];
 } T_WS_FST_BLK;
@@ -168,131 +139,127 @@
 } WS_FBS_ID;
 
-/* ã¡ãã»ã¼ã¸ã­ã¥ã¼ */
+/* メッセージキュー */
 typedef struct ws_fbs_queue
 {
-	T_WS_FST_BLK	*pk_head;		/* å
-é ­ã®ã¡ãã»ã¼ã¸ */
-	T_WS_FST_BLK	*pk_last;		/* æ«å°¾ã®ã¡ãã»ã¼ã¸ */
+	T_WS_FST_BLK	*pk_head;		/* 先頭のメッセージ */
+	T_WS_FST_BLK	*pk_last;		/* 末尾のメッセージ */
 } T_WS_FBS_QUEUE;
 
 extern ID ws_mempoolid;
 
-/* ã¡ã¢ãªãã­ãã¯åå¾ ok:ãã¤ã³ã¿ NG:NULL */
+/* メモリブロック取得 ok:ポインタ NG:NULL */
 void *_ws_fbs_mbx_get(WS_FBS_SIZE_T fa_req_size);
 
-/* ã¡ã¢ãªãã­ãã¯è§£æ¾ ok:0 NG:é0 */
+/* メモリブロック解放 ok:0 NG:非0 */
 ER _ws_fbs_mbx_rel(void *p);
 
 /*
- * é åç¢ºä¿
- *	å¼æ°
- *		WS_FBS_SIZE_T	fa_req_size		è¦æ±ãããã¡ãµã¤ãº(byte)
+ * 領域確保
+ *	引数
+ *		WS_FBS_SIZE_T	fa_req_size		要求バッファサイズ(byte)
  *										max: DEF_WS_FBS_BUF_MAXLEN
- *		WS_FBS_ID		*fp_id			ç¢ºä¿ããFBS-IDã®æ ¼ç´å
-
- *	æ»ãå¤
- *		ER				0:ok é0:NG
+ *		WS_FBS_ID		*fp_id			確保したFBS-IDの格納先
+ *	戻り値
+ *		ER				0:ok 非0:NG
  */
 ER _ws_fbs_cre(WS_FBS_SIZE_T fa_req_size, WS_FBS_ID *fp_id);
 
 /*
- * é åè§£æ¾
- *	å¼æ°
- *		ws_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * 領域解放
+ *	引数
+ *		ws_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ws_fbs_del(WS_FBS_ID fa_id);
 
 /*
- * ä¿æãã¼ã¿ã®æç¡
- *	å¼æ°
- *		ws_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		bool_t			0:ç¡ã, 1:ãã
+ * 保持データの有無
+ *	引数
+ *		ws_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		bool_t			0:無し, 1:あり
  */
 bool_t _ws_fbs_exist_data(WS_FBS_ID fa_id);
 
 /*
- * ä¿æãã¼ã¿é·ã®åå¾
- *	å¼æ°
- *		ws_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		WS_FBS_SSIZE_T	ä¿æãã¦ãããã¼ã¿ã®é·ã(byte) -1:NG
+ * 保持データ長の取得
+ *	引数
+ *		ws_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		WS_FBS_SSIZE_T	保持しているデータの長さ(byte) -1:NG
  */
 WS_FBS_SSIZE_T _ws_fbs_get_datalen(WS_FBS_ID fa_id);
 
 /*
- * èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®åå¾
- *	å¼æ°
- *		ws_fbs_idå	ç¢ºä¿ããFBS-ID
- *	æ»ãå¤
- *		WS_FBS_SIZE_T	å
-é ­ããã®çµ¶å¯¾ä½ç½® -1:NG
+ * 読み取りカーソルの位置取得
+ *	引数
+ *		ws_fbs_id型	確保したFBS-ID
+ *	戻り値
+ *		WS_FBS_SIZE_T	先頭からの絶対位置 -1:NG
  */
 WS_FBS_SSIZE_T _ws_fbs_get_rpos(WS_FBS_ID fa_id);
 
 /*
- * èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®è¨­å®
- *	å¼æ°
- *		ws_fbs_idå	ç¢ºä¿ããFBS-ID
- *		WS_FBS_SIZE_T	fa_pos	è¨­å®ããä½ç½®(å
-é ­ããã®çµ¶å¯¾ä½ç½®)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * 読み取りカーソルの位置設定
+ *	引数
+ *		ws_fbs_id型	確保したFBS-ID
+ *		WS_FBS_SIZE_T	fa_pos	設定する位置(先頭からの絶対位置)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ws_fbs_set_rpos(WS_FBS_ID fa_id, WS_FBS_SSIZE_T fa_pos);
 
 /*
- * èª­ã¿åãã«ã¼ã½ã«ã®ä½ç½®ç§»å
- *	å¼æ°
- *		ws_fbs_idå	ç¢ºä¿ããFBS-ID
- *		WS_FBS_SIZE_T	fa_seek	ç§»åé(ç¾ç¶ãåé²ã®ã¿)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * 読み取りカーソルの位置移動
+ *	引数
+ *		ws_fbs_id型	確保したFBS-ID
+ *		WS_FBS_SIZE_T	fa_seek	移動量(現状、前進のみ)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ws_fbs_seek_rpos(WS_FBS_ID fa_id, WS_FBS_SSIZE_T fa_seek);
 
 /*
- * ä»»ææå®ä½ç½®ã®1byteèª­ã¿åã
+ * 任意指定位置の1byte読み取り
  */
 int _ws_fbs_peek(WS_FBS_ID fa_id, WS_FBS_SSIZE_T fa_seek);
 
 /*
- * ä»»ææå®ä½ç½®ã®1byteæ¸ãè¾¼ã¿
+ * 任意指定位置の1byte書き込み
  */
 ER _ws_fbs_poke(WS_FBS_ID fa_id, WS_FBS_SSIZE_T fa_seek, int fa_val);
 
 /*
- * ãã¼ã¿è¿½å 
- *	å¼æ°
- *		ws_fbs_idå	ç¢ºä¿ããFBS-ID
- *		const void *	fa_dat	è¿½å ãããã¼ã¿
- *		WS_FBS_SSIZE_T	fa_len	è¿½å ããé·ã(byte)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * データ追加
+ *	引数
+ *		ws_fbs_id型	確保したFBS-ID
+ *		const void *	fa_dat	追加するデータ
+ *		WS_FBS_SSIZE_T	fa_len	追加する長さ(byte)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ws_fbs_add_data(WS_FBS_ID fa_id, const void *fa_dat, WS_FBS_SSIZE_T fa_len);
 
 /*
- * ãã¼ã¿è¿½å (é åãèªåçã«æ¡å¼µãã)
- *	å¼æ°
- *		ws_fbs_idå	ç¢ºä¿ããFBS-ID
- *		const void *	fa_dat	è¿½å ãããã¼ã¿
- *		WS_FBS_SSIZE_T	fa_len	è¿½å ããé·ã(byte)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * データ追加(領域を自動的に拡張する)
+ *	引数
+ *		ws_fbs_id型	確保したFBS-ID
+ *		const void *	fa_dat	追加するデータ
+ *		WS_FBS_SSIZE_T	fa_len	追加する長さ(byte)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ws_fbs_add_data_ex(WS_FBS_ID fa_id, const void *fa_dat, WS_FBS_SSIZE_T fa_len);
 
 /*
- * ãã¼ã¿åå¾
- *	å¼æ°
- *		ws_fbs_idå	ç¢ºä¿ããFBS-ID
- *		void *			fa_buf		åå¾ãããããã¡
- *		WS_FBS_SSIZE_T	fa_maxlen	åå¾ããé·ã(byte)
- *		WS_FBS_SSIZE_T	*p_len		åå¾ããé·ã(byte)
- *	æ»ãå¤
- *		ER				0:ok, é0:NG
+ * データ取得
+ *	引数
+ *		ws_fbs_id型	確保したFBS-ID
+ *		void *			fa_buf		取得するバッファ
+ *		WS_FBS_SSIZE_T	fa_maxlen	取得する長さ(byte)
+ *		WS_FBS_SSIZE_T	*p_len		取得した長さ(byte)
+ *	戻り値
+ *		ER				0:ok, 非0:NG
  */
 ER _ws_fbs_get_data(WS_FBS_ID fa_id, void *fa_buf, WS_FBS_SSIZE_T fa_maxlen,
Index: EcnlProtoTool/trunk/prototool/llbruby.h
===================================================================
--- EcnlProtoTool/trunk/prototool/llbruby.h	(revision 299)
+++ EcnlProtoTool/trunk/prototool/llbruby.h	(revision 321)
@@ -15,11 +15,11 @@
 #define _LLBRUBY_H_  1
 
-#define RUBY_CODE_SIZE (1024 * 4)		//4kBã¾ã§å®è¡å¯è½ã¨ãã
+#define RUBY_CODE_SIZE (1024 * 4)		//4kBまで実行可能とする
 
-//ãã¤ãã³ã¼ããã¼ã¸ã§ã³ãå®ç¾©ãã¾ã
+//バイトコードバージョンを定義します
 #define BYTE_CODE2	2
 #define BYTE_CODE3	3
 
-//ãã¡ã¼ã ã¦ã§ã¢ã®ãã¼ã¸ã§ã³ãå®ç¾©ãã¾ã
+//ファームウェアのバージョンを定義します
 #define MASTER		1000
 #define JAM			1001
@@ -28,5 +28,5 @@
 
 
-//åºæ¿ã®è¨­è¨ãã¼ã¸ã§ã³ãå®ç¾©ãã¾ã
+//基板の設計バージョンを定義します
 #define BOARD_GR	0
 #define BOARD_P01	1
@@ -36,11 +36,11 @@
 
 
-//ãã¤ãã³ã¼ããã©ã¼ãããã®è¨­å®
+//バイトコードフォーマットの設定
 #define BYTECODE	BYTE_CODE3
 
-//åºæ¿ã®ã¿ã¤ãè¨­å®
+//基板のタイプ設定
 #define BOARD	BOARD_GR
 
-//ãã¡ã¼ã ã¦ã§ã¢è¨­å®
+//ファームウェア設定
 #define FIRMWARE	MASTER
 //#define FIRMWARE	JAM
Index: EcnlProtoTool/trunk/prototool/src/echo_client.rb
===================================================================
--- EcnlProtoTool/trunk/prototool/src/echo_client.rb	(revision 299)
+++ EcnlProtoTool/trunk/prototool/src/echo_client.rb	(revision 321)
@@ -6,7 +6,7 @@
 while msg = STDIN.gets
 	print("you writed:", msg)
-	#socketã«æ¸ãè¾¼ã
+	#socketに書き込む
 	sock.write(msg)
-	#ãµã¼ãããè¿ã£ã¦ããã¡ãã»ã¼ã¸ãè¡¨ç¤ºããã
+	#サーバから返ってきたメッセージを表示する。
 	print("return message:", sock.gets)
 end
Index: EcnlProtoTool/trunk/prototool/src/main.c
===================================================================
--- EcnlProtoTool/trunk/prototool/src/main.c	(revision 299)
+++ EcnlProtoTool/trunk/prototool/src/main.c	(revision 321)
@@ -4,47 +4,32 @@
  *  Copyright (C) 2014-2017 Cores Co., Ltd. Japan
  *
- *  ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
- *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
- *  å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
- *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
- *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
- *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
- *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
- *      è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
- *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
- *      ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
- *      ã¨ï¼
- *    (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
- *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
- *    (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
- *        å ±åãããã¨ï¼
- *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
- *      å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
- *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
- *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
- *      å
-è²¬ãããã¨ï¼
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  *
- *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
- *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
- *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
- *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
- *  ã®è²¬ä»»ãè² ããªãï¼
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  *
  *  @(#) $Id$
@@ -52,5 +37,5 @@
 
  /*
-  *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
+  *  サンプルプログラム(1)の本体
   */
 
@@ -166,5 +151,5 @@
 	echonet = 0;
 
-	/* mrubyã®åæå */
+	/* mrubyの初期化 */
 	mrb = mrb_open();
 	if (mrb == NULL)
@@ -290,5 +275,5 @@
 
 /*
- * ã¢ããªã±ã¼ã·ã§ã³ã¿ã¹ã¯ã®ç»é²
+ * アプリケーションタスクの登録
  */
 static mrb_value mrb_target_board_wait_msg(mrb_state *mrb, mrb_value self)
@@ -320,6 +305,5 @@
 	FD_SET(sock, &errorfds);
 
-	/* ã¡ãã»ã¼ã¸å¾
-ã¡ */
+	/* メッセージ待ち */
 	memset(msg, 0, sizeof(*msg));
 	ret = select(sock + 1, &readfds, &writefds, &errorfds, ptimer);
@@ -345,11 +329,10 @@
 	main_time = now;
 
-	/* ã¿ã¤ã ã¢ã¦ãã®å ´å */
+	/* タイムアウトの場合 */
 	if (ret == 0) {
 		return mrb_ary_new_from_values(mrb, 1, arv);
 	}
 
-	/* å
-é¨ã¤ãã³ãã®å ´å */
+	/* 内部イベントの場合 */
 	if (msg->dst.sin_addr.s_addr == 0) {
 		/* Ethernet Link up */
@@ -364,10 +347,10 @@
 		return mrb_ary_new_from_values(mrb, 2, arv);
 	}
-	/* Echoneté»æåä¿¡ã®å ´å */
+	/* Echonet電文受信の場合 */
 	else {
-		/* éä¿¡ç«¯ç¹ */
+		/* 通信端点 */
 		arv[1] = mrb_str_new(mrb, (char *)&msg->dst, sizeof(msg->dst));
 
-		/* åä¿¡ãã¼ã¿ */
+		/* 受信データ */
 		arv[2] = mrb_str_new(mrb, (char *)msg->buffer, msg->len);
 
@@ -377,9 +360,9 @@
 
 /*
- * ã¢ããªã±ã¼ã·ã§ã³ã¿ã¹ã¯ã®ç»é²
+ * アプリケーションタスクの登録
  */
 static mrb_value mrb_target_board_restart(mrb_state *mrb, mrb_value self)
 {
-	/* DHCPéå§ */
+	/* DHCP開始 */
 
 	return self;
@@ -387,5 +370,5 @@
 
 /*
- * éä¿¡ã¬ã¤ã¤ã¼ã¸ã®éä¿¡
+ * 通信レイヤーへの送信
  */
 static mrb_value mrb_target_board_snd_msg(mrb_state *mrb, mrb_value self)
@@ -415,5 +398,5 @@
 
 /*
- * ã­ã¼ã«ã«ã¢ãã¬ã¹ãç¢ºèª
+ * ローカルアドレスか確認
  */
 static mrb_value mrb_target_board_is_local_addr(mrb_state *mrb, mrb_value self)
@@ -435,5 +418,5 @@
 
 /*
- * ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç¢ºèª
+ * マルチキャストアドレスか確認
  */
 static mrb_value mrb_target_board_is_multicast_addr(mrb_state *mrb, mrb_value self)
@@ -455,5 +438,5 @@
 
 /*
- * åä¸ã¢ãã¬ã¹ãç¢ºèª
+ * 同一アドレスか確認
  */
 static mrb_value mrb_target_board_equals_addr(mrb_state *mrb, mrb_value self)
@@ -476,5 +459,5 @@
 
 /*
- * ã­ã¼ã«ã«ã¢ãã¬ã¹ã®åå¾
+ * ローカルアドレスの取得
  */
 static mrb_value mrb_target_board_get_local_addr(mrb_state *mrb, mrb_value self)
@@ -494,5 +477,5 @@
 
 /*
- * ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®åå¾
+ * マルチキャストアドレスの取得
  */
 static mrb_value mrb_target_board_get_multicast_addr(mrb_state *mrb, mrb_value self)
Index: EcnlProtoTool/trunk/prototool/src/onitest.c
===================================================================
--- EcnlProtoTool/trunk/prototool/src/onitest.c	(revision 299)
+++ EcnlProtoTool/trunk/prototool/src/onitest.c	(revision 321)
@@ -582,278 +582,278 @@
 	x2("(?:()|()|()|(x)|()|())*\\2b\\5", "b", 0, 1);
 	x2("\217\372\000\000", "\217\372\000\000", 0, 3);
-	x2("", "ã", 0, 0);
-	x2("ã", "ã", 0, 3);
-	n("ã", "ã");
-	x2("ãã", "ãã", 0, 6);
-	x2("ããã", "ããã", 0, 9);
-	x2("ããããããããããããããããããããããããããããããããããã", "ããããããããããããããããããããããããããããããããããã", 0, 105);
-	x2("ã", "ãã", 3, 6);
-	x2("ãã", "ããã", 3, 9);
+	x2("", "あ", 0, 0);
+	x2("あ", "あ", 0, 3);
+	n("い", "あ");
+	x2("うう", "うう", 0, 6);
+	x2("あいう", "あいう", 0, 9);
+	x2("こここここここここここここここここここここここここここここここここここ", "こここここここここここここここここここここここここここここここここここ", 0, 105);
+	x2("あ", "いあ", 3, 6);
+	x2("いう", "あいう", 3, 9);
 	x2("e\207\000\000", "e\207\000\000", 0, 3);
-	x2(".", "ã", 0, 3);
-	x2("..", "ãã", 0, 6);
-	x2("(?u)\\w", "ã", 0, 3);
-	n("(?u)\\W", "ã");
-	x2("(?u)[\\W]", "ã$", 3, 4);
-	x2("\\S", "ã", 0, 3);
-	x2("\\S", "æ¼¢", 0, 3);
-	x2("\\b", "æ° ", 0, 0);
-	x2("\\b", " ã»", 1, 1);
-	x2("\\B", "ãã ", 3, 3);
-	x2("\\B", "ã ", 4, 4);
-	x2("\\B", " ã", 0, 0);
-	x2("[ãã¡]", "ã¡", 0, 3);
-	n("[ãªã«]", "ã¬");
-	x2("[ã-ã]", "ã", 0, 3);
-	n("[^ã]", "ã");
-	x2("(?u)[\\w]", "ã­", 0, 3);
-	n("[\\d]", "ãµ");
-	x2("[\\D]", "ã¯", 0, 3);
-	n("[\\s]", "ã");
-	x2("[\\S]", "ã¸", 0, 3);
-	x2("(?u)[\\w\\d]", "ã", 0, 3);
-	x2("(?u)[\\w\\d]", "   ã", 3, 6);
-	n("(?u)\\wé¬¼è»", " é¬¼è»");
-	x2("(?u)é¬¼\\Wè»", "é¬¼ è»", 0, 7);
-	x2("ã.ã.ã", "ããããã", 0, 15);
-	x2("(?u).\\wã\\W..ã", "ããã ããã", 0, 19);
-	x2("(?u)\\s\\wããã", " ãããã", 0, 13);
-	x2("ãã.ã", "ãããã", 0, 12);
-	n(".ã", "ãã");
-	x2(".ã", "ãã", 0, 6);
-	x2("^ã", "ã", 0, 3);
-	x2("^ã$", "ã", 0, 3);
-	x2("(?u)^\\w$", "ã«", 0, 3);
-	x2("(?u)^\\wããããã$", "zããããã", 0, 16);
-	x2("(?u)^\\w...ããã$", "zãããããã", 0, 19);
-	x2("(?u)\\w\\w\\s\\Wããã\\d", "aã  ããã4", 0, 16);
-	x2("\\Aãã¡ã¤", "ãã¡ã¤", 0, 9);
-	x2("ããã\\Z", "ããã", 0, 9);
-	x2("ããã\\z", "ããã", 0, 9);
-	x2("ããã\\Z", "ããã\n", 0, 9);
-	x2("\\Gã½ã´", "ã½ã´", 0, 6);
-	n("\\Gã", "ããã");
-	n("ã¨ã¦\\G", "ã¨ã¦");
-	n("ã¾ã¿\\A", "ã¾ã¿");
-	n("ã¾\\Aã¿", "ã¾ã¿");
-	x2("(?=ã)ã", "ã", 0, 3);
-	n("(?=ã).", "ã");
-	x2("(?!ã)ã", "ã", 0, 3);
-	n("(?!ã¨)ã", "ã¨");
-	x2("(?i:ã)", "ã", 0, 3);
-	x2("(?i:ã¶ã¹)", "ã¶ã¹", 0, 6);
-	n("(?i:ã)", "ã");
-	x2("(?m:ã.)", "ã\n", 0, 4);
-	x2("(?m:.ã)", "ã¾\nã", 3, 7);
-	x2("ã?", "", 0, 0);
-	x2("å¤?", "å", 0, 0);
-	x2("å¤?", "å¤", 0, 3);
-	x2("é*", "", 0, 0);
-	x2("é*", "é", 0, 3);
-	x2("å­*", "å­å­å­", 0, 9);
-	x2("é¦¬*", "é¹¿é¦¬é¦¬é¦¬é¦¬", 0, 0);
-	n("å±±+", "");
-	x2("æ²³+", "æ²³", 0, 3);
-	x2("æ+", "ææææ", 0, 12);
-	x2("ã+", "ããããã", 0, 6);
-	x2("ã+", "ããããã", 3, 15);
-	x2(".?", "ã", 0, 3);
-	x2(".*", "ã±ã´ã·ãº", 0, 12);
-	x2(".+", "ã", 0, 3);
-	x2(".+", "ãããã\n", 0, 12);
-	x2("ã|ã", "ã", 0, 3);
-	x2("ã|ã", "ã", 0, 3);
-	x2("ãã|ãã", "ãã", 0, 6);
-	x2("ãã|ãã", "ãã", 0, 6);
-	x2("ã(?:ãã|ãã)", "ããã", 0, 9);
-	x2("ã(?:ãã|ãã)ã", "ãããã", 0, 12);
-	x2("ãã|(?:ãã|ãã)", "ãã", 0, 6);
-	x2("ã|ã|ã", "ãã", 3, 6);
-	x2("ã|ã|ãã|ããã|ã|ããã|ããã|ã|ãã¡|ã¤ã¦ã¨ãªã«|ã¬ã­", "ããã", 0, 9);
-	n("ã|ã|ãã|ããã|ã|ããã|ããã|ã|ãã¡|ã¤ã¦ã¨ãªã«|ã¬ã­", "ãã");
-	x2("ã|^ã", "ã¶ã", 3, 6);
-	x2("ã|^ã", "ãã", 0, 3);
-	x2("é¬¼|\\Gè»", "ãè»é¬¼", 6, 9);
-	x2("é¬¼|\\Gè»", "è»é¬¼", 0, 3);
-	x2("é¬¼|\\Aè»", "bè»é¬¼", 4, 7);
-	x2("é¬¼|\\Aè»", "è»", 0, 3);
-	x2("é¬¼|è»\\Z", "è»é¬¼", 3, 6);
-	x2("é¬¼|è»\\Z", "è»", 0, 3);
-	x2("é¬¼|è»\\Z", "è»\n", 0, 3);
-	x2("é¬¼|è»\\z", "è»é¬¼", 3, 6);
-	x2("é¬¼|è»\\z", "è»", 0, 3);
-	x2("(?u)\\w|\\s", "ã", 0, 3);
-	x2("(?u)\\w|%", "%ã", 0, 1);
-	x2("(?u)\\w|[&$]", "ã&", 0, 3);
-	x2("[ã-ã]", "ã", 0, 3);
-	x2("[ã-ã]|[^ã-ã]", "ã", 0, 3);
-	x2("[ã-ã]|[^ã-ã]", "ã", 0, 3);
-	x2("[^ã]", "\n", 0, 1);
-	x2("(?:ã|[ã-ã])|ãã", "ãã", 0, 3);
-	x2("(?:ã|[ã-ã])|ãã", "ãã", 0, 6);
-	x2("ããã|(?=ãã)..ã»", "ããã»", 0, 9);
-	x2("ããã|(?!ãã)..ã»", "ããã»", 0, 9);
-	x2("(?=ãã)..ã|(?=ãã)..ã", "ããã", 0, 9);
-	x2("(?<=ã|ãã)ã", "ããã", 6, 9);
-	n("(?>ã|ããã)ã", "ãããã");
-	x2("(?>ããã|ã)ã", "ãããã", 0, 12);
-	x2("ã?|ã", "ã", 0, 3);
-	x2("ã?|ã", "ã", 0, 0);
-	x2("ã?|ã", "", 0, 0);
-	x2("ã*|ã", "ãã", 0, 6);
-	x2("ã*|ã*", "ãã", 0, 0);
-	x2("ã*|ã*", "ãã", 0, 3);
-	x2("[aã]*|ã*", "aãããã", 0, 4);
-	x2("ã+|ã*", "", 0, 0);
-	x2("ã+|ã*", "ããã", 0, 9);
-	x2("ã+|ã*", "ãããã", 0, 3);
-	x2("ã+|ã*", "aãããã", 0, 0);
-	n("ã+|ã+", "");
-	x2("(ã|ã)?", "ã", 0, 3);
-	x2("(ã|ã)*", "ãã", 0, 6);
-	x2("(ã|ã)+", "ããã", 0, 9);
-	x2("(ãã|ãã)+", "ãããããã", 0, 12);
-	x2("(ãã|ãã)+", "ãããããã", 6, 18);
-	x2("(ãã|ãã)+", "ããããã", 3, 15);
-	x2("(ãã|ãã)+", "ããããã", 0, 6);
-	x2("(ãã|ãã)+", "$$zzzzããããã", 6, 12);
-	x2("(ã|ããã)+", "ããããã", 0, 15);
-	x2("(ã|ããã)+", "ãã", 3, 6);
-	x2("(ã|ããã)+", "ãããããã", 3, 12);
-	x2("(?:ã|ã)(?:ã|ã)", "ãã", 0, 6);
-	x2("(?:ã*|ã*)(?:ã*|ã*)", "ãããããã", 0, 9);
-	x2("(?:ã*|ã*)(?:ã+|ã+)", "ãããããã", 0, 18);
-	x2("(?:ã+|ã+){2}", "ãããããã", 0, 18);
-	x2("(?:ã+|ã+){1,2}", "ãããããã", 0, 18);
-	x2("(?:ã+|\\Aã*)ãã", "ãã", 0, 6);
-	n("(?:ã+|\\Aã*)ãã", "ãããã");
-	x2("(?:^ã+|ã+)*ã", "ãããããããã", 18, 24);
-	x2("(?:^ã+|ã+)*ã", "ããããããã", 0, 21);
-	x2("ã{0,}", "ãããã", 0, 12);
-	x2("ã|(?i)c", "C", 0, 1);
-	x2("(?i)c|ã", "C", 0, 1);
-	x2("(?i:ã)|a", "a", 0, 1);
-	n("(?i:ã)|a", "A");
-	x2("[ããã]?", "ããã", 0, 3);
-	x2("[ããã]*", "ããã", 0, 9);
-	x2("[^ããã]*", "ããã", 0, 0);
-	n("[^ããã]+", "ããã");
-	x2("ã?\?", "ããã", 0, 0);
-	x2("ãã?\?ã", "ããã", 0, 9);
-	x2("ã*?", "ããã", 0, 0);
-	x2("ãã*?", "ããã", 0, 3);
-	x2("ãã*?ã", "ãããã", 0, 12);
-	x2("ã+?", "ããã", 0, 3);
-	x2("ãã+?", "ããã", 0, 6);
-	x2("ãã+?ã", "ãããã", 0, 12);
-	x2("(?:å¤©?)?\?", "å¤©", 0, 0);
-	x2("(?:å¤©?\?)?", "å¤©", 0, 0);
-	x2("(?:å¤¢?)+?", "å¤¢å¤¢å¤¢", 0, 3);
-	x2("(?:é¢¨+)?\?", "é¢¨é¢¨é¢¨", 0, 0);
-	x2("(?:éª+)?\?é", "éªéªéªé", 0, 12);
-	x2("(?:ãã)?{2}", "", 0, 0);
-	x2("(?:é¬¼è»)?{2}", "é¬¼è»é¬¼è»é¬¼", 0, 12);
-	x2("(?:é¬¼è»)*{0}", "é¬¼è»é¬¼è»é¬¼", 0, 0);
-	x2("(?:é¬¼è»){3,}", "é¬¼è»é¬¼è»é¬¼è»é¬¼è»", 0, 24);
-	n("(?:é¬¼è»){3,}", "é¬¼è»é¬¼è»");
-	x2("(?:é¬¼è»){2,4}", "é¬¼è»é¬¼è»é¬¼è»", 0, 18);
-	x2("(?:é¬¼è»){2,4}", "é¬¼è»é¬¼è»é¬¼è»é¬¼è»é¬¼è»", 0, 24);
-	x2("(?:é¬¼è»){2,4}?", "é¬¼è»é¬¼è»é¬¼è»é¬¼è»é¬¼è»", 0, 12);
-	x2("(?:é¬¼è»){,}", "é¬¼è»{,}", 0, 9);
-	x2("(?:ããã)+?{2}", "ããããããããã", 0, 18);
-	x3("(ç«)", "ç«", 0, 3, 1);
-	x3("(ç«æ°´)", "ç«æ°´", 0, 6, 1);
-	x2("((æé))", "æé", 0, 6);
-	x3("((é¢¨æ°´))", "é¢¨æ°´", 0, 6, 1);
-	x3("((æ¨æ¥))", "æ¨æ¥", 0, 6, 2);
-	x3("((((((((((((((((((((éå­))))))))))))))))))))", "éå­", 0, 6, 20);
-	x3("(ãã)(ãã)", "ãããã", 0, 6, 1);
-	x3("(ãã)(ãã)", "ãããã", 6, 12, 2);
-	x3("()(ã)ãã(ããã)ãããã", "ãããããããããã", 9, 18, 3);
-	x3("(()(ã)ãã(ããã)ãããã)", "ãããããããããã", 9, 18, 4);
-	x3(".*(ãã©)ã³ã»ã(ã³()ã·ã¥ã¿)ã¤ã³", "ãã©ã³ã»ãã³ã·ã¥ã¿ã¤ã³", 15, 27, 2);
-	x2("(^ã)", "ã", 0, 3);
-	x3("(ã)|(ã)", "ãã", 3, 6, 1);
-	x3("(^ã)|(ã)", "ãã", 3, 6, 2);
-	x3("(ã?)", "ããã", 0, 3, 1);
-	x3("(ã¾*)", "ã¾ã¾ã¾", 0, 9, 1);
-	x3("(ã¨*)", "", 0, 0, 1);
-	x3("(ã+)", "ããããããã", 0, 21, 1);
-	x3("(ãµ+|ã¸*)", "ãµãµãµã¸ã¸", 0, 9, 1);
-	x3("(ã+|ã?)", "ããããã", 0, 3, 1);
-	x3("(ããã)?", "ããã", 0, 9, 1);
-	x3("(ããã)*", "ããã", 0, 9, 1);
-	x3("(ããã)+", "ããã", 0, 9, 1);
-	x3("(ããã|ããã)+", "ããã", 0, 9, 1);
-	x3("([ãªã«ã¬][ããã]|ããã)+", "ããã", 0, 9, 1);
-	x3("((?i:ããã))", "ããã", 0, 9, 1);
-	x3("((?m:ã.ã))", "ã\nã", 0, 7, 1);
-	x3("((?=ãã)ã)", "ããã", 0, 3, 1);
-	x3("ããã|(.ããã)", "ãããã", 0, 12, 1);
-	x3("ã*(.)", "ããããã", 12, 15, 1);
-	x3("ã*?(.)", "ããããã", 0, 3, 1);
-	x3("ã*?(ã)", "ããããã", 12, 15, 1);
-	x3("[ããã]ã*(.)", "ãããããã", 15, 18, 1);
-	x3("(\\Aãã)ãã", "ãããã", 0, 6, 1);
-	n("(\\Aãã)ãã", "ããããã");
-	x3("(^ãã)ãã", "ãããã", 0, 6, 1);
-	n("(^ãã)ãã", "ããããã");
-	x3("ãã(ãã$)", "ãããã", 6, 12, 1);
-	n("ãã(ãã$)", "ããããã");
-	x2("(ç¡)\\1", "ç¡ç¡", 0, 6);
-	n("(ç¡)\\1", "ç¡æ­¦");
-	x2("(ç©º?)\\1", "ç©ºç©º", 0, 6);
-	x2("(ç©º?\?)\\1", "ç©ºç©º", 0, 0);
-	x2("(ç©º*)\\1", "ç©ºç©ºç©ºç©ºç©º", 0, 12);
-	x3("(ç©º*)\\1", "ç©ºç©ºç©ºç©ºç©º", 0, 6, 1);
-	x2("ã(ã*)\\1", "ããããã", 0, 15);
-	x2("ã(ã*)\\1", "ãã", 0, 3);
-	x2("(ã*)(ã*)\\1\\2", "ãããããããããã", 0, 30);
-	x2("(ã*)(ã*)\\2", "ããããããã", 0, 21);
-	x3("(ã*)(ã*)\\2", "ããããããã", 9, 15, 2);
-	x2("(((((((ã½*)ãº))))))ã´\\7", "ã½ã½ã½ãºã´ã½ã½ã½", 0, 24);
-	x3("(((((((ã½*)ãº))))))ã´\\7", "ã½ã½ã½ãºã´ã½ã½ã½", 0, 9, 7);
-	x2("(ã¯)(ã²)(ãµ)\\2\\1\\3", "ã¯ã²ãµã²ã¯ãµ", 0, 18);
-	x2("([ã-ã])\\1", "ãã", 0, 6);
-	x2("(?u)(\\w\\d\\s)\\1", "ã5 ã5 ", 0, 10);
-	n("(?u)(\\w\\d\\s)\\1", "ã5 ã5");
-	x2("(èª°ï¼|[ã-ã]{3})\\1", "èª°ï¼èª°ï¼", 0, 12);
-	x2("...(èª°ï¼|[ã-ã]{3})\\1", "ãaãèª°ï¼èª°ï¼", 0, 19);
-	x2("(èª°ï¼|[ã-ã]{3})\\1", "ãããããã", 0, 18);
-	x2("(^ã)\\1", "ãã", 0, 6);
-	n("(^ã)\\1", "ããã");
-	n("(ã$)\\1", "ãã");
-	n("(ãã\\Z)\\1", "ãã");
-	x2("(ã*\\Z)\\1", "ã", 3, 3);
-	x2(".(ã*\\Z)\\1", "ãã", 3, 6);
-	x3("(.(ããã)\\2)", "zãããããã", 0, 19, 1);
-	x3("(.(..\\d.)\\2)", "ã12341234", 0, 11, 1);
-	x2("((?i:ãvã))\\1", "ãvããvã", 0, 14);
-	x2("(?<æã>å¤|\\(\\g<æã>\\))", "((((((å¤))))))", 0, 15);
-	x2("\\A(?:\\g<é¿_1>|\\g<äº_2>|\\zçµäº  (?<é¿_1>è¦³|èª\\g<äº_2>èª)(?<äº_2>å¨|è©è©\\g<é¿_1>è©è©))$", "è©è©èªè©è©èªå¨èªè©è©èªè©è©", 0, 39);
-	x2("[[ã²ãµ]]", "ãµ", 0, 3);
-	x2("[[ããã]ã]", "ã", 0, 3);
-	n("[[^ã]]", "ã");
-	n("[^[ã]]", "ã");
-	x2("[^[^ã]]", "ã", 0, 3);
-	x2("[[ããã]&&ãã]", "ã", 0, 3);
-	n("[[ããã]&&ãã]", "ã");
-	n("[[ããã]&&ãã]", "ã");
-	x2("[ã-ã&&ã-ã&&ã-ã]", "ã", 0, 3);
-	n("[^ã-ã&&ã-ã&&ã-ã]", "ã");
-	x2("[[^ã&&ã]&&ã-ã]", "ã", 0, 3);
-	n("[[^ã&&ã]&&ã-ã]", "ã");
-	x2("[[^ã-ã&&ãããã]&&[^ã-ã]]", "ã", 0, 3);
-	n("[[^ã-ã&&ãããã]&&[^ã-ã]]", "ã");
-	x2("[^[^ããã]&&[^ããã]]", "ã", 0, 3);
-	x2("[^[^ããã]&&[^ããã]]", "ã", 0, 3);
-	n("[^[^ããã]&&[^ããã]]", "ã");
-	x2("[ã-&&-ã]", "-", 0, 1);
-	x2("[^[^a-zããã]&&[^bcdefgããã]q-w]", "ã", 0, 3);
-	x2("[^[^a-zããã]&&[^bcdefgããã]g-w]", "f", 0, 1);
-	x2("[^[^a-zããã]&&[^bcdefgããã]g-w]", "g", 0, 1);
-	n("[^[^a-zããã]&&[^bcdefgããã]g-w]", "2");
-	x2("a<b>ãã¼ã¸ã§ã³ã®ãã¦ã³ã­ã¼ã<\\/b>", "a<b>ãã¼ã¸ã§ã³ã®ãã¦ã³ã­ã¼ã</b>", 0, 44);
-	x2(".<b>ãã¼ã¸ã§ã³ã®ãã¦ã³ã­ã¼ã<\\/b>", "a<b>ãã¼ã¸ã§ã³ã®ãã¦ã³ã­ã¼ã</b>", 0, 44);
+	x2(".", "あ", 0, 3);
+	x2("..", "かき", 0, 6);
+	x2("(?u)\\w", "お", 0, 3);
+	n("(?u)\\W", "あ");
+	x2("(?u)[\\W]", "う$", 3, 4);
+	x2("\\S", "そ", 0, 3);
+	x2("\\S", "漢", 0, 3);
+	x2("\\b", "気 ", 0, 0);
+	x2("\\b", " ほ", 1, 1);
+	x2("\\B", "せそ ", 3, 3);
+	x2("\\B", "う ", 4, 4);
+	x2("\\B", " い", 0, 0);
+	x2("[たち]", "ち", 0, 3);
+	n("[なに]", "ぬ");
+	x2("[う-お]", "え", 0, 3);
+	n("[^け]", "け");
+	x2("(?u)[\\w]", "ね", 0, 3);
+	n("[\\d]", "ふ");
+	x2("[\\D]", "は", 0, 3);
+	n("[\\s]", "く");
+	x2("[\\S]", "へ", 0, 3);
+	x2("(?u)[\\w\\d]", "よ", 0, 3);
+	x2("(?u)[\\w\\d]", "   よ", 3, 6);
+	n("(?u)\\w鬼車", " 鬼車");
+	x2("(?u)鬼\\W車", "鬼 車", 0, 7);
+	x2("あ.い.う", "ああいいう", 0, 15);
+	x2("(?u).\\wう\\W..ぞ", "えうう うぞぞ", 0, 19);
+	x2("(?u)\\s\\wこここ", " ここここ", 0, 13);
+	x2("ああ.け", "ああけけ", 0, 12);
+	n(".い", "いえ");
+	x2(".お", "おお", 0, 6);
+	x2("^あ", "あ", 0, 3);
+	x2("^む$", "む", 0, 3);
+	x2("(?u)^\\w$", "に", 0, 3);
+	x2("(?u)^\\wかきくけこ$", "zかきくけこ", 0, 16);
+	x2("(?u)^\\w...うえお$", "zあいううえお", 0, 19);
+	x2("(?u)\\w\\w\\s\\Wおおお\\d", "aお  おおお4", 0, 16);
+	x2("\\Aたちつ", "たちつ", 0, 9);
+	x2("むめも\\Z", "むめも", 0, 9);
+	x2("かきく\\z", "かきく", 0, 9);
+	x2("かきく\\Z", "かきく\n", 0, 9);
+	x2("\\Gぽぴ", "ぽぴ", 0, 6);
+	n("\\Gえ", "うえお");
+	n("とて\\G", "とて");
+	n("まみ\\A", "まみ");
+	n("ま\\Aみ", "まみ");
+	x2("(?=せ)せ", "せ", 0, 3);
+	n("(?=う).", "い");
+	x2("(?!う)か", "か", 0, 3);
+	n("(?!と)あ", "と");
+	x2("(?i:あ)", "あ", 0, 3);
+	x2("(?i:ぶべ)", "ぶべ", 0, 6);
+	n("(?i:い)", "う");
+	x2("(?m:よ.)", "よ\n", 0, 4);
+	x2("(?m:.め)", "ま\nめ", 3, 7);
+	x2("あ?", "", 0, 0);
+	x2("変?", "化", 0, 0);
+	x2("変?", "変", 0, 3);
+	x2("量*", "", 0, 0);
+	x2("量*", "量", 0, 3);
+	x2("子*", "子子子", 0, 9);
+	x2("馬*", "鹿馬馬馬馬", 0, 0);
+	n("山+", "");
+	x2("河+", "河", 0, 3);
+	x2("時+", "時時時時", 0, 12);
+	x2("え+", "ええううう", 0, 6);
+	x2("う+", "おうううう", 3, 15);
+	x2(".?", "た", 0, 3);
+	x2(".*", "ぱぴぷぺ", 0, 12);
+	x2(".+", "ろ", 0, 3);
+	x2(".+", "いうえか\n", 0, 12);
+	x2("あ|い", "あ", 0, 3);
+	x2("あ|い", "い", 0, 3);
+	x2("あい|いう", "あい", 0, 6);
+	x2("あい|いう", "いう", 0, 6);
+	x2("を(?:かき|きく)", "をかき", 0, 9);
+	x2("を(?:かき|きく)け", "をきくけ", 0, 12);
+	x2("あい|(?:あう|あを)", "あを", 0, 6);
+	x2("あ|い|う", "えう", 3, 6);
+	x2("あ|い|うえ|おかき|く|けこさ|しすせ|そ|たち|つてとなに|ぬね", "しすせ", 0, 9);
+	n("あ|い|うえ|おかき|く|けこさ|しすせ|そ|たち|つてとなに|ぬね", "すせ");
+	x2("あ|^わ", "ぶあ", 3, 6);
+	x2("あ|^を", "をあ", 0, 3);
+	x2("鬼|\\G車", "け車鬼", 6, 9);
+	x2("鬼|\\G車", "車鬼", 0, 3);
+	x2("鬼|\\A車", "b車鬼", 4, 7);
+	x2("鬼|\\A車", "車", 0, 3);
+	x2("鬼|車\\Z", "車鬼", 3, 6);
+	x2("鬼|車\\Z", "車", 0, 3);
+	x2("鬼|車\\Z", "車\n", 0, 3);
+	x2("鬼|車\\z", "車鬼", 3, 6);
+	x2("鬼|車\\z", "車", 0, 3);
+	x2("(?u)\\w|\\s", "お", 0, 3);
+	x2("(?u)\\w|%", "%お", 0, 1);
+	x2("(?u)\\w|[&$]", "う&", 0, 3);
+	x2("[い-け]", "う", 0, 3);
+	x2("[い-け]|[^か-こ]", "あ", 0, 3);
+	x2("[い-け]|[^か-こ]", "か", 0, 3);
+	x2("[^あ]", "\n", 0, 1);
+	x2("(?:あ|[う-き])|いを", "うを", 0, 3);
+	x2("(?:あ|[う-き])|いを", "いを", 0, 6);
+	x2("あいう|(?=けけ)..ほ", "けけほ", 0, 9);
+	x2("あいう|(?!けけ)..ほ", "あいほ", 0, 9);
+	x2("(?=をあ)..あ|(?=をを)..あ", "ををあ", 0, 9);
+	x2("(?<=あ|いう)い", "いうい", 6, 9);
+	n("(?>あ|あいえ)う", "あいえう");
+	x2("(?>あいえ|あ)う", "あいえう", 0, 12);
+	x2("あ?|い", "あ", 0, 3);
+	x2("あ?|い", "い", 0, 0);
+	x2("あ?|い", "", 0, 0);
+	x2("あ*|い", "ああ", 0, 6);
+	x2("あ*|い*", "いあ", 0, 0);
+	x2("あ*|い*", "あい", 0, 3);
+	x2("[aあ]*|い*", "aあいいい", 0, 4);
+	x2("あ+|い*", "", 0, 0);
+	x2("あ+|い*", "いいい", 0, 9);
+	x2("あ+|い*", "あいいい", 0, 3);
+	x2("あ+|い*", "aあいいい", 0, 0);
+	n("あ+|い+", "");
+	x2("(あ|い)?", "い", 0, 3);
+	x2("(あ|い)*", "いあ", 0, 6);
+	x2("(あ|い)+", "いあい", 0, 9);
+	x2("(あい|うあ)+", "うああいうえ", 0, 12);
+	x2("(あい|うえ)+", "うああいうえ", 6, 18);
+	x2("(あい|うあ)+", "ああいうあ", 3, 15);
+	x2("(あい|うあ)+", "あいをうあ", 0, 6);
+	x2("(あい|うあ)+", "$$zzzzあいをうあ", 6, 12);
+	x2("(あ|いあい)+", "あいあいあ", 0, 15);
+	x2("(あ|いあい)+", "いあ", 3, 6);
+	x2("(あ|いあい)+", "いあああいあ", 3, 12);
+	x2("(?:あ|い)(?:あ|い)", "あい", 0, 6);
+	x2("(?:あ*|い*)(?:あ*|い*)", "あああいいい", 0, 9);
+	x2("(?:あ*|い*)(?:あ+|い+)", "あああいいい", 0, 18);
+	x2("(?:あ+|い+){2}", "あああいいい", 0, 18);
+	x2("(?:あ+|い+){1,2}", "あああいいい", 0, 18);
+	x2("(?:あ+|\\Aい*)うう", "うう", 0, 6);
+	n("(?:あ+|\\Aい*)うう", "あいうう");
+	x2("(?:^あ+|い+)*う", "ああいいいあいう", 18, 24);
+	x2("(?:^あ+|い+)*う", "ああいいいいう", 0, 21);
+	x2("う{0,}", "うううう", 0, 12);
+	x2("あ|(?i)c", "C", 0, 1);
+	x2("(?i)c|あ", "C", 0, 1);
+	x2("(?i:あ)|a", "a", 0, 1);
+	n("(?i:あ)|a", "A");
+	x2("[あいう]?", "あいう", 0, 3);
+	x2("[あいう]*", "あいう", 0, 9);
+	x2("[^あいう]*", "あいう", 0, 0);
+	n("[^あいう]+", "あいう");
+	x2("あ?\?", "あああ", 0, 0);
+	x2("いあ?\?い", "いあい", 0, 9);
+	x2("あ*?", "あああ", 0, 0);
+	x2("いあ*?", "いああ", 0, 3);
+	x2("いあ*?い", "いああい", 0, 12);
+	x2("あ+?", "あああ", 0, 3);
+	x2("いあ+?", "いああ", 0, 6);
+	x2("いあ+?い", "いああい", 0, 12);
+	x2("(?:天?)?\?", "天", 0, 0);
+	x2("(?:天?\?)?", "天", 0, 0);
+	x2("(?:夢?)+?", "夢夢夢", 0, 3);
+	x2("(?:風+)?\?", "風風風", 0, 0);
+	x2("(?:雪+)?\?霜", "雪雪雪霜", 0, 12);
+	x2("(?:あい)?{2}", "", 0, 0);
+	x2("(?:鬼車)?{2}", "鬼車鬼車鬼", 0, 12);
+	x2("(?:鬼車)*{0}", "鬼車鬼車鬼", 0, 0);
+	x2("(?:鬼車){3,}", "鬼車鬼車鬼車鬼車", 0, 24);
+	n("(?:鬼車){3,}", "鬼車鬼車");
+	x2("(?:鬼車){2,4}", "鬼車鬼車鬼車", 0, 18);
+	x2("(?:鬼車){2,4}", "鬼車鬼車鬼車鬼車鬼車", 0, 24);
+	x2("(?:鬼車){2,4}?", "鬼車鬼車鬼車鬼車鬼車", 0, 12);
+	x2("(?:鬼車){,}", "鬼車{,}", 0, 9);
+	x2("(?:かきく)+?{2}", "かきくかきくかきく", 0, 18);
+	x3("(火)", "火", 0, 3, 1);
+	x3("(火水)", "火水", 0, 6, 1);
+	x2("((時間))", "時間", 0, 6);
+	x3("((風水))", "風水", 0, 6, 1);
+	x3("((昨日))", "昨日", 0, 6, 2);
+	x3("((((((((((((((((((((量子))))))))))))))))))))", "量子", 0, 6, 20);
+	x3("(あい)(うえ)", "あいうえ", 0, 6, 1);
+	x3("(あい)(うえ)", "あいうえ", 6, 12, 2);
+	x3("()(あ)いう(えおか)きくけこ", "あいうえおかきくけこ", 9, 18, 3);
+	x3("(()(あ)いう(えおか)きくけこ)", "あいうえおかきくけこ", 9, 18, 4);
+	x3(".*(フォ)ン・マ(ン()シュタ)イン", "フォン・マンシュタイン", 15, 27, 2);
+	x2("(^あ)", "あ", 0, 3);
+	x3("(あ)|(あ)", "いあ", 3, 6, 1);
+	x3("(^あ)|(あ)", "いあ", 3, 6, 2);
+	x3("(あ?)", "あああ", 0, 3, 1);
+	x3("(ま*)", "ままま", 0, 9, 1);
+	x3("(と*)", "", 0, 0, 1);
+	x3("(る+)", "るるるるるるる", 0, 21, 1);
+	x3("(ふ+|へ*)", "ふふふへへ", 0, 9, 1);
+	x3("(あ+|い?)", "いいいああ", 0, 3, 1);
+	x3("(あいう)?", "あいう", 0, 9, 1);
+	x3("(あいう)*", "あいう", 0, 9, 1);
+	x3("(あいう)+", "あいう", 0, 9, 1);
+	x3("(さしす|あいう)+", "あいう", 0, 9, 1);
+	x3("([なにぬ][かきく]|かきく)+", "かきく", 0, 9, 1);
+	x3("((?i:あいう))", "あいう", 0, 9, 1);
+	x3("((?m:あ.う))", "あ\nう", 0, 7, 1);
+	x3("((?=あん)あ)", "あんい", 0, 3, 1);
+	x3("あいう|(.あいえ)", "んあいえ", 0, 12, 1);
+	x3("あ*(.)", "ああああん", 12, 15, 1);
+	x3("あ*?(.)", "ああああん", 0, 3, 1);
+	x3("あ*?(ん)", "ああああん", 12, 15, 1);
+	x3("[いうえ]あ*(.)", "えああああん", 15, 18, 1);
+	x3("(\\Aいい)うう", "いいうう", 0, 6, 1);
+	n("(\\Aいい)うう", "んいいうう");
+	x3("(^いい)うう", "いいうう", 0, 6, 1);
+	n("(^いい)うう", "んいいうう");
+	x3("ろろ(るる$)", "ろろるる", 6, 12, 1);
+	n("ろろ(るる$)", "ろろるるる");
+	x2("(無)\\1", "無無", 0, 6);
+	n("(無)\\1", "無武");
+	x2("(空?)\\1", "空空", 0, 6);
+	x2("(空?\?)\\1", "空空", 0, 0);
+	x2("(空*)\\1", "空空空空空", 0, 12);
+	x3("(空*)\\1", "空空空空空", 0, 6, 1);
+	x2("あ(い*)\\1", "あいいいい", 0, 15);
+	x2("あ(い*)\\1", "あい", 0, 3);
+	x2("(あ*)(い*)\\1\\2", "あああいいあああいい", 0, 30);
+	x2("(あ*)(い*)\\2", "あああいいいい", 0, 21);
+	x3("(あ*)(い*)\\2", "あああいいいい", 9, 15, 2);
+	x2("(((((((ぽ*)ぺ))))))ぴ\\7", "ぽぽぽぺぴぽぽぽ", 0, 24);
+	x3("(((((((ぽ*)ぺ))))))ぴ\\7", "ぽぽぽぺぴぽぽぽ", 0, 9, 7);
+	x2("(は)(ひ)(ふ)\\2\\1\\3", "はひふひはふ", 0, 18);
+	x2("([き-け])\\1", "くく", 0, 6);
+	x2("(?u)(\\w\\d\\s)\\1", "あ5 あ5 ", 0, 10);
+	n("(?u)(\\w\\d\\s)\\1", "あ5 あ5");
+	x2("(誰？|[あ-う]{3})\\1", "誰？誰？", 0, 12);
+	x2("...(誰？|[あ-う]{3})\\1", "あaあ誰？誰？", 0, 19);
+	x2("(誰？|[あ-う]{3})\\1", "ういうういう", 0, 18);
+	x2("(^こ)\\1", "ここ", 0, 6);
+	n("(^む)\\1", "めむむ");
+	n("(あ$)\\1", "ああ");
+	n("(あい\\Z)\\1", "あい");
+	x2("(あ*\\Z)\\1", "あ", 3, 3);
+	x2(".(あ*\\Z)\\1", "いあ", 3, 6);
+	x3("(.(やいゆ)\\2)", "zやいゆやいゆ", 0, 19, 1);
+	x3("(.(..\\d.)\\2)", "あ12341234", 0, 11, 1);
+	x2("((?i:あvず))\\1", "あvずあvず", 0, 14);
+	x2("(?<愚か>変|\\(\\g<愚か>\\))", "((((((変))))))", 0, 15);
+	x2("\\A(?:\\g<阿_1>|\\g<云_2>|\\z終了  (?<阿_1>観|自\\g<云_2>自)(?<云_2>在|菩薩\\g<阿_1>菩薩))$", "菩薩自菩薩自在自菩薩自菩薩", 0, 39);
+	x2("[[ひふ]]", "ふ", 0, 3);
+	x2("[[いおう]か]", "か", 0, 3);
+	n("[[^あ]]", "あ");
+	n("[^[あ]]", "あ");
+	x2("[^[^あ]]", "あ", 0, 3);
+	x2("[[かきく]&&きく]", "く", 0, 3);
+	n("[[かきく]&&きく]", "か");
+	n("[[かきく]&&きく]", "け");
+	x2("[あ-ん&&い-を&&う-ゑ]", "ゑ", 0, 3);
+	n("[^あ-ん&&い-を&&う-ゑ]", "ゑ");
+	x2("[[^あ&&あ]&&あ-ん]", "い", 0, 3);
+	n("[[^あ&&あ]&&あ-ん]", "あ");
+	x2("[[^あ-ん&&いうえお]&&[^う-か]]", "き", 0, 3);
+	n("[[^あ-ん&&いうえお]&&[^う-か]]", "い");
+	x2("[^[^あいう]&&[^うえお]]", "う", 0, 3);
+	x2("[^[^あいう]&&[^うえお]]", "え", 0, 3);
+	n("[^[^あいう]&&[^うえお]]", "か");
+	x2("[あ-&&-あ]", "-", 0, 1);
+	x2("[^[^a-zあいう]&&[^bcdefgうえお]q-w]", "え", 0, 3);
+	x2("[^[^a-zあいう]&&[^bcdefgうえお]g-w]", "f", 0, 1);
+	x2("[^[^a-zあいう]&&[^bcdefgうえお]g-w]", "g", 0, 1);
+	n("[^[^a-zあいう]&&[^bcdefgうえお]g-w]", "2");
+	x2("a<b>バージョンのダウンロード<\\/b>", "a<b>バージョンのダウンロード</b>", 0, 44);
+	x2(".<b>バージョンのダウンロード<\\/b>", "a<b>バージョンのダウンロード</b>", 0, 44);
 	fprintf(stdout,
 		"\nRESULT   SUCC: %d,  FAIL: %d,  ERROR: %d      (by Onigmo %s)\n",
Index: EcnlProtoTool/trunk/webapp/webmrbc/echonet_objects.json
===================================================================
--- EcnlProtoTool/trunk/webapp/webmrbc/echonet_objects.json	(revision 299)
+++ EcnlProtoTool/trunk/webapp/webmrbc/echonet_objects.json	(revision 321)
@@ -6,6 +6,5 @@
 			],
 			"arrayCount":0,
-			"description":"ç°å¸¸çºçç¶æ
-",
+			"description":"異常発生状態",
 			"fields":[
 				
@@ -22,5 +21,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"0x41=ç°å¸¸çºçæ,0x42=ç°å¸¸çºçç¡"
+			"valueDescription":"0x41=異常発生有,0x42=異常発生無"
 		},
 		{
@@ -29,9 +28,9 @@
 			],
 			"arrayCount":0,
-			"description":"ã¡ã¼ã«ã¼ã³ã¼ã",
+			"description":"メーカーコード",
 			"fields":[
 				{
 					"arrayCount":3,
-					"description":"ã¡ã¼ã«ã¼ã³ã¼ã",
+					"description":"メーカーコード",
 					"fields":[
 						
@@ -44,5 +43,5 @@
 					"type":"uint8_t",
 					"unitDescription":null,
-					"valueDescription":"ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã"
+					"valueDescription":"ECHONETコンソーシアムで規定。"
 				}
 			],
@@ -65,5 +64,5 @@
 			],
 			"arrayCount":3,
-			"description":"äºæ¥­å ´ã³ã¼ã",
+			"description":"事業場コード",
 			"fields":[
 				
@@ -80,5 +79,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"
+			"valueDescription":"(各メーカ毎に規定。)"
 		},
 		{
@@ -87,5 +86,5 @@
 			],
 			"arrayCount":12,
-			"description":"ååã³ã¼ã",
+			"description":"商品コード",
 			"fields":[
 				
@@ -102,5 +101,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"
+			"valueDescription":"(各メーカ毎に規定。)"
 		},
 		{
@@ -109,5 +108,5 @@
 			],
 			"arrayCount":12,
-			"description":"è£½é çªå·",
+			"description":"製造番号",
 			"fields":[
 				
@@ -124,5 +123,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"
+			"valueDescription":"(各メーカ毎に規定。)"
 		},
 		{
@@ -131,9 +130,9 @@
 			],
 			"arrayCount":0,
-			"description":"è£½é å¹´ææ¥",
+			"description":"製造年月日",
 			"fields":[
 				{
 					"arrayCount":0,
-					"description":"å¹´",
+					"description":"年",
 					"fields":[
 						
@@ -145,10 +144,10 @@
 					"size":2,
 					"type":"uint16_t",
-					"unitDescription":"å¹´",
-					"valueDescription":"0x0001ï½0x270F(1ï½9999)"
+					"unitDescription":"年",
+					"valueDescription":"0x0001～0x270F(1～9999)"
 				},
 				{
 					"arrayCount":0,
-					"description":"æ",
+					"description":"月",
 					"fields":[
 						
@@ -160,10 +159,10 @@
 					"size":1,
 					"type":"uint8_t",
-					"unitDescription":"æ",
-					"valueDescription":"0x01ï½0x0C(1ï½12)"
+					"unitDescription":"月",
+					"valueDescription":"0x01～0x0C(1～12)"
 				},
 				{
 					"arrayCount":0,
-					"description":"æ¥",
+					"description":"日",
 					"fields":[
 						
@@ -175,6 +174,6 @@
 					"size":1,
 					"type":"uint8_t",
-					"unitDescription":"æ¥",
-					"valueDescription":"0x01ï½0x1F(1ï½31)"
+					"unitDescription":"日",
+					"valueDescription":"0x01～0x1F(1～31)"
 				}
 			],
@@ -198,5 +197,5 @@
 			],
 			"arrayCount":17,
-			"description":"ç¶å¤ã¢ãã¦ã³ã¹ãã­ããã£ããã",
+			"description":"状変アナウンスプロパティマップ",
 			"fields":[
 				
@@ -221,6 +220,5 @@
 			],
 			"arrayCount":17,
-			"description":"ï¼³ï½
-ï½ãã­ããã£ããã",
+			"description":"Ｓｅｔプロパティマップ",
 			"fields":[
 				
@@ -245,6 +243,5 @@
 			],
 			"arrayCount":17,
-			"description":"ï¼§ï½
-ï½ãã­ããã£ããã",
+			"description":"Ｇｅｔプロパティマップ",
 			"fields":[
 				
@@ -272,6 +269,5 @@
 			],
 			"arrayCount":0,
-			"description":"åä½ç¶æ
-",
+			"description":"動作状態",
 			"fields":[
 				
@@ -297,5 +293,5 @@
 			],
 			"arrayCount":0,
-			"description":"è¨­ç½®å ´æ",
+			"description":"設置場所",
 			"fields":[
 				
@@ -313,6 +309,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"2.2è¨­ç½®å ´æãã­ããã£åç
-§"
+			"valueDescription":"2.2設置場所プロパティ参照"
 		},
 		{
@@ -321,11 +316,9 @@
 			],
 			"arrayCount":0,
-			"description":"è¦æ ¼ï¼¶ï½
-ï½ï½ï½ï½ï½æ
-å ±",
+			"description":"規格Ｖｅｒｓｉｏｎ情報",
 			"fields":[
 				{
 					"arrayCount":0,
-					"description":"åºå®1(for future reserved)",
+					"description":"固定1(for future reserved)",
 					"fields":[
 						
@@ -342,5 +335,5 @@
 				{
 					"arrayCount":0,
-					"description":"åºå®2(for future reserved)",
+					"description":"固定2(for future reserved)",
 					"fields":[
 						
@@ -357,5 +350,5 @@
 				{
 					"arrayCount":0,
-					"description":"ãªãªã¼ã¹é ãASCIIã§ç¤ºã",
+					"description":"リリース順をASCIIで示す",
 					"fields":[
 						
@@ -372,5 +365,5 @@
 				{
 					"arrayCount":0,
-					"description":"åºå®4(for future reserved)",
+					"description":"固定4(for future reserved)",
 					"fields":[
 						
@@ -404,9 +397,9 @@
 			],
 			"arrayCount":0,
-			"description":"è­å¥çªå·",
+			"description":"識別番号",
 			"fields":[
 				{
 					"arrayCount":0,
-					"description":"ä¸ä½éä¿¡å±¤IDãã£ã¼ã«ã",
+					"description":"下位通信層IDフィールド",
 					"fields":[
 						
@@ -419,10 +412,9 @@
 					"type":"uint8_t",
 					"unitDescription":null,
-					"valueDescription":"0x01ï½0xFD=ä¸ä½éä¿¡å±¤ã§ä½¿ç¨ãããéä¿¡ãã­ãã³ã«ã§åºæã®çªå·ãæ¯ããã¦ããå ´åããã­ãã³ã«å¥ã«å¿ãã¦ãä»»æã«è¨­å®ï¼ECHONET Liteã§ã¯ä½¿ç¨ããªãï¼,0x11ï½0x1F=é»ç¯ç·a\/dæ¹å¼,0x31ï½0x3F=ç¹å®å°é»åç¡ç·,0x41ï½0x4F=æ¡å¼µHBS,0x51ï½0x5F=IrDA,0x61ï½0x6F=LonTalk,0x71ï½0x7F=Bluetooth,0x81ï½0x8F=ã¤ã¼ãµããã,0x91ï½0x9F=IEEE802.11\/11b,0xA1=é»ç¯ç·cæ¹å¼,0xB1=IPv6\/Ethernet,0xB2=IPv6\/6LoWPAN,0xFE=2ãã17ãã¤ããã¡ã¼ã«è¦å®ãå½¢å¼ã«ããè¨­å®ï¼è©³ç´°èª¬æåç
-§ï¼,0xFF=2ãã9ãã¤ããä¹±æ°ã«ããçæãããã­ãã³ã«ãä¸ä½éä¿¡å±¤ã§ä½¿ç¨ããå ´åã«è¨­å®,0x00=è­å¥çªå·æªè¨­å®"
+					"valueDescription":"0x01～0xFD=下位通信層で使用される通信プロトコルで固有の番号が振られている場合、プロトコル別に応じて、任意に設定（ECHONET Liteでは使用しない）,0x11～0x1F=電灯線a\/d方式,0x31～0x3F=特定小電力無線,0x41～0x4F=拡張HBS,0x51～0x5F=IrDA,0x61～0x6F=LonTalk,0x71～0x7F=Bluetooth,0x81～0x8F=イーサネット,0x91～0x9F=IEEE802.11\/11b,0xA1=電灯線c方式,0xB1=IPv6\/Ethernet,0xB2=IPv6\/6LoWPAN,0xFE=2から17バイトをメーカ規定。形式により設定（詳細説明参照）,0xFF=2から9バイトを乱数により生成するプロトコルを下位通信層で使用する場合に設定,0x00=識別番号未設定"
 				},
 				{
 					"arrayCount":16,
-					"description":"åºæçªå·ãã£ã¼ã«ã",
+					"description":"固有番号フィールド",
 					"fields":[
 						
@@ -456,5 +448,5 @@
 			],
 			"arrayCount":0,
-			"description":"ç¬ææ¶è²»é»åè¨æ¸¬å¤",
+			"description":"瞬時消費電力計測値",
 			"fields":[
 				
@@ -471,5 +463,5 @@
 			"type":"uint16_t",
 			"unitDescription":"W",
-			"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
+			"valueDescription":"0x0000～0xFFFD(0～65533W)"
 		},
 		{
@@ -478,5 +470,5 @@
 			],
 			"arrayCount":0,
-			"description":"ç©ç®æ¶è²»é»åè¨æ¸¬å¤",
+			"description":"積算消費電力計測値",
 			"fields":[
 				
@@ -493,5 +485,5 @@
 			"type":"uint32_t",
 			"unitDescription":"kWh",
-			"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
+			"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
 		},
 		{
@@ -501,9 +493,9 @@
 			],
 			"arrayCount":0,
-			"description":"ã¡ã¼ã«ç°å¸¸ã³ã¼ã",
+			"description":"メーカ異常コード",
 			"fields":[
 				{
 					"arrayCount":0,
-					"description":"ç°å¸¸ã³ã¼ãé¨ã®ãã¼ã¿ãµã¤ãº",
+					"description":"異常コード部のデータサイズ",
 					"fields":[
 						
@@ -520,9 +512,9 @@
 				{
 					"arrayCount":0,
-					"description":"ã¡ã¼ã«ã¼ã³ã¼ã",
+					"description":"メーカーコード",
 					"fields":[
 						{
 							"arrayCount":3,
-							"description":"ã¡ã¼ã«ã¼ã³ã¼ã",
+							"description":"メーカーコード",
 							"fields":[
 								
@@ -535,5 +527,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã"
+							"valueDescription":"ECHONETコンソーシアムで規定。"
 						}
 					],
@@ -549,5 +541,5 @@
 				{
 					"arrayCount":221,
-					"description":"åã¡ã¼ã«ç¬èªã®ç°å¸¸ã³ã¼ãé¨",
+					"description":"各メーカ独自の異常コード部",
 					"fields":[
 						
@@ -582,5 +574,5 @@
 			],
 			"arrayCount":0,
-			"description":"é»æµå¶éè¨­å®",
+			"description":"電流制限設定",
 			"fields":[
 				
@@ -596,7 +588,6 @@
 			"size":1,
 			"type":"uint8_t",
-			"unitDescription":"ï¼
-",
-			"valueDescription":"0x00ï½0x64(0ï½100%)"
+			"unitDescription":"％",
+			"valueDescription":"0x00～0x64(0～100%)"
 		},
 		{
@@ -606,6 +597,5 @@
 			],
 			"arrayCount":0,
-			"description":"ç°å¸¸çºçç¶æ
-",
+			"description":"異常発生状態",
 			"fields":[
 				
@@ -622,5 +612,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"0x41=ç°å¸¸çºçæ,0x42=ç°å¸¸çºçç¡"
+			"valueDescription":"0x41=異常発生有,0x42=異常発生無"
 		},
 		{
@@ -629,6 +619,5 @@
 			],
 			"arrayCount":0,
-			"description":"ç°å¸¸å
-å®¹",
+			"description":"異常内容",
 			"fields":[
 				
@@ -645,7 +634,5 @@
 			"type":"uint16_t",
 			"unitDescription":null,
-			"valueDescription":"2.5ç°å¸¸å
-å®¹ãã­ããã£åç
-§"
+			"valueDescription":"2.5異常内容プロパティ参照"
 		},
 		{
@@ -654,9 +641,9 @@
 			],
 			"arrayCount":0,
-			"description":"ã¡ã¼ã«ã¼ã³ã¼ã",
+			"description":"メーカーコード",
 			"fields":[
 				{
 					"arrayCount":3,
-					"description":"ã¡ã¼ã«ã¼ã³ã¼ã",
+					"description":"メーカーコード",
 					"fields":[
 						
@@ -669,5 +656,5 @@
 					"type":"uint8_t",
 					"unitDescription":null,
-					"valueDescription":"ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã"
+					"valueDescription":"ECHONETコンソーシアムで規定。"
 				}
 			],
@@ -683,5 +670,5 @@
 			"type":"manufacturer_code_t",
 			"unitDescription":null,
-			"valueDescription":"(ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã)"
+			"valueDescription":"(ECHONETコンソーシアムで規定。)"
 		},
 		{
@@ -690,5 +677,5 @@
 			],
 			"arrayCount":3,
-			"description":"äºæ¥­å ´ã³ã¼ã",
+			"description":"事業場コード",
 			"fields":[
 				
@@ -705,5 +692,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"
+			"valueDescription":"(各メーカ毎に規定。)"
 		},
 		{
@@ -712,5 +699,5 @@
 			],
 			"arrayCount":12,
-			"description":"ååã³ã¼ã",
+			"description":"商品コード",
 			"fields":[
 				
@@ -727,5 +714,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"
+			"valueDescription":"(各メーカ毎に規定。)"
 		},
 		{
@@ -734,5 +721,5 @@
 			],
 			"arrayCount":12,
-			"description":"è£½é çªå·",
+			"description":"製造番号",
 			"fields":[
 				
@@ -749,5 +736,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"
+			"valueDescription":"(各メーカ毎に規定。)"
 		},
 		{
@@ -756,9 +743,9 @@
 			],
 			"arrayCount":0,
-			"description":"è£½é å¹´ææ¥",
+			"description":"製造年月日",
 			"fields":[
 				{
 					"arrayCount":0,
-					"description":"å¹´",
+					"description":"年",
 					"fields":[
 						
@@ -770,10 +757,10 @@
 					"size":2,
 					"type":"uint16_t",
-					"unitDescription":"å¹´",
-					"valueDescription":"0x0001ï½0x270F(1ï½9999)"
+					"unitDescription":"年",
+					"valueDescription":"0x0001～0x270F(1～9999)"
 				},
 				{
 					"arrayCount":0,
-					"description":"æ",
+					"description":"月",
 					"fields":[
 						
@@ -785,10 +772,10 @@
 					"size":1,
 					"type":"uint8_t",
-					"unitDescription":"æ",
-					"valueDescription":"0x01ï½0x0C(1ï½12)"
+					"unitDescription":"月",
+					"valueDescription":"0x01～0x0C(1～12)"
 				},
 				{
 					"arrayCount":0,
-					"description":"æ¥",
+					"description":"日",
 					"fields":[
 						
@@ -800,6 +787,6 @@
 					"size":1,
 					"type":"uint8_t",
-					"unitDescription":"æ¥",
-					"valueDescription":"0x01ï½0x1F(1ï½31)"
+					"unitDescription":"日",
+					"valueDescription":"0x01～0x1F(1～31)"
 				}
 			],
@@ -823,5 +810,5 @@
 			],
 			"arrayCount":0,
-			"description":"ç¯é»åä½è¨­å®",
+			"description":"節電動作設定",
 			"fields":[
 				
@@ -838,5 +825,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"0x41=ç¯é»åä½ä¸­,0x42=éå¸¸åä½ä¸­"
+			"valueDescription":"0x41=節電動作中,0x42=通常動作中"
 		},
 		{
@@ -846,5 +833,5 @@
 			],
 			"arrayCount":0,
-			"description":"é éæä½è¨­å®",
+			"description":"遠隔操作設定",
 			"fields":[
 				
@@ -861,7 +848,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"0x41=å
-¬è¡åç·æªçµç±æä½,0x42=å
-¬è¡åç·çµç±æä½"
+			"valueDescription":"0x41=公衆回線未経由操作,0x42=公衆回線経由操作"
 		},
 		{
@@ -871,9 +856,9 @@
 			],
 			"arrayCount":0,
-			"description":"ç¾å¨æå»è¨­å®",
+			"description":"現在時刻設定",
 			"fields":[
 				{
 					"arrayCount":0,
-					"description":"æ",
+					"description":"時",
 					"fields":[
 						
@@ -885,10 +870,10 @@
 					"size":1,
 					"type":"uint8_t",
-					"unitDescription":"æ",
-					"valueDescription":"0x00ï½0x17(0ï½23)"
+					"unitDescription":"時",
+					"valueDescription":"0x00～0x17(0～23)"
 				},
 				{
 					"arrayCount":0,
-					"description":"å",
+					"description":"分",
 					"fields":[
 						
@@ -900,6 +885,6 @@
 					"size":1,
 					"type":"uint8_t",
-					"unitDescription":"å",
-					"valueDescription":"0x00ï½0x3B(0ï½59)"
+					"unitDescription":"分",
+					"valueDescription":"0x00～0x3B(0～59)"
 				}
 			],
@@ -923,9 +908,9 @@
 			],
 			"arrayCount":0,
-			"description":"ç¾å¨å¹´ææ¥è¨­å®",
+			"description":"現在年月日設定",
 			"fields":[
 				{
 					"arrayCount":0,
-					"description":"å¹´",
+					"description":"年",
 					"fields":[
 						
@@ -937,10 +922,10 @@
 					"size":2,
 					"type":"uint16_t",
-					"unitDescription":"å¹´",
-					"valueDescription":"0x0001ï½0x270F(1ï½9999)"
+					"unitDescription":"年",
+					"valueDescription":"0x0001～0x270F(1～9999)"
 				},
 				{
 					"arrayCount":0,
-					"description":"æ",
+					"description":"月",
 					"fields":[
 						
@@ -952,10 +937,10 @@
 					"size":1,
 					"type":"uint8_t",
-					"unitDescription":"æ",
-					"valueDescription":"0x01ï½0x0C(1ï½12)"
+					"unitDescription":"月",
+					"valueDescription":"0x01～0x0C(1～12)"
 				},
 				{
 					"arrayCount":0,
-					"description":"æ¥",
+					"description":"日",
 					"fields":[
 						
@@ -967,6 +952,6 @@
 					"size":1,
 					"type":"uint8_t",
-					"unitDescription":"æ¥",
-					"valueDescription":"0x01ï½0x1F(1ï½31)"
+					"unitDescription":"日",
+					"valueDescription":"0x01～0x1F(1～31)"
 				}
 			],
@@ -990,5 +975,5 @@
 			],
 			"arrayCount":0,
-			"description":"é»åå¶éè¨­å®",
+			"description":"電力制限設定",
 			"fields":[
 				
@@ -1005,5 +990,5 @@
 			"type":"uint16_t",
 			"unitDescription":null,
-			"valueDescription":"0x0000ï½0xFFFF(0ï½65535W)"
+			"valueDescription":"0x0000～0xFFFF(0～65535W)"
 		},
 		{
@@ -1012,9 +997,9 @@
 			],
 			"arrayCount":0,
-			"description":"ç©ç®éè»¢æé",
+			"description":"積算運転時間",
 			"fields":[
 				{
 					"arrayCount":0,
-					"description":"åä½",
+					"description":"単位",
 					"fields":[
 						
@@ -1027,9 +1012,9 @@
 					"type":"uint8_t",
 					"unitDescription":null,
-					"valueDescription":"0x41=ç§,0x42=å,0x43=æ,0x44=æ¥"
+					"valueDescription":"0x41=秒,0x42=分,0x43=時,0x44=日"
 				},
 				{
 					"arrayCount":0,
-					"description":"çµéæé",
+					"description":"経過時間",
 					"fields":[
 						
@@ -1042,5 +1027,5 @@
 					"type":"uint32_t",
 					"unitDescription":null,
-					"valueDescription":"0x00000000ï½0xFFFFFFFF(0ï½4294967295)"
+					"valueDescription":"0x00000000～0xFFFFFFFF(0～4294967295)"
 				}
 			],
@@ -1064,6 +1049,5 @@
 			],
 			"arrayCount":17,
-			"description":"ï¼³ï½
-ï½ï¼­ãã­ããã£ããã",
+			"description":"ＳｅｔＭプロパティマップ",
 			"fields":[
 				
@@ -1080,6 +1064,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"ä»é²1.åç
-§"
+			"valueDescription":"付録1.参照"
 		},
 		{
@@ -1089,6 +1072,5 @@
 			],
 			"arrayCount":17,
-			"description":"ï¼§ï½
-ï½ï¼­ãã­ããã£ããã",
+			"description":"ＧｅｔＭプロパティマップ",
 			"fields":[
 				
@@ -1105,6 +1087,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"ä»é²1.åç
-§"
+			"valueDescription":"付録1.参照"
 		},
 		{
@@ -1114,5 +1095,5 @@
 			],
 			"arrayCount":17,
-			"description":"ç¶å¤ã¢ãã¦ã³ã¹ãã­ããã£ããã",
+			"description":"状変アナウンスプロパティマップ",
 			"fields":[
 				
@@ -1129,6 +1110,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"ä»é²1.åç
-§"
+			"valueDescription":"付録1.参照"
 		},
 		{
@@ -1138,6 +1118,5 @@
 			],
 			"arrayCount":17,
-			"description":"ï¼³ï½
-ï½ãã­ããã£ããã",
+			"description":"Ｓｅｔプロパティマップ",
 			"fields":[
 				
@@ -1154,6 +1133,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"ä»é²1.åç
-§"
+			"valueDescription":"付録1.参照"
 		},
 		{
@@ -1163,6 +1141,5 @@
 			],
 			"arrayCount":17,
-			"description":"ï¼§ï½
-ï½ãã­ããã£ããã",
+			"description":"Ｇｅｔプロパティマップ",
 			"fields":[
 				
@@ -1179,6 +1156,5 @@
 			"type":"uint8_t",
 			"unitDescription":null,
-			"valueDescription":"ä»é²1.åç
-§"
+			"valueDescription":"付録1.参照"
 		}
 	],
@@ -1186,10 +1162,10 @@
 		{
 			"classGroupCode":0,
-			"description":"ã»ã³ãµã¼é¢é£æ©å¨",
+			"description":"センサー関連機器",
 			"define":"X1_SENSOR",
 			"classList":[
 				{
 					"classCode":1,
-					"description":"ã¬ã¹æ¼ãã»ã³ãµ",
+					"description":"ガス漏れセンサ",
 					"name":"GAS_LEAK_SENSOR_EOBJ",
 					"propertyList":[
@@ -1200,5 +1176,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1215,5 +1191,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1223,6 +1199,5 @@
 							],
 							"arrayCount":0,
-							"description":"ã¬ã¹æ¼ãçºçç¶æ
-",
+							"description":"ガス漏れ発生状態",
 							"fields":[
 								
@@ -1239,5 +1214,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã¬ã¹æ¼ãçºçæ,0x42=ã¬ã¹æ¼ãçºçç¡"
+							"valueDescription":"0x41=ガス漏れ発生有,0x42=ガス漏れ発生無"
 						},
 						{
@@ -1246,6 +1221,5 @@
 							],
 							"arrayCount":0,
-							"description":"ã¬ã¹æ¼ãçºçç¶æ
-ãªã»ããè¨­å®",
+							"description":"ガス漏れ発生状態リセット設定",
 							"fields":[
 								
@@ -1262,5 +1236,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						}
 					]
@@ -1268,5 +1242,5 @@
 				{
 					"classCode":2,
-					"description":"é²ç¯ã»ã³ãµ",
+					"description":"防犯センサ",
 					"name":"CRIME_PREVENTION_SENSOR_EOBJ",
 					"propertyList":[
@@ -1277,5 +1251,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1292,5 +1266,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1300,7 +1274,5 @@
 							],
 							"arrayCount":0,
-							"description":"ä¾µå
-¥çºçç¶æ
-",
+							"description":"侵入発生状態",
 							"fields":[
 								
@@ -1317,7 +1289,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ä¾µå
-¥çºçæ,0x42=ä¾µå
-¥çºçç¡"
+							"valueDescription":"0x41=侵入発生有,0x42=侵入発生無"
 						},
 						{
@@ -1326,7 +1296,5 @@
 							],
 							"arrayCount":0,
-							"description":"ä¾µå
-¥çºçç¶æ
-ãªã»ããè¨­å®",
+							"description":"侵入発生状態リセット設定",
 							"fields":[
 								
@@ -1343,5 +1311,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						}
 					]
@@ -1349,5 +1317,5 @@
 				{
 					"classCode":3,
-					"description":"éå¸¸ãã¿ã³",
+					"description":"非常ボタン",
 					"name":"EMERGENCY_BUTTON_EOBJ",
 					"propertyList":[
@@ -1358,6 +1326,5 @@
 							],
 							"arrayCount":0,
-							"description":"éå¸¸çºçç¶æ
-",
+							"description":"非常発生状態",
 							"fields":[
 								
@@ -1374,5 +1341,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éå¸¸çºçæ,0x42=éå¸¸çºçç¡"
+							"valueDescription":"0x41=非常発生有,0x42=非常発生無"
 						},
 						{
@@ -1381,6 +1348,5 @@
 							],
 							"arrayCount":0,
-							"description":"éå¸¸çºçç¶æ
-ãªã»ããè¨­å®",
+							"description":"非常発生状態リセット設定",
 							"fields":[
 								
@@ -1397,5 +1363,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						}
 					]
@@ -1403,5 +1369,5 @@
 				{
 					"classCode":4,
-					"description":"ææ¥ç¨ã»ã³ãµ",
+					"description":"救急用センサ",
 					"name":"FIRST_AID_SENSOR_EOBJ",
 					"propertyList":[
@@ -1412,5 +1378,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1427,5 +1393,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1435,6 +1401,5 @@
 							],
 							"arrayCount":0,
-							"description":"ææ¥çºçç¶æ
-",
+							"description":"救急発生状態",
 							"fields":[
 								
@@ -1451,5 +1416,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ææ¥çºçæ,0x42=ææ¥çºçç¡"
+							"valueDescription":"0x41=救急発生有,0x42=救急発生無"
 						},
 						{
@@ -1458,6 +1423,5 @@
 							],
 							"arrayCount":0,
-							"description":"ææ¥çºçç¶æ
-ãªã»ããè¨­å®",
+							"description":"救急発生状態リセット設定",
 							"fields":[
 								
@@ -1474,5 +1438,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						}
 					]
@@ -1480,5 +1444,5 @@
 				{
 					"classCode":5,
-					"description":"å°éã»ã³ãµ",
+					"description":"地震センサ",
 					"name":"EARTHQUAKE_SENSOR_EOBJ",
 					"propertyList":[
@@ -1489,5 +1453,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1504,5 +1468,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1512,6 +1476,5 @@
 							],
 							"arrayCount":0,
-							"description":"å°éçºçç¶æ
-",
+							"description":"地震発生状態",
 							"fields":[
 								
@@ -1528,5 +1491,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å°éçºçæ,0x42=å°éçºçç¡"
+							"valueDescription":"0x41=地震発生有,0x42=地震発生無"
 						},
 						{
@@ -1535,6 +1498,5 @@
 							],
 							"arrayCount":0,
-							"description":"å°éçºçç¶æ
-ãªã»ããè¨­å®",
+							"description":"地震発生状態リセット設定",
 							"fields":[
 								
@@ -1551,5 +1513,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						}
 					]
@@ -1557,5 +1519,5 @@
 				{
 					"classCode":6,
-					"description":"æ¼é»ã»ã³ãµ",
+					"description":"漏電センサ",
 					"name":"ELECTRIC_LEAK_SENSOR_EOBJ",
 					"propertyList":[
@@ -1566,5 +1528,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1581,5 +1543,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1589,6 +1551,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¼é»çºçç¶æ
-",
+							"description":"漏電発生状態",
 							"fields":[
 								
@@ -1605,5 +1566,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ¼é»çºçæ,0x42=æ¼é»çºçç¡"
+							"valueDescription":"0x41=漏電発生有,0x42=漏電発生無"
 						},
 						{
@@ -1612,6 +1573,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¼é»çºçç¶æ
-ãªã»ããè¨­å®",
+							"description":"漏電発生状態リセット設定",
 							"fields":[
 								
@@ -1628,5 +1588,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						}
 					]
@@ -1634,5 +1594,5 @@
 				{
 					"classCode":7,
-					"description":"äººä½æ¤ç¥ã»ã³ãµ",
+					"description":"人体検知センサ",
 					"name":"HUMAN_DETECTION_SENSOR_EOBJ",
 					"propertyList":[
@@ -1643,5 +1603,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1658,5 +1618,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1666,6 +1626,5 @@
 							],
 							"arrayCount":0,
-							"description":"äººä½æ¤ç¥ç¶æ
-",
+							"description":"人体検知状態",
 							"fields":[
 								
@@ -1682,5 +1641,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äººä½æ¤ç¥æ,0x42=äººä½æ¤ç¥ç¡"
+							"valueDescription":"0x41=人体検知有,0x42=人体検知無"
 						}
 					]
@@ -1688,5 +1647,5 @@
 				{
 					"classCode":8,
-					"description":"æ¥å®¢ã»ã³ãµ",
+					"description":"来客センサ",
 					"name":"VISITOR_SENSOR_EOBJ",
 					"propertyList":[
@@ -1697,5 +1656,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1712,5 +1671,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1720,6 +1679,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¥å®¢æ¤ç¥ç¶æ
-",
+							"description":"来客検知状態",
 							"fields":[
 								
@@ -1736,13 +1694,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ¥å®¢æ¤ç¥æ,0x42=æ¥å®¢æ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¥å®¢æ¤ç¥ãã¼ã«ãæéè¨­å®å¤",
+							"valueDescription":"0x41=来客検知有,0x42=来客検知無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"来客検知ホールド時間設定値",
 							"fields":[
 								
@@ -1759,5 +1717,5 @@
 							"type":"uint16_t",
 							"unitDescription":"10sec",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655,330ç§)"
+							"valueDescription":"0x0000～0xFFFD(0～655,330秒)"
 						}
 					]
@@ -1765,5 +1723,5 @@
 				{
 					"classCode":9,
-					"description":"å¼ã³åºãã»ã³ãµ",
+					"description":"呼び出しセンサ",
 					"name":"CALL_SENSOR_EOBJ",
 					"propertyList":[
@@ -1774,5 +1732,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1789,5 +1747,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1797,6 +1755,5 @@
 							],
 							"arrayCount":0,
-							"description":"å¼ã³åºãç¶æ
-",
+							"description":"呼び出し状態",
 							"fields":[
 								
@@ -1813,13 +1770,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å¼ã³åºãæ,0x42=å¼ã³åºãç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¼ã³åºããã¼ã«ãæéè¨­å®å¤",
+							"valueDescription":"0x41=呼び出し有,0x42=呼び出し無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"呼び出しホールド時間設定値",
 							"fields":[
 								
@@ -1836,5 +1793,5 @@
 							"type":"uint16_t",
 							"unitDescription":"10sec",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655,330ç§)"
+							"valueDescription":"0x0000～0xFFFD(0～655,330秒)"
 						}
 					]
@@ -1842,5 +1799,5 @@
 				{
 					"classCode":10,
-					"description":"çµé²ã»ã³ãµ",
+					"description":"結露センサ",
 					"name":"CONDENSATION_SENSOR_EOBJ",
 					"propertyList":[
@@ -1851,5 +1808,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1866,5 +1823,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1874,6 +1831,5 @@
 							],
 							"arrayCount":0,
-							"description":"çµé²æ¤åºç¶æ
-",
+							"description":"結露検出状態",
 							"fields":[
 								
@@ -1890,5 +1846,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çµé²æ¤åºæ,0x42=çµé²æ¤åºç¡"
+							"valueDescription":"0x41=結露検出有,0x42=結露検出無"
 						}
 					]
@@ -1896,5 +1852,5 @@
 				{
 					"classCode":11,
-					"description":"ç©ºæ°æ±æã»ã³ãµ",
+					"description":"空気汚染センサ",
 					"name":"AIR_POLLUTION_SENSOR_EOBJ",
 					"propertyList":[
@@ -1905,5 +1861,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -1920,5 +1876,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -1928,6 +1884,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ºæ°æ±ææ¤åºç¶æ
-",
+							"description":"空気汚染検出状態",
 							"fields":[
 								
@@ -1944,5 +1899,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç©ºæ°æ±ææ¤åºæ,0x42=ç©ºæ°æ±ææ¤åºç¡"
+							"valueDescription":"0x41=空気汚染検出有,0x42=空気汚染検出無"
 						}
 					]
@@ -1950,6 +1905,5 @@
 				{
 					"classCode":12,
-					"description":"é
-¸ç´ ã»ã³ãµ",
+					"description":"酸素センサ",
 					"name":"OXYGEN_SENSOR_EOBJ",
 					"propertyList":[
@@ -1959,6 +1913,5 @@
 							],
 							"arrayCount":0,
-							"description":"é
-¸ç´ æ¿åº¦è¨æ¸¬å¤",
+							"description":"酸素濃度計測値",
 							"fields":[
 								
@@ -1974,7 +1927,6 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"0.01ï¼
-",
-							"valueDescription":"0x0000ï½0x2710(0.00ï½100.00%)"
+							"unitDescription":"0.01％",
+							"valueDescription":"0x0000～0x2710(0.00～100.00%)"
 						}
 					]
@@ -1982,6 +1934,5 @@
 				{
 					"classCode":13,
-					"description":"ç
-§åº¦ã»ã³ãµ",
+					"description":"照度センサ",
 					"name":"ILLUMINANCE_SENSOR_EOBJ",
 					"propertyList":[
@@ -1991,6 +1942,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç
-§åº¦è¨æ¸¬å¤ï¼",
+							"description":"照度計測値１",
 							"fields":[
 								
@@ -2006,14 +1956,13 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"ã«ã¯ã¹",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533ã«ã¯ã¹)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç
-§åº¦è¨æ¸¬å¤ï¼",
+							"unitDescription":"ルクス",
+							"valueDescription":"0x0000～0xFFFD(0～65533ルクス)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"照度計測値２",
 							"fields":[
 								
@@ -2029,6 +1978,6 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"kã«ã¯ã¹",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533kã«ã¯ã¹)"
+							"unitDescription":"kルクス",
+							"valueDescription":"0x0000～0xFFFD(0～65533kルクス)"
 						}
 					]
@@ -2036,5 +1985,5 @@
 				{
 					"classCode":14,
-					"description":"é³ã»ã³ãµ",
+					"description":"音センサ",
 					"name":"SOUND_SENSOR_EOBJ",
 					"propertyList":[
@@ -2045,5 +1994,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2060,5 +2009,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -2068,6 +2017,5 @@
 							],
 							"arrayCount":0,
-							"description":"é³æ¤ç¥ç¶æ
-",
+							"description":"音検知状態",
 							"fields":[
 								
@@ -2084,13 +2032,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é³æ¤ç¥æ,0x42=é³æ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é³æ¤ç¥ãã¼ã«ãæéè¨­å®å¤",
+							"valueDescription":"0x41=音検知有,0x42=音検知無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"音検知ホールド時間設定値",
 							"fields":[
 								
@@ -2107,5 +2055,5 @@
 							"type":"uint16_t",
 							"unitDescription":"10sec",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655,330ç§)"
+							"valueDescription":"0x0000～0xFFFD(0～655,330秒)"
 						}
 					]
@@ -2113,5 +2061,5 @@
 				{
 					"classCode":15,
-					"description":"æå½ã»ã³ãµ",
+					"description":"投函センサ",
 					"name":"MAILING_SENSOR_EOBJ",
 					"propertyList":[
@@ -2122,5 +2070,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2137,5 +2085,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -2145,6 +2093,5 @@
 							],
 							"arrayCount":0,
-							"description":"æå½æ¤åºç¶æ
-",
+							"description":"投函検出状態",
 							"fields":[
 								
@@ -2161,5 +2108,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æå½æ¤åºæ,0x42=æå½æ¤åºç¡"
+							"valueDescription":"0x41=投函検出有,0x42=投函検出無"
 						}
 					]
@@ -2167,5 +2114,5 @@
 				{
 					"classCode":16,
-					"description":"éè·ã»ã³ãµ",
+					"description":"重荷センサ",
 					"name":"WEIGHT_SENSOR_EOBJ",
 					"propertyList":[
@@ -2176,5 +2123,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2191,5 +2138,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -2199,6 +2146,5 @@
 							],
 							"arrayCount":0,
-							"description":"éè·æ¤ç¥ç¶æ
-",
+							"description":"重荷検知状態",
 							"fields":[
 								
@@ -2215,5 +2161,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éè·æ¤ç¥æ,0x42=éè·æ¤ç¥ç¡"
+							"valueDescription":"0x41=重荷検知有,0x42=重荷検知無"
 						}
 					]
@@ -2221,5 +2167,5 @@
 				{
 					"classCode":17,
-					"description":"æ¸©åº¦ã»ã³ãµ",
+					"description":"温度センサ",
 					"name":"TEMPERATURE_SENSOR_EOBJ",
 					"propertyList":[
@@ -2229,5 +2175,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¸©åº¦è¨æ¸¬å¤",
+							"description":"温度計測値",
 							"fields":[
 								
@@ -2243,6 +2189,6 @@
 							"size":2,
 							"type":"int16_t",
-							"unitDescription":"0.1â",
-							"valueDescription":"0xF554ï½0x7FFE(-273.2ï½3276.6â)"
+							"unitDescription":"0.1℃",
+							"valueDescription":"0xF554～0x7FFE(-273.2～3276.6℃)"
 						}
 					]
@@ -2250,5 +2196,5 @@
 				{
 					"classCode":18,
-					"description":"æ¹¿åº¦ã»ã³ãµ",
+					"description":"湿度センサ",
 					"name":"HUMIDITY_SENSOR_EOBJ",
 					"propertyList":[
@@ -2258,5 +2204,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤",
+							"description":"相対湿度計測値",
 							"fields":[
 								
@@ -2272,7 +2218,6 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
 						}
 					]
@@ -2280,5 +2225,5 @@
 				{
 					"classCode":19,
-					"description":"é¨ã»ã³ãµ",
+					"description":"雨センサ",
 					"name":"RAIN_SENSOR_EOBJ",
 					"propertyList":[
@@ -2289,5 +2234,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2304,5 +2249,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -2312,6 +2257,5 @@
 							],
 							"arrayCount":0,
-							"description":"é¨æ¤ç¥ç¶æ
-",
+							"description":"雨検知状態",
 							"fields":[
 								
@@ -2328,5 +2272,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é¨æ¤ç¥æ,0x42=é¨æ¤ç¥ç¡"
+							"valueDescription":"0x41=雨検知有,0x42=雨検知無"
 						}
 					]
@@ -2334,5 +2278,5 @@
 				{
 					"classCode":20,
-					"description":"æ°´ä½ã»ã³ãµ",
+					"description":"水位センサ",
 					"name":"WATER_LEVEL_SENSOR_EOBJ",
 					"propertyList":[
@@ -2342,6 +2286,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ°´ä½è¶
-éæ¤ç¥é¾å¤è¨­å®å¤",
+							"description":"水位超過検知閾値設定値",
 							"fields":[
 								
@@ -2358,5 +2301,5 @@
 							"type":"uint8_t",
 							"unitDescription":"cm",
-							"valueDescription":"0x00ï½0xFD(0ï½253)"
+							"valueDescription":"0x00～0xFD(0～253)"
 						},
 						{
@@ -2366,7 +2309,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ°´ä½è¶
-éæ¤ç¥ç¶æ
-",
+							"description":"水位超過検知状態",
 							"fields":[
 								
@@ -2383,14 +2324,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ°´ä½è¶
-éæ,0x42=æ°´ä½è¶
-éç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´ä½è¨æ¸¬å¤",
+							"valueDescription":"0x41=水位超過有,0x42=水位超過無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水位計測値",
 							"fields":[
 								
@@ -2407,5 +2346,5 @@
 							"type":"uint8_t",
 							"unitDescription":"cm",
-							"valueDescription":"0x00ï½0xFD(0ï½253)"
+							"valueDescription":"0x00～0xFD(0～253)"
 						}
 					]
@@ -2413,5 +2352,5 @@
 				{
 					"classCode":21,
-					"description":"é¢¨åæ°´ä½ã»ã³ãµ",
+					"description":"風呂水位センサ",
 					"name":"BATH_WATER_LEVEL_SENSOR_EOBJ",
 					"propertyList":[
@@ -2421,6 +2360,5 @@
 							],
 							"arrayCount":0,
-							"description":"é¢¨åæ°´ä½è¶
-éæ¤ç¥é¾å¤è¨­å®å¤",
+							"description":"風呂水位超過検知閾値設定値",
 							"fields":[
 								
@@ -2437,5 +2375,5 @@
 							"type":"uint8_t",
 							"unitDescription":"cm",
-							"valueDescription":"0x00ï½0xFD(0ï½253)"
+							"valueDescription":"0x00～0xFD(0～253)"
 						},
 						{
@@ -2445,7 +2383,5 @@
 							],
 							"arrayCount":0,
-							"description":"é¢¨åæ°´ä½è¶
-éæ¤ç¥ç¶æ
-",
+							"description":"風呂水位超過検知状態",
 							"fields":[
 								
@@ -2462,14 +2398,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ°´ä½è¶
-éæ,0x42=æ°´ä½è¶
-éç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ°´ä½è¨æ¸¬å¤",
+							"valueDescription":"0x41=水位超過有,0x42=水位超過無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂水位計測値",
 							"fields":[
 								
@@ -2486,5 +2420,5 @@
 							"type":"uint8_t",
 							"unitDescription":"cm",
-							"valueDescription":"0x00ï½0xFD(0ï½253)"
+							"valueDescription":"0x00～0xFD(0～253)"
 						}
 					]
@@ -2492,5 +2426,5 @@
 				{
 					"classCode":22,
-					"description":"é¢¨åæ²¸ãä¸ããã»ã³ãµ",
+					"description":"風呂沸き上がりセンサ",
 					"name":"BATH_HEATING_STATUS_SENSOR_EOBJ",
 					"propertyList":[
@@ -2501,5 +2435,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2516,5 +2450,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -2524,6 +2458,5 @@
 							],
 							"arrayCount":0,
-							"description":"é¢¨åæ²¸ãä¸ããæ¤ç¥ç¶æ
-",
+							"description":"風呂沸き上がり検知状態",
 							"fields":[
 								
@@ -2540,5 +2473,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é¢¨åæ²¸ãä¸ããæ,0x42=é¢¨åæ²¸ãä¸ããç¡"
+							"valueDescription":"0x41=風呂沸き上がり有,0x42=風呂沸き上がり無"
 						}
 					]
@@ -2546,5 +2479,5 @@
 				{
 					"classCode":23,
-					"description":"æ°´æ¼ãã»ã³ãµ",
+					"description":"水漏れセンサ",
 					"name":"WATER_LEAK_SENSOR_EOBJ",
 					"propertyList":[
@@ -2555,5 +2488,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2570,5 +2503,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -2578,6 +2511,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ°´æ¼ãæ¤ç¥ç¶æ
-",
+							"description":"水漏れ検知状態",
 							"fields":[
 								
@@ -2594,5 +2526,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ°´æ¼ãæ¤ç¥æ,0x42=æ°´æ¼ãæ¤ç¥ç¡"
+							"valueDescription":"0x41=水漏れ検知有,0x42=水漏れ検知無"
 						}
 					]
@@ -2600,5 +2532,5 @@
 				{
 					"classCode":24,
-					"description":"æ°´ããµãã»ã³ãµ",
+					"description":"水あふれセンサ",
 					"name":"WATER_OVERFLOW_SENSOR_EOBJ",
 					"propertyList":[
@@ -2609,5 +2541,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2624,5 +2556,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						},
 						{
@@ -2632,6 +2564,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ°´ããµãæ¤ç¥ç¶æ
-",
+							"description":"水あふれ検知状態",
 							"fields":[
 								
@@ -2648,5 +2579,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ°´ããµãæ¤ç¥æ,0x42=æ°´ããµãæ¤ç¥ç¡"
+							"valueDescription":"0x41=水あふれ検知有,0x42=水あふれ検知無"
 						}
 					]
@@ -2654,5 +2585,5 @@
 				{
 					"classCode":25,
-					"description":"ç«ç½ã»ã³ãµ",
+					"description":"火災センサ",
 					"name":"FIRE_SENSOR_EOBJ",
 					"propertyList":[
@@ -2663,5 +2594,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2678,5 +2609,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -2686,6 +2617,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç«ç½çºçæ¤ç¥ç¶æ
-",
+							"description":"火災発生検知状態",
 							"fields":[
 								
@@ -2702,5 +2632,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç«ç½çºçæ¤ç¥æ,0x42=ç«ç½çºçæ¤ç¥ç¡"
+							"valueDescription":"0x41=火災発生検知有,0x42=火災発生検知無"
 						},
 						{
@@ -2709,6 +2639,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç«ç½çºçæ¤ç¥ç¶æ
-ãªã»ããè¨­å®",
+							"description":"火災発生検知状態リセット設定",
 							"fields":[
 								
@@ -2725,5 +2654,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						}
 					]
@@ -2731,6 +2660,5 @@
 				{
 					"classCode":26,
-					"description":"ã¿ãã³ç
-ã»ã³ãµ",
+					"description":"タバコ煙センサ",
 					"name":"CIGARETTE_SMOKE_SENSOR_EOBJ",
 					"propertyList":[
@@ -2741,5 +2669,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2756,5 +2684,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -2764,7 +2692,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¶æ
-",
+							"description":"煙（タバコ）検知状態",
 							"fields":[
 								
@@ -2781,7 +2707,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç
-ï¼ã¿ãã³ï¼æ¤ç¥æ,0x42=ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¡"
+							"valueDescription":"0x41=煙（タバコ）検知有,0x42=煙（タバコ）検知無"
 						}
 					]
@@ -2789,5 +2713,5 @@
 				{
 					"classCode":27,
-					"description":"CO2ã»ã³ãµ",
+					"description":"CO2センサ",
 					"name":"CO2_SENSOR_EOBJ",
 					"propertyList":[
@@ -2797,5 +2721,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼£ï¼¯ï¼æ¿åº¦è¨æ¸¬å¤",
+							"description":"ＣＯ２濃度計測値",
 							"fields":[
 								
@@ -2812,5 +2736,5 @@
 							"type":"uint16_t",
 							"unitDescription":"ppm",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
 						}
 					]
@@ -2818,5 +2742,5 @@
 				{
 					"classCode":28,
-					"description":"ã¬ã¹ã»ã³ãµ",
+					"description":"ガスセンサ",
 					"name":"GAS_SENSOR_EOBJ",
 					"propertyList":[
@@ -2827,5 +2751,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2842,5 +2766,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -2850,6 +2774,5 @@
 							],
 							"arrayCount":0,
-							"description":"ã¬ã¹æ¤ç¥ç¶æ
-",
+							"description":"ガス検知状態",
 							"fields":[
 								
@@ -2866,12 +2789,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã¬ã¹æ¤ç¥æ,0x42=ã¬ã¹æ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã¬ã¹æ¿åº¦è¨æ¸¬å¤",
+							"valueDescription":"0x41=ガス検知有,0x42=ガス検知無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ガス濃度計測値",
 							"fields":[
 								
@@ -2888,5 +2811,5 @@
 							"type":"uint16_t",
 							"unitDescription":"ppm",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
 						}
 					]
@@ -2894,5 +2817,5 @@
 				{
 					"classCode":29,
-					"description":"VOCã»ã³ãµ",
+					"description":"VOCセンサ",
 					"name":"VOC_SENSOR_EOBJ",
 					"propertyList":[
@@ -2903,5 +2826,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -2918,5 +2841,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -2926,6 +2849,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¶ï¼¯ï¼£æ¤ç¥ç¶æ
-",
+							"description":"ＶＯＣ検知状態",
 							"fields":[
 								
@@ -2942,12 +2864,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=VOCæ¤ç¥æ,0x42=VOCæ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¶ï¼¯ï¼£æ¿åº¦è¨æ¸¬å¤",
+							"valueDescription":"0x41=VOC検知有,0x42=VOC検知無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＶＯＣ濃度計測値",
 							"fields":[
 								
@@ -2964,5 +2886,5 @@
 							"type":"uint16_t",
 							"unitDescription":"ppm",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
 						}
 					]
@@ -2970,5 +2892,5 @@
 				{
 					"classCode":30,
-					"description":"å·®å§ã»ã³ãµ",
+					"description":"差圧センサ",
 					"name":"DIFFERENTIAL_PRESSURE_SENSOR_EOBJ",
 					"propertyList":[
@@ -2978,5 +2900,5 @@
 							],
 							"arrayCount":0,
-							"description":"å·®å§è¨æ¸¬å¤",
+							"description":"差圧計測値",
 							"fields":[
 								
@@ -2993,5 +2915,5 @@
 							"type":"int16_t",
 							"unitDescription":"Pa",
-							"valueDescription":"0x8001ï½0x7FFE(-32767ï½32766)"
+							"valueDescription":"0x8001～0x7FFE(-32767～32766)"
 						}
 					]
@@ -2999,5 +2921,5 @@
 				{
 					"classCode":31,
-					"description":"é¢¨éã»ã³ãµ",
+					"description":"風速センサ",
 					"name":"AIR_SPEED_SENSOR_EOBJ",
 					"propertyList":[
@@ -3007,5 +2929,5 @@
 							],
 							"arrayCount":0,
-							"description":"é¢¨éè¨æ¸¬å¤",
+							"description":"風速計測値",
 							"fields":[
 								
@@ -3022,12 +2944,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.01m\/sec",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655.33m\/sec)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨å",
+							"valueDescription":"0x0000～0xFFFD(0～655.33m\/sec)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風向",
 							"fields":[
 								
@@ -3044,5 +2966,5 @@
 							"type":"uint16_t",
 							"unitDescription":"degree",
-							"valueDescription":"0x0000ï½0x0168(0ï½360degree)"
+							"valueDescription":"0x0000～0x0168(0～360degree)"
 						}
 					]
@@ -3050,5 +2972,5 @@
 				{
 					"classCode":32,
-					"description":"è­ãã»ã³ãµ",
+					"description":"臭いセンサ",
 					"name":"ODOR_SENSOR_EOBJ",
 					"propertyList":[
@@ -3059,5 +2981,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -3074,13 +2996,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è­ãæ¤ç¥ç¶æ
-",
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"臭い検知状態",
 							"fields":[
 								
@@ -3097,12 +3018,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=è­ãæ¤ç¥æ,0x42=è­ãæ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è­ãè¨æ¸¬å¤",
+							"valueDescription":"0x41=臭い検知有,0x42=臭い検知無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"臭い計測値",
 							"fields":[
 								
@@ -3119,5 +3040,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00ï½0xFD(0ï½253)"
+							"valueDescription":"0x00～0xFD(0～253)"
 						}
 					]
@@ -3125,5 +3046,5 @@
 				{
 					"classCode":33,
-					"description":"çã»ã³ãµ",
+					"description":"炎センサ",
 					"name":"FLAME_SENSOR_EOBJ",
 					"propertyList":[
@@ -3134,5 +3055,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -3149,5 +3070,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -3157,6 +3078,5 @@
 							],
 							"arrayCount":0,
-							"description":"çæ¤ç¥ç¶æ
-",
+							"description":"炎検知状態",
 							"fields":[
 								
@@ -3173,5 +3093,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çæ¤ç¥æ,0x42=çæ¤ç¥ç¡"
+							"valueDescription":"0x41=炎検知有,0x42=炎検知無"
 						},
 						{
@@ -3180,6 +3100,5 @@
 							],
 							"arrayCount":0,
-							"description":"çæ¤ç¥ç¶æ
-ãªã»ããè¨­å®",
+							"description":"炎検知状態リセット設定",
 							"fields":[
 								
@@ -3196,5 +3115,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						}
 					]
@@ -3202,5 +3121,5 @@
 				{
 					"classCode":34,
-					"description":"é»åéã»ã³ãµ",
+					"description":"電力量センサ",
 					"name":"ELECTRIC_ENERGY_SENSOR_EOBJ",
 					"propertyList":[
@@ -3210,5 +3129,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤",
+							"description":"積算電力量計測値",
 							"fields":[
 								
@@ -3225,12 +3144,12 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¸­å®¹éã»ã³ãµç¬æé»åå¤è¨æ¸¬å¤",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"中容量センサ瞬時電力値計測値",
 							"fields":[
 								
@@ -3247,12 +3166,12 @@
 							"type":"int32_t",
 							"unitDescription":"W",
-							"valueDescription":"0xC4653601ï½0x3B9AC9FF(-999,999,999ï½999,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å°å®¹éã»ã³ãµç¬æé»åå¤è¨æ¸¬å¤",
+							"valueDescription":"0xC4653601～0x3B9AC9FF(-999,999,999～999,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"小容量センサ瞬時電力値計測値",
 							"fields":[
 								
@@ -3269,12 +3188,12 @@
 							"type":"int16_t",
 							"unitDescription":"0.1W",
-							"valueDescription":"0x8001ï½0x7FFE(-3276.7ï½3276.6)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¤§å®¹éã»ã³ãµç¬æé»åå¤è¨æ¸¬å¤",
+							"valueDescription":"0x8001～0x7FFE(-3276.7～3276.6)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"大容量センサ瞬時電力値計測値",
 							"fields":[
 								
@@ -3291,5 +3210,5 @@
 							"type":"int16_t",
 							"unitDescription":"0.1kW",
-							"valueDescription":"0x8001ï½0x7FFE(-3276.7ï½3276.6)"
+							"valueDescription":"0x8001～0x7FFE(-3276.7～3276.6)"
 						},
 						{
@@ -3298,6 +3217,5 @@
 							],
 							"arrayCount":48,
-							"description":"ç©ç®é»åéè¨æ¸¬å±¥æ­´æ
-å ±",
+							"description":"積算電力量計測履歴情報",
 							"fields":[
 								
@@ -3314,12 +3232,12 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®å¹é»å§å¤è¨æ¸¬å¤",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"実効電圧値計測値",
 							"fields":[
 								
@@ -3336,5 +3254,5 @@
 							"type":"uint16_t",
 							"unitDescription":"V",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533V)"
+							"valueDescription":"0x0000～0xFFFD(0～65533V)"
 						}
 					]
@@ -3342,5 +3260,5 @@
 				{
 					"classCode":35,
-					"description":"é»æµå¤ã»ã³ãµ",
+					"description":"電流値センサ",
 					"name":"CURRENT_VALUE_SENSOR_EOBJ",
 					"propertyList":[
@@ -3350,5 +3268,5 @@
 							],
 							"arrayCount":0,
-							"description":"é»æµå¤è¨æ¸¬å¤ï¼",
+							"description":"電流値計測値１",
 							"fields":[
 								
@@ -3365,12 +3283,12 @@
 							"type":"uint32_t",
 							"unitDescription":"mA",
-							"valueDescription":"0x00000000ï½0xFFFFFFFD(0ï½4,294,967,293mA)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è¨æ¸¬å¯¾è±¡å®æ ¼é»å§å¤",
+							"valueDescription":"0x00000000～0xFFFFFFFD(0～4,294,967,293mA)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"計測対象定格電圧値",
 							"fields":[
 								
@@ -3387,12 +3305,12 @@
 							"type":"uint16_t",
 							"unitDescription":"V",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533V)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é»æµå¤è¨æ¸¬å¤ï¼",
+							"valueDescription":"0x0000～0xFFFD(0～65533V)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"電流値計測値２",
 							"fields":[
 								
@@ -3409,5 +3327,5 @@
 							"type":"int32_t",
 							"unitDescription":"mA",
-							"valueDescription":"0x80000001ï½0x7FFFFFFE(-2,147,483,647ï½2,147,483,646mA)"
+							"valueDescription":"0x80000001～0x7FFFFFFE(-2,147,483,647～2,147,483,646mA)"
 						}
 					]
@@ -3415,6 +3333,5 @@
 				{
 					"classCode":36,
-					"description":"æ¼å
-ã»ã³ãµ",
+					"description":"昼光センサ",
 					"name":"DAYLIGHT_SENSOR_EOBJ",
 					"propertyList":[
@@ -3424,5 +3341,5 @@
 				{
 					"classCode":37,
-					"description":"æ°´æµéã»ã³ãµ",
+					"description":"水流量センサ",
 					"name":"WATER_FLOW_RATE_SENSOR_EOBJ",
 					"propertyList":[
@@ -3432,5 +3349,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®æµéè¨æ¸¬å¤",
+							"description":"積算流量計測値",
 							"fields":[
 								
@@ -3446,13 +3363,13 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"cã¥",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æµéè¨æ¸¬å¤",
+							"unitDescription":"c㎥",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"流量計測値",
 							"fields":[
 								
@@ -3468,6 +3385,6 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"cã¥\/min",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999)"
+							"unitDescription":"c㎥\/min",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999)"
 						}
 					]
@@ -3475,5 +3392,5 @@
 				{
 					"classCode":38,
-					"description":"å¾®åã»ã³ãµ",
+					"description":"微動センサ",
 					"name":"MICROMOTION_SENSOR_EOBJ",
 					"propertyList":[
@@ -3484,5 +3401,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -3499,5 +3416,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -3507,6 +3424,5 @@
 							],
 							"arrayCount":0,
-							"description":"å¾®åæ¤ç¥ç¶æ
-",
+							"description":"微動検知状態",
 							"fields":[
 								
@@ -3523,13 +3439,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å¾®åæ¤ç¥æ,0x42=å¾®åæ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¾®åæ¤ç¥ã«ã¦ã³ãæ°è¨­å®",
+							"valueDescription":"0x41=微動検知有,0x42=微動検知無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"微動検知カウント数設定",
 							"fields":[
 								
@@ -3546,13 +3462,13 @@
 							"type":"uint16_t",
 							"unitDescription":null,
-							"valueDescription":"0x0000ï½0xFFFE(0ï½65534)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãµã³ããªã³ã°åæ°è¨­å®",
+							"valueDescription":"0x0000～0xFFFE(0～65534)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"サンプリング回数設定",
 							"fields":[
 								
@@ -3569,13 +3485,13 @@
 							"type":"uint16_t",
 							"unitDescription":null,
-							"valueDescription":"0x0000ï½0xFFFE(0ï½65534)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãµã³ããªã³ã°æéè¨­å®å¤",
+							"valueDescription":"0x0000～0xFFFE(0～65534)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"サンプリング時間設定値",
 							"fields":[
 								
@@ -3592,5 +3508,5 @@
 							"type":"uint16_t",
 							"unitDescription":"msec",
-							"valueDescription":"0x0000ï½0xFFFE(0ï½65534)"
+							"valueDescription":"0x0000～0xFFFE(0～65534)"
 						}
 					]
@@ -3598,5 +3514,5 @@
 				{
 					"classCode":39,
-					"description":"ééã»ã³ãµ",
+					"description":"通過センサ",
 					"name":"PASSAGE_SENSOR_EOBJ",
 					"propertyList":[
@@ -3607,5 +3523,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -3622,13 +3538,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ééæ¤ç¥ãã¼ã«ãæéè¨­å®å¤",
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"通過検知ホールド時間設定値",
 							"fields":[
 								
@@ -3645,5 +3561,5 @@
 							"type":"uint16_t",
 							"unitDescription":"ms",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533ms)"
+							"valueDescription":"0x0000～0xFFFD(0～65533ms)"
 						},
 						{
@@ -3653,6 +3569,5 @@
 							],
 							"arrayCount":0,
-							"description":"ééæ¤ç¥æ¹åç¶æ
-",
+							"description":"通過検知方向状態",
 							"fields":[
 								
@@ -3669,5 +3584,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=ééç¡ã,0x31ï½0x38=ééæ¹å,0x39=ééãæ¤ç¥ãããå ´æãç¹å®ã§ããªãå ´åããããã¯ãééæ¹åãæ¤ç¥ã§ããªãã»ã³ãµã«ãããééããã"
+							"valueDescription":"0x30=通過無し,0x31～0x38=通過方向,0x39=通過を検知したが場所を特定できない場合、もしくは、通過方向を検知できないセンサにおける通過あり。"
 						}
 					]
@@ -3675,5 +3590,5 @@
 				{
 					"classCode":40,
-					"description":"å¨åºã»ã³ãµ",
+					"description":"在床センサ",
 					"name":"BED_PRESENCE_SENSOR_EOBJ",
 					"propertyList":[
@@ -3684,5 +3599,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®",
+							"description":"検知閾値レベル設定",
 							"fields":[
 								
@@ -3699,5 +3614,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -3707,6 +3622,5 @@
 							],
 							"arrayCount":0,
-							"description":"å¨åºæ¤ç¥ç¶æ
-",
+							"description":"在床検知状態",
 							"fields":[
 								
@@ -3723,5 +3637,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å¨åºæ¤ç¥æ,0x42=å¨åºæ¤ç¥ç¡"
+							"valueDescription":"0x41=在床検知有,0x42=在床検知無"
 						}
 					]
@@ -3729,5 +3643,5 @@
 				{
 					"classCode":41,
-					"description":"ééã»ã³ãµ",
+					"description":"開閉センサ",
 					"name":"OPEN_CLOSE_SENSOR_EOBJ",
 					"propertyList":[
@@ -3737,6 +3651,5 @@
 							],
 							"arrayCount":0,
-							"description":"éåº¦æ¤ç¥ç¶æ
-ï¼",
+							"description":"開度検知状態１",
 							"fields":[
 								
@@ -3753,13 +3666,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=éæ¤ç¥æã,0x31ï½0x38=éåº¦ã¬ãã«,0x39=éæ¤ç¥æãéåº¦ä¸æ"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«",
+							"valueDescription":"0x30=閉検知有り,0x31～0x38=開度レベル,0x39=開検知有り開度不明"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"検知閾値レベル",
 							"fields":[
 								
@@ -3776,5 +3689,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -3784,6 +3697,5 @@
 							],
 							"arrayCount":0,
-							"description":"éåº¦æ¤ç¥ç¶æ
-ï¼",
+							"description":"開度検知状態２",
 							"fields":[
 								
@@ -3800,5 +3712,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éæ¤ç¥æ,0x42=éæ¤ç¥æ"
+							"valueDescription":"0x41=開検知有,0x42=閉検知有"
 						}
 					]
@@ -3806,5 +3718,5 @@
 				{
 					"classCode":42,
-					"description":"æ´»åéã»ã³ãµ",
+					"description":"活動量センサ",
 					"name":"ACTIVITY_AMOUNT_SENSOR_EOBJ",
 					"propertyList":[
@@ -3814,5 +3726,5 @@
 							],
 							"arrayCount":128,
-							"description":"æ´»åéã¬ãã«ï¼",
+							"description":"活動量レベル１",
 							"fields":[
 								
@@ -3829,12 +3741,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"äººä½ï¼©ï¼¤æ°æå¤§å¤",
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"人体ＩＤ数最大値",
 							"fields":[
 								
@@ -3851,12 +3763,12 @@
 							"type":"uint16_t",
 							"unitDescription":null,
-							"valueDescription":"0x0001ï½0x0080(1ï½128)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´»åéã¬ãã«ï¼",
+							"valueDescription":"0x0001～0x0080(1～128)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"活動量レベル２",
 							"fields":[
 								
@@ -3873,5 +3785,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -3880,6 +3792,5 @@
 							],
 							"arrayCount":16,
-							"description":"å­å¨äººä½æ
-å ±",
+							"description":"存在人体情報",
 							"fields":[
 								
@@ -3896,6 +3807,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"(è©³ç´°ã¯ãèª¬æ(5)åç
-§)"
+							"valueDescription":"(詳細は、説明(5)参照)"
 						}
 					]
@@ -3903,5 +3813,5 @@
 				{
 					"classCode":43,
-					"description":"äººä½ä½ç½®ã»ã³ãµ",
+					"description":"人体位置センサ",
 					"name":"HUMAN_BODY_LOCATION_SENSOR_EOBJ",
 					"propertyList":[
@@ -3911,5 +3821,5 @@
 							],
 							"arrayCount":128,
-							"description":"äººä½æ¤ç¥ä½ç½®ï¼",
+							"description":"人体検知位置１",
 							"fields":[
 								
@@ -3933,5 +3843,5 @@
 							],
 							"arrayCount":0,
-							"description":"äººä½ï¼©ï¼¤æ°æå¤§å¤",
+							"description":"人体ＩＤ数最大値",
 							"fields":[
 								
@@ -3948,16 +3858,16 @@
 							"type":"uint16_t",
 							"unitDescription":null,
-							"valueDescription":"0x0001ï½0x0080(1ï½128)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"äººä½æ¤ç¥ä½ç½®ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"Xåº§æ¨",
+							"valueDescription":"0x0001～0x0080(1～128)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"人体検知位置２",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"X座標",
 									"fields":[
 										
@@ -3974,5 +3884,5 @@
 								{
 									"arrayCount":0,
-									"description":"Yåº§æ¨",
+									"description":"Y座標",
 									"fields":[
 										
@@ -3989,5 +3899,5 @@
 								{
 									"arrayCount":0,
-									"description":"Zåº§æ¨",
+									"description":"Z座標",
 									"fields":[
 										
@@ -4021,6 +3931,5 @@
 							],
 							"arrayCount":16,
-							"description":"å­å¨äººä½æ
-å ±",
+							"description":"存在人体情報",
 							"fields":[
 								
@@ -4037,6 +3946,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"(è©³ç´°ã¯ãèª¬æ(5)åç
-§)"
+							"valueDescription":"(詳細は、説明(5)参照)"
 						}
 					]
@@ -4044,5 +3952,5 @@
 				{
 					"classCode":44,
-					"description":"éªã»ã³ãµ",
+					"description":"雪センサ",
 					"name":"SNOW_SENSOR_EOBJ",
 					"propertyList":[
@@ -4053,5 +3961,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤ç¥é¾å¤ã¬ãã«",
+							"description":"検知閾値レベル",
 							"fields":[
 								
@@ -4068,5 +3976,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"
+							"valueDescription":"0x31～0x38(レベル1～レベル8)"
 						},
 						{
@@ -4076,6 +3984,5 @@
 							],
 							"arrayCount":0,
-							"description":"éªæ¤ç¥ç¶æ
-",
+							"description":"雪検知状態",
 							"fields":[
 								
@@ -4092,5 +3999,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éªæ¤ç¥æ,0x42=éªæ¤ç¥ç¡"
+							"valueDescription":"0x41=雪検知有,0x42=雪検知無"
 						}
 					]
@@ -4100,10 +4007,10 @@
 		{
 			"classGroupCode":1,
-			"description":"ç©ºèª¿é¢é£æ©å¨",
+			"description":"空調関連機器",
 			"define":"X1_AIR_CONDITIONER",
 			"classList":[
 				{
 					"classCode":48,
-					"description":"å®¶åº­ç¨ã¨ã¢ã³ã³",
+					"description":"家庭用エアコン",
 					"name":"HOME_AIR_CONDITIONER_EOBJ",
 					"propertyList":[
@@ -4115,5 +4022,5 @@
 							],
 							"arrayCount":0,
-							"description":"éè»¢ã¢ã¼ãè¨­å®",
+							"description":"運転モード設定",
 							"fields":[
 								
@@ -4131,13 +4038,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x45=éé¢¨,0x40=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¸©åº¦èªåè¨­å®",
+							"valueDescription":"0x41=自動,0x42=冷房,0x43=暖房,0x44=除湿,0x45=送風,0x40=その他"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"温度自動設定",
 							"fields":[
 								
@@ -4154,13 +4061,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=AUTO,0x42=éAUTO"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¥éåä½ã¢ã¼ãè¨­å®",
+							"valueDescription":"0x41=AUTO,0x42=非AUTO"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"急速動作モード設定",
 							"fields":[
 								
@@ -4177,13 +4084,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éå¸¸éè»¢,0x42=æ¥é,0x43=éé³"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¸©åº¦è¨­å®å¤",
+							"valueDescription":"0x41=通常運転,0x42=急速,0x43=静音"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"温度設定値",
 							"fields":[
 								
@@ -4200,14 +4107,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x32(0ï½50â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¤æ¹¿ã¢ã¼ãæç¸å¯¾æ¹¿åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x32(0～50℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"除湿モード時相対湿度設定値",
 							"fields":[
 								
@@ -4223,15 +4130,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·æ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷房モード時温度設定値",
 							"fields":[
 								
@@ -4247,14 +4153,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x32(0ï½50â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x32(0～50℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"暖房モード時温度設定値",
 							"fields":[
 								
@@ -4270,14 +4176,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x32(0ï½50â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¤æ¹¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x32(0～50℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"除湿モード時温度設定値",
 							"fields":[
 								
@@ -4293,6 +4199,6 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x32(0ï½50â)"
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x32(0～50℃)"
 						},
 						{
@@ -4301,5 +4207,5 @@
 							],
 							"arrayCount":4,
-							"description":"å®æ ¼æ¶è²»é»åå¤",
+							"description":"定格消費電力値",
 							"fields":[
 								
@@ -4316,12 +4222,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·æ¿ï¼ææ¿ï¼é¤æ¹¿ï¼éé¢¨æ¶è²»é»æµè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷房：暖房：除湿：送風消費電流計測値",
 							"fields":[
 								
@@ -4338,13 +4244,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½6553.3A)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～6553.3A)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内相対湿度計測値",
 							"fields":[
 								
@@ -4360,15 +4265,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内温度計測値",
 							"fields":[
 								
@@ -4384,13 +4287,13 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7D(-127ï½125â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã¦ã¼ã¶ãªã¢ã³ã³æ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7D(-127～125℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ユーザリモコン温度設定値",
 							"fields":[
 								
@@ -4406,13 +4309,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x32(0ï½50â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¹ãåºãæ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x32(0～50℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"吹き出し温度計測値",
 							"fields":[
 								
@@ -4428,13 +4331,13 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7D(-127ï½125â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¤æ°æ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7D(-127～125℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"外気温度計測値",
 							"fields":[
 								
@@ -4450,14 +4353,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7D(-127ï½125â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¸å¯¾æ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7D(-127～125℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"相対温度設定値",
 							"fields":[
 								
@@ -4473,14 +4376,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"0.1â",
-							"valueDescription":"0x81ï½0x7D(-12.7ï½12.5â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨éè¨­å®",
+							"unitDescription":"0.1℃",
+							"valueDescription":"0x81～0x7D(-12.7～12.5℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風量設定",
 							"fields":[
 								
@@ -4497,13 +4400,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é¢¨éèªåè¨­å®,0x31ï½0x38=é¢¨éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åèªåè¨­å®",
+							"valueDescription":"0x41=風量自動設定,0x31～0x38=風量レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風向自動設定",
 							"fields":[
 								
@@ -4520,13 +4423,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=AUTO,0x42=éAUTO,0x43=ä¸ä¸AUTO,0x44=å·¦å³AUTO"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åã¹ã¤ã³ã°è¨­å®",
+							"valueDescription":"0x41=AUTO,0x42=非AUTO,0x43=上下AUTO,0x44=左右AUTO"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風向スイング設定",
 							"fields":[
 								
@@ -4543,13 +4446,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31=é¢¨åã¹ã¤ã³ã°OFF,0x41=ä¸ä¸,0x42=å·¦å³,0x43=ä¸ä¸å·¦å³"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åä¸ä¸è¨­å®",
+							"valueDescription":"0x31=風向スイングOFF,0x41=上下,0x42=左右,0x43=上下左右"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風向上下設定",
 							"fields":[
 								
@@ -4566,13 +4469,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ä¸,0x42=ä¸,0x43=ä¸­å¤®,0x44=ä¸ä¸­,0x45=ä¸ä¸­"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åå·¦å³è¨­å®",
+							"valueDescription":"0x41=上,0x42=下,0x43=中央,0x44=上中,0x45=下中"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風向左右設定",
 							"fields":[
 								
@@ -4589,13 +4492,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å³,0x42=å·¦,0x43=ä¸­å¤®,0x44=å·¦å³,ä»ããã­ããã£è©³ç´°èª¬æã®è¡¨ã«è¨è¼ã®ã³ã¼ãã§ç¤ºãã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¹æ®ç¶æ
-",
+							"valueDescription":"0x41=右,0x42=左,0x43=中央,0x44=左右,他、プロパティ詳細説明の表に記載のコードで示す。"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"特殊状態",
 							"fields":[
 								
@@ -4612,18 +4514,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=éå¸¸ç¶æ
-,0x41=é¤éç¶æ
-,0x42=äºç±ç¶æ
-,0x43=æç±ç¶æ
-"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éåªå
-ç¶æ
-",
+							"valueDescription":"0x40=通常状態,0x41=除霜状態,0x42=予熱状態,0x43=排熱状態"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"非優先状態",
 							"fields":[
 								
@@ -4640,16 +4536,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=éå¸¸ç¶æ
-,0x41=éåªå
-ç¶æ
-"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ°ã¢ã¼ãè¨­å®",
+							"valueDescription":"0x40=通常状態,0x41=非優先状態"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"換気モード設定",
 							"fields":[
 								
@@ -4666,13 +4559,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ææ°ONï¼ææ°æ¹åï¼,0x42=ææ°OFF,0x43=ææ°ONï¼å¸æ°æ¹åï¼"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å æ¹¿ã¢ã¼ãè¨­å®",
+							"valueDescription":"0x41=換気ON（排気方向）,0x42=換気OFF,0x43=換気ON（吸気方向）"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"加湿モード設定",
 							"fields":[
 								
@@ -4689,13 +4582,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å æ¹¿ON,0x42=OFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ°é¢¨éè¨­å®",
+							"valueDescription":"0x41=加湿ON,0x42=OFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"換気風量設定",
 							"fields":[
 								
@@ -4712,13 +4605,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ææ°é¢¨éèªå,0x31ï½0x38=ææ°é¢¨éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å æ¹¿éè¨­å®",
+							"valueDescription":"0x41=換気風量自動,0x31～0x38=換気風量レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"加湿量設定",
 							"fields":[
 								
@@ -4735,13 +4628,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å æ¹¿éèªå,0x31ï½0x38=å æ¹¿éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ­è¼ç©ºæ°æ¸
-æµæ¹æ³",
+							"valueDescription":"0x41=加湿量自動,0x31～0x38=加湿量レベル"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"搭載空気清浄方法",
 							"fields":[
 								
@@ -4758,22 +4650,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"[0]é»æ°éå¡µæ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼\u000d\u000a[1]ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ºæ°æ¸
-æµæ©è½ã¢ã¼ãè¨­å®",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»æ°éå¡µæ¹å¼ã«ããç©ºæ°æ¸
-æµæ©è½ã®è¨­å®ç¶æ
-",
+							"valueDescription":"[0]電気集塵方式搭載情報:0=非搭載,1=搭載\u000d\u000a[1]クラスタイオン方式搭載情報:0=非搭載,1=搭載"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"空気清浄機能モード設定",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電気集塵方式による空気清浄機能の設定状態",
 									"fields":[
 										
@@ -4790,7 +4677,5 @@
 								{
 									"arrayCount":0,
-									"description":"ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼ã«ããç©ºæ°æ¸
-æµæ©è½ã®è¨­å®ç¶æ
-",
+									"description":"クラスタイオン方式による空気清浄機能の設定状態",
 									"fields":[
 										
@@ -4839,5 +4724,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ­è¼ãªãã¬ãã·ã¥æ¹æ³",
+							"description":"搭載リフレッシュ方法",
 							"fields":[
 								
@@ -4854,20 +4739,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"[0]ãã¤ãã¹ã¤ãªã³æ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼\u000d\u000a[1]ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãªãã¬ãã·ã¥æ©è½ã¢ã¼ãè¨­å®",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ãã¤ãã¹ã¤ãªã³æ¹å¼ã«ãããªãã¬ãã·ã¥æ©è½ã®è¨­å®ç¶æ
-",
+							"valueDescription":"[0]マイナスイオン方式搭載情報:0=非搭載,1=搭載\u000d\u000a[1]クラスタイオン方式搭載情報:0=非搭載,1=搭載"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"リフレッシュ機能モード設定",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"マイナスイオン方式によるリフレッシュ機能の設定状態",
 									"fields":[
 										
@@ -4884,6 +4766,5 @@
 								{
 									"arrayCount":0,
-									"description":"ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼ã«ãããªãã¬ãã·ã¥æ©è½ã®è¨­å®ç¶æ
-",
+									"description":"クラスタイオン方式によるリフレッシュ機能の設定状態",
 									"fields":[
 										
@@ -4932,5 +4813,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ­è¼èªå·±æ´æµæ¹æ³",
+							"description":"搭載自己洗浄方法",
 							"fields":[
 								
@@ -4947,20 +4828,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"[0]ãªã¾ã³æ´æµæ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼\u000d\u000a[1]ä¹¾ç¥æ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èªå·±æ´æµæ©è½ã¢ã¼ãè¨­å®",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ãªã¾ã³æ´æµæ¹å¼ã«ããèªå·±æ´æµæ©è½ã®è¨­å®ç¶æ
-",
+							"valueDescription":"[0]オゾン洗浄方式搭載情報:0=非搭載,1=搭載\u000d\u000a[1]乾燥方式搭載情報:0=非搭載,1=搭載"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"自己洗浄機能モード設定",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"オゾン洗浄方式による自己洗浄機能の設定状態",
 									"fields":[
 										
@@ -4977,6 +4855,5 @@
 								{
 									"arrayCount":0,
-									"description":"ä¹¾ç¥æ¹å¼ã«ããèªå·±æ´æµæ©è½ã®è¨­å®ç¶æ
-",
+									"description":"乾燥方式による自己洗浄機能の設定状態",
 									"fields":[
 										
@@ -5026,5 +4903,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç¹å¥éè»¢ã¢ã¼ãè¨­å®",
+							"description":"特別運転モード設定",
 							"fields":[
 								
@@ -5041,14 +4918,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=è¨­å®ãªã,0x41=è¡£é¡ä¹¾ç¥,0x42=çµé²æå¶,0x43=ããã«ãæå¶,0x44=å¼·å¶é¤é,0x45ï½=for future reserved"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-é¨åä½ç¶æ
-",
+							"valueDescription":"0x40=設定なし,0x41=衣類乾燥,0x42=結露抑制,0x43=ダニカビ抑制,0x44=強制除霜,0x45～=for future reserved"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"内部動作状態",
 							"fields":[
 								
@@ -5065,9 +4940,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"[0]ã³ã³ãã¬ããµåä½ç¶æ
-:0=åæ­¢ä¸­,1=åä½ä¸­\u000d\u000a[1]ãµã¼ã¢ON\/OFFç¶æ
-:0=ãµã¼ã¢OFFç¶æ
-,1=ãµã¼ã¢ONç¶æ
-\u000d\u000a[2ï½7]for future reserved"
+							"valueDescription":"[0]コンプレッサ動作状態:0=停止中,1=動作中\u000d\u000a[1]サーモON\/OFF状態:0=サーモOFF状態,1=サーモON状態\u000d\u000a[2～7]for future reserved"
 						},
 						{
@@ -5076,5 +4947,5 @@
 							],
 							"arrayCount":0,
-							"description":"å¼·å¶ãµã¼ã¢ã¢ã¼ãè¨­å®",
+							"description":"強制サーモモード設定",
 							"fields":[
 								
@@ -5091,14 +4962,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=éå¸¸è¨­å®,0x41=å¼·å¶ãµã¼ã¢ON,0x42=å¼·å¶ãµã¼ã¢OFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ºæ°æ¸
-æµã¢ã¼ãè¨­å®",
+							"valueDescription":"0x40=通常設定,0x41=強制サーモON,0x42=強制サーモOFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"空気清浄モード設定",
 							"fields":[
 								
@@ -5115,14 +4985,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç©ºæ°æ¸
-æµON,0x42=OFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"valueDescription":"0x41=空気清浄ON,0x42=OFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -5139,21 +5008,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥ã,0x44=ç¸å¯¾æå»äºç´ã®ã¿å
-¥ã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入り,0x44=相対時刻予約のみ入り"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -5165,10 +5030,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -5180,6 +5045,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -5203,9 +5068,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -5217,10 +5082,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æé",
-									"valueDescription":"0x00ï½0xFF(0ï½255)"
+									"unitDescription":"時間",
+									"valueDescription":"0x00～0xFF(0～255)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -5232,6 +5097,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -5255,5 +5120,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＦＦタイマ予約設定",
 							"fields":[
 								
@@ -5270,21 +5135,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥ã,0x44=ç¸å¯¾æå»äºç´ã®ã¿å
-¥ã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入り,0x44=相対時刻予約のみ入り"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -5296,10 +5157,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -5311,6 +5172,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -5334,9 +5195,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＦＦタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -5348,10 +5209,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æé",
-									"valueDescription":"0x00ï½0xFF(0ï½255)"
+									"unitDescription":"時間",
+									"valueDescription":"0x00～0xFF(0～255)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -5363,6 +5224,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -5384,5 +5245,5 @@
 				{
 					"classCode":49,
-					"description":"å·é¢¨æ©",
+					"description":"冷風機",
 					"name":"COLD_BLASTER_EOBJ",
 					"propertyList":[
@@ -5392,5 +5253,5 @@
 				{
 					"classCode":50,
-					"description":"æé¢¨æ©",
+					"description":"扇風機",
 					"name":"ELECTRIC_FAN_EOBJ",
 					"propertyList":[
@@ -5400,5 +5261,5 @@
 				{
 					"classCode":51,
-					"description":"ææ°æ",
+					"description":"換気扇",
 					"name":"VENTILATION_FAN_EOBJ",
 					"propertyList":[
@@ -5409,5 +5270,5 @@
 							],
 							"arrayCount":0,
-							"description":"ææ°èªåè¨­å®",
+							"description":"換気自動設定",
 							"fields":[
 								
@@ -5424,13 +5285,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=AUTO,0x42=éAUTO"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ°é¢¨éè¨­å®",
+							"valueDescription":"0x41=AUTO,0x42=非AUTO"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"換気風量設定",
 							"fields":[
 								
@@ -5447,6 +5308,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ææ°é¢¨éèªåç¶æ
-,0x31ï½0x38=ææ°é¢¨éã¬ãã«"
+							"valueDescription":"0x41=換気風量自動状態,0x31～0x38=換気風量レベル"
 						}
 					]
@@ -5454,5 +5314,5 @@
 				{
 					"classCode":52,
-					"description":"ç©ºèª¿ææ°æ",
+					"description":"空調換気扇",
 					"name":"AIR_CONDITIONER_VENTILATION_FAN_EOBJ",
 					"propertyList":[
@@ -5463,6 +5323,5 @@
 							],
 							"arrayCount":0,
-							"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨­å®å¤",
+							"description":"室内相対湿度設定値",
 							"fields":[
 								
@@ -5478,15 +5337,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ°èªåè¨­å®",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"換気自動設定",
 							"fields":[
 								
@@ -5503,13 +5361,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=AUTO,0x42=éAUTO"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤",
+							"valueDescription":"0x41=AUTO,0x42=非AUTO"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内相対湿度計測値",
 							"fields":[
 								
@@ -5525,15 +5382,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ°é¢¨éè¨­å®",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"換気風量設定",
 							"fields":[
 								
@@ -5550,14 +5406,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ææ°é¢¨éèªåç¶æ
-,0x31ï½0x38=ææ°é¢¨éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç±äº¤ææ©åä½è¨­å®",
+							"valueDescription":"0x41=換気風量自動状態,0x31～0x38=換気風量レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"熱交換機動作設定",
 							"fields":[
 								
@@ -5574,12 +5429,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç±äº¤ææ©ON,0x42=OFF"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼£ï¼¯ï¼æ¿åº¦è¨æ¸¬å¤",
+							"valueDescription":"0x41=熱交換機ON,0x42=OFF"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＣＯ２濃度計測値",
 							"fields":[
 								
@@ -5596,14 +5451,12 @@
 							"type":"uint16_t",
 							"unitDescription":"ppm",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533ppm)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¶æ
-",
+							"valueDescription":"0x0000～0xFFFD(0～65533ppm)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"煙（タバコ）検知状態",
 							"fields":[
 								
@@ -5620,15 +5473,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç
-ï¼ã¿ãã³ï¼æ¤ç¥æ,0x42=ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ±ãæ¤ç¥ç¶æ
-",
+							"valueDescription":"0x41=煙（タバコ）検知有,0x42=煙（タバコ）検知無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"汚れ検知状態",
 							"fields":[
 								
@@ -5645,5 +5495,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ±ãæ¤ç¥æ,0x42=æ±ãæ¤ç¥ç¡"
+							"valueDescription":"0x41=汚れ検知有,0x42=汚れ検知無"
 						}
 					]
@@ -5651,6 +5501,5 @@
 				{
 					"classCode":53,
-					"description":"ç©ºæ°æ¸
-æµå¨",
+					"description":"空気清浄器",
 					"name":"AIR_CLEANER_EOBJ",
 					"propertyList":[
@@ -5660,6 +5509,5 @@
 							],
 							"arrayCount":0,
-							"description":"ãã£ã«ã¿ã¼äº¤æéç¥ç¶æ
-",
+							"description":"フィルター交換通知状態",
 							"fields":[
 								
@@ -5676,13 +5524,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ,0x42=ç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨éè¨­å®",
+							"valueDescription":"0x41=有,0x42=無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風量設定",
 							"fields":[
 								
@@ -5699,15 +5547,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ææ°é¢¨éèªåç¶æ
-,0x31ï½0x38=ææ°é¢¨éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¶æ
-",
+							"valueDescription":"0x41=換気風量自動状態,0x31～0x38=換気風量レベル"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"煙（タバコ）検知状態",
 							"fields":[
 								
@@ -5724,16 +5569,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç
-ï¼ã¿ãã³ï¼æ¤ç¥æ,0x42=ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-è§¦åªåä½è¨­å®",
+							"valueDescription":"0x41=煙（タバコ）検知有,0x42=煙（タバコ）検知無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"光触媒動作設定",
 							"fields":[
 								
@@ -5750,15 +5592,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å
-è§¦åªON,0x42=å
-è§¦åªOFF"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ºæ°æ±ãæ¤ç¥ç¶æ
-",
+							"valueDescription":"0x41=光触媒ON,0x42=光触媒OFF"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"空気汚れ検知状態",
 							"fields":[
 								
@@ -5775,5 +5614,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç©ºæ°æ±ãæ¤ç¥æ,0x42=ç©ºæ°æ±ãæ¤ç¥ç¡"
+							"valueDescription":"0x41=空気汚れ検知有,0x42=空気汚れ検知無"
 						}
 					]
@@ -5781,5 +5620,5 @@
 				{
 					"classCode":54,
-					"description":"å·é¢¨æ",
+					"description":"冷風扇",
 					"name":"COLD_BLAST_FAN_EOBJ",
 					"propertyList":[
@@ -5789,5 +5628,5 @@
 				{
 					"classCode":55,
-					"description":"ãµã¼ã­ã¥ã¬ã¼ã¿",
+					"description":"サーキュレータ",
 					"name":"CIRCULATOR_EOBJ",
 					"propertyList":[
@@ -5797,5 +5636,5 @@
 				{
 					"classCode":56,
-					"description":"é¤æ¹¿æ©",
+					"description":"除湿機",
 					"name":"DEHUMIDIFIER_EOBJ",
 					"propertyList":[
@@ -5805,5 +5644,5 @@
 				{
 					"classCode":57,
-					"description":"å æ¹¿å¨",
+					"description":"加湿器",
 					"name":"HUMIDIFIER_EOBJ",
 					"propertyList":[
@@ -5814,5 +5653,5 @@
 							],
 							"arrayCount":0,
-							"description":"å æ¹¿è¨­å®ï¼",
+							"description":"加湿設定１",
 							"fields":[
 								
@@ -5830,13 +5669,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00ï½0x64(0ï½100%),0x70=èªåè¨­å®,0x71=é£ç¶éè»¢,0x72=éæ¬ éè»¢"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å æ¹¿è¨­å®ï¼",
+							"valueDescription":"0x00～0x64(0～100%),0x70=自動設定,0x71=連続運転,0x72=間欠運転"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"加湿設定２",
 							"fields":[
 								
@@ -5854,12 +5693,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x33=å æ¹¿ã¬ãã«,0x70=èªåè¨­å®,0x71=é£ç¶éè»¢,0x72=éæ¬ éè»¢"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤",
+							"valueDescription":"0x31～0x33=加湿レベル,0x70=自動設定,0x71=連続運転,0x72=間欠運転"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"相対湿度計測値",
 							"fields":[
 								
@@ -5876,13 +5715,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ予約設定",
 							"fields":[
 								
@@ -5899,18 +5738,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -5922,10 +5760,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -5937,6 +5775,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -5960,5 +5798,5 @@
 							],
 							"arrayCount":0,
-							"description":"ã¤ãªã³æ¾åºè¨­å®",
+							"description":"イオン放出設定",
 							"fields":[
 								
@@ -5975,13 +5813,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ¾åºå
-¥,0x42=æ¾åºå"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ­è¼ã¤ãªã³æ¾åºæ¹æ³",
+							"valueDescription":"0x41=放出入,0x42=放出切"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"搭載イオン放出方法",
 							"fields":[
 								
@@ -5998,13 +5835,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"[0]ãã¤ãã¹ã¤ãªã³æ¹å¼\u000d\u000a[1]ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¹å¥éè»¢ã¢ã¼ãè¨­å®",
+							"valueDescription":"[0]マイナスイオン方式\u000d\u000a[1]クラスタイオン方式"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"特別運転モード設定",
 							"fields":[
 								
@@ -6021,12 +5858,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"è¨­å®æå¹ã®å ´åã1ã¨ãã\u000d\u000a[0]ã®ã©ä¹¾ç¥æå¶\u000d\u000a[1]éé³éè»¢\u000d\u000a[2ï½7]for future reserved"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´éã¬ãã«",
+							"valueDescription":"設定有効の場合を1とする\u000d\u000a[0]のど乾燥抑制\u000d\u000a[1]静音運転\u000d\u000a[2～7]for future reserved"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水量レベル",
 							"fields":[
 								
@@ -6043,6 +5880,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=ç©ºç¶æ
-,0x41ï½0x45(æä½ï½æé«ã¬ãã«)"
+							"valueDescription":"0x40=空状態,0x41～0x45(最低～最高レベル)"
 						}
 					]
@@ -6050,5 +5886,5 @@
 				{
 					"classCode":58,
-					"description":"å¤©äºæ",
+					"description":"天井扇",
 					"name":"CEILING_FAN_EOBJ",
 					"propertyList":[
@@ -6058,5 +5894,5 @@
 				{
 					"classCode":59,
-					"description":"é»æ°ããã¤",
+					"description":"電気こたつ",
 					"name":"ELECTRIC_KOTATSU_EOBJ",
 					"propertyList":[
@@ -6066,5 +5902,5 @@
 				{
 					"classCode":60,
-					"description":"é»æ°ããã",
+					"description":"電気あんか",
 					"name":"ELECTRIC_HEATING_PAD_EOBJ",
 					"propertyList":[
@@ -6074,5 +5910,5 @@
 				{
 					"classCode":61,
-					"description":"é»æ°æ¯å¸",
+					"description":"電気毛布",
 					"name":"ELECTRIC_BLANKET_EOBJ",
 					"propertyList":[
@@ -6082,5 +5918,5 @@
 				{
 					"classCode":62,
-					"description":"ã¹ãã¼ã",
+					"description":"ストーブ",
 					"name":"SPACE_HEATER_EOBJ",
 					"propertyList":[
@@ -6090,5 +5926,5 @@
 				{
 					"classCode":63,
-					"description":"ããã«ãã¼ã¿",
+					"description":"パネルヒータ",
 					"name":"PANEL_HEATER_EOBJ",
 					"propertyList":[
@@ -6098,5 +5934,5 @@
 				{
 					"classCode":64,
-					"description":"é»æ°ã«ã¼ããã",
+					"description":"電気カーペット",
 					"name":"ELECTRIC_CARPET_EOBJ",
 					"propertyList":[
@@ -6106,5 +5942,5 @@
 				{
 					"classCode":65,
-					"description":"ãã­ã¢ãã¼ã¿",
+					"description":"フロアヒータ",
 					"name":"FLOOR_HEATER_EOBJ",
 					"propertyList":[
@@ -6114,5 +5950,5 @@
 				{
 					"classCode":66,
-					"description":"é»æ°ææ¿æ©",
+					"description":"電気暖房機",
 					"name":"ELECTRIC_HEATER_EOBJ",
 					"propertyList":[
@@ -6123,5 +5959,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¸©åº¦èªåè¨­å®",
+							"description":"温度自動設定",
 							"fields":[
 								
@@ -6138,13 +5974,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=AUTO,0x42=éAUTO"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¸©åº¦è¨­å®å¤",
+							"valueDescription":"0x41=AUTO,0x42=非AUTO"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"温度設定値",
 							"fields":[
 								
@@ -6161,14 +5997,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x32(0ï½50)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x32(0～50)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内温度計測値",
 							"fields":[
 								
@@ -6184,13 +6019,13 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-128ï½127)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã¦ã¼ã¶ãªã¢ã³ã³æ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-128～127)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ユーザリモコン温度設定値",
 							"fields":[
 								
@@ -6206,14 +6041,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x32(0ï½50)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨éè¨­å®",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x32(0～50)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風量設定",
 							"fields":[
 								
@@ -6230,14 +6065,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é¢¨éèªåç¶æ
-,0x31ï½0x38=é¢¨éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"valueDescription":"0x41=風量自動状態,0x31～0x38=風量レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -6254,18 +6088,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -6277,10 +6110,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -6292,6 +6125,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -6315,9 +6148,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -6329,10 +6162,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -6344,6 +6177,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -6367,5 +6200,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＦＦタイマ予約設定",
 							"fields":[
 								
@@ -6382,18 +6215,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -6405,10 +6237,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -6420,6 +6252,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -6443,9 +6275,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＦＦタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -6457,10 +6289,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -6472,6 +6304,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -6493,5 +6325,5 @@
 				{
 					"classCode":67,
-					"description":"ãã¡ã³ãã¼ã¿",
+					"description":"ファンヒータ",
 					"name":"FAN_HEATER_EOBJ",
 					"propertyList":[
@@ -6502,5 +6334,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¸©åº¦è¨­å®å¤",
+							"description":"温度設定値",
 							"fields":[
 								
@@ -6517,13 +6349,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x32(0ï½50)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x32(0～50)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"温度計測値",
 							"fields":[
 								
@@ -6539,14 +6371,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7D(-128ï½125)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¸©åº¦èªåè¨­å®",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7D(-128～125)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"温度自動設定",
 							"fields":[
 								
@@ -6563,13 +6395,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=AUTO,0x42=éAUTO"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"valueDescription":"0x41=AUTO,0x42=非AUTO"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -6586,21 +6418,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥,0x44=ç¸å¯¾æéäºç´ã®ã¿å
-¥"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入,0x44=相対時間予約のみ入"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -6612,10 +6440,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -6627,6 +6455,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -6650,9 +6478,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -6664,10 +6492,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -6679,6 +6507,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -6702,5 +6530,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＦＦタイマ予約設定",
 							"fields":[
 								
@@ -6717,21 +6545,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥,0x44=ç¸å¯¾æéäºç´ã®ã¿å
-¥"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入,0x44=相対時間予約のみ入"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -6743,10 +6567,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -6758,6 +6582,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -6781,9 +6605,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＦＦタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -6795,10 +6619,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -6810,6 +6634,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -6833,5 +6657,5 @@
 							],
 							"arrayCount":0,
-							"description":"å»¶é·éè»¢è¨­å®",
+							"description":"延長運転設定",
 							"fields":[
 								
@@ -6848,18 +6672,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å»¶é·å
-¥,0x42=å»¶é·å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å»¶é·ã¿ã¤ãæéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=延長入,0x42=延長切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"延長タイマ時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -6871,10 +6694,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -6886,6 +6709,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -6909,5 +6732,5 @@
 							],
 							"arrayCount":0,
-							"description":"ã¤ãªã³æ¾åºè¨­å®",
+							"description":"イオン放出設定",
 							"fields":[
 								
@@ -6924,13 +6747,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ¾åºå
-¥,0x42=æ¾åºå"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ­è¼ã¤ãªã³æ¾åºæ¹æ³",
+							"valueDescription":"0x41=放出入,0x42=放出切"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"搭載イオン放出方法",
 							"fields":[
 								
@@ -6947,12 +6769,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"[0]ãã¤ãã¹ã¤ãªã³æ¹å¼\u000d\u000a[1]ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ²¹éã¬ãã«",
+							"valueDescription":"[0]マイナスイオン方式\u000d\u000a[1]クラスタイオン方式"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"油量レベル",
 							"fields":[
 								
@@ -6969,6 +6791,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=ç©ºç¶æ
-,0x41ï½0x45(æä½ï½æé«ã¬ãã«)"
+							"valueDescription":"0x40=空状態,0x41～0x45(最低～最高レベル)"
 						}
 					]
@@ -6976,7 +6797,5 @@
 				{
 					"classCode":68,
-					"description":"å
-
-é»å¨",
+					"description":"充電器",
 					"name":"BATTERY_CHARGER_EOBJ",
 					"propertyList":[
@@ -6986,6 +6805,5 @@
 				{
 					"classCode":69,
-					"description":"æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³å®¤å
-æ©",
+					"description":"業務用パッケージエアコン室内機",
 					"name":"PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_INDOOR_UNIT_EOBJ",
 					"propertyList":[
@@ -6997,5 +6815,5 @@
 							],
 							"arrayCount":0,
-							"description":"éè»¢ã¢ã¼ãè¨­å®",
+							"description":"運転モード設定",
 							"fields":[
 								
@@ -7013,5 +6831,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x45=éé¢¨"
+							"valueDescription":"0x41=自動,0x42=冷房,0x43=暖房,0x44=除湿,0x45=送風"
 						},
 						{
@@ -7022,5 +6840,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¸©åº¦è¨­å®å¤ï¼",
+							"description":"温度設定値１",
 							"fields":[
 								
@@ -7037,14 +6855,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"1â",
-							"valueDescription":"0x00ï½0x32(0ï½50â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¤æ¹¿ã¢ã¼ãæç¸å¯¾æ¹¿åº¦è¨­å®å¤ï¼",
+							"unitDescription":"1℃",
+							"valueDescription":"0x00～0x32(0～50℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"除湿モード時相対湿度設定値１",
 							"fields":[
 								
@@ -7061,15 +6879,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"1ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·æ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼",
+							"unitDescription":"1％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷房モード時温度設定値１",
 							"fields":[
 								
@@ -7085,14 +6902,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"1â",
-							"valueDescription":"0x00ï½0x32(0ï½50â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼",
+							"unitDescription":"1℃",
+							"valueDescription":"0x00～0x32(0～50℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"暖房モード時温度設定値１",
 							"fields":[
 								
@@ -7108,14 +6925,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"1â",
-							"valueDescription":"0x00ï½0x32(0ï½50â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¤æ¹¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼",
+							"unitDescription":"1℃",
+							"valueDescription":"0x00～0x32(0～50℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"除湿モード時温度設定値１",
 							"fields":[
 								
@@ -7131,6 +6948,6 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"1â",
-							"valueDescription":"0x00ï½0x32(0ï½50â)"
+							"unitDescription":"1℃",
+							"valueDescription":"0x00～0x32(0～50℃)"
 						},
 						{
@@ -7139,6 +6956,5 @@
 							],
 							"arrayCount":4,
-							"description":"å®¤å
-å®æ ¼æ¶è²»é»åå¤",
+							"description":"室内定格消費電力値",
 							"fields":[
 								
@@ -7155,13 +6971,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·æ¿ï¼ææ¿ï¼é¤æ¹¿ï¼éé¢¨å®¤å
-æ¶è²»é»æµè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷房：暖房：除湿：送風室内消費電流計測値",
 							"fields":[
 								
@@ -7178,13 +6993,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½6553.3A)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤ï¼",
+							"valueDescription":"0x0000～0xFFFD(0～6553.3A)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内相対湿度計測値１",
 							"fields":[
 								
@@ -7200,15 +7014,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"1ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤ï¼",
+							"unitDescription":"1％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内温度計測値１",
 							"fields":[
 								
@@ -7224,14 +7036,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"1â",
-							"valueDescription":"0x81ï½0x7D(-127ï½125â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¸å¯¾æ¸©åº¦è¨­å®å¤",
+							"unitDescription":"1℃",
+							"valueDescription":"0x81～0x7D(-127～125℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"相対温度設定値",
 							"fields":[
 								
@@ -7247,14 +7059,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"0.1â",
-							"valueDescription":"0x81ï½0x7D(-12.7ï½12.5â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨éè¨­å®",
+							"unitDescription":"0.1℃",
+							"valueDescription":"0x81～0x7D(-12.7～12.5℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風量設定",
 							"fields":[
 								
@@ -7271,14 +7083,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é¢¨éèªåç¶æ
-,0x31ï½0x38=é¢¨éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åä¸ä¸è¨­å®",
+							"valueDescription":"0x41=風量自動状態,0x31～0x38=風量レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風向上下設定",
 							"fields":[
 								
@@ -7295,13 +7106,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31=èªå,0x32=ã¹ã¤ã³ã°,0x41ï½0x49=é¢¨åä¸ä¸è¨­å®(æä¸ï½æä¸)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åå·¦å³è¨­å®",
+							"valueDescription":"0x31=自動,0x32=スイング,0x41～0x49=風向上下設定(最上～最下)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風向左右設定",
 							"fields":[
 								
@@ -7318,13 +7129,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31=èªå,0x32=ã¹ã¤ã³ã°,0x41=å³,0x42=å·¦,0x43=ä¸­å¤®,0x44=å·¦å³"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¹æ®ç¶æ
-",
+							"valueDescription":"0x31=自動,0x32=スイング,0x41=右,0x42=左,0x43=中央,0x44=左右"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"特殊状態",
 							"fields":[
 								
@@ -7341,16 +7151,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=éå¸¸ç¶æ
-,0x42=äºç±ç¶æ
-,0x43=æç±ç¶æ
-"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãµã¼ã¢ç¶æ
-",
+							"valueDescription":"0x40=通常状態,0x42=予熱状態,0x43=排熱状態"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"サーモ状態",
 							"fields":[
 								
@@ -7367,13 +7173,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãµã¼ã¢on,0x42=ãµã¼ã¢off"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èªåéè»¢æéè»¢ã¢ã¼ãç¶æ
-",
+							"valueDescription":"0x41=サーモon,0x42=サーモoff"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"自動運転時運転モード状態",
 							"fields":[
 								
@@ -7390,13 +7195,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x45=éé¢¨,0x40=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ°ã¢ã¼ãè¨­å®",
+							"valueDescription":"0x42=冷房,0x43=暖房,0x44=除湿,0x45=送風,0x40=その他"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"換気モード設定",
 							"fields":[
 								
@@ -7413,15 +7218,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ®éææ°,0x42=å
-¨ç±äº¤ææ°,0x43=èªåææ°"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-¨ç±äº¤æå¨é£åè¨­å®",
+							"valueDescription":"0x41=普通換気,0x42=全熱交換気,0x43=自動換気"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"全熱交換器連動設定",
 							"fields":[
 								
@@ -7438,15 +7241,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å
-¨ç±äº¤æå¨é£å,0x42=å
-¨ç±äº¤æå¨éé£å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ°é¢¨éè¨­å®",
+							"valueDescription":"0x41=全熱交換器連動,0x42=全熱交換器非連動"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"換気風量設定",
 							"fields":[
 								
@@ -7463,13 +7264,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ææ°é¢¨éèªå,0x31ï½0x38=ææ°é¢¨éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¼·å¶åæ­¢è¨­å®",
+							"valueDescription":"0x41=換気風量自動,0x31～0x38=換気風量レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"強制停止設定",
 							"fields":[
 								
@@ -7486,13 +7287,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å¼·å¶åæ­¢,0x42=è§£é¤"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¼·å¶ãµã¼ã¢ã¢ã¼ãè¨­å®",
+							"valueDescription":"0x41=強制停止,0x42=解除"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"強制サーモモード設定",
 							"fields":[
 								
@@ -7509,13 +7310,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=éå¸¸è¨­å®,0x41=å¼·å¶ãµã¼ã¢ON,0x42=å¼·å¶ãµã¼ã¢OFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã£ã«ã¿ã¼ãµã¤ã³è¨­å®",
+							"valueDescription":"0x40=通常設定,0x41=強制サーモON,0x42=強制サーモOFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"フィルターサイン設定",
 							"fields":[
 								
@@ -7533,13 +7334,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç¹ç¯,0x42=æ¶ç¯"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-æ¶è²»é»åè¨æ¸¬å¤",
+							"valueDescription":"0x41=点灯,0x42=消灯"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内消費電力計測値",
 							"fields":[
 								
@@ -7556,12 +7356,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è¨å¼µå¼éåº¦ã¬ãã«",
+							"valueDescription":"0x0000～0xFFFD(0～65533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"膨張弁開度レベル",
 							"fields":[
 								
@@ -7577,7 +7377,6 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100)"
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100)"
 						},
 						{
@@ -7588,5 +7387,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¸©åº¦è¨­å®å¤ï¼",
+							"description":"温度設定値２",
 							"fields":[
 								
@@ -7603,14 +7402,14 @@
 							"size":2,
 							"type":"int16_t",
-							"unitDescription":"0.1â",
-							"valueDescription":"0xFE0Cï½0x3E8(-50.0ï½100.0â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¤æ¹¿ã¢ã¼ãæç¸å¯¾æ¹¿åº¦è¨­å®å¤ï¼",
+							"unitDescription":"0.1℃",
+							"valueDescription":"0xFE0C～0x3E8(-50.0～100.0℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"除湿モード時相対湿度設定値２",
 							"fields":[
 								
@@ -7627,15 +7426,14 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"0.10ï¼
-",
-							"valueDescription":"0x0000ï½0x3E8(0.0ï½100.0%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·æ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼",
+							"unitDescription":"0.10％",
+							"valueDescription":"0x0000～0x3E8(0.0～100.0%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷房モード時温度設定値２",
 							"fields":[
 								
@@ -7651,14 +7449,14 @@
 							"size":2,
 							"type":"int16_t",
-							"unitDescription":"0.1â",
-							"valueDescription":"0xFE0Cï½0x3E8(-50.0ï½100.0â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼",
+							"unitDescription":"0.1℃",
+							"valueDescription":"0xFE0C～0x3E8(-50.0～100.0℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"暖房モード時温度設定値２",
 							"fields":[
 								
@@ -7674,14 +7472,14 @@
 							"size":2,
 							"type":"int16_t",
-							"unitDescription":"0.1â",
-							"valueDescription":"0xFE0Cï½0x3E8(-50.0ï½100.0â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¤æ¹¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼",
+							"unitDescription":"0.1℃",
+							"valueDescription":"0xFE0C～0x3E8(-50.0～100.0℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"除湿モード時温度設定値２",
 							"fields":[
 								
@@ -7697,14 +7495,13 @@
 							"size":2,
 							"type":"int16_t",
-							"unitDescription":"0.1â",
-							"valueDescription":"0xFE0Cï½0x3E8(-50.0ï½100.0â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤ï¼",
+							"unitDescription":"0.1℃",
+							"valueDescription":"0xFE0C～0x3E8(-50.0～100.0℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内相対湿度計測値２",
 							"fields":[
 								
@@ -7720,15 +7517,13 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"0.10ï¼
-",
-							"valueDescription":"0x0000ï½0x3E8(0.0ï½100.0%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤ï¼",
+							"unitDescription":"0.10％",
+							"valueDescription":"0x0000～0x3E8(0.0～100.0%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内温度計測値２",
 							"fields":[
 								
@@ -7744,14 +7539,14 @@
 							"size":2,
 							"type":"int16_t",
-							"unitDescription":"0.1â",
-							"valueDescription":"0xF554ï½0x7FFD(-273.2ï½3276.5â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"unitDescription":"0.1℃",
+							"valueDescription":"0xF554～0x7FFD(-273.2～3276.5℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -7768,21 +7563,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥,0x44=ç¸å¯¾æéäºç´ã®ã¿å
-¥"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入,0x44=相対時間予約のみ入"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -7794,10 +7585,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -7809,6 +7600,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -7832,9 +7623,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -7846,10 +7637,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æé",
-									"valueDescription":"0x00ï½0xFF(0ï½255)"
+									"unitDescription":"時間",
+									"valueDescription":"0x00～0xFF(0～255)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -7861,6 +7652,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -7884,5 +7675,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＦＦタイマ予約設定",
 							"fields":[
 								
@@ -7899,21 +7690,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥,0x44=ç¸å¯¾æéäºç´ã®ã¿å
-¥"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入,0x44=相対時間予約のみ入"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -7925,10 +7712,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -7940,6 +7727,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -7963,9 +7750,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＦＦタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -7977,10 +7764,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æé",
-									"valueDescription":"0x00ï½0xFF(0ï½255)"
+									"unitDescription":"時間",
+									"valueDescription":"0x00～0xFF(0～255)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -7992,6 +7779,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -8013,5 +7800,5 @@
 				{
 					"classCode":70,
-					"description":"æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³å®¤å¤æ©",
+					"description":"業務用パッケージエアコン室外機",
 					"name":"PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_OUTDOOR_UNIT_EOBJ",
 					"propertyList":[
@@ -8022,5 +7809,5 @@
 							],
 							"arrayCount":0,
-							"description":"éè»¢ã¢ã¼ãè¨­å®",
+							"description":"運転モード設定",
 							"fields":[
 								
@@ -8038,5 +7825,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x45=éé¢¨"
+							"valueDescription":"0x41=自動,0x42=冷房,0x43=暖房,0x44=除湿,0x45=送風"
 						},
 						{
@@ -8045,5 +7832,5 @@
 							],
 							"arrayCount":3,
-							"description":"å®¤å¤å®æ ¼æ¶è²»é»åå¤",
+							"description":"室外定格消費電力値",
 							"fields":[
 								
@@ -8060,12 +7847,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·æ¿ï¼ææ¿ï¼é¤æ¹¿å®¤å¤æ¶è²»é»æµè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷房：暖房：除湿室外消費電流計測値",
 							"fields":[
 								
@@ -8082,12 +7869,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½6553.3A)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¤æ°æ¸©åº¦è¨æ¸¬å¤ï¼",
+							"valueDescription":"0x0000～0xFFFD(0～6553.3A)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"外気温度計測値１",
 							"fields":[
 								
@@ -8103,14 +7890,13 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"1â",
-							"valueDescription":"0x81ï½0x7D(-127ï½125â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¹æ®ç¶æ
-",
+							"unitDescription":"1℃",
+							"valueDescription":"0x81～0x7D(-127～125℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"特殊状態",
 							"fields":[
 								
@@ -8127,15 +7913,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=éå¸¸ç¶æ
-,0x41=é¤éç¶æ
-"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å§ç¸®æ©åä½ç¶æ
-",
+							"valueDescription":"0x40=通常状態,0x41=除霜状態"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"圧縮機動作状態",
 							"fields":[
 								
@@ -8152,13 +7935,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å§ç¸®æ©ON,0x42=å§ç¸®æ©OFF"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éè»¢ã¢ã¼ãç¶æ
-",
+							"valueDescription":"0x41=圧縮機ON,0x42=圧縮機OFF"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"運転モード状態",
 							"fields":[
 								
@@ -8175,12 +7957,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x40=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã¡ã³åè»¢ã¬ãã«",
+							"valueDescription":"0x42=冷房,0x43=暖房,0x44=除湿,0x40=その他"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ファン回転レベル",
 							"fields":[
 								
@@ -8196,14 +7978,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å¤æ¶è²»é»åè¨æ¸¬å¤",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室外消費電力計測値",
 							"fields":[
 								
@@ -8220,12 +8001,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¤æ°æ¸©åº¦è¨æ¸¬å¤ï¼",
+							"valueDescription":"0x0000～0xFFFD(0～65533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"外気温度計測値２",
 							"fields":[
 								
@@ -8241,6 +8022,6 @@
 							"size":2,
 							"type":"int16_t",
-							"unitDescription":"0.1â",
-							"valueDescription":"0xF554ï½0x7FFD(-273.2ï½3276.5â)"
+							"unitDescription":"0.1℃",
+							"valueDescription":"0xF554～0x7FFD(-273.2～3276.5℃)"
 						}
 					]
@@ -8248,5 +8029,5 @@
 				{
 					"classCode":71,
-					"description":"æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³èç±ã¦ããã",
+					"description":"業務用パッケージエアコン蓄熱ユニット",
 					"name":"PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_THERMAL_STORAGE_UNIT_EOBJ",
 					"propertyList":[
@@ -8256,5 +8037,5 @@
 				{
 					"classCode":72,
-					"description":"æ¥­åç¨ãã¡ã³ã³ã¤ã«ã¦ããã",
+					"description":"業務用ファンコイルユニット",
 					"name":"COMMERCIAL_FAN_COIL_UNIT_EOBJ",
 					"propertyList":[
@@ -8264,5 +8045,5 @@
 				{
 					"classCode":73,
-					"description":"æ¥­åç¨ç©ºèª¿å·ç±æº(ãã©ã¼)",
+					"description":"業務用空調冷熱源(チラー)",
 					"name":"COMMERCIAL_AIR_CONDITIONING_COLD_SOURCE_CHILLER_EOBJ",
 					"propertyList":[
@@ -8272,5 +8053,5 @@
 				{
 					"classCode":80,
-					"description":"æ¥­åç¨ç©ºèª¿æ¸©ç±æº(ãã¤ã©ã¼)",
+					"description":"業務用空調温熱源(ボイラー)",
 					"name":"COMMERCIAL_AIR_CONDITIONING_HOT_SOURCE_BOILER_EOBJ",
 					"propertyList":[
@@ -8280,5 +8061,5 @@
 				{
 					"classCode":81,
-					"description":"æ¥­åç¨ç©ºèª¿VAV",
+					"description":"業務用空調VAV",
 					"name":"AIR_CONDITIONING_VAV_FOR_COMMERCIAL_APPLICATIONS_EOBJ",
 					"propertyList":[
@@ -8288,5 +8069,5 @@
 				{
 					"classCode":82,
-					"description":"æ¥­åç¨ç©ºèª¿ã¨ã¢ãã³ããªã³ã°ã¦ããã",
+					"description":"業務用空調エアハンドリングユニット",
 					"name":"AIR_HANDLING_UNIT_AIR_CONDITIONING_FOR_COMMERCIAL_APPLICATIONS_EOBJ",
 					"propertyList":[
@@ -8296,5 +8077,5 @@
 				{
 					"classCode":83,
-					"description":"ã¦ãããã¯ã¼ã©ã¼",
+					"description":"ユニットクーラー",
 					"name":"UNIT_COOLER_EOBJ",
 					"propertyList":[
@@ -8304,5 +8085,5 @@
 				{
 					"classCode":84,
-					"description":"æ¥­åç¨ã³ã³ãã³ã·ã³ã°ã¦ããã",
+					"description":"業務用コンデンシングユニット",
 					"name":"CONDENSING_UNIT_FOR_COMMERCIAL_APPLICATIONS_EOBJ",
 					"propertyList":[
@@ -8314,11 +8095,10 @@
 		{
 			"classGroupCode":2,
-			"description":"ä½å®
-ã»è¨­åé¢é£æ©å¨",
+			"description":"住宅・設備関連機器",
 			"define":"X1_AMENITY",
 			"classList":[
 				{
 					"classCode":96,
-					"description":"é»åãã©ã¤ã³ã",
+					"description":"電動ブラインド",
 					"name":"ELECTRICALLY_OPERATED_SHADE_EOBJ",
 					"propertyList":[
@@ -8330,5 +8110,5 @@
 							],
 							"arrayCount":0,
-							"description":"ééè¨­å®",
+							"description":"開閉設定",
 							"fields":[
 								
@@ -8346,5 +8126,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é,0x42=é"
+							"valueDescription":"0x41=開,0x42=閉"
 						},
 						{
@@ -8355,5 +8135,5 @@
 							],
 							"arrayCount":0,
-							"description":"éåº¦ã¬ãã«è¨­å®",
+							"description":"開度レベル設定",
 							"fields":[
 								
@@ -8371,13 +8151,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã©ã¤ã³ãè§åº¦è¨­å®å¤",
+							"valueDescription":"0x31～0x38"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ブラインド角度設定値",
 							"fields":[
 								
@@ -8394,13 +8174,13 @@
 							"type":"uint8_t",
 							"unitDescription":"degree",
-							"valueDescription":"0x00ï½0xB4(0ï½180degree)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã©ã¤ã³ãéééåº¦è¨­å®",
+							"valueDescription":"0x00～0xB4(0～180degree)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ブラインド開閉速度設定",
 							"fields":[
 								
@@ -8417,5 +8197,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ä½,0x42=ä¸­,0x43=é«"
+							"valueDescription":"0x41=低,0x42=中,0x43=高"
 						}
 					]
@@ -8423,5 +8203,5 @@
 				{
 					"classCode":97,
-					"description":"é»åã·ã£ãã¿ã¼",
+					"description":"電動シャッター",
 					"name":"ELECTRICALLY_OPERATED_SHUTTER_EOBJ",
 					"propertyList":[
@@ -8433,5 +8213,5 @@
 							],
 							"arrayCount":0,
-							"description":"ééè¨­å®ï¼",
+							"description":"開閉設定１",
 							"fields":[
 								
@@ -8449,13 +8229,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é,0x42=é,0x43=åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éåº¦ã¬ãã«è¨­å®ï¼",
+							"valueDescription":"0x41=開,0x42=閉,0x43=停止"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"開度レベル設定１",
 							"fields":[
 								
@@ -8472,13 +8252,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã©ã¤ã³ãè§åº¦è¨­å®å¤",
+							"valueDescription":"0x31～0x38"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ブラインド角度設定値",
 							"fields":[
 								
@@ -8495,13 +8275,13 @@
 							"type":"uint8_t",
 							"unitDescription":"degree",
-							"valueDescription":"0x00ï½0xB4(0ï½180degree)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã·ã£ãã¿ã¼éééåº¦è¨­å®",
+							"valueDescription":"0x00～0xB4(0～180degree)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"シャッター開閉速度設定",
 							"fields":[
 								
@@ -8518,13 +8298,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ä½,0x42=ä¸­,0x43=é«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éåº¦ã¬ãã«è¨­å®ï¼",
+							"valueDescription":"0x41=低,0x42=中,0x43=高"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"開度レベル設定２",
 							"fields":[
 								
@@ -8541,13 +8321,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00ï½0xFF(0ï½255)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é»æ°é è¨­å®",
+							"valueDescription":"0x00～0xFF(0～255)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"電気錠設定",
 							"fields":[
 								
@@ -8564,5 +8344,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ½é ,0x42=éé ,0x41=è¨±å¯,0x42=ç¦æ­¢"
+							"valueDescription":"0x41=施錠,0x42=開錠,0x41=許可,0x42=禁止"
 						},
 						{
@@ -8573,5 +8353,5 @@
 							],
 							"arrayCount":0,
-							"description":"ééè¨­å®ï¼",
+							"description":"開閉設定２",
 							"fields":[
 								
@@ -8589,5 +8369,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é,0x42=é"
+							"valueDescription":"0x41=開,0x42=閉"
 						}
 					]
@@ -8595,5 +8375,5 @@
 				{
 					"classCode":98,
-					"description":"é»åã«ã¼ãã³",
+					"description":"電動カーテン",
 					"name":"ELECTRICALLY_OPERATED_CURTAIN_EOBJ",
 					"propertyList":[
@@ -8603,5 +8383,5 @@
 				{
 					"classCode":99,
-					"description":"é»åé¨æ¸",
+					"description":"電動雨戸",
 					"name":"ELECTRICALLY_OPERATED_STORM_WINDOW_EOBJ",
 					"propertyList":[
@@ -8613,5 +8393,5 @@
 							],
 							"arrayCount":0,
-							"description":"ééè¨­å®ï¼",
+							"description":"開閉設定１",
 							"fields":[
 								
@@ -8629,13 +8409,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é,0x42=é,0x43=åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éåº¦ã¬ãã«è¨­å®ï¼",
+							"valueDescription":"0x41=開,0x42=閉,0x43=停止"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"開度レベル設定１",
 							"fields":[
 								
@@ -8652,13 +8432,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã©ã¤ã³ãè§åº¦è¨­å®å¤",
+							"valueDescription":"0x31～0x38"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ブラインド角度設定値",
 							"fields":[
 								
@@ -8675,13 +8455,13 @@
 							"type":"uint8_t",
 							"unitDescription":"degree",
-							"valueDescription":"0x00ï½0xB4(0ï½180degree)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã·ã£ãã¿ã¼éééåº¦ã¬ãã«è¨­å®",
+							"valueDescription":"0x00～0xB4(0～180degree)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"シャッター開閉速度レベル設定",
 							"fields":[
 								
@@ -8698,13 +8478,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ä½,0x42=ä¸­,0x43=é«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éåº¦ã¬ãã«è¨­å®ï¼",
+							"valueDescription":"0x41=低,0x42=中,0x43=高"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"開度レベル設定２",
 							"fields":[
 								
@@ -8721,13 +8501,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00ï½0xFF(0ï½255)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é»æ°é è¨­å®",
+							"valueDescription":"0x00～0xFF(0～255)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"電気錠設定",
 							"fields":[
 								
@@ -8744,5 +8524,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ½é ,0x42=éé ,0x41=è¨±å¯,0x42=ç¦æ­¢"
+							"valueDescription":"0x41=施錠,0x42=開錠,0x41=許可,0x42=禁止"
 						},
 						{
@@ -8753,5 +8533,5 @@
 							],
 							"arrayCount":0,
-							"description":"ééè¨­å®ï¼",
+							"description":"開閉設定２",
 							"fields":[
 								
@@ -8769,5 +8549,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é,0x42=é"
+							"valueDescription":"0x41=開,0x42=閉"
 						}
 					]
@@ -8775,5 +8555,5 @@
 				{
 					"classCode":100,
-					"description":"é»åã¬ã¬ã¼ã¸",
+					"description":"電動ガレージ",
 					"name":"ELECTRICALLY_OPERATED_DOOR_EOBJ",
 					"propertyList":[
@@ -8783,5 +8563,5 @@
 				{
 					"classCode":101,
-					"description":"é»åå¤©çª",
+					"description":"電動天窓",
 					"name":"ELECTRICALLY_OPERATED_SKYLIGHT_EOBJ",
 					"propertyList":[
@@ -8791,5 +8571,5 @@
 				{
 					"classCode":102,
-					"description":"ãªã¼ãã³ã°ï¼æ¥ããï¼",
+					"description":"オーニング（日よけ）",
 					"name":"AWNING_EOBJ",
 					"propertyList":[
@@ -8799,5 +8579,5 @@
 				{
 					"classCode":103,
-					"description":"æ£æ°´å¨ï¼åº­ç¨ï¼",
+					"description":"散水器（庭用）",
 					"name":"GARDEN_SPRINKLER_EOBJ",
 					"propertyList":[
@@ -8808,5 +8588,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ£æ°´å¼ééè¨­å®",
+							"description":"散水弁開閉設定",
 							"fields":[
 								
@@ -8824,13 +8604,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=èªåON,0x41=æåON,0x42=æåOFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´ããééè¨­å®",
+							"valueDescription":"0x40=自動ON,0x41=手動ON,0x42=手動OFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水やり間隔設定",
 							"fields":[
 								
@@ -8847,13 +8627,13 @@
 							"type":"uint32_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=å,0x41=æ¯æ¥,0x42=ï¼æ¥ãã,0x43=ï¼æ¥ãã,0x44=é±ï¼å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´ããåæ°è¨­å®",
+							"valueDescription":"0x40=切,0x41=毎日,0x42=１日おき,0x43=２日おき,0x44=週１回"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水やり回数設定",
 							"fields":[
 								
@@ -8870,17 +8650,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ï¼çªç®ON,0x42=ï¼çªç®ON,0x43=ä¸¡æ¹ON"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´ããæå»è¨­å®ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=１番目ON,0x42=２番目ON,0x43=両方ON"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水やり時刻設定１",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -8892,10 +8672,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -8907,6 +8687,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -8930,9 +8710,9 @@
 							],
 							"arrayCount":0,
-							"description":"æ°´ããæå»è¨­å®ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"水やり時刻設定２",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -8944,10 +8724,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -8959,6 +8739,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -8982,5 +8762,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ°´ããæéè¨­å®",
+							"description":"水やり時間設定",
 							"fields":[
 								
@@ -8997,5 +8777,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00ï½0x3B(0ï½59)"
+							"valueDescription":"0x00～0x3B(0～59)"
 						}
 					]
@@ -9003,5 +8783,5 @@
 				{
 					"classCode":104,
-					"description":"æ£æ°´å¨ï¼ç«ç½ç¨ï¼",
+					"description":"散水器（火災用）",
 					"name":"FIRE_SPRINKLER_EOBJ",
 					"propertyList":[
@@ -9011,5 +8791,5 @@
 				{
 					"classCode":105,
-					"description":"å´æ°´",
+					"description":"噴水",
 					"name":"FOUNTAIN_EOBJ",
 					"propertyList":[
@@ -9019,5 +8799,5 @@
 				{
 					"classCode":106,
-					"description":"ç¬éæ¹¯æ²¸å¨",
+					"description":"瞬間湯沸器",
 					"name":"INSTANTANEOUS_WATER_HEATER_EOBJ",
 					"propertyList":[
@@ -9027,5 +8807,5 @@
 				{
 					"classCode":107,
-					"description":"é»æ°æ¸©æ°´å¨",
+					"description":"電気温水器",
 					"name":"ELECTRIC_WATER_HEATER_EOBJ",
 					"propertyList":[
@@ -9036,5 +8816,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ²¸ãä¸ãèªåè¨­å®",
+							"description":"沸き上げ自動設定",
 							"fields":[
 								
@@ -9052,13 +8832,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªåæ²¸ãä¸ã,0x43=æåæ²¸ãä¸ãåæ­¢,0x42=æåæ²¸ãä¸ã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ²¸ãä¸ãæ¹¯æ¸©èªåè¨­å®",
+							"valueDescription":"0x41=自動沸き上げ,0x43=手動沸き上げ停止,0x42=手動沸き上げ"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"沸き上げ湯温自動設定",
 							"fields":[
 								
@@ -9075,13 +8855,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=AUTO,0x42=éAUTO"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ²¸ãä¸ãä¸­ç¶æ
-",
+							"valueDescription":"0x41=AUTO,0x42=非AUTO"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"沸き上げ中状態",
 							"fields":[
 								
@@ -9098,13 +8877,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ²¸ãä¸ãä¸­,0x42=éæ²¸ãä¸ãä¸­"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ²¸ãä¸ãæ¹¯æ¸©è¨­å®å¤",
+							"valueDescription":"0x41=沸き上げ中,0x42=非沸き上げ中"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"沸き上げ湯温設定値",
 							"fields":[
 								
@@ -9120,14 +8899,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¼éæ²¸ãå¢ãè¨±å¯è¨­å®",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"昼間沸き増し許可設定",
 							"fields":[
 								
@@ -9144,12 +8923,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ¼éæ²¸ãå¢ãè¨±å¯,0x42=æ¼éæ²¸ãå¢ãç¦æ­¢"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¸©æ°´å¨æ¹¯æ¸©è¨æ¸¬å¤",
+							"valueDescription":"0x41=昼間沸き増し許可,0x42=昼間沸き増し禁止"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"温水器湯温計測値",
 							"fields":[
 								
@@ -9165,18 +8944,17 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è­¦å ±çºçç¶æ
-",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"è­¦å ±",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"警報発生状態",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"警報",
 									"fields":[
 										
@@ -9189,5 +8967,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]æ¹¯åãè­¦å ±:0=æ­£å¸¸,1=çºç\u000d\u000a[1]æ¼æ°´è­¦å ±:0=æ­£å¸¸,1=çºç\u000d\u000a[2]åçµè­¦å ±:0=æ­£å¸¸,1=çºç\u000d\u000a[3ï½7]for future reserved"
+									"valueDescription":"[0]湯切れ警報:0=正常,1=発生\u000d\u000a[1]漏水警報:0=正常,1=発生\u000d\u000a[2]凍結警報:0=正常,1=発生\u000d\u000a[3～7]for future reserved"
 								},
 								{
@@ -9226,5 +9004,5 @@
 							],
 							"arrayCount":0,
-							"description":"çµ¦æ¹¯æ¸©åº¦è¨­å®å¤",
+							"description":"給湯温度設定値",
 							"fields":[
 								
@@ -9240,14 +9018,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂温度設定値",
 							"fields":[
 								
@@ -9263,14 +9041,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ²¸ãä¸ãæ¹¯éè¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"沸き上げ湯量設定値",
 							"fields":[
 								
@@ -9286,14 +9064,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ®æ¹¯éè¨æ¸¬å¤",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"残湯量計測値",
 							"fields":[
 								
@@ -9309,13 +9086,13 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533ã)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã¿ã³ã¯å®¹éå¤",
+							"unitDescription":"㍑",
+							"valueDescription":"0x0000～0xFFFD(0～65533㍑)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"タンク容量値",
 							"fields":[
 								
@@ -9331,14 +9108,14 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533ã)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åèªåã¢ã¼ãè¨­å®",
+							"unitDescription":"㍑",
+							"valueDescription":"0x0000～0xFFFD(0～65533㍑)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂自動モード設定",
 							"fields":[
 								
@@ -9356,14 +9133,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªåå
-¥,0x42=èªåè§£é¤"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åè¶³ãæ¹¯åä½è¨­å®",
+							"valueDescription":"0x41=自動入,0x42=自動解除"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂足し湯動作設定",
 							"fields":[
 								
@@ -9380,14 +9156,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=è¶³ãæ¹¯å
-¥,0x42=è¶³ãæ¹¯å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åã¬ããåä½è¨­å®",
+							"valueDescription":"0x41=足し湯入,0x42=足し湯切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂ぬるめ動作設定",
 							"fields":[
 								
@@ -9404,14 +9179,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã¬ããå
-¥,0x42=ã¬ããå"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼",
+							"valueDescription":"0x41=ぬるめ入,0x42=ぬるめ切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定１",
 							"fields":[
 								
@@ -9427,14 +9201,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x00ï½0xFD(0ï½253ã)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼",
+							"unitDescription":"㍑",
+							"valueDescription":"0x00～0xFD(0～253㍑)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定２",
 							"fields":[
 								
@@ -9451,13 +9225,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼",
+							"valueDescription":"0x31～0x38"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定３",
 							"fields":[
 								
@@ -9473,14 +9247,14 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533ã)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼",
+							"unitDescription":"㍑",
+							"valueDescription":"0x0000～0xFFFD(0～65533㍑)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定４",
 							"fields":[
 								
@@ -9497,12 +9271,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½0xFF"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼è¨­å®å¯è½æå¤§ã¬ãã«",
+							"valueDescription":"0x01～0xFF"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定４設定可能最大レベル",
 							"fields":[
 								
@@ -9519,13 +9293,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½0xFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"valueDescription":"0x01～0xFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -9542,18 +9316,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -9565,10 +9338,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -9580,6 +9353,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -9602,5 +9375,5 @@
 							],
 							"arrayCount":0,
-							"description":"å¬å­£ï¼¨ï¼ï¼°ã¦ãããå®æ ¼æ¶è²»é»å",
+							"description":"冬季Ｈ／Ｐユニット定格消費電力",
 							"fields":[
 								
@@ -9617,12 +9390,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¸­éæï¼¨ï¼ï¼°ã¦ãããå®æ ¼æ¶è²»é»å",
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"中間期Ｈ／Ｐユニット定格消費電力",
 							"fields":[
 								
@@ -9639,12 +9412,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¤å­£ï¼¨ï¼ï¼°ã¦ãããå®æ ¼æ¶è²»é»å",
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"夏季Ｈ／Ｐユニット定格消費電力",
 							"fields":[
 								
@@ -9661,5 +9434,5 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
 						}
 					]
@@ -9667,5 +9440,5 @@
 				{
 					"classCode":108,
-					"description":"å¤ªé½ç±æ¸©æ°´å¨",
+					"description":"太陽熱温水器",
 					"name":"SOLAR_WATER_HEATER_EOBJ",
 					"propertyList":[
@@ -9675,5 +9448,5 @@
 				{
 					"classCode":109,
-					"description":"å¾ªç°ãã³ã",
+					"description":"循環ポンプ",
 					"name":"CIRCULATION_PUMP_EOBJ",
 					"propertyList":[
@@ -9683,5 +9456,5 @@
 				{
 					"classCode":110,
-					"description":"é»æ°ä¾¿åº§ï¼æ¸©æ°´æ´æµä¾¿åº§ã»ææ¿ä¾¿åº§ãªã©ï¼",
+					"description":"電気便座（温水洗浄便座・暖房便座など）",
 					"name":"BIDET_EQUIPPED_TOILET_EOBJ",
 					"propertyList":[
@@ -9692,5 +9465,5 @@
 							],
 							"arrayCount":0,
-							"description":"ä¾¿åº§æ¸©åº¦ã¬ãã«è¨­å®",
+							"description":"便座温度レベル設定",
 							"fields":[
 								
@@ -9707,13 +9480,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x3A"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¾¿åº§ãã¼ã¿è¨­å®",
+							"valueDescription":"0x31～0x3A"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"便座ヒータ設定",
 							"fields":[
 								
@@ -9739,5 +9512,5 @@
 							],
 							"arrayCount":0,
-							"description":"ä¾¿åº§ãã¼ã¿ä¸æåæ­¢è¨­å®",
+							"description":"便座ヒータ一時停止設定",
 							"fields":[
 								
@@ -9754,17 +9527,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é£ç¶è¨­å®,0x42=ä¸åè¨­å®,0x43=è¨­å®ãªã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¾¿åº§ãã¼ã¿ä¸æåæ­¢éå§æå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=連続設定,0x42=一回設定,0x43=設定なし"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"便座ヒータ一時停止開始時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -9776,10 +9549,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -9791,6 +9564,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -9814,9 +9587,9 @@
 							],
 							"arrayCount":0,
-							"description":"ä¾¿åº§ãã¼ã¿ä¸æåæ­¢æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"便座ヒータ一時停止時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -9828,10 +9601,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -9843,6 +9616,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -9866,5 +9639,5 @@
 							],
 							"arrayCount":0,
-							"description":"é¨å±ææ¿æ¸©åº¦ã¬ãã«è¨­å®",
+							"description":"部屋暖房温度レベル設定",
 							"fields":[
 								
@@ -9881,13 +9654,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31=ä½,0x32=ä¸­,0x33=é«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¨å±ææ¿è¨­å®",
+							"valueDescription":"0x31=低,0x32=中,0x33=高"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"部屋暖房設定",
 							"fields":[
 								
@@ -9904,13 +9677,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é¨å±ææ¿ON,0x42=é¨å±ææ¿OFF,0x43=ã¿ã¤ãã¢ã¼ãè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¨å±ææ¿ç¶æ
-",
+							"valueDescription":"0x41=部屋暖房ON,0x42=部屋暖房OFF,0x43=タイマモード設定"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"部屋暖房状態",
 							"fields":[
 								
@@ -9935,9 +9707,9 @@
 							],
 							"arrayCount":0,
-							"description":"é¨å±ææ¿éå§æå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"部屋暖房開始時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -9949,10 +9721,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -9964,6 +9736,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -9987,9 +9759,9 @@
 							],
 							"arrayCount":0,
-							"description":"é¨å±ææ¿éè»¢æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"部屋暖房運転時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -10001,10 +9773,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -10016,6 +9788,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -10039,5 +9811,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç¹å¥éè»¢ã¢ã¼ãè¨­å®",
+							"description":"特別運転モード設定",
 							"fields":[
 								
@@ -10054,13 +9826,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=è¨­å®ãªã,0x41=å·ãè¾¼ã¿é²æ­¢,0x42ï½=for future reserved"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"äººä½æ¤ç¥ç¶æ
-",
+							"valueDescription":"0x40=設定なし,0x41=冷え込み防止,0x42～=for future reserved"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"人体検知状態",
 							"fields":[
 								
@@ -10077,13 +9848,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äººä½æ¤ç¥æ,0x42=äººä½æ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çåº§æ¤ç¥ç¶æ
-",
+							"valueDescription":"0x41=人体検知有,0x42=人体検知無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"着座検知状態",
 							"fields":[
 								
@@ -10100,5 +9870,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çåº§æ¤ç¥æ,0x42=çåº§æ¤ç¥ç¡"
+							"valueDescription":"0x41=着座検知有,0x42=着座検知無"
 						}
 					]
@@ -10106,5 +9876,5 @@
 				{
 					"classCode":111,
-					"description":"é»æ°é ",
+					"description":"電気錠",
 					"name":"ELECTRIC_KEY_EOBJ",
 					"propertyList":[
@@ -10116,5 +9886,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ½é è¨­å®ï¼",
+							"description":"施錠設定１",
 							"fields":[
 								
@@ -10132,13 +9902,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ½é ,0x42=è§£é "
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ½é è¨­å®ï¼",
+							"valueDescription":"0x41=施錠,0x42=解錠"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"施錠設定２",
 							"fields":[
 								
@@ -10155,13 +9925,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ½é ,0x42=è§£é "
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã¢ã¬ã¼ãæ½é ç¶æ
-",
+							"valueDescription":"0x41=施錠,0x42=解錠"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ドアガード施錠状態",
 							"fields":[
 								
@@ -10178,13 +9947,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ½é ,0x42=è§£é "
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æééç¶æ
-",
+							"valueDescription":"0x41=施錠,0x42=解錠"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"扉開閉状態",
 							"fields":[
 								
@@ -10201,13 +9969,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é,0x42=é"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¨å®¤ã»ä¸å¨ç¶æ
-",
+							"valueDescription":"0x41=開,0x42=閉"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"在室・不在状態",
 							"fields":[
 								
@@ -10224,13 +9991,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å¨å®¤,0x42=ä¸å¨"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è­¦å ±ç¶æ
-",
+							"valueDescription":"0x41=在室,0x42=不在"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"警報状態",
 							"fields":[
 								
@@ -10247,14 +10013,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=éå¸¸ç¶æ
-ï¼è­¦å ±ãªãï¼,0x41=ããéã,0x42=æéæ¾,0x43=æåè§£é ,0x44=ã¿ã³ã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èªåæ½é ã¢ã¼ãè¨­å®",
+							"valueDescription":"0x40=通常状態（警報なし）,0x41=こじ開け,0x42=扉開放,0x43=手動解錠,0x44=タンパ"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"自動施錠モード設定",
 							"fields":[
 								
@@ -10271,6 +10036,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å
-¥,0x42=å"
+							"valueDescription":"0x41=入,0x42=切"
 						}
 					]
@@ -10278,6 +10042,5 @@
 				{
 					"classCode":112,
-					"description":"ã¬ã¹å
-å¼",
+					"description":"ガス元弁",
 					"name":"GAS_LINE_VALVE_EOBJ",
 					"propertyList":[
@@ -10287,5 +10050,5 @@
 				{
 					"classCode":113,
-					"description":"ãã¼ã ãµã¦ã",
+					"description":"ホームサウナ",
 					"name":"HOME_SAUNA_EOBJ",
 					"propertyList":[
@@ -10295,5 +10058,5 @@
 				{
 					"classCode":114,
-					"description":"ç¬éå¼çµ¦æ¹¯å¨",
+					"description":"瞬間式給湯器",
 					"name":"HOT_WATER_GENERATOR_EOBJ",
 					"propertyList":[
@@ -10303,6 +10066,5 @@
 							],
 							"arrayCount":0,
-							"description":"çµ¦æ¹¯å¨çç¼ç¶æ
-",
+							"description":"給湯器燃焼状態",
 							"fields":[
 								
@@ -10319,14 +10081,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çµ¦æ¹¯çç¼ç¶æ
-æ,0x42=ç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çµ¦æ¹¯æ¸©åº¦è¨­å®å¤",
+							"valueDescription":"0x41=給湯燃焼状態有,0x42=無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"給湯温度設定値",
 							"fields":[
 								
@@ -10342,14 +10103,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çµ¦æ¹¯ä¿æ¸©è¨­å®",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"給湯保温設定",
 							"fields":[
 								
@@ -10366,17 +10127,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çµ¦æ¹¯ä¿æ¸©åä½,0x42=çµ¦æ¹¯ä¿æ¸©åä½è§£é¤"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èªåéè»¢æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=給湯保温動作,0x42=給湯保温動作解除"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"自動運転時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -10388,10 +10149,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -10403,6 +10164,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -10418,16 +10179,16 @@
 							"type":"hour_minute_t",
 							"unitDescription":null,
-							"valueDescription":"0xFFFF=ç¡é"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èªåéè»¢æ®æé",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0xFFFF=無限"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"自動運転残時間",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -10439,10 +10200,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -10454,6 +10215,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -10469,13 +10230,13 @@
 							"type":"hour_minute_t",
 							"unitDescription":null,
-							"valueDescription":"0xFFFF=ç¡é"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¸©åº¦è¨­å®å¤",
+							"valueDescription":"0xFFFF=無限"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂温度設定値",
 							"fields":[
 								
@@ -10491,14 +10252,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åçµ¦æ¹¯å¨çç¼ç¶æ
-",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂給湯器燃焼状態",
 							"fields":[
 								
@@ -10515,14 +10275,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çç¼ç¶æ
-æ,0x42=ç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åèªåã¢ã¼ãè¨­å®",
+							"valueDescription":"0x41=燃焼状態有,0x42=無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂自動モード設定",
 							"fields":[
 								
@@ -10540,14 +10299,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªåå
-¥,0x42=èªåè§£é¤"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åè¿½ãçãåä½è¨­å®",
+							"valueDescription":"0x41=自動入,0x42=自動解除"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂追い焚き動作設定",
 							"fields":[
 								
@@ -10564,14 +10322,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=è¿½ãçãå
-¥,0x42=è¿½ãçãå"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åè¶³ãæ¹¯åä½è¨­å®",
+							"valueDescription":"0x41=追い焚き入,0x42=追い焚き切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂足し湯動作設定",
 							"fields":[
 								
@@ -10588,14 +10345,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=è¶³ãæ¹¯å
-¥,0x42=è¶³ãæ¹¯å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åã¬ããåä½è¨­å®",
+							"valueDescription":"0x41=足し湯入,0x42=足し湯切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂ぬるめ動作設定",
 							"fields":[
 								
@@ -10612,14 +10368,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã¬ããå
-¥,0x42=ã¬ããå"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼",
+							"valueDescription":"0x41=ぬるめ入,0x42=ぬるめ切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定１",
 							"fields":[
 								
@@ -10635,14 +10390,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x00ï½0xFD(0ï½253ã)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼",
+							"unitDescription":"㍑",
+							"valueDescription":"0x00～0xFD(0～253㍑)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定２",
 							"fields":[
 								
@@ -10659,13 +10414,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼",
+							"valueDescription":"0x31～0x38"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定３",
 							"fields":[
 								
@@ -10681,14 +10436,14 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533ã)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼",
+							"unitDescription":"㍑",
+							"valueDescription":"0x0000～0xFFFD(0～65533㍑)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定４",
 							"fields":[
 								
@@ -10705,12 +10460,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½0xFF"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ¹¯éè¨­å®ï¼è¨­å®å¯è½æå¤§ã¬ãã«",
+							"valueDescription":"0x01～0xFF"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂湯量設定４設定可能最大レベル",
 							"fields":[
 								
@@ -10727,14 +10482,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½0xFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æµ´å®¤åªå
-è¨­å®",
+							"valueDescription":"0x01～0xFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"浴室優先設定",
 							"fields":[
 								
@@ -10751,16 +10505,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æµ´å®¤åªå
-å
-¥,0x42=æµ´å®¤åªå
-å"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã·ã£ã¯ã¼çµ¦æ¹¯ç¶æ
-",
+							"valueDescription":"0x41=浴室優先入,0x42=浴室優先切"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"シャワー給湯状態",
 							"fields":[
 								
@@ -10777,15 +10527,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã·ã£ã¯ã¼çµ¦æ¹¯ç¶æ
-æ,0x42=ã·ã£ã¯ã¼çµ¦æ¹¯ç¶æ
-ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å°æçµ¦æ¹¯ç¶æ
-",
+							"valueDescription":"0x41=シャワー給湯状態有,0x42=シャワー給湯状態無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"台所給湯状態",
 							"fields":[
 								
@@ -10802,15 +10549,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å°æçµ¦æ¹¯ç¶æ
-æ,0x42=å°æçµ¦æ¹¯ç¶æ
-ç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çµ¦æ¹¯ä¿æ¸©ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"valueDescription":"0x41=台所給湯状態有,0x42=台所給湯状態無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"給湯保温ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -10827,18 +10572,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çµ¦æ¹¯ä¿æ¸©ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"給湯保温ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -10850,10 +10594,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -10865,6 +10609,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -10888,5 +10632,5 @@
 							],
 							"arrayCount":0,
-							"description":"é¢¨åèªåï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"description":"風呂自動ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -10903,18 +10647,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åèªåï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂自動ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -10926,10 +10669,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -10941,6 +10684,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -10964,9 +10707,9 @@
 							],
 							"arrayCount":0,
-							"description":"é¢¨åèªåï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"風呂自動ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -10978,10 +10721,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -10993,6 +10736,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -11014,5 +10757,5 @@
 				{
 					"classCode":115,
-					"description":"æµ´å®¤ææ¿ä¹¾ç¥æ©",
+					"description":"浴室暖房乾燥機",
 					"name":"BATHROOM_DRYER_EOBJ",
 					"propertyList":[
@@ -11023,5 +10766,5 @@
 							],
 							"arrayCount":0,
-							"description":"éè»¢è¨­å®",
+							"description":"運転設定",
 							"fields":[
 								
@@ -11039,15 +10782,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x10=ææ°éè»¢,0x20=å
-¥æµ´åäºåææ¿éè»¢,0x30=å
-¥æµ´ä¸­ææ¿éè»¢,0x40=ä¹¾ç¥éè»¢,0x50=æ¶¼é¢¨éè»¢,0x00=åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ°éè»¢è¨­å®",
+							"valueDescription":"0x10=換気運転,0x20=入浴前予備暖房運転,0x30=入浴中暖房運転,0x40=乾燥運転,0x50=涼風運転,0x00=停止"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"換気運転設定",
 							"fields":[
 								
@@ -11064,14 +10805,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=é¢¨éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-¥æµ´åäºåææ¿éè»¢è¨­å®",
+							"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=風量レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"入浴前予備暖房運転設定",
 							"fields":[
 								
@@ -11089,14 +10829,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=è½åã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-¥æµ´ä¸­ææ¿éè»¢è¨­å®",
+							"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=能力レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"入浴中暖房運転設定",
 							"fields":[
 								
@@ -11113,13 +10852,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=è½åã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¹¾ç¥éè»¢è¨­å®",
+							"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=能力レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"乾燥運転設定",
 							"fields":[
 								
@@ -11137,13 +10876,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=è½åã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¶¼é¢¨éè»¢è¨­å®",
+							"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=能力レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"涼風運転設定",
 							"fields":[
 								
@@ -11160,13 +10899,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=è½åã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤",
+							"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=能力レベル"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内相対湿度計測値",
 							"fields":[
 								
@@ -11182,15 +10920,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内温度計測値",
 							"fields":[
 								
@@ -11206,14 +10942,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7D(-127ï½125â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææ°é¢¨éè¨­å®",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7D(-127～125℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"換気風量設定",
 							"fields":[
 								
@@ -11230,13 +10966,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x31ï½0x38=é¢¨éã¬ãã«"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã£ã«ã¿ãµã¤ã³è¨­å®",
+							"valueDescription":"0x41=自動,0x31～0x38=風量レベル"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"フィルタサイン設定",
 							"fields":[
 								
@@ -11253,13 +10989,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç¹ç¯,0x42=æ¶ç¯"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"äººä½æ¤ç¥ç¶æ
-",
+							"valueDescription":"0x41=点灯,0x42=消灯"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"人体検知状態",
 							"fields":[
 								
@@ -11276,13 +11011,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äººä½æ¤ç¥ãã,0x42=äººä½æ¤ç¥ãªã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®ï¼",
+							"valueDescription":"0x41=人体検知あり,0x42=人体検知なし"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ予約設定１",
 							"fields":[
 								
@@ -11299,14 +11034,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®ï¼",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ予約設定２",
 							"fields":[
 								
@@ -11323,19 +11057,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x10=ææ°éè»¢äºç´,0x20=å
-¥æµ´åäºåææ¿éè»¢äºç´,0x30=å
-¥æµ´ä¸­ææ¿éè»¢äºç´,0x40=ä¹¾ç¥éè»¢äºç´,0x50=æ¶¼é¢¨éè»¢äºç´,0x00=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x10=換気運転予約,0x20=入浴前予備暖房運転予約,0x30=入浴中暖房運転予約,0x40=乾燥運転予約,0x50=涼風運転予約,0x00=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -11347,10 +11079,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -11362,6 +11094,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -11385,9 +11117,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -11399,10 +11131,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -11414,6 +11146,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -11437,5 +11169,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＦＦタイマ予約設定",
 							"fields":[
 								
@@ -11452,18 +11184,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -11475,10 +11206,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -11490,6 +11221,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -11513,9 +11244,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＦＦタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -11527,10 +11258,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -11542,6 +11273,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -11563,5 +11294,5 @@
 				{
 					"classCode":116,
-					"description":"ãã¼ã ã¨ã¬ãã¼ã¿",
+					"description":"ホームエレベータ",
 					"name":"HOME_ELEVATOR_EOBJ",
 					"propertyList":[
@@ -11571,5 +11302,5 @@
 				{
 					"classCode":117,
-					"description":"é»åéä»åã",
+					"description":"電動間仕切り",
 					"name":"ELECTRICALLY_OPERATED_ROOM_DIVIDER_EOBJ",
 					"propertyList":[
@@ -11579,5 +11310,5 @@
 				{
 					"classCode":118,
-					"description":"æ°´å¹³ãã©ã³ã¹ãã¡",
+					"description":"水平トランスファ",
 					"name":"HORIZONTAL_TRANSFER_EOBJ",
 					"propertyList":[
@@ -11587,5 +11318,5 @@
 				{
 					"classCode":119,
-					"description":"é»åç©å¹²ã",
+					"description":"電動物干し",
 					"name":"ELECTRICALLY_OPERATED_CLOTHES_DRYING_POLE_EOBJ",
 					"propertyList":[
@@ -11595,5 +11326,5 @@
 				{
 					"classCode":120,
-					"description":"æµåæ§½",
+					"description":"浄化槽",
 					"name":"SEPTIC_TANK_EOBJ",
 					"propertyList":[
@@ -11603,7 +11334,5 @@
 				{
 					"classCode":121,
-					"description":"ä½å®
-ç¨å¤ªé½å
-çºé»",
+					"description":"住宅用太陽光発電",
 					"name":"HOME_SOLAR_POWER_GENERATION_EOBJ",
 					"propertyList":[
@@ -11613,6 +11342,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç³»çµ±é£ç³»ç¶æ
-",
+							"description":"系統連系状態",
 							"fields":[
 								
@@ -11629,12 +11357,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æçºé»é»åè¨æ¸¬å¤",
+							"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時発電電力計測値",
 							"fields":[
 								
@@ -11651,12 +11379,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®çºé»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算発電電力量計測値",
 							"fields":[
 								
@@ -11673,5 +11401,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
 						},
 						{
@@ -11680,5 +11408,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®çºé»é»åéãªã»ããè¨­å®",
+							"description":"積算発電電力量リセット設定",
 							"fields":[
 								
@@ -11695,12 +11423,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®å£²é»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x00=リセット"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算売電電力量計測値",
 							"fields":[
 								
@@ -11717,5 +11445,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
 						},
 						{
@@ -11724,5 +11452,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®å£²é»é»åéãªã»ããè¨­å®",
+							"description":"積算売電電力量リセット設定",
 							"fields":[
 								
@@ -11739,13 +11467,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çºé»é»åå¶éè¨­å®ï¼",
+							"valueDescription":"0x00=リセット"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"発電電力制限設定１",
 							"fields":[
 								
@@ -11761,15 +11489,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çºé»é»åå¶éè¨­å®ï¼",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"発電電力制限設定２",
 							"fields":[
 								
@@ -11786,13 +11513,13 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å£²é»é»åå¶éè¨­å®",
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"売電電力制限設定",
 							"fields":[
 								
@@ -11809,13 +11536,13 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼çºé»é»åå¤ï¼ç³»çµ±é£ç³»æï¼",
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格発電電力値（系統連系時）",
 							"fields":[
 								
@@ -11832,13 +11559,13 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼çºé»é»åå¤ï¼ç¬ç«æï¼",
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格発電電力値（独立時）",
 							"fields":[
 								
@@ -11855,5 +11582,5 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533)"
+							"valueDescription":"0x0000～0xFFFD(0～65533)"
 						}
 					]
@@ -11861,5 +11588,5 @@
 				{
 					"classCode":122,
-					"description":"å·æ¸©æ°´ç±æºæ©",
+					"description":"冷温水熱源機",
 					"name":"COLD_AND_HOT_WATER_HEAT_SOURCE_EQUIPMENT_EOBJ",
 					"propertyList":[
@@ -11870,5 +11597,5 @@
 							],
 							"arrayCount":0,
-							"description":"éè»¢ã¢ã¼ãè¨­å®",
+							"description":"運転モード設定",
 							"fields":[
 								
@@ -11885,13 +11612,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ææ¿,0x42=å·æ¿"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´æ¸©è¨­å®ï¼",
+							"valueDescription":"0x41=暖房,0x42=冷房"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水温設定１",
 							"fields":[
 								
@@ -11908,14 +11635,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â),0x71=AUTO"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´æ¸©è¨­å®ï¼",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃),0x71=AUTO"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水温設定２",
 							"fields":[
 								
@@ -11933,12 +11660,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x21ï½0x2F=å·æ¿ï¼å·æ°´ï¼(æä½ã¬ãã«ï½æé«ã¬ãã«),0x31ï½0x3F=ææ¿ï¼æ¸©æ°´ï¼(æä½ã¬ãã«ï½æé«ã¬ãã«),0x41=AUTO"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¾ãæ°´æ¸©è¨æ¸¬å¤ï¼åºå£æ°´æ¸©ï¼",
+							"valueDescription":"0x21～0x2F=冷房（冷水）(最低レベル～最高レベル),0x31～0x3F=暖房（温水）(最低レベル～最高レベル),0x41=AUTO"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"往き水温計測値（出口水温）",
 							"fields":[
 								
@@ -11954,14 +11681,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ»ãæ°´æ¸©è¨æ¸¬å¤ï¼å
-¥å£æ°´æ¸©ï¼",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"戻り水温計測値（入口水温）",
 							"fields":[
 								
@@ -11977,14 +11703,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¹æ®éè»¢è¨­å®",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"特殊運転設定",
 							"fields":[
 								
@@ -12001,13 +11727,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éå¸¸éè»¢,0x42=ã²ãããéè»¢,0x43=ãã¤ãã¯ã¼éè»¢"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã¤ãªã¼ã¿ã¤ãã¼è¨­å®",
+							"valueDescription":"0x41=通常運転,0x42=ひかえめ運転,0x43=ハイパワー運転"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"デイリータイマー設定",
 							"fields":[
 								
@@ -12024,17 +11750,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=ã¿ã¤ãã¼å,0x41=ã¿ã¤ãã¼1,0x42=ã¿ã¤ãã¼2"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã¤ãªã¼ã¿ã¤ãã¼ï¼è¨­å®",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ï¼æããï¼æ",
+							"valueDescription":"0x40=タイマー切,0x41=タイマー1,0x42=タイマー2"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"デイリータイマー１設定",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"０時から３時",
 									"fields":[
 										
@@ -12047,9 +11773,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]０時０分:1=運転,0=停止\u000d\u000a[1]０時３０分:1=運転,0=停止\u000d\u000a[2]１時０分:1=運転,0=停止\u000d\u000a[3]１時３０分:1=運転,0=停止\u000d\u000a[4]２時０分:1=運転,0=停止\u000d\u000a[5]２時３０分:1=運転,0=停止\u000d\u000a[6]３時０分:1=運転,0=停止\u000d\u000a[7]３時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼æããï¼æ",
+									"description":"４時から７時",
 									"fields":[
 										
@@ -12062,9 +11788,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]４時０分:1=運転,0=停止\u000d\u000a[1]４時３０分:1=運転,0=停止\u000d\u000a[2]５時０分:1=運転,0=停止\u000d\u000a[3]５時３０分:1=運転,0=停止\u000d\u000a[4]６時０分:1=運転,0=停止\u000d\u000a[5]６時３０分:1=運転,0=停止\u000d\u000a[6]７時０分:1=運転,0=停止\u000d\u000a[7]７時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼æããï¼ï¼æ",
+									"description":"８時から１１時",
 									"fields":[
 										
@@ -12077,9 +11803,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]８時０分:1=運転,0=停止\u000d\u000a[1]８時３０分:1=運転,0=停止\u000d\u000a[2]９時０分:1=運転,0=停止\u000d\u000a[3]９時３０分:1=運転,0=停止\u000d\u000a[4]１０時０分:1=運転,0=停止\u000d\u000a[5]１０時３０分:1=運転,0=停止\u000d\u000a[6]１１時０分:1=運転,0=停止\u000d\u000a[7]１１時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"１２時から１５時",
 									"fields":[
 										
@@ -12092,9 +11818,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]１２時０分:1=運転,0=停止\u000d\u000a[1]１２時３０分:1=運転,0=停止\u000d\u000a[2]１３時０分:1=運転,0=停止\u000d\u000a[3]１３時３０分:1=運転,0=停止\u000d\u000a[4]１４時０分:1=運転,0=停止\u000d\u000a[5]１４時３０分:1=運転,0=停止\u000d\u000a[6]１５時０分:1=運転,0=停止\u000d\u000a[7]１５時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"１６時から１９時",
 									"fields":[
 										
@@ -12107,9 +11833,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]１６時０分:1=運転,0=停止\u000d\u000a[1]１６時３０分:1=運転,0=停止\u000d\u000a[2]１７時０分:1=運転,0=停止\u000d\u000a[3]１７時３０分:1=運転,0=停止\u000d\u000a[4]１８時０分:1=運転,0=停止\u000d\u000a[5]１８時３０分:1=運転,0=停止\u000d\u000a[6]１９時０分:1=運転,0=停止\u000d\u000a[7]１９時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"２０時から２３時",
 									"fields":[
 										
@@ -12122,5 +11848,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]２０時０分:1=運転,0=停止\u000d\u000a[1]２０時３０分:1=運転,0=停止\u000d\u000a[2]２１時０分:1=運転,0=停止\u000d\u000a[3]２１時３０分:1=運転,0=停止\u000d\u000a[4]２２時０分:1=運転,0=停止\u000d\u000a[5]２２時３０分:1=運転,0=停止\u000d\u000a[6]２３時０分:1=運転,0=停止\u000d\u000a[7]２３時３０分:1=運転,0=停止"
 								}
 							],
@@ -12144,9 +11870,9 @@
 							],
 							"arrayCount":0,
-							"description":"ãã¤ãªã¼ã¿ã¤ãã¼ï¼è¨­å®",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ï¼æããï¼æ",
+							"description":"デイリータイマー２設定",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"０時から３時",
 									"fields":[
 										
@@ -12159,9 +11885,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]０時０分:1=運転,0=停止\u000d\u000a[1]０時３０分:1=運転,0=停止\u000d\u000a[2]１時０分:1=運転,0=停止\u000d\u000a[3]１時３０分:1=運転,0=停止\u000d\u000a[4]２時０分:1=運転,0=停止\u000d\u000a[5]２時３０分:1=運転,0=停止\u000d\u000a[6]３時０分:1=運転,0=停止\u000d\u000a[7]３時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼æããï¼æ",
+									"description":"４時から７時",
 									"fields":[
 										
@@ -12174,9 +11900,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]４時０分:1=運転,0=停止\u000d\u000a[1]４時３０分:1=運転,0=停止\u000d\u000a[2]５時０分:1=運転,0=停止\u000d\u000a[3]５時３０分:1=運転,0=停止\u000d\u000a[4]６時０分:1=運転,0=停止\u000d\u000a[5]６時３０分:1=運転,0=停止\u000d\u000a[6]７時０分:1=運転,0=停止\u000d\u000a[7]７時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼æããï¼ï¼æ",
+									"description":"８時から１１時",
 									"fields":[
 										
@@ -12189,9 +11915,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]８時０分:1=運転,0=停止\u000d\u000a[1]８時３０分:1=運転,0=停止\u000d\u000a[2]９時０分:1=運転,0=停止\u000d\u000a[3]９時３０分:1=運転,0=停止\u000d\u000a[4]１０時０分:1=運転,0=停止\u000d\u000a[5]１０時３０分:1=運転,0=停止\u000d\u000a[6]１１時０分:1=運転,0=停止\u000d\u000a[7]１１時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"１２時から１５時",
 									"fields":[
 										
@@ -12204,9 +11930,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]１２時０分:1=運転,0=停止\u000d\u000a[1]１２時３０分:1=運転,0=停止\u000d\u000a[2]１３時０分:1=運転,0=停止\u000d\u000a[3]１３時３０分:1=運転,0=停止\u000d\u000a[4]１４時０分:1=運転,0=停止\u000d\u000a[5]１４時３０分:1=運転,0=停止\u000d\u000a[6]１５時０分:1=運転,0=停止\u000d\u000a[7]１５時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"１６時から１９時",
 									"fields":[
 										
@@ -12219,9 +11945,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]１６時０分:1=運転,0=停止\u000d\u000a[1]１６時３０分:1=運転,0=停止\u000d\u000a[2]１７時０分:1=運転,0=停止\u000d\u000a[3]１７時３０分:1=運転,0=停止\u000d\u000a[4]１８時０分:1=運転,0=停止\u000d\u000a[5]１８時３０分:1=運転,0=停止\u000d\u000a[6]１９時０分:1=運転,0=停止\u000d\u000a[7]１９時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"２０時から２３時",
 									"fields":[
 										
@@ -12234,5 +11960,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]２０時０分:1=運転,0=停止\u000d\u000a[1]２０時３０分:1=運転,0=停止\u000d\u000a[2]２１時０分:1=運転,0=停止\u000d\u000a[3]２１時３０分:1=運転,0=停止\u000d\u000a[4]２２時０分:1=運転,0=停止\u000d\u000a[5]２２時３０分:1=運転,0=停止\u000d\u000a[6]２３時０分:1=運転,0=停止\u000d\u000a[7]２３時３０分:1=運転,0=停止"
 								}
 							],
@@ -12256,5 +11982,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -12271,18 +11997,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -12294,10 +12019,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -12309,6 +12034,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -12332,9 +12057,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -12346,10 +12071,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -12361,6 +12086,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -12384,5 +12109,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＦＦタイマ予約設定",
 							"fields":[
 								
@@ -12399,18 +12124,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -12422,10 +12146,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -12437,6 +12161,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -12460,9 +12184,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＦＦタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -12474,10 +12198,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -12489,6 +12213,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -12510,5 +12234,5 @@
 				{
 					"classCode":123,
-					"description":"åºææ¿",
+					"description":"床暖房",
 					"name":"FLOOR_HEATER2_EOBJ",
 					"propertyList":[
@@ -12519,5 +12243,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¸©åº¦è¨­å®ï¼",
+							"description":"温度設定１",
 							"fields":[
 								
@@ -12534,14 +12258,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x32(0ï½50â),0x41=AUTO"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¸©åº¦è¨­å®ï¼",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x32(0～50℃),0x41=AUTO"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"温度設定２",
 							"fields":[
 								
@@ -12559,13 +12283,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x3F(æä½ï½æé«ã¬ãã«),0x41=AUTO"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤",
+							"valueDescription":"0x31～0x3F(最低～最高レベル),0x41=AUTO"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"室内温度計測値",
 							"fields":[
 								
@@ -12581,13 +12304,13 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7D(-127ï½125â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"åºæ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7D(-127～125℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"床温度計測値",
 							"fields":[
 								
@@ -12603,14 +12326,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7D(-127ï½125â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã¾ã¼ã³åæ¿ãè¨­å®",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7D(-127～125℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ゾーン切替え設定",
 							"fields":[
 								
@@ -12627,13 +12350,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"[0]ã¾ã¼ã³0:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[1]ã¾ã¼ã³1:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[2]ã¾ã¼ã³2:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[3]ã¾ã¼ã³3:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[4]ã¾ã¼ã³4:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[5]ã¾ã¼ã³5:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[6]ã¾ã¼ã³6:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[7]ã¾ã¼ã³7:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¹æ®éè»¢è¨­å®",
+							"valueDescription":"[0]ゾーン0:1=制御有り,0=制御無し\u000d\u000a[1]ゾーン1:1=制御有り,0=制御無し\u000d\u000a[2]ゾーン2:1=制御有り,0=制御無し\u000d\u000a[3]ゾーン3:1=制御有り,0=制御無し\u000d\u000a[4]ゾーン4:1=制御有り,0=制御無し\u000d\u000a[5]ゾーン5:1=制御有り,0=制御無し\u000d\u000a[6]ゾーン6:1=制御有り,0=制御無し\u000d\u000a[7]ゾーン7:1=制御有り,0=制御無し"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"特殊運転設定",
 							"fields":[
 								
@@ -12650,13 +12373,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éå¸¸éè»¢,0x42=ã²ãããéè»¢,0x43=ãã¤ãã¯ã¼éè»¢"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã¤ãªã¼ã¿ã¤ãã¼è¨­å®",
+							"valueDescription":"0x41=通常運転,0x42=ひかえめ運転,0x43=ハイパワー運転"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"デイリータイマー設定",
 							"fields":[
 								
@@ -12673,17 +12396,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=ã¿ã¤ãã¼å,0x41=ã¿ã¤ãã¼1,0x42=ã¿ã¤ãã¼2"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã¤ãªã¼ã¿ã¤ãã¼ï¼è¨­å®",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ï¼æããï¼æ",
+							"valueDescription":"0x40=タイマー切,0x41=タイマー1,0x42=タイマー2"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"デイリータイマー１設定",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"０時から３時",
 									"fields":[
 										
@@ -12696,9 +12419,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]０時０分:1=運転,0=停止\u000d\u000a[1]０時３０分:1=運転,0=停止\u000d\u000a[2]１時０分:1=運転,0=停止\u000d\u000a[3]１時３０分:1=運転,0=停止\u000d\u000a[4]２時０分:1=運転,0=停止\u000d\u000a[5]２時３０分:1=運転,0=停止\u000d\u000a[6]３時０分:1=運転,0=停止\u000d\u000a[7]３時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼æããï¼æ",
+									"description":"４時から７時",
 									"fields":[
 										
@@ -12711,9 +12434,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]４時０分:1=運転,0=停止\u000d\u000a[1]４時３０分:1=運転,0=停止\u000d\u000a[2]５時０分:1=運転,0=停止\u000d\u000a[3]５時３０分:1=運転,0=停止\u000d\u000a[4]６時０分:1=運転,0=停止\u000d\u000a[5]６時３０分:1=運転,0=停止\u000d\u000a[6]７時０分:1=運転,0=停止\u000d\u000a[7]７時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼æããï¼ï¼æ",
+									"description":"８時から１１時",
 									"fields":[
 										
@@ -12726,9 +12449,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]８時０分:1=運転,0=停止\u000d\u000a[1]８時３０分:1=運転,0=停止\u000d\u000a[2]９時０分:1=運転,0=停止\u000d\u000a[3]９時３０分:1=運転,0=停止\u000d\u000a[4]１０時０分:1=運転,0=停止\u000d\u000a[5]１０時３０分:1=運転,0=停止\u000d\u000a[6]１１時０分:1=運転,0=停止\u000d\u000a[7]１１時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"１２時から１５時",
 									"fields":[
 										
@@ -12741,9 +12464,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]１２時０分:1=運転,0=停止\u000d\u000a[1]１２時３０分:1=運転,0=停止\u000d\u000a[2]１３時０分:1=運転,0=停止\u000d\u000a[3]１３時３０分:1=運転,0=停止\u000d\u000a[4]１４時０分:1=運転,0=停止\u000d\u000a[5]１４時３０分:1=運転,0=停止\u000d\u000a[6]１５時０分:1=運転,0=停止\u000d\u000a[7]１５時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"１６時から１９時",
 									"fields":[
 										
@@ -12756,9 +12479,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]１６時０分:1=運転,0=停止\u000d\u000a[1]１６時３０分:1=運転,0=停止\u000d\u000a[2]１７時０分:1=運転,0=停止\u000d\u000a[3]１７時３０分:1=運転,0=停止\u000d\u000a[4]１８時０分:1=運転,0=停止\u000d\u000a[5]１８時３０分:1=運転,0=停止\u000d\u000a[6]１９時０分:1=運転,0=停止\u000d\u000a[7]１９時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"２０時から２３時",
 									"fields":[
 										
@@ -12771,5 +12494,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]２０時０分:1=運転,0=停止\u000d\u000a[1]２０時３０分:1=運転,0=停止\u000d\u000a[2]２１時０分:1=運転,0=停止\u000d\u000a[3]２１時３０分:1=運転,0=停止\u000d\u000a[4]２２時０分:1=運転,0=停止\u000d\u000a[5]２２時３０分:1=運転,0=停止\u000d\u000a[6]２３時０分:1=運転,0=停止\u000d\u000a[7]２３時３０分:1=運転,0=停止"
 								}
 							],
@@ -12793,9 +12516,9 @@
 							],
 							"arrayCount":0,
-							"description":"ãã¤ãªã¼ã¿ã¤ãã¼ï¼è¨­å®",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ï¼æããï¼æ",
+							"description":"デイリータイマー２設定",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"０時から３時",
 									"fields":[
 										
@@ -12808,9 +12531,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]０時０分:1=運転,0=停止\u000d\u000a[1]０時３０分:1=運転,0=停止\u000d\u000a[2]１時０分:1=運転,0=停止\u000d\u000a[3]１時３０分:1=運転,0=停止\u000d\u000a[4]２時０分:1=運転,0=停止\u000d\u000a[5]２時３０分:1=運転,0=停止\u000d\u000a[6]３時０分:1=運転,0=停止\u000d\u000a[7]３時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼æããï¼æ",
+									"description":"４時から７時",
 									"fields":[
 										
@@ -12823,9 +12546,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]４時０分:1=運転,0=停止\u000d\u000a[1]４時３０分:1=運転,0=停止\u000d\u000a[2]５時０分:1=運転,0=停止\u000d\u000a[3]５時３０分:1=運転,0=停止\u000d\u000a[4]６時０分:1=運転,0=停止\u000d\u000a[5]６時３０分:1=運転,0=停止\u000d\u000a[6]７時０分:1=運転,0=停止\u000d\u000a[7]７時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼æããï¼ï¼æ",
+									"description":"８時から１１時",
 									"fields":[
 										
@@ -12838,9 +12561,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]８時０分:1=運転,0=停止\u000d\u000a[1]８時３０分:1=運転,0=停止\u000d\u000a[2]９時０分:1=運転,0=停止\u000d\u000a[3]９時３０分:1=運転,0=停止\u000d\u000a[4]１０時０分:1=運転,0=停止\u000d\u000a[5]１０時３０分:1=運転,0=停止\u000d\u000a[6]１１時０分:1=運転,0=停止\u000d\u000a[7]１１時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"１２時から１５時",
 									"fields":[
 										
@@ -12853,9 +12576,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]１２時０分:1=運転,0=停止\u000d\u000a[1]１２時３０分:1=運転,0=停止\u000d\u000a[2]１３時０分:1=運転,0=停止\u000d\u000a[3]１３時３０分:1=運転,0=停止\u000d\u000a[4]１４時０分:1=運転,0=停止\u000d\u000a[5]１４時３０分:1=運転,0=停止\u000d\u000a[6]１５時０分:1=運転,0=停止\u000d\u000a[7]１５時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"１６時から１９時",
 									"fields":[
 										
@@ -12868,9 +12591,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]１６時０分:1=運転,0=停止\u000d\u000a[1]１６時３０分:1=運転,0=停止\u000d\u000a[2]１７時０分:1=運転,0=停止\u000d\u000a[3]１７時３０分:1=運転,0=停止\u000d\u000a[4]１８時０分:1=運転,0=停止\u000d\u000a[5]１８時３０分:1=運転,0=停止\u000d\u000a[6]１９時０分:1=運転,0=停止\u000d\u000a[7]１９時３０分:1=運転,0=停止"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼ï¼æããï¼ï¼æ",
+									"description":"２０時から２３時",
 									"fields":[
 										
@@ -12883,5 +12606,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"
+									"valueDescription":"[0]２０時０分:1=運転,0=停止\u000d\u000a[1]２０時３０分:1=運転,0=停止\u000d\u000a[2]２１時０分:1=運転,0=停止\u000d\u000a[3]２１時３０分:1=運転,0=停止\u000d\u000a[4]２２時０分:1=運転,0=停止\u000d\u000a[5]２２時３０分:1=運転,0=停止\u000d\u000a[6]２３時０分:1=運転,0=停止\u000d\u000a[7]２３時３０分:1=運転,0=停止"
 								}
 							],
@@ -12905,5 +12628,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -12920,18 +12643,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -12943,10 +12665,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -12958,6 +12680,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -12981,9 +12703,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -12995,10 +12717,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -13010,6 +12732,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -13033,5 +12755,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＦＦタイマ予約設定",
 							"fields":[
 								
@@ -13048,18 +12770,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -13071,10 +12792,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -13086,6 +12807,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -13109,9 +12830,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＦＦタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -13123,10 +12844,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -13138,6 +12859,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -13159,5 +12880,5 @@
 				{
 					"classCode":124,
-					"description":"çæé»æ± ",
+					"description":"燃料電池",
 					"name":"FUEL_CELL_EOBJ",
 					"propertyList":[
@@ -13167,5 +12888,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¸©æ°´å¨æ¹¯æ¸©è¨æ¸¬å¤",
+							"description":"温水器湯温計測値",
 							"fields":[
 								
@@ -13181,13 +12902,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼çºé»é",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格発電量",
 							"fields":[
 								
@@ -13204,12 +12925,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è²¯æ¹¯æ§½ç±é",
+							"valueDescription":"0x0000～0xFFFD(0～65,533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"貯湯槽熱量",
 							"fields":[
 								
@@ -13226,12 +12947,12 @@
 							"type":"uint16_t",
 							"unitDescription":"MJ",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533MJ)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æçºé»é»åè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65,533MJ)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時発電電力計測値",
 							"fields":[
 								
@@ -13248,12 +12969,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®çºé»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65,533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算発電電力量計測値",
 							"fields":[
 								
@@ -13270,5 +12991,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
 						},
 						{
@@ -13277,5 +12998,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®çºé»é»åéãªã»ããè¨­å®",
+							"description":"積算発電電力量リセット設定",
 							"fields":[
 								
@@ -13292,12 +13013,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æã¬ã¹æ¶è²»éè¨æ¸¬å¤",
+							"valueDescription":"0x00=リセット"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時ガス消費量計測値",
 							"fields":[
 								
@@ -13313,13 +13034,13 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"0.001ã¥\/h",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65.533ã¥\/h)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤",
+							"unitDescription":"0.001㎥\/h",
+							"valueDescription":"0x0000～0xFFFD(0～65.533㎥\/h)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算ガス消費量計測値",
 							"fields":[
 								
@@ -13335,6 +13056,6 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"0.001ã¥",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"
+							"unitDescription":"0.001㎥",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"
 						},
 						{
@@ -13343,5 +13064,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éãªã»ããè¨­å®",
+							"description":"積算ガス消費量リセット設定",
 							"fields":[
 								
@@ -13358,5 +13079,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						},
 						{
@@ -13365,5 +13086,5 @@
 							],
 							"arrayCount":0,
-							"description":"çºé»åä½è¨­å®",
+							"description":"発電動作設定",
 							"fields":[
 								
@@ -13380,13 +13101,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çºé»åä½,0x42=çºé»åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çºé»åä½ç¶æ
-",
+							"valueDescription":"0x41=発電動作,0x42=発電停止"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"発電動作状態",
 							"fields":[
 								
@@ -13403,14 +13123,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çºé»ä¸­,0x42=åæ­¢ä¸­,0x43=èµ·åä¸­,0x44=åæ­¢åä½ä¸­,0x45=ã¢ã¤ãã«ä¸­"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®
-å
-ç¬ææ¶è²»é»åè¨æ¸¬å¤",
+							"valueDescription":"0x41=発電中,0x42=停止中,0x43=起動中,0x44=停止動作中,0x45=アイドル中"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"宅内瞬時消費電力計測値",
 							"fields":[
 								
@@ -13427,14 +13145,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®
-å
-ç©ç®æ¶è²»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65,533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"宅内積算消費電力量計測値",
 							"fields":[
 								
@@ -13451,5 +13167,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
 						},
 						{
@@ -13458,7 +13174,5 @@
 							],
 							"arrayCount":0,
-							"description":"å®
-å
-ç©ç®æ¶è²»é»åéãªã»ããè¨­å®",
+							"description":"宅内積算消費電力量リセット設定",
 							"fields":[
 								
@@ -13475,13 +13189,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç³»çµ±é£ç³»ç¶æ
-",
+							"valueDescription":"0x00=リセット"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"系統連系状態",
 							"fields":[
 								
@@ -13498,12 +13211,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ®æ¹¯éè¨æ¸¬å¤",
+							"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"残湯量計測値",
 							"fields":[
 								
@@ -13519,13 +13232,13 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533ã)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã¿ã³ã¯å®¹éå¤",
+							"unitDescription":"㍑",
+							"valueDescription":"0x0000～0xFFFD(0～65,533㍑)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"タンク容量値",
 							"fields":[
 								
@@ -13541,6 +13254,6 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533ã)"
+							"unitDescription":"㍑",
+							"valueDescription":"0x0000～0xFFFD(0～65,533㍑)"
 						}
 					]
@@ -13548,5 +13261,5 @@
 				{
 					"classCode":125,
-					"description":"èé»æ± ",
+					"description":"蓄電池",
 					"name":"STORAGE_BATTERY_EOBJ",
 					"propertyList":[
@@ -13556,13 +13269,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§å
-
-é»é»åå¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°å
-
-é»é»åå¤",
+							"description":"最小最大充電電力値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小充電電力値",
 									"fields":[
 										
@@ -13575,11 +13284,9 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§å
-
-é»é»åå¤",
+									"description":"最大充電電力値",
 									"fields":[
 										
@@ -13592,5 +13299,5 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								}
 							],
@@ -13613,9 +13320,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§æ¾é»é»åå¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°æ¾é»é»åå¤",
+							"description":"最小最大放電電力値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小放電電力値",
 									"fields":[
 										
@@ -13628,9 +13335,9 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§æ¾é»é»åå¤",
+									"description":"最大放電電力値",
 									"fields":[
 										
@@ -13643,5 +13350,5 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								}
 							],
@@ -13664,13 +13371,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§å
-
-é»é»æµå¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°å
-
-é»é»æµå¤",
+							"description":"最小最大充電電流値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小充電電流値",
 									"fields":[
 										
@@ -13683,11 +13386,9 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§å
-
-é»é»æµå¤",
+									"description":"最大充電電流値",
 									"fields":[
 										
@@ -13700,5 +13401,5 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								}
 							],
@@ -13721,9 +13422,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§æ¾é»é»æµå¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°æ¾é»é»æµå¤",
+							"description":"最小最大放電電流値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小放電電流値",
 									"fields":[
 										
@@ -13736,9 +13437,9 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§æ¾é»é»æµå¤",
+									"description":"最大放電電流値",
 									"fields":[
 										
@@ -13751,5 +13452,5 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								}
 							],
@@ -13772,5 +13473,5 @@
 							],
 							"arrayCount":0,
-							"description":"å®æ ¼é»åé",
+							"description":"定格電力量",
 							"fields":[
 								
@@ -13787,12 +13488,12 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼å®¹é",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格容量",
 							"fields":[
 								
@@ -13809,12 +13510,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼é»å§",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格電圧",
 							"fields":[
 								
@@ -13831,14 +13532,12 @@
 							"type":"uint16_t",
 							"unitDescription":"V",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½32,766V)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æå
-
-æ¾é»é»åè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0x7FFE(0～32,766V)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時充放電電力計測値",
 							"fields":[
 								
@@ -13855,16 +13554,12 @@
 							"type":"int32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x00000001ï½0x3B9AC9FF=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½999,999,999W),0xFFFFFFFFï½0xC4653601=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-999,999,999W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æå
-
-æ¾é»é»æµè¨æ¸¬å¤",
+							"valueDescription":"0x00000001～0x3B9AC9FF=充電時（プラス値）(1～999,999,999W),0xFFFFFFFF～0xC4653601=放電時（マイナス値）(-1～-999,999,999W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時充放電電流計測値",
 							"fields":[
 								
@@ -13881,16 +13576,12 @@
 							"type":"int16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(0.1ï½3,276.6A),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-0.1ï½-3,276.7A)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æå
-
-æ¾é»é»å§è¨æ¸¬å¤",
+							"valueDescription":"0x0001～0x7FFE=充電時（プラス値）(0.1～3,276.6A),0xFFFF～0x8001=放電時（マイナス値）(-0.1～-3,276.7A)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時充放電電圧計測値",
 							"fields":[
 								
@@ -13907,14 +13598,12 @@
 							"type":"int16_t",
 							"unitDescription":"V",
-							"valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½32,766V),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-32,767V)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®æ¾é»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x0001～0x7FFE=充電時（プラス値）(1～32,766V),0xFFFF～0x8001=放電時（マイナス値）(-1～-32,767V)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算放電電力量計測値",
 							"fields":[
 								
@@ -13931,5 +13620,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
 						},
 						{
@@ -13938,5 +13627,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®æ¾é»é»åéãªã»ããè¨­å®",
+							"description":"積算放電電力量リセット設定",
 							"fields":[
 								
@@ -13953,14 +13642,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®å
-
-é»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x00=リセット"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算充電電力量計測値",
 							"fields":[
 								
@@ -13977,5 +13664,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
 						},
 						{
@@ -13984,7 +13671,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®å
-
-é»é»åéãªã»ããè¨­å®",
+							"description":"積算充電電力量リセット設定",
 							"fields":[
 								
@@ -14001,5 +13686,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						},
 						{
@@ -14010,5 +13695,5 @@
 							],
 							"arrayCount":0,
-							"description":"éè»¢ã¢ã¼ãè¨­å®",
+							"description":"運転モード設定",
 							"fields":[
 								
@@ -14026,18 +13711,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ¥éå
-
-é»,0x42=å
-
-é»,0x43=æ¾é»,0x44=å¾
-æ©,0x45=ãã¹ã,0x40=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç³»çµ±é£ç³»ç¶æ
-",
+							"valueDescription":"0x41=急速充電,0x42=充電,0x43=放電,0x44=待機,0x45=テスト,0x40=その他"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"系統連系状態",
 							"fields":[
 								
@@ -14054,20 +13733,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æå°æå¤§å
-
-é»é»åå¤ï¼ç¬ç«æï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°å
-
-é»é»åå¤",
+							"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"最小最大充電電力値（独立時）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小充電電力値",
 									"fields":[
 										
@@ -14080,11 +13755,9 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§å
-
-é»é»åå¤",
+									"description":"最大充電電力値",
 									"fields":[
 										
@@ -14097,5 +13770,5 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								}
 							],
@@ -14118,9 +13791,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§æ¾é»é»åå¤ï¼ç¬ç«æï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°æ¾é»é»åå¤",
+							"description":"最小最大放電電力値（独立時）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小放電電力値",
 									"fields":[
 										
@@ -14133,9 +13806,9 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§æ¾é»é»åå¤",
+									"description":"最大放電電力値",
 									"fields":[
 										
@@ -14148,5 +13821,5 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								}
 							],
@@ -14169,13 +13842,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§å
-
-é»é»æµå¤ï¼ç¬ç«æï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°å
-
-é»é»æµå¤",
+							"description":"最小最大充電電流値（独立時）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小充電電流値",
 									"fields":[
 										
@@ -14188,11 +13857,9 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§å
-
-é»é»æµå¤",
+									"description":"最大充電電流値",
 									"fields":[
 										
@@ -14205,5 +13872,5 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								}
 							],
@@ -14226,9 +13893,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§æ¾é»é»æµå¤ï¼ç¬ç«æï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°æ¾é»é»æµå¤",
+							"description":"最小最大放電電流値（独立時）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小放電電流値",
 									"fields":[
 										
@@ -14241,9 +13908,9 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§æ¾é»é»æµå¤",
+									"description":"最大放電電流値",
 									"fields":[
 										
@@ -14256,5 +13923,5 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								}
 							],
@@ -14278,7 +13945,5 @@
 							],
 							"arrayCount":0,
-							"description":"å
-
-æ¾é»éè¨­å®å¤ï¼",
+							"description":"充放電量設定値１",
 							"fields":[
 								
@@ -14295,17 +13960,13 @@
 							"type":"int32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000001ï½0x3B9AC9FF=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½999,999,999Wh),0xFFFFFFFFï½0xC4653601=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-
-æ¾é»éè¨­å®å¤ï¼",
+							"valueDescription":"0x00000001～0x3B9AC9FF=充電時（プラス値）(1～999,999,999Wh),0xFFFFFFFF～0xC4653601=放電時（マイナス値）(-1～-999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"充放電量設定値２",
 							"fields":[
 								
@@ -14322,14 +13983,12 @@
 							"type":"int16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(0.1ï½3,276.6Ah),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-0.1ï½-3,276.7Ah)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èé»æ®éï¼",
+							"valueDescription":"0x0001～0x7FFE=充電時（プラス値）(0.1～3,276.6Ah),0xFFFF～0x8001=放電時（マイナス値）(-0.1～-3,276.7Ah)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"蓄電残量１",
 							"fields":[
 								
@@ -14346,12 +14005,12 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èé»æ®éï¼",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"蓄電残量２",
 							"fields":[
 								
@@ -14368,12 +14027,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èé»æ®éï¼",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"蓄電残量３",
 							"fields":[
 								
@@ -14389,15 +14048,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å£åç¶æ
-",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"劣化状態",
 							"fields":[
 								
@@ -14413,14 +14070,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èé»æ± ã¿ã¤ã",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"蓄電池タイプ",
 							"fields":[
 								
@@ -14437,15 +14093,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00ï½0xFF=ã¿ã¤ã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-
-é»éè¨­å®å¤ï¼",
+							"valueDescription":"0x00～0xFF=タイプ"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"充電量設定値１",
 							"fields":[
 								
@@ -14462,13 +14116,13 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¾é»éè¨­å®å¤ï¼",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"放電量設定値１",
 							"fields":[
 								
@@ -14485,15 +14139,13 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-
-é»éè¨­å®å¤ï¼",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"充電量設定値２",
 							"fields":[
 								
@@ -14510,13 +14162,13 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¾é»éè¨­å®å¤ï¼",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"放電量設定値２",
 							"fields":[
 								
@@ -14533,15 +14185,13 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-
-é»é»åè¨­å®å¤",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"充電電力設定値",
 							"fields":[
 								
@@ -14558,13 +14208,13 @@
 							"type":"uint32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¾é»é»åè¨­å®å¤",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"放電電力設定値",
 							"fields":[
 								
@@ -14581,15 +14231,13 @@
 							"type":"uint32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-
-é»é»æµè¨­å®å¤",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"充電電流設定値",
 							"fields":[
 								
@@ -14606,13 +14254,13 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3A)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¾é»é»æµè¨­å®å¤",
+							"valueDescription":"0x0000～0xFFFD(0～6,553.3A)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"放電電流設定値",
 							"fields":[
 								
@@ -14629,12 +14277,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3A)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼é»å§ï¼ç¬ç«æï¼",
+							"valueDescription":"0x0000～0xFFFD(0～6,553.3A)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格電圧（独立時）",
 							"fields":[
 								
@@ -14651,5 +14299,5 @@
 							"type":"uint16_t",
 							"unitDescription":"V",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½32,766V)"
+							"valueDescription":"0x0000～0x7FFE(0～32,766V)"
 						}
 					]
@@ -14657,7 +14305,5 @@
 				{
 					"classCode":126,
-					"description":"é»æ°èªåè»å
-
-æ¾é»ã·ã¹ãã ",
+					"description":"電気自動車充放電システム",
 					"name":"ELECTRIC_VEHICLE_CHARGER_DISCHARGER_EOBJ",
 					"propertyList":[
@@ -14667,5 +14313,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½å®¹éå¤ï¼",
+							"description":"Ｖ２Ｈ使用可能容量値１",
 							"fields":[
 								
@@ -14682,12 +14328,12 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½å®¹éå¤ï¼",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"Ｖ２Ｈ使用可能容量値２",
 							"fields":[
 								
@@ -14704,12 +14350,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½æ®å®¹éï¼",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"Ｖ２Ｈ使用可能残容量１",
 							"fields":[
 								
@@ -14726,12 +14372,12 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½æ®å®¹éï¼",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"Ｖ２Ｈ使用可能残容量２",
 							"fields":[
 								
@@ -14748,12 +14394,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½æ®å®¹éï¼",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"Ｖ２Ｈ使用可能残容量３",
 							"fields":[
 								
@@ -14769,16 +14415,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼å
-
-é»è½å",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格充電能力",
 							"fields":[
 								
@@ -14795,12 +14438,12 @@
 							"type":"uint32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼æ¾é»è½å",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格放電能力",
 							"fields":[
 								
@@ -14817,5 +14460,5 @@
 							"type":"uint32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 						},
 						{
@@ -14825,8 +14468,5 @@
 							],
 							"arrayCount":0,
-							"description":"å
-
-æ¾é»å¯å¦ç¶æ
-",
+							"description":"充放電可否状態",
 							"fields":[
 								
@@ -14843,28 +14483,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=å
-
-é»ä¸å¯ã»æ¾é»ä¸å¯,0x41=å
-
-é»å¯ã»æ¾é»ä¸å¯,0x42=å
-
-é»ä¸å¯ã»æ¾é»å¯,0x043=å
-
-é»å¯ã»æ¾é»å¯"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æå°æå¤§å
-
-é»é»åå¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°å
-
-é»é»åå¤",
+							"valueDescription":"0x40=充電不可・放電不可,0x41=充電可・放電不可,0x42=充電不可・放電可,0x043=充電可・放電可"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"最小最大充電電力値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小充電電力値",
 									"fields":[
 										
@@ -14877,11 +14505,9 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§å
-
-é»é»åå¤",
+									"description":"最大充電電力値",
 									"fields":[
 										
@@ -14894,5 +14520,5 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								}
 							],
@@ -14915,9 +14541,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§æ¾é»é»åå¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°æ¾é»é»åå¤",
+							"description":"最小最大放電電力値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小放電電力値",
 									"fields":[
 										
@@ -14930,9 +14556,9 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§æ¾é»é»åå¤",
+									"description":"最大放電電力値",
 									"fields":[
 										
@@ -14945,5 +14571,5 @@
 									"type":"uint32_t",
 									"unitDescription":"W",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
 								}
 							],
@@ -14966,13 +14592,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§å
-
-é»é»æµå¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°å
-
-é»é»æµå¤",
+							"description":"最小最大充電電流値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小充電電流値",
 									"fields":[
 										
@@ -14985,11 +14607,9 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§å
-
-é»é»æµå¤",
+									"description":"最大充電電流値",
 									"fields":[
 										
@@ -15002,5 +14622,5 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								}
 							],
@@ -15023,9 +14643,9 @@
 							],
 							"arrayCount":0,
-							"description":"æå°æå¤§æ¾é»é»æµå¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå°æ¾é»é»æµå¤",
+							"description":"最小最大放電電流値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最小放電電流値",
 									"fields":[
 										
@@ -15038,9 +14658,9 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								},
 								{
 									"arrayCount":0,
-									"description":"æå¤§æ¾é»é»æµå¤",
+									"description":"最大放電電流値",
 									"fields":[
 										
@@ -15053,5 +14673,5 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"
+									"valueDescription":"0x0000～0x7FFE(0～3,276.6A)"
 								}
 							],
@@ -15074,5 +14694,5 @@
 							],
 							"arrayCount":0,
-							"description":"ä½¿ç¨å®¹éå¤ï¼",
+							"description":"使用容量値１",
 							"fields":[
 								
@@ -15089,12 +14709,12 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä½¿ç¨å®¹éå¤ï¼",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"使用容量値２",
 							"fields":[
 								
@@ -15111,12 +14731,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼é»å§",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格電圧",
 							"fields":[
 								
@@ -15133,14 +14753,12 @@
 							"type":"uint16_t",
 							"unitDescription":"V",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½32,766V)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æå
-
-æ¾é»é»åè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0x7FFE(0～32,766V)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時充放電電力計測値",
 							"fields":[
 								
@@ -15157,16 +14775,12 @@
 							"type":"int32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x00000001ï½0x3B9AC9FF=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½999,999,999W),0xFFFFFFFFï½0xC4653601=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-999,999,999W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æå
-
-æ¾é»é»æµè¨æ¸¬å¤",
+							"valueDescription":"0x00000001～0x3B9AC9FF=充電時（プラス値）(1～999,999,999W),0xFFFFFFFF～0xC4653601=放電時（マイナス値）(-1～-999,999,999W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時充放電電流計測値",
 							"fields":[
 								
@@ -15183,16 +14797,12 @@
 							"type":"int16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(0.1ï½3,276.6A),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-0.1ï½-3,276.7A)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æå
-
-æ¾é»é»å§è¨æ¸¬å¤",
+							"valueDescription":"0x0001～0x7FFE=充電時（プラス値）(0.1～3,276.6A),0xFFFF～0x8001=放電時（マイナス値）(-0.1～-3,276.7A)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時充放電電圧計測値",
 							"fields":[
 								
@@ -15209,14 +14819,12 @@
 							"type":"int16_t",
 							"unitDescription":"V",
-							"valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½32,766V),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-32,767V)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®æ¾é»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x0001～0x7FFE=充電時（プラス値）(1～32,766V),0xFFFF～0x8001=放電時（マイナス値）(-1～-32,767V)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算放電電力量計測値",
 							"fields":[
 								
@@ -15233,13 +14841,13 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®æ¾é»é»åéãªã»ããè¨­å®",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算放電電力量リセット設定",
 							"fields":[
 								
@@ -15256,14 +14864,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®å
-
-é»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x00=リセット"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算充電電力量計測値",
 							"fields":[
 								
@@ -15280,15 +14886,13 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®å
-
-é»é»åéãªã»ããè¨­å®",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算充電電力量リセット設定",
 							"fields":[
 								
@@ -15305,5 +14909,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						},
 						{
@@ -15314,5 +14918,5 @@
 							],
 							"arrayCount":0,
-							"description":"éè»¢ã¢ã¼ãè¨­å®",
+							"description":"運転モード設定",
 							"fields":[
 								
@@ -15330,18 +14934,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ¥éå
-
-é»,0x42=å
-
-é»,0x43=æ¾é»,0x44=å¾
-æ©,0x45=ãã¹ã,0x40=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç³»çµ±é£ç³»ç¶æ
-",
+							"valueDescription":"0x41=急速充電,0x42=充電,0x43=放電,0x44=待機,0x45=テスト,0x40=その他"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"系統連系状態",
 							"fields":[
 								
@@ -15358,12 +14956,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é»æ± æ®å®¹éï¼",
+							"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"電池残容量１",
 							"fields":[
 								
@@ -15380,12 +14978,12 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é»æ± æ®å®¹éï¼",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"電池残容量２",
 							"fields":[
 								
@@ -15402,12 +15000,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é»æ± æ®å®¹éï¼",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"電池残容量３",
 							"fields":[
 								
@@ -15423,15 +15021,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å£åç¶æ
-",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"劣化状態",
 							"fields":[
 								
@@ -15447,17 +15043,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-
-é»éè¨­å®å¤ï¼",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"充電量設定値１",
 							"fields":[
 								
@@ -15474,13 +15067,13 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¾é»éè¨­å®å¤ï¼",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"放電量設定値１",
 							"fields":[
 								
@@ -15497,15 +15090,13 @@
 							"type":"uint32_t",
 							"unitDescription":"Wh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-
-é»éè¨­å®å¤ï¼",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"充電量設定値２",
 							"fields":[
 								
@@ -15522,13 +15113,13 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¾é»éè¨­å®å¤ï¼",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"放電量設定値２",
 							"fields":[
 								
@@ -15545,15 +15136,13 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1Ah",
-							"valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-
-é»é»åè¨­å®å¤",
+							"valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"充電電力設定値",
 							"fields":[
 								
@@ -15570,13 +15159,13 @@
 							"type":"uint32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¾é»é»åè¨­å®å¤",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"放電電力設定値",
 							"fields":[
 								
@@ -15593,15 +15182,13 @@
 							"type":"uint32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-
-é»é»æµè¨­å®å¤",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"充電電流設定値",
 							"fields":[
 								
@@ -15618,13 +15205,13 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3A)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¾é»é»æµè¨­å®å¤",
+							"valueDescription":"0x0000～0xFFFD(0～6,553.3A)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"放電電流設定値",
 							"fields":[
 								
@@ -15641,5 +15228,5 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3A)"
+							"valueDescription":"0x0000～0xFFFD(0～6,553.3A)"
 						}
 					]
@@ -15647,5 +15234,5 @@
 				{
 					"classCode":127,
-					"description":"ã¨ã³ã¸ã³ã³ã¼ã¸ã§ãã¬ã¼ã·ã§ã³",
+					"description":"エンジンコージェネレーション",
 					"name":"ENGINE_COGENERATION_EOBJ",
 					"propertyList":[
@@ -15655,5 +15242,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¸©æ°´å¨æ¹¯æ¸©è¨æ¸¬å¤",
+							"description":"温水器湯温計測値",
 							"fields":[
 								
@@ -15669,13 +15256,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼çºé»é",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格発電量",
 							"fields":[
 								
@@ -15692,12 +15279,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è²¯æ¹¯æ§½ç±é",
+							"valueDescription":"0x0000～0xFFFD(0～65,533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"貯湯槽熱量",
 							"fields":[
 								
@@ -15714,12 +15301,12 @@
 							"type":"uint16_t",
 							"unitDescription":"MJ",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533MJ)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æçºé»é»åè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65,533MJ)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時発電電力計測値",
 							"fields":[
 								
@@ -15736,12 +15323,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®çºé»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65,533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算発電電力量計測値",
 							"fields":[
 								
@@ -15758,5 +15345,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
 						},
 						{
@@ -15765,5 +15352,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®çºé»é»åéãªã»ããè¨­å®",
+							"description":"積算発電電力量リセット設定",
 							"fields":[
 								
@@ -15780,12 +15367,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æã¬ã¹æ¶è²»éè¨æ¸¬å¤",
+							"valueDescription":"0x00=リセット"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時ガス消費量計測値",
 							"fields":[
 								
@@ -15801,13 +15388,13 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"0.001ã¥\/h",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65.533ã¥\/h)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤",
+							"unitDescription":"0.001㎥\/h",
+							"valueDescription":"0x0000～0xFFFD(0～65.533㎥\/h)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算ガス消費量計測値",
 							"fields":[
 								
@@ -15823,6 +15410,6 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"0.001ã¥",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"
+							"unitDescription":"0.001㎥",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"
 						},
 						{
@@ -15831,5 +15418,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éãªã»ããè¨­å®",
+							"description":"積算ガス消費量リセット設定",
 							"fields":[
 								
@@ -15846,5 +15433,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
+							"valueDescription":"0x00=リセット"
 						},
 						{
@@ -15853,5 +15440,5 @@
 							],
 							"arrayCount":0,
-							"description":"çºé»åä½è¨­å®",
+							"description":"発電動作設定",
 							"fields":[
 								
@@ -15868,13 +15455,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çºé»åä½,0x42=çºé»åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çºé»åä½ç¶æ
-",
+							"valueDescription":"0x41=発電動作,0x42=発電停止"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"発電動作状態",
 							"fields":[
 								
@@ -15891,14 +15477,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çºé»ä¸­,0x42=åæ­¢ä¸­,0x45=ã¢ã¤ãã«ä¸­"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®
-å
-ç¬ææ¶è²»é»åè¨æ¸¬å¤",
+							"valueDescription":"0x41=発電中,0x42=停止中,0x45=アイドル中"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"宅内瞬時消費電力計測値",
 							"fields":[
 								
@@ -15915,14 +15499,12 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®
-å
-ç©ç®æ¶è²»é»åéè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～65,533W)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"宅内積算消費電力量計測値",
 							"fields":[
 								
@@ -15939,5 +15521,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.001kWh",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"
 						},
 						{
@@ -15946,7 +15528,5 @@
 							],
 							"arrayCount":0,
-							"description":"å®
-å
-ç©ç®æ¶è²»é»åéãªã»ããè¨­å®",
+							"description":"宅内積算消費電力量リセット設定",
 							"fields":[
 								
@@ -15963,13 +15543,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ãªã»ãã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç³»çµ±é£ç³»ç¶æ
-",
+							"valueDescription":"0x00=リセット"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"系統連系状態",
 							"fields":[
 								
@@ -15986,12 +15565,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ®æ¹¯éè¨æ¸¬å¤",
+							"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"残湯量計測値",
 							"fields":[
 								
@@ -16007,13 +15586,13 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533ã)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã¿ã³ã¯å®¹éå¤",
+							"unitDescription":"㍑",
+							"valueDescription":"0x0000～0xFFFD(0～65,533㍑)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"タンク容量値",
 							"fields":[
 								
@@ -16029,6 +15608,6 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65,533ã)"
+							"unitDescription":"㍑",
+							"valueDescription":"0x0000～0xFFFD(0～65,533㍑)"
 						}
 					]
@@ -16036,5 +15615,5 @@
 				{
 					"classCode":128,
-					"description":"é»åéã¡ã¼ã¿",
+					"description":"電力量メータ",
 					"name":"ELECTRIC_ENERGY_METER_EOBJ",
 					"propertyList":[
@@ -16044,5 +15623,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤",
+							"description":"積算電力量計測値",
 							"fields":[
 								
@@ -16059,12 +15638,12 @@
 							"type":"uint32_t",
 							"unitDescription":"0.1kWh|0.01kWh",
-							"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®é»åéåä½",
+							"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算電力量単位",
 							"fields":[
 								
@@ -16088,5 +15667,5 @@
 							],
 							"arrayCount":48,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼",
+							"description":"積算電力量計測値履歴１",
 							"fields":[
 								
@@ -16103,5 +15682,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.1kWh|0.01kWh",
-							"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+							"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 						},
 						{
@@ -16110,5 +15689,5 @@
 							],
 							"arrayCount":2160,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼",
+							"description":"積算電力量計測値履歴２",
 							"fields":[
 								
@@ -16125,5 +15704,5 @@
 							"type":"uint32_t",
 							"unitDescription":"0.1kWh|0.01kWh",
-							"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+							"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 						}
 					]
@@ -16131,5 +15710,5 @@
 				{
 					"classCode":129,
-					"description":"æ°´æµéã¡ã¼ã¿",
+					"description":"水流量メータ",
 					"name":"WATER_FLOW_METER_EOBJ",
 					"propertyList":[
@@ -16140,5 +15719,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ°´æµåºå",
+							"description":"水流区分",
 							"fields":[
 								
@@ -16155,14 +15734,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=ä¸æ°´,0x31=ä¸­æ°´,0x32=æ¸©æ°´,0x33=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææè
-åºå",
+							"valueDescription":"0x30=上水,0x31=中水,0x32=温水,0x33=その他"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"所有者区分",
 							"fields":[
 								
@@ -16179,12 +15757,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=æå®ãªã,0x31=äºæ¥­ä½,0x32=æ°éä¼ç¤¾,0x33=åäºº"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®æ°´æµéè¨æ¸¬å¤",
+							"valueDescription":"0x30=指定なし,0x31=事業体,0x32=民間会社,0x33=個人"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算水流量計測値",
 							"fields":[
 								
@@ -16200,13 +15778,13 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"ã¥",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®æ°´æµéè¨æ¸¬å¤åä½",
+							"unitDescription":"㎥",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算水流量計測値単位",
 							"fields":[
 								
@@ -16223,5 +15801,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=1ã¥,0x01=0.1ã¥,0x02=0.01ã¥,0x03=0.001ã¥,0x04=0.0001ã¥,0x05=0.00001ã¥,0x06=0.000001ã¥"
+							"valueDescription":"0x00=1㎥,0x01=0.1㎥,0x02=0.01㎥,0x03=0.001㎥,0x04=0.0001㎥,0x05=0.00001㎥,0x06=0.000001㎥"
 						},
 						{
@@ -16230,5 +15808,5 @@
 							],
 							"arrayCount":48,
-							"description":"ç©ç®æ°´æµéè¨æ¸¬å¤å±¥æ­´",
+							"description":"積算水流量計測値履歴",
 							"fields":[
 								
@@ -16244,14 +15822,13 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"0.001ã¥",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¤éãã¼ã¿ç°å¸¸æ¤ç¥ç¶æ
-",
+							"unitDescription":"0.001㎥",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"検針データ異常検知状態",
 							"fields":[
 								
@@ -16268,13 +15845,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç°å¸¸æ¤ç¥æ,0x42=ç°å¸¸æ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã»ã­ã¥ãªãã£ãã¼ã¿æ
-å ±",
+							"valueDescription":"0x41=異常検知有,0x42=異常検知無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"セキュリティデータ情報",
 							"fields":[
 								
@@ -16291,13 +15867,13 @@
 							"type":"uint32_t",
 							"unitDescription":null,
-							"valueDescription":"0x00000000ï½0xFFFFFFFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼©ï¼¤çªå·è¨­å®",
+							"valueDescription":"0x00000000～0xFFFFFFFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＩＤ番号設定",
 							"fields":[
 								
@@ -16314,14 +15890,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"ASCIIã³ã¼ãã§æå®ã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¤å®æºææ
-å ±",
+							"valueDescription":"ASCIIコードで指定。"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"検定満期情報",
 							"fields":[
 								
@@ -16338,5 +15913,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"ASCIIã³ã¼ãã§æå®ãxxxxå¹´xxæ"
+							"valueDescription":"ASCIIコードで指定。xxxx年xx月"
 						}
 					]
@@ -16344,5 +15919,5 @@
 				{
 					"classCode":130,
-					"description":"ã¬ã¹ã¡ã¼ã¿",
+					"description":"ガスメータ",
 					"name":"GAS_METER_EOBJ",
 					"propertyList":[
@@ -16352,5 +15927,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤",
+							"description":"積算ガス消費量計測値",
 							"fields":[
 								
@@ -16366,6 +15941,6 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"0.001ã¥",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"
+							"unitDescription":"0.001㎥",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"
 						},
 						{
@@ -16374,5 +15949,5 @@
 							],
 							"arrayCount":48,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤å±¥æ­´",
+							"description":"積算ガス消費量計測値履歴",
 							"fields":[
 								
@@ -16388,6 +15963,6 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"0.001ã¥",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"
+							"unitDescription":"0.001㎥",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"
 						}
 					]
@@ -16395,5 +15970,5 @@
 				{
 					"classCode":131,
-					"description":"ï¼¬ï¼°ã¬ã¹ã¡ã¼ã¿",
+					"description":"ＬＰガスメータ",
 					"name":"LP_GAS_METERS_EOBJ",
 					"propertyList":[
@@ -16403,5 +15978,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¤éãã¼ã¿ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤ï¼",
+							"description":"検針データ積算ガス消費量計測値１",
 							"fields":[
 								
@@ -16417,13 +15992,13 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"0.0001ã¥",
-							"valueDescription":"0x00000000ï½0x005F5E0FF(0ï½9,999.9999ã¥)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¤éãã¼ã¿ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤ï¼",
+							"unitDescription":"0.0001㎥",
+							"valueDescription":"0x00000000～0x005F5E0FF(0～9,999.9999㎥)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"検針データ積算ガス消費量計測値２",
 							"fields":[
 								
@@ -16439,14 +16014,13 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"0.001ã¥",
-							"valueDescription":"0x00000000ï½0x005F5E0FF(0ï½99,999.999ã¥)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¤éãã¼ã¿ç°å¸¸æ¤ç¥ç¶æ
-",
+							"unitDescription":"0.001㎥",
+							"valueDescription":"0x00000000～0x005F5E0FF(0～99,999.999㎥)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"検針データ異常検知状態",
 							"fields":[
 								
@@ -16463,13 +16037,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç°å¸¸æ¤ç¥æ,0x42=ç°å¸¸æ¤ç¥ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã»ã­ã¥ãªãã£ãã¼ã¿æ
-å ±ï¼",
+							"valueDescription":"0x41=異常検知有,0x42=異常検知無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"セキュリティデータ情報１",
 							"fields":[
 								
@@ -16486,13 +16059,12 @@
 							"type":"uint32_t",
 							"unitDescription":null,
-							"valueDescription":"0x00000000ï½0xFFFFFFFF"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã»ã­ã¥ãªãã£ãã¼ã¿æ
-å ±ï¼",
+							"valueDescription":"0x00000000～0xFFFFFFFF"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"セキュリティデータ情報２",
 							"fields":[
 								
@@ -16509,13 +16081,12 @@
 							"type":"uint32_t",
 							"unitDescription":null,
-							"valueDescription":"0x00000000ï½0xFFFFFFFF"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã»ã³ã¿ã¼å¼é®æ­ç¶æ
-",
+							"valueDescription":"0x00000000～0xFFFFFFFF"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"センター弁遮断状態",
 							"fields":[
 								
@@ -16532,13 +16103,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã»ã³ã¿ã¼å¼é®æ­æã,0x42=ã»ã³ã¿ã¼å¼é®æ­ç¡ã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°è¨±å¯ç¶æ
-",
+							"valueDescription":"0x41=センター弁遮断有り,0x42=センター弁遮断無し"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"センター弁遮断復帰許可状態",
 							"fields":[
 								
@@ -16555,13 +16125,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°è¨±å¯,0x42=ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°éè¨±å¯"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç·æ¥å¼é®æ­ç¶æ
-",
+							"valueDescription":"0x41=センター弁遮断復帰許可,0x42=センター弁遮断復帰非許可"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"緊急弁遮断状態",
 							"fields":[
 								
@@ -16578,13 +16147,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç·æ¥å¼é®æ­æã,0x42=ç·æ¥å¼é®æ­ç¡ã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é®æ­å¼ééç¶æ
-",
+							"valueDescription":"0x41=緊急弁遮断有り,0x42=緊急弁遮断無し"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"遮断弁開閉状態",
 							"fields":[
 								
@@ -16601,14 +16169,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é®æ­å¼éç¶æ
-,0x42=é®æ­å¼éç¶æ
-"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ®éç®¡çè­¦åã¬ãã«",
+							"valueDescription":"0x41=遮断弁開状態,0x42=遮断弁閉状態"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"残量管理警告レベル",
 							"fields":[
 								
@@ -16625,5 +16191,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31=æ®éç®¡çè­¦åã¬ãã«1,0x32=æ®éç®¡çè­¦åã¬ãã«2,0x33=æ®éç®¡çè­¦åã¬ãã«3,0x42=æ®éç®¡çè­¦åç¡ã"
+							"valueDescription":"0x31=残量管理警告レベル1,0x32=残量管理警告レベル2,0x33=残量管理警告レベル3,0x42=残量管理警告無し"
 						},
 						{
@@ -16633,5 +16199,5 @@
 							],
 							"arrayCount":3,
-							"description":"æ®éç®¡çè­¦åã¬ãã«è¨­å®å¤ï¼",
+							"description":"残量管理警告レベル設定値１",
 							"fields":[
 								
@@ -16647,6 +16213,6 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x000000ï½0xFFFFFF(0ï½16,777,215)"
+							"unitDescription":"㍑",
+							"valueDescription":"0x000000～0xFFFFFF(0～16,777,215)"
 						},
 						{
@@ -16656,5 +16222,5 @@
 							],
 							"arrayCount":3,
-							"description":"æ®éç®¡çè­¦åã¬ãã«è¨­å®å¤ï¼",
+							"description":"残量管理警告レベル設定値２",
 							"fields":[
 								
@@ -16670,6 +16236,6 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x000000ï½0xFFFFFF(0ï½16,777,215)"
+							"unitDescription":"㍑",
+							"valueDescription":"0x000000～0xFFFFFF(0～16,777,215)"
 						},
 						{
@@ -16679,5 +16245,5 @@
 							],
 							"arrayCount":3,
-							"description":"æ®éç®¡çè­¦åã¬ãã«è¨­å®å¤ï¼",
+							"description":"残量管理警告レベル設定値３",
 							"fields":[
 								
@@ -16693,13 +16259,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ã",
-							"valueDescription":"0x000000ï½0xFFFFFF(0ï½16,777,215)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¾®å°æ¼æ´©ã¿ã¤ãå¤ï¼ã¬ã¹æµéç¶ç¶ï¼",
+							"unitDescription":"㍑",
+							"valueDescription":"0x000000～0xFFFFFF(0～16,777,215)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"微少漏洩タイマ値（ガス流量継続）",
 							"fields":[
 								
@@ -16715,13 +16281,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"æ¥",
-							"valueDescription":"0x00ï½0xFD(0ï½253æ¥)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¾®å°æ¼æ´©ã¿ã¤ãå¤ï¼å§åä¸æç¡ãï¼",
+							"unitDescription":"日",
+							"valueDescription":"0x00～0xFD(0～253日)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"微少漏洩タイマ値（圧力上昇無し）",
 							"fields":[
 								
@@ -16737,6 +16303,6 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"æ¥",
-							"valueDescription":"0x00ï½0xFD(0ï½253æ¥)"
+							"unitDescription":"日",
+							"valueDescription":"0x00～0xFD(0～253日)"
 						},
 						{
@@ -16745,6 +16311,5 @@
 							],
 							"arrayCount":3,
-							"description":"é®æ­çç±å±¥æ­´æ
-å ±",
+							"description":"遮断理由履歴情報",
 							"fields":[
 								
@@ -16768,5 +16333,5 @@
 							],
 							"arrayCount":0,
-							"description":"ä¾çµ¦å§åãã¼ã¿æå¤§å¤",
+							"description":"供給圧力データ最大値",
 							"fields":[
 								
@@ -16783,12 +16348,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.01kPa",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¾çµ¦å§åãã¼ã¿æå°å¤",
+							"valueDescription":"0x0000～0xFFFD(0～655.33kPa)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"供給圧力データ最小値",
 							"fields":[
 								
@@ -16805,12 +16370,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.01kPa",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¾çµ¦å§åãã¼ã¿ç¾å¨å¤",
+							"valueDescription":"0x0000～0xFFFD(0～655.33kPa)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"供給圧力データ現在値",
 							"fields":[
 								
@@ -16827,12 +16392,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.01kPa",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éå¡å§åãã¼ã¿æå¤§å¤",
+							"valueDescription":"0x0000～0xFFFD(0～655.33kPa)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"閉塞圧力データ最大値",
 							"fields":[
 								
@@ -16849,12 +16414,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.01kPa",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éå¡å§åãã¼ã¿æå°å¤",
+							"valueDescription":"0x0000～0xFFFD(0～655.33kPa)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"閉塞圧力データ最小値",
 							"fields":[
 								
@@ -16871,12 +16436,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.01kPa",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éå¡å§åãã¼ã¿ç¾å¨å¤",
+							"valueDescription":"0x0000～0xFFFD(0～655.33kPa)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"閉塞圧力データ現在値",
 							"fields":[
 								
@@ -16893,17 +16458,16 @@
 							"type":"uint16_t",
 							"unitDescription":"0.01kPa",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éå¡å§åã»ä¾çµ¦å§åç°å¸¸æ¥åæ°æ
-å ±",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"éå¡å§åç°å¸¸æ¥æ°",
+							"valueDescription":"0x0000～0xFFFD(0～655.33kPa)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"閉塞圧力・供給圧力異常日回数情報",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"閉塞圧力異常日数",
 									"fields":[
 										
@@ -16916,9 +16480,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x00ï½0xFF(0ï½255æ¥)"
+									"valueDescription":"0x00～0xFF(0～255日)"
 								},
 								{
 									"arrayCount":0,
-									"description":"ä¾çµ¦å§åç°å¸¸æ¥æ°",
+									"description":"供給圧力異常日数",
 									"fields":[
 										
@@ -16931,9 +16495,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x00ï½0xFF(0ï½255æ¥)"
+									"valueDescription":"0x00～0xFF(0～255日)"
 								},
 								{
 									"arrayCount":0,
-									"description":"éå¡å§åç°å¸¸åæ°",
+									"description":"閉塞圧力異常回数",
 									"fields":[
 										
@@ -16946,9 +16510,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x00ï½0xFF(0ï½255å)"
+									"valueDescription":"0x00～0xFF(0～255回)"
 								},
 								{
 									"arrayCount":0,
-									"description":"ä¾çµ¦å§åç°å¸¸åæ°",
+									"description":"供給圧力異常回数",
 									"fields":[
 										
@@ -16961,5 +16525,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x00ï½0xFF(0ï½255å)"
+									"valueDescription":"0x00～0xFF(0～255回)"
 								}
 							],
@@ -16983,5 +16547,5 @@
 							],
 							"arrayCount":0,
-							"description":"ãã¹ãçºå¼è¨­å®",
+							"description":"テスト発呼設定",
 							"fields":[
 								
@@ -16998,5 +16562,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãã¹ãçºå¼åä½ãã,0x42=ãã¹ãçºå¼åä½ãªã"
+							"valueDescription":"0x41=テスト発呼動作あり,0x42=テスト発呼動作なし"
 						}
 					]
@@ -17004,5 +16568,5 @@
 				{
 					"classCode":132,
-					"description":"æè¨",
+					"description":"時計",
 					"name":"CLOCK_EOBJ",
 					"propertyList":[
@@ -17012,5 +16576,5 @@
 				{
 					"classCode":133,
-					"description":"èªåãã¢",
+					"description":"自動ドア",
 					"name":"AUTOMATIC_DOOR_EOBJ",
 					"propertyList":[
@@ -17020,5 +16584,5 @@
 				{
 					"classCode":134,
-					"description":"æ¥­åç¨ã¨ã¬ãã¼ã¿",
+					"description":"業務用エレベータ",
 					"name":"COMMERCIAL_ELEVATOR_EOBJ",
 					"propertyList":[
@@ -17028,5 +16592,5 @@
 				{
 					"classCode":135,
-					"description":"åé»ç¤ã¡ã¼ã¿ãªã³ã°",
+					"description":"分電盤メータリング",
 					"name":"DISTRIBUTION_PANEL_METERING_EOBJ",
 					"propertyList":[
@@ -17036,5 +16600,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤ï¼æ­£æ¹åï¼",
+							"description":"積算電力量計測値（正方向）",
 							"fields":[
 								
@@ -17051,12 +16615,12 @@
 							"type":"uint32_t",
 							"unitDescription":"kWh",
-							"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤ï¼éæ¹åï¼",
+							"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算電力量計測値（逆方向）",
 							"fields":[
 								
@@ -17073,12 +16637,12 @@
 							"type":"uint32_t",
 							"unitDescription":"kWh",
-							"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®é»åéåä½",
+							"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算電力量単位",
 							"fields":[
 								
@@ -17102,9 +16666,9 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼æ­£æ¹åï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ç©ç®å±¥æ­´åéæ¥",
+							"description":"積算電力量計測値履歴（正方向）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"積算履歴収集日",
 									"fields":[
 										
@@ -17116,10 +16680,10 @@
 									"size":2,
 									"type":"uint16_t",
-									"unitDescription":"æ¥",
-									"valueDescription":"0x0000ï½0x0063(0ï½99)"
+									"unitDescription":"日",
+									"valueDescription":"0x0000～0x0063(0～99)"
 								},
 								{
 									"arrayCount":48,
-									"description":"ç©ç®é»åé",
+									"description":"積算電力量",
 									"fields":[
 										
@@ -17132,5 +16696,5 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								}
 							],
@@ -17146,16 +16710,16 @@
 							"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t",
 							"unitDescription":"kWh",
-							"valueDescription":"0x0000ï½0x0063:0x00000000ï½0x05F5E0FF(0ï½99):(0ï½99,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼éæ¹åï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ç©ç®å±¥æ­´åéæ¥",
+							"valueDescription":"0x0000～0x0063:0x00000000～0x05F5E0FF(0～99):(0～99,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算電力量計測値履歴（逆方向）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"積算履歴収集日",
 									"fields":[
 										
@@ -17167,10 +16731,10 @@
 									"size":2,
 									"type":"uint16_t",
-									"unitDescription":"æ¥",
-									"valueDescription":"0x0000ï½0x0063(0ï½99)"
+									"unitDescription":"日",
+									"valueDescription":"0x0000～0x0063(0～99)"
 								},
 								{
 									"arrayCount":48,
-									"description":"ç©ç®é»åé",
+									"description":"積算電力量",
 									"fields":[
 										
@@ -17183,5 +16747,5 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								}
 							],
@@ -17197,13 +16761,13 @@
 							"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t",
 							"unitDescription":"kWh",
-							"valueDescription":"0x0000ï½0x0063:0x00000000ï½0x05F5E0FF(0ï½99):(0ï½99,999,999)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®å±¥æ­´åéæ¥",
+							"valueDescription":"0x0000～0x0063:0x00000000～0x05F5E0FF(0～99):(0～99,999,999)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算履歴収集日",
 							"fields":[
 								
@@ -17219,13 +16783,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"æ¥",
-							"valueDescription":"0x00=å½æ¥,0x01ï½0x63=åæ¥ã®æ¥æ°(0ï½99)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æé»åè¨æ¸¬å¤",
+							"unitDescription":"日",
+							"valueDescription":"0x00=当日,0x01～0x63=前日の日数(0～99)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時電力計測値",
 							"fields":[
 								
@@ -17242,16 +16806,16 @@
 							"type":"int32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x80000001ï½0x7FFFFFFD(-2,147,483,647ï½2,147,483,645)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æé»æµè¨æ¸¬å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"Rç¸",
+							"valueDescription":"0x80000001～0x7FFFFFFD(-2,147,483,647～2,147,483,645)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時電流計測値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"R相",
 									"fields":[
 										
@@ -17264,9 +16828,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"Tç¸",
+									"description":"T相",
 									"fields":[
 										
@@ -17279,5 +16843,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17300,9 +16864,9 @@
 							],
 							"arrayCount":0,
-							"description":"ç¬æé»å§è¨æ¸¬å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"R-S(N)é",
+							"description":"瞬時電圧計測値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"R-S(N)間",
 									"fields":[
 										
@@ -17315,9 +16879,9 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1V",
-									"valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3)"
+									"valueDescription":"0x0000～0xFFFD(0～6,553.3)"
 								},
 								{
 									"arrayCount":0,
-									"description":"S(N)-Té",
+									"description":"S(N)-T間",
 									"fields":[
 										
@@ -17330,5 +16894,5 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1V",
-									"valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3)"
+									"valueDescription":"0x0000～0xFFFD(0～6,553.3)"
 								}
 							],
@@ -17351,9 +16915,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17366,9 +16930,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17381,9 +16945,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17396,5 +16960,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17417,9 +16981,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17432,9 +16996,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17447,9 +17011,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17462,5 +17026,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17483,9 +17047,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル３",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17498,9 +17062,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17513,9 +17077,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17528,5 +17092,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17549,9 +17113,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル４",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17564,9 +17128,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17579,9 +17143,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17594,5 +17158,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17615,9 +17179,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル５",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17630,9 +17194,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17645,9 +17209,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17660,5 +17224,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17681,9 +17245,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル６",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17696,9 +17260,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17711,9 +17275,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17726,5 +17290,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17747,9 +17311,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル７",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17762,9 +17326,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17777,9 +17341,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17792,5 +17356,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17813,9 +17377,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル８",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17828,9 +17392,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17843,9 +17407,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17858,5 +17422,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17879,9 +17443,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル９",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17894,9 +17458,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17909,9 +17473,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17924,5 +17488,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -17945,9 +17509,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１０",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -17960,9 +17524,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -17975,9 +17539,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -17990,5 +17554,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18011,9 +17575,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１１",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18026,9 +17590,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18041,9 +17605,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18056,5 +17620,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18077,9 +17641,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１２",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18092,9 +17656,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18107,9 +17671,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18122,5 +17686,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18143,9 +17707,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１３",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18158,9 +17722,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18173,9 +17737,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18188,5 +17752,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18209,9 +17773,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１４",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18224,9 +17788,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18239,9 +17803,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18254,5 +17818,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18275,9 +17839,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１５",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18290,9 +17854,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18305,9 +17869,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18320,5 +17884,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18341,9 +17905,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１６",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18356,9 +17920,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18371,9 +17935,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18386,5 +17950,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18407,9 +17971,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１７",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18422,9 +17986,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18437,9 +18001,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18452,5 +18016,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18473,9 +18037,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１８",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18488,9 +18052,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18503,9 +18067,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18518,5 +18082,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18539,9 +18103,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル１９",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18554,9 +18118,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18569,9 +18133,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18584,5 +18148,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18605,9 +18169,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２０",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18620,9 +18184,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18635,9 +18199,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18650,5 +18214,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18671,9 +18235,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２１",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18686,9 +18250,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18701,9 +18265,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18716,5 +18280,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18737,9 +18301,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２２",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18752,9 +18316,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18767,9 +18331,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18782,5 +18346,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18803,9 +18367,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２３",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18818,9 +18382,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18833,9 +18397,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18848,5 +18412,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18869,9 +18433,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２４",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18884,9 +18448,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18899,9 +18463,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18914,5 +18478,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -18935,9 +18499,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２５",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -18950,9 +18514,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -18965,9 +18529,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -18980,5 +18544,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -19001,9 +18565,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２６",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -19016,9 +18580,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -19031,9 +18595,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -19046,5 +18610,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -19067,9 +18631,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２７",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -19082,9 +18646,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -19097,9 +18661,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -19112,5 +18676,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -19133,9 +18697,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２８",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -19148,9 +18712,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -19163,9 +18727,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -19178,5 +18742,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -19199,9 +18763,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル２９",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -19214,9 +18778,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -19229,9 +18793,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -19244,5 +18808,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -19265,9 +18829,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル３０",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -19280,9 +18844,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -19295,9 +18859,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -19310,5 +18874,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -19331,9 +18895,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル３１",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -19346,9 +18910,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -19361,9 +18925,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -19376,5 +18940,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -19397,9 +18961,9 @@
 							],
 							"arrayCount":0,
-							"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"é»åé",
+							"description":"計測チャンネル３２",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"電力量",
 									"fields":[
 										
@@ -19412,9 +18976,9 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Rç¸",
+									"description":"実効電流値R相",
 									"fields":[
 										
@@ -19427,9 +18991,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å®å¹é»æµå¤Tç¸",
+									"description":"実効電流値T相",
 									"fields":[
 										
@@ -19442,5 +19006,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -19462,5 +19026,5 @@
 				{
 					"classCode":136,
-					"description":"ã¹ãã¼ãé»åéã¡ã¼ã¿",
+					"description":"スマート電力量メータ",
 					"name":"SMART_ELECTRIC_ENERGY_METER_EOBJ",
 					"propertyList":[
@@ -19471,5 +19035,5 @@
 							],
 							"arrayCount":0,
-							"description":"é»ååºå",
+							"description":"電力区分",
 							"fields":[
 								
@@ -19486,15 +19050,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=é»åä¼ç¤¾,0x31=å¤ªé½å
-,0x32=çæé»æ± ,0x33=èé»æ± ,0x34=EV,0x35=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææè
-åºå",
+							"valueDescription":"0x30=電力会社,0x31=太陽光,0x32=燃料電池,0x33=蓄電池,0x34=EV,0x35=その他"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"所有者区分",
 							"fields":[
 								
@@ -19511,13 +19073,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=æå®ãªã,0x31=é»åä¼ç¤¾,0x32=é»åä¼ç¤¾ä»¥å¤,0x33=åäºº"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¸ç·å¼è¨­å®ç¶æ
-",
+							"valueDescription":"0x30=指定なし,0x31=電力会社,0x32=電力会社以外,0x33=個人"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"相線式設定状態",
 							"fields":[
 								
@@ -19534,12 +19095,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=åç¸2ç·,0x31=åç¸3ç·,0x32=ä¸ç¸3ç·,0x33=ä¸ç¸4ç·"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"åæå¤ææ¯",
+							"valueDescription":"0x30=単相2線,0x31=単相3線,0x32=三相3線,0x33=三相4線"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"合成変成比",
 							"fields":[
 								
@@ -19556,12 +19117,12 @@
 							"type":"uint32_t",
 							"unitDescription":null,
-							"valueDescription":"0x00000000ï½0x000F423F(000000ï½999999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"åæå¤ææ¯ã®åç",
+							"valueDescription":"0x00000000～0x000F423F(000000～999999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"合成変成比の倍率",
 							"fields":[
 								
@@ -19578,5 +19139,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=Ã1,0x01=Ã0.1,0x02=Ã0.01,0x03=Ã0.001"
+							"valueDescription":"0x00=×1,0x01=×0.1,0x02=×0.01,0x03=×0.001"
 						},
 						{
@@ -19585,5 +19146,5 @@
 							],
 							"arrayCount":10,
-							"description":"è¨å¨èªå®çªå·",
+							"description":"計器認定番号",
 							"fields":[
 								
@@ -19600,5 +19161,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"(åå¼èªå®è¨å¨çªå·è¨è¼æ¹æ³ã«å¾ã)"
+							"valueDescription":"(型式認定計器番号記載方法に従う)"
 						},
 						{
@@ -19608,5 +19169,5 @@
 							],
 							"arrayCount":6,
-							"description":"æ¤å®æºäºå¹´æ",
+							"description":"検定満了年月",
 							"fields":[
 								
@@ -19623,12 +19184,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"YYYYMM:YYYY(è¥¿æ¦),MM(æ)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®é»åéæå¹æ¡æ°",
+							"valueDescription":"YYYYMM:YYYY(西暦),MM(月)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算電力量有効桁数",
 							"fields":[
 								
@@ -19644,13 +19205,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"æ¡",
-							"valueDescription":"0x01ï½0x08(1ï½8)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤ï¼æ­£æ¹åè¨æ¸¬å¤ï¼",
+							"unitDescription":"桁",
+							"valueDescription":"0x01～0x08(1～8)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算電力量計測値（正方向計測値）",
 							"fields":[
 								
@@ -19667,12 +19228,12 @@
 							"type":"uint32_t",
 							"unitDescription":"kWh",
-							"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®é»åéåä½ï¼æ­£æ¹åãéæ¹åè¨æ¸¬å¤ï¼",
+							"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算電力量単位（正方向、逆方向計測値）",
 							"fields":[
 								
@@ -19696,9 +19257,9 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼æ­£æ¹åè¨æ¸¬å¤ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ç©ç®å±¥æ­´åéæ¥",
+							"description":"積算電力量計測値履歴（正方向計測値）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"積算履歴収集日",
 									"fields":[
 										
@@ -19710,10 +19271,10 @@
 									"size":2,
 									"type":"uint16_t",
-									"unitDescription":"æ¥",
-									"valueDescription":"0x0000ï½0x0063(0ï½99)"
+									"unitDescription":"日",
+									"valueDescription":"0x0000～0x0063(0～99)"
 								},
 								{
 									"arrayCount":48,
-									"description":"ç©ç®é»åé",
+									"description":"積算電力量",
 									"fields":[
 										
@@ -19726,5 +19287,5 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								}
 							],
@@ -19740,12 +19301,12 @@
 							"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t",
 							"unitDescription":"kWh",
-							"valueDescription":"0x0000ï½0x0063:0x00000000ï½0x05F5E0FF(0ï½99):(0ï½99,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤ï¼éæ¹åè¨æ¸¬å¤ï¼",
+							"valueDescription":"0x0000～0x0063:0x00000000～0x05F5E0FF(0～99):(0～99,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算電力量計測値（逆方向計測値）",
 							"fields":[
 								
@@ -19762,16 +19323,16 @@
 							"type":"uint32_t",
 							"unitDescription":"kWh",
-							"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼éæ¹åè¨æ¸¬å¤ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ç©ç®å±¥æ­´åéæ¥",
+							"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算電力量計測値履歴（逆方向計測値）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"積算履歴収集日",
 									"fields":[
 										
@@ -19783,10 +19344,10 @@
 									"size":2,
 									"type":"uint16_t",
-									"unitDescription":"æ¥",
-									"valueDescription":"0x0000ï½0x0063(0ï½99)"
+									"unitDescription":"日",
+									"valueDescription":"0x0000～0x0063(0～99)"
 								},
 								{
 									"arrayCount":48,
-									"description":"ç©ç®é»åé",
+									"description":"積算電力量",
 									"fields":[
 										
@@ -19799,5 +19360,5 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								}
 							],
@@ -19813,13 +19374,13 @@
 							"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t",
 							"unitDescription":"kWh",
-							"valueDescription":"0x0000ï½0x0063:0x00000000ï½0x05F5E0FF(0ï½99):(0ï½99,999,999)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®å±¥æ­´åéæ¥",
+							"valueDescription":"0x0000～0x0063:0x00000000～0x05F5E0FF(0～99):(0～99,999,999)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算履歴収集日",
 							"fields":[
 								
@@ -19836,12 +19397,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=å½æ¥,0x01ï½0x63=åæ¥ã®æ¥æ°(0ï½99)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æé»åè¨æ¸¬å¤",
+							"valueDescription":"0x00=当日,0x01～0x63=前日の日数(0～99)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時電力計測値",
 							"fields":[
 								
@@ -19858,16 +19419,16 @@
 							"type":"int32_t",
 							"unitDescription":"W",
-							"valueDescription":"0x80000001ï½0x7FFFFFFD(-2,147,483,647ï½2,147,483,645)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç¬æé»æµè¨æ¸¬å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"Rç¸",
+							"valueDescription":"0x80000001～0x7FFFFFFD(-2,147,483,647～2,147,483,645)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"瞬時電流計測値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"R相",
 									"fields":[
 										
@@ -19880,9 +19441,9 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								},
 								{
 									"arrayCount":0,
-									"description":"Tç¸",
+									"description":"T相",
 									"fields":[
 										
@@ -19895,5 +19456,5 @@
 									"type":"int16_t",
 									"unitDescription":"0.1A",
-									"valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"
+									"valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"
 								}
 							],
@@ -19916,9 +19477,9 @@
 							],
 							"arrayCount":0,
-							"description":"ç¬æé»å§è¨æ¸¬å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"R-S(N)é",
+							"description":"瞬時電圧計測値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"R-S(N)間",
 									"fields":[
 										
@@ -19931,9 +19492,9 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1V",
-									"valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3)"
+									"valueDescription":"0x0000～0xFFFD(0～6,553.3)"
 								},
 								{
 									"arrayCount":0,
-									"description":"S(N)-Té",
+									"description":"S(N)-T間",
 									"fields":[
 										
@@ -19946,5 +19507,5 @@
 									"type":"uint16_t",
 									"unitDescription":"0.1V",
-									"valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3)"
+									"valueDescription":"0x0000～0xFFFD(0～6,553.3)"
 								}
 							],
@@ -19967,13 +19528,13 @@
 							],
 							"arrayCount":0,
-							"description":"å®æç©ç®é»åéè¨æ¸¬å¤ï¼æ­£æ¹åè¨æ¸¬å¤ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"è¨æ¸¬å¹´ææ¥",
+							"description":"定時積算電力量計測値（正方向計測値）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"計測年月日",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"å¹´",
+											"description":"年",
 											"fields":[
 												
@@ -19985,10 +19546,10 @@
 											"size":2,
 											"type":"uint16_t",
-											"unitDescription":"å¹´",
-											"valueDescription":"0x0001ï½0x270F(1ï½9999)"
+											"unitDescription":"年",
+											"valueDescription":"0x0001～0x270F(1～9999)"
 										},
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"月",
 											"fields":[
 												
@@ -20000,10 +19561,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x01ï½0x0C(1ï½12)"
+											"unitDescription":"月",
+											"valueDescription":"0x01～0x0C(1～12)"
 										},
 										{
 											"arrayCount":0,
-											"description":"æ¥",
+											"description":"日",
 											"fields":[
 												
@@ -20015,6 +19576,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ¥",
-											"valueDescription":"0x01ï½0x1F(1ï½31)"
+											"unitDescription":"日",
+											"valueDescription":"0x01～0x1F(1～31)"
 										}
 									],
@@ -20030,9 +19591,9 @@
 								{
 									"arrayCount":0,
-									"description":"è¨æ¸¬æå»",
+									"description":"計測時刻",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"時",
 											"fields":[
 												
@@ -20044,10 +19605,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x00ï½0x17(0ï½23)"
+											"unitDescription":"時",
+											"valueDescription":"0x00～0x17(0～23)"
 										},
 										{
 											"arrayCount":0,
-											"description":"å",
+											"description":"分",
 											"fields":[
 												
@@ -20059,10 +19620,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"å",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"分",
+											"valueDescription":"0x00～0x3B(0～59)"
 										},
 										{
 											"arrayCount":0,
-											"description":"ç§",
+											"description":"秒",
 											"fields":[
 												
@@ -20074,6 +19635,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"ç§",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"秒",
+											"valueDescription":"0x00～0x3B(0～59)"
 										}
 									],
@@ -20089,5 +19650,5 @@
 								{
 									"arrayCount":0,
-									"description":"ç©ç®é»åé",
+									"description":"積算電力量",
 									"fields":[
 										
@@ -20100,5 +19661,5 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								}
 							],
@@ -20121,13 +19682,13 @@
 							],
 							"arrayCount":0,
-							"description":"å®æç©ç®é»åéè¨æ¸¬å¤ï¼éæ¹åè¨æ¸¬å¤ï¼",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"è¨æ¸¬å¹´ææ¥",
+							"description":"定時積算電力量計測値（逆方向計測値）",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"計測年月日",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"å¹´",
+											"description":"年",
 											"fields":[
 												
@@ -20139,10 +19700,10 @@
 											"size":2,
 											"type":"uint16_t",
-											"unitDescription":"å¹´",
-											"valueDescription":"0x0001ï½0x270F(1ï½9999)"
+											"unitDescription":"年",
+											"valueDescription":"0x0001～0x270F(1～9999)"
 										},
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"月",
 											"fields":[
 												
@@ -20154,10 +19715,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x01ï½0x0C(1ï½12)"
+											"unitDescription":"月",
+											"valueDescription":"0x01～0x0C(1～12)"
 										},
 										{
 											"arrayCount":0,
-											"description":"æ¥",
+											"description":"日",
 											"fields":[
 												
@@ -20169,6 +19730,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ¥",
-											"valueDescription":"0x01ï½0x1F(1ï½31)"
+											"unitDescription":"日",
+											"valueDescription":"0x01～0x1F(1～31)"
 										}
 									],
@@ -20184,9 +19745,9 @@
 								{
 									"arrayCount":0,
-									"description":"è¨æ¸¬æå»",
+									"description":"計測時刻",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"時",
 											"fields":[
 												
@@ -20198,10 +19759,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x00ï½0x17(0ï½23)"
+											"unitDescription":"時",
+											"valueDescription":"0x00～0x17(0～23)"
 										},
 										{
 											"arrayCount":0,
-											"description":"å",
+											"description":"分",
 											"fields":[
 												
@@ -20213,10 +19774,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"å",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"分",
+											"valueDescription":"0x00～0x3B(0～59)"
 										},
 										{
 											"arrayCount":0,
-											"description":"ç§",
+											"description":"秒",
 											"fields":[
 												
@@ -20228,6 +19789,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"ç§",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"秒",
+											"valueDescription":"0x00～0x3B(0～59)"
 										}
 									],
@@ -20243,5 +19804,5 @@
 								{
 									"arrayCount":0,
-									"description":"ç©ç®é»åé",
+									"description":"積算電力量",
 									"fields":[
 										
@@ -20254,5 +19815,5 @@
 									"type":"uint32_t",
 									"unitDescription":"kWh",
-									"valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"
+									"valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"
 								}
 							],
@@ -20274,5 +19835,5 @@
 				{
 					"classCode":137,
-					"description":"ã¹ãã¼ãã¬ã¹ã¡ã¼ã¿",
+					"description":"スマートガスメータ",
 					"name":"SMART_GAS_METER_EOBJ",
 					"propertyList":[
@@ -20283,5 +19844,5 @@
 							],
 							"arrayCount":0,
-							"description":"ã¬ã¹åºåè¨­å®",
+							"description":"ガス区分設定",
 							"fields":[
 								
@@ -20298,14 +19859,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=é½å¸ã¬ã¹,0x31=LPã¬ã¹,0x32=å¤©ç¶,0x33=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ææè
-åºåè¨­å®",
+							"valueDescription":"0x30=都市ガス,0x31=LPガス,0x32=天然,0x33=その他"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"所有者区分設定",
 							"fields":[
 								
@@ -20322,12 +19882,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=æå®ãªã,0x31=é½å¸ã¬ã¹,0x32=LPã¬ã¹,0x33=æ°éä¼ç¤¾,0x34=åäºº"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤",
+							"valueDescription":"0x30=指定なし,0x31=都市ガス,0x32=LPガス,0x33=民間会社,0x34=個人"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算ガス消費量計測値",
 							"fields":[
 								
@@ -20343,13 +19903,13 @@
 							"size":4,
 							"type":"uint32_t",
-							"unitDescription":"0.001ã¥",
-							"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤åä½",
+							"unitDescription":"0.001㎥",
+							"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算ガス消費量計測値単位",
 							"fields":[
 								
@@ -20366,17 +19926,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=1ã¥,0x01=0.1ã¥,0x02=0.01ã¥,0x03=0.001ã¥,0x04=0.0001ã¥,0x05=0.00001ã¥,0x06=0.000001ã¥"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éå±¥æ­´æ
-å ±",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ç©ç®å±¥æ­´åéæ¥",
+							"valueDescription":"0x00=1㎥,0x01=0.1㎥,0x02=0.01㎥,0x03=0.001㎥,0x04=0.0001㎥,0x05=0.00001㎥,0x06=0.000001㎥"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"積算ガス消費量履歴情報",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"積算履歴収集日",
 									"fields":[
 										
@@ -20388,10 +19947,10 @@
 									"size":2,
 									"type":"uint16_t",
-									"unitDescription":"æ¥",
-									"valueDescription":"0x0000ï½0x0063(0ï½99)"
+									"unitDescription":"日",
+									"valueDescription":"0x0000～0x0063(0～99)"
 								},
 								{
 									"arrayCount":48,
-									"description":"ç©ç®ã¬ã¹æ¶è²»é",
+									"description":"積算ガス消費量",
 									"fields":[
 										
@@ -20403,6 +19962,6 @@
 									"size":4,
 									"type":"uint32_t",
-									"unitDescription":"0.001ã¥",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999ã¥)"
+									"unitDescription":"0.001㎥",
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999㎥)"
 								}
 							],
@@ -20426,5 +19985,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç©ç®ã¬ã¹æ¶è²»éå±¥æ­´åéæ¥è¨­å®",
+							"description":"積算ガス消費量履歴収集日設定",
 							"fields":[
 								
@@ -20441,13 +20000,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00=å½æ¥,0x01ï½0x63=åæ¥ã®æ¥æ°(0ï½99)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¤éãã¼ã¿ç°å¸¸æ¤ç¥ç¶æ
-",
+							"valueDescription":"0x00=当日,0x01～0x63=前日の日数(0～99)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"検針データ異常検知状態",
 							"fields":[
 								
@@ -20464,5 +20022,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç°å¸¸æ¤ç¥æ,0x42=ç°å¸¸æ¤ç¥ç¡"
+							"valueDescription":"0x41=異常検知有,0x42=異常検知無"
 						},
 						{
@@ -20471,6 +20029,5 @@
 							],
 							"arrayCount":10,
-							"description":"ã»ã­ã¥ãªãã£ãã¼ã¿æ
-å ±",
+							"description":"セキュリティデータ情報",
 							"fields":[
 								
@@ -20487,14 +20044,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"è©³ç´°ã¯èª¬æ(9)åç
-§"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã»ã³ã¿ã¼å¼é®æ­ç¶æ
-",
+							"valueDescription":"詳細は説明(9)参照"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"センター弁遮断状態",
 							"fields":[
 								
@@ -20511,13 +20066,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã»ã³ã¿ã¼å¼é®æ­æã,0x42=ã»ã³ã¿ã¼å¼é®æ­ç¡ã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°è¨±å¯ç¶æ
-",
+							"valueDescription":"0x41=センター弁遮断有り,0x42=センター弁遮断無し"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"センター弁遮断復帰許可状態",
 							"fields":[
 								
@@ -20534,13 +20088,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°è¨±å¯,0x42=ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°éè¨±å¯"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç·æ¥å¼é®æ­ç¶æ
-",
+							"valueDescription":"0x41=センター弁遮断復帰許可,0x42=センター弁遮断復帰非許可"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"緊急弁遮断状態",
 							"fields":[
 								
@@ -20557,13 +20110,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ç·æ¥å¼é®æ­æã,0x42=ç·æ¥å¼é®æ­ç¡ã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é®æ­å¼ééç¶æ
-",
+							"valueDescription":"0x41=緊急弁遮断有り,0x42=緊急弁遮断無し"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"遮断弁開閉状態",
 							"fields":[
 								
@@ -20580,7 +20132,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é®æ­å¼éç¶æ
-,0x42=é®æ­å¼éç¶æ
-"
+							"valueDescription":"0x41=遮断弁開状態,0x42=遮断弁閉状態"
 						},
 						{
@@ -20589,6 +20139,5 @@
 							],
 							"arrayCount":3,
-							"description":"é®æ­çç±å±¥æ­´æ
-å ±",
+							"description":"遮断理由履歴情報",
 							"fields":[
 								
@@ -20613,5 +20162,5 @@
 							],
 							"arrayCount":6,
-							"description":"ï¼©ï¼¤çªå·è¨­å®",
+							"description":"ＩＤ番号設定",
 							"fields":[
 								
@@ -20628,5 +20177,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"'000000'ï½'FFFFFF'"
+							"valueDescription":"'000000'～'FFFFFF'"
 						},
 						{
@@ -20636,5 +20185,5 @@
 							],
 							"arrayCount":6,
-							"description":"æ¤å®æºæè¨­å®",
+							"description":"検定満期設定",
 							"fields":[
 								
@@ -20651,21 +20200,20 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"YYYYMM:YYYY(è¥¿æ¦),MM(æ)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¥æä»ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤æ
-å ±",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"è¨æ¸¬å¹´ææ¥",
+							"valueDescription":"YYYYMM:YYYY(西暦),MM(月)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"日時付積算ガス消費量計測値情報",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"計測年月日",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"å¹´",
+											"description":"年",
 											"fields":[
 												
@@ -20677,10 +20225,10 @@
 											"size":2,
 											"type":"uint16_t",
-											"unitDescription":"å¹´",
-											"valueDescription":"0x0001ï½0x270F(1ï½9999)"
+											"unitDescription":"年",
+											"valueDescription":"0x0001～0x270F(1～9999)"
 										},
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"月",
 											"fields":[
 												
@@ -20692,10 +20240,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x01ï½0x0C(1ï½12)"
+											"unitDescription":"月",
+											"valueDescription":"0x01～0x0C(1～12)"
 										},
 										{
 											"arrayCount":0,
-											"description":"æ¥",
+											"description":"日",
 											"fields":[
 												
@@ -20707,6 +20255,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ¥",
-											"valueDescription":"0x01ï½0x1F(1ï½31)"
+											"unitDescription":"日",
+											"valueDescription":"0x01～0x1F(1～31)"
 										}
 									],
@@ -20722,9 +20270,9 @@
 								{
 									"arrayCount":0,
-									"description":"è¨æ¸¬æå»",
+									"description":"計測時刻",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"時",
 											"fields":[
 												
@@ -20736,10 +20284,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x00ï½0x17(0ï½23)"
+											"unitDescription":"時",
+											"valueDescription":"0x00～0x17(0～23)"
 										},
 										{
 											"arrayCount":0,
-											"description":"å",
+											"description":"分",
 											"fields":[
 												
@@ -20751,10 +20299,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"å",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"分",
+											"valueDescription":"0x00～0x3B(0～59)"
 										},
 										{
 											"arrayCount":0,
-											"description":"ç§",
+											"description":"秒",
 											"fields":[
 												
@@ -20766,6 +20314,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"ç§",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"秒",
+											"valueDescription":"0x00～0x3B(0～59)"
 										}
 									],
@@ -20781,5 +20329,5 @@
 								{
 									"arrayCount":0,
-									"description":"ç©ç®ã¬ã¹æ¶è²»é",
+									"description":"積算ガス消費量",
 									"fields":[
 										
@@ -20791,6 +20339,6 @@
 									"size":4,
 									"type":"uint32_t",
-									"unitDescription":"0.001ã¥",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999ã¥)"
+									"unitDescription":"0.001㎥",
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999㎥)"
 								}
 							],
@@ -20813,14 +20361,13 @@
 							],
 							"arrayCount":0,
-							"description":"ã¬ã¹æ¶è²»éå±¥æ­´æ
-å ±",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"å±¥æ­´ã¹ã¿ã¼ãå¹´ææ¥",
+							"description":"ガス消費量履歴情報",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"履歴スタート年月日",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"å¹´",
+											"description":"年",
 											"fields":[
 												
@@ -20832,10 +20379,10 @@
 											"size":2,
 											"type":"uint16_t",
-											"unitDescription":"å¹´",
-											"valueDescription":"0x0001ï½0x270F(1ï½9999)"
+											"unitDescription":"年",
+											"valueDescription":"0x0001～0x270F(1～9999)"
 										},
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"月",
 											"fields":[
 												
@@ -20847,10 +20394,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x01ï½0x0C(1ï½12)"
+											"unitDescription":"月",
+											"valueDescription":"0x01～0x0C(1～12)"
 										},
 										{
 											"arrayCount":0,
-											"description":"æ¥",
+											"description":"日",
 											"fields":[
 												
@@ -20862,6 +20409,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ¥",
-											"valueDescription":"0x01ï½0x1F(1ï½31)"
+											"unitDescription":"日",
+											"valueDescription":"0x01～0x1F(1～31)"
 										}
 									],
@@ -20877,9 +20424,9 @@
 								{
 									"arrayCount":0,
-									"description":"å±¥æ­´ã¹ã¿ã¼ãæå»",
+									"description":"履歴スタート時刻",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"時",
 											"fields":[
 												
@@ -20891,10 +20438,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x00ï½0x17(0ï½23)"
+											"unitDescription":"時",
+											"valueDescription":"0x00～0x17(0～23)"
 										},
 										{
 											"arrayCount":0,
-											"description":"å",
+											"description":"分",
 											"fields":[
 												
@@ -20906,10 +20453,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"å",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"分",
+											"valueDescription":"0x00～0x3B(0～59)"
 										},
 										{
 											"arrayCount":0,
-											"description":"ç§",
+											"description":"秒",
 											"fields":[
 												
@@ -20921,6 +20468,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"ç§",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"秒",
+											"valueDescription":"0x00～0x3B(0～59)"
 										}
 									],
@@ -20936,5 +20483,5 @@
 								{
 									"arrayCount":24,
-									"description":"ã¬ã¹æ¶è²»éå±¥æ­´ãã¼ã¿",
+									"description":"ガス消費量履歴データ",
 									"fields":[
 										
@@ -20946,10 +20493,10 @@
 									"size":4,
 									"type":"uint32_t",
-									"unitDescription":"0.001ã¥",
-									"valueDescription":"0x00000000ï½0x0001869F(0ï½99.999ã¥)"
+									"unitDescription":"0.001㎥",
+									"valueDescription":"0x00000000～0x0001869F(0～99.999㎥)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å±¥æ­´ã¹ã¿ã¼ãæç©ç®ã¬ã¹æ¶è²»é",
+									"description":"履歴スタート時積算ガス消費量",
 									"fields":[
 										
@@ -20961,10 +20508,10 @@
 									"size":4,
 									"type":"uint32_t",
-									"unitDescription":"0.001ã¥",
-									"valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999ã¥)"
+									"unitDescription":"0.001㎥",
+									"valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999㎥)"
 								},
 								{
 									"arrayCount":0,
-									"description":"ç©ç®æééé",
+									"description":"積算時間間隔",
 									"fields":[
 										
@@ -20976,6 +20523,6 @@
 									"size":2,
 									"type":"uint16_t",
-									"unitDescription":"å",
-									"valueDescription":"0x0001ï½0xFFFF(1ï½65535)"
+									"unitDescription":"分",
+									"valueDescription":"0x0001～0xFFFF(1～65535)"
 								}
 							],
@@ -20997,6 +20544,5 @@
 				{
 					"classCode":144,
-					"description":"ä¸è¬ç
-§æ",
+					"description":"一般照明",
 					"name":"GENERAL_LIGHTING_CLASS_EOBJ",
 					"propertyList":[
@@ -21007,6 +20553,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç
-§åº¦ã¬ãã«è¨­å®",
+							"description":"照度レベル設定",
 							"fields":[
 								
@@ -21022,16 +20567,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-è²è¨­å®",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"光色設定",
 							"fields":[
 								
@@ -21048,15 +20591,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é»çè²,0x42=ç½è²,0x43=æ¼ç½è²,0x44=æ¼å
-è²,0x40=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ç
-§åº¦ã¬ãã«æ®µæ°è¨­å®",
+							"valueDescription":"0x41=電球色,0x42=白色,0x43=昼白色,0x44=昼光色,0x40=その他"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"照度レベル段数設定",
 							"fields":[
 								
@@ -21073,15 +20614,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½ç
-§åº¦ã¬ãã«æå¤§å¤(æï½æ)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-è²ã¬ãã«æ®µæ°è¨­å®",
+							"valueDescription":"0x01～設定可能照度レベル最大値(暗～明)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"光色レベル段数設定",
 							"fields":[
 								
@@ -21098,18 +20637,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½å
-è²ã¬ãã«æå¤§å¤(é»çè²ï½ç½è²)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è¨­å®å¯è½ã¬ãã«æå¤§å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ç
-§åº¦",
+							"valueDescription":"0x01～設定可能光色レベル最大値(電球色～白色)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"設定可能レベル最大値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"照度",
 									"fields":[
 										
@@ -21122,10 +20659,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=æ©è½ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=機能を搭載していない"
 								},
 								{
 									"arrayCount":0,
-									"description":"å
-è²",
+									"description":"光色",
 									"fields":[
 										
@@ -21138,5 +20674,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=æ©è½ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=機能を搭載していない"
 								}
 							],
@@ -21159,10 +20695,9 @@
 							],
 							"arrayCount":0,
-							"description":"å¸¸å¤ç¯è¨­å®å¯è½ã¬ãã«æå¤§å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ç
-§åº¦",
+							"description":"常夜灯設定可能レベル最大値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"照度",
 									"fields":[
 										
@@ -21175,10 +20710,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=æ©è½ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=機能を搭載していない"
 								},
 								{
 									"arrayCount":0,
-									"description":"å
-è²",
+									"description":"光色",
 									"fields":[
 										
@@ -21191,5 +20725,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=æ©è½ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=機能を搭載していない"
 								}
 							],
@@ -21213,5 +20747,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç¹ç¯ã¢ã¼ãè¨­å®",
+							"description":"点灯モード設定",
 							"fields":[
 								
@@ -21229,14 +20763,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=éå¸¸ç¯,0x43=å¸¸å¤ç¯,0x45=ã«ã©ã¼ç¯"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éå¸¸ç¯ã¢ã¼ãæç
-§åº¦ã¬ãã«è¨­å®",
+							"valueDescription":"0x41=自動,0x42=通常灯,0x43=常夜灯,0x45=カラー灯"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"通常灯モード時照度レベル設定",
 							"fields":[
 								
@@ -21252,16 +20785,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éå¸¸ç¯ã¢ã¼ãæç
-§åº¦ã¬ãã«æ®µæ°è¨­å®",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"通常灯モード時照度レベル段数設定",
 							"fields":[
 								
@@ -21278,15 +20809,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½ç
-§åº¦ã¬ãã«æå¤§å¤(æï½æ)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¸¸å¤ç¯ã¢ã¼ãæç
-§åº¦ã¬ãã«è¨­å®",
+							"valueDescription":"0x01～設定可能照度レベル最大値(暗～明)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"常夜灯モード時照度レベル設定",
 							"fields":[
 								
@@ -21302,16 +20831,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ï¼
-",
-							"valueDescription":"0x00ï½0x64(0ï½100%)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¸¸å¤ç¯ã¢ã¼ãæç
-§åº¦ã¬ãã«æ®µæ°è¨­å®",
+							"unitDescription":"％",
+							"valueDescription":"0x00～0x64(0～100%)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"常夜灯モード時照度レベル段数設定",
 							"fields":[
 								
@@ -21328,15 +20855,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½ç
-§åº¦ã¬ãã«æå¤§å¤(æï½æ)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éå¸¸ç¯ã¢ã¼ãæå
-è²è¨­å®",
+							"valueDescription":"0x01～設定可能照度レベル最大値(暗～明)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"通常灯モード時光色設定",
 							"fields":[
 								
@@ -21353,15 +20878,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é»çè²,0x42=ç½è²,0x43=æ¼ç½è²,0x44=æ¼å
-è²,0x40=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éå¸¸ç¯ã¢ã¼ãæå
-è²ã¬ãã«æ®µæ°è¨­å®",
+							"valueDescription":"0x41=電球色,0x42=白色,0x43=昼白色,0x44=昼光色,0x40=その他"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"通常灯モード時光色レベル段数設定",
 							"fields":[
 								
@@ -21378,15 +20901,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½å
-è²ã¬ãã«æå¤§å¤(é»çè²ï½ç½è²)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¸¸å¤ç¯ã¢ã¼ãæå
-è²è¨­å®",
+							"valueDescription":"0x01～設定可能光色レベル最大値(電球色～白色)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"常夜灯モード時光色設定",
 							"fields":[
 								
@@ -21403,15 +20924,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é»çè²,0x42=ç½è²,0x43=æ¼ç½è²,0x44=æ¼å
-è²,0x40=ãã®ä»"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å¸¸å¤ç¯ã¢ã¼ãæå
-è²ã¬ãã«æ®µæ°è¨­å®",
+							"valueDescription":"0x41=電球色,0x42=白色,0x43=昼白色,0x44=昼光色,0x40=その他"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"常夜灯モード時光色レベル段数設定",
 							"fields":[
 								
@@ -21428,14 +20947,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½å
-è²ã¬ãã«æå¤§å¤(é»çè²ï½ç½è²)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èªåã¢ã¼ãæç¹ç¯ã¢ã¼ãç¶æ
-",
+							"valueDescription":"0x01～設定可能光色レベル最大値(電球色～白色)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"自動モード時点灯モード状態",
 							"fields":[
 								
@@ -21452,21 +20969,21 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x42=éå¸¸ç¯,0x43=å¸¸å¤ç¯,0x44=æ¶ç¯,0x45=ã«ã©ã¼ç¯"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã«ã©ã¼ç¯ã¢ã¼ãæï¼²ï¼§ï¼¢è¨­å®",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ï¼²",
-									"fields":[
-										
-									],
-									"identifier":"ï¼²",
+							"valueDescription":"0x42=通常灯,0x43=常夜灯,0x44=消灯,0x45=カラー灯"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"カラー灯モード時ＲＧＢ設定",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"Ｒ",
+									"fields":[
+										
+									],
+									"identifier":"Ｒ",
 									"initialValue":null,
 									"isArray":false,
@@ -21475,13 +20992,13 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x00ï½0xFF(æä½è¼åº¦ï½æé«è¼åº¦)"
+									"valueDescription":"0x00～0xFF(最低輝度～最高輝度)"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼§",
-									"fields":[
-										
-									],
-									"identifier":"ï¼§",
+									"description":"Ｇ",
+									"fields":[
+										
+									],
+									"identifier":"Ｇ",
 									"initialValue":null,
 									"isArray":false,
@@ -21490,13 +21007,13 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x00ï½0xFF(æä½è¼åº¦ï½æé«è¼åº¦)"
+									"valueDescription":"0x00～0xFF(最低輝度～最高輝度)"
 								},
 								{
 									"arrayCount":0,
-									"description":"ï¼¢",
-									"fields":[
-										
-									],
-									"identifier":"ï¼¢",
+									"description":"Ｂ",
+									"fields":[
+										
+									],
+									"identifier":"Ｂ",
 									"initialValue":null,
 									"isArray":false,
@@ -21505,5 +21022,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x00ï½0xFF(æä½è¼åº¦ï½æé«è¼åº¦)"
+									"valueDescription":"0x00～0xFF(最低輝度～最高輝度)"
 								}
 							],
@@ -21527,5 +21044,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -21542,18 +21059,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -21565,10 +21081,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -21580,6 +21096,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -21603,5 +21119,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＦＦタイマ予約設定",
 							"fields":[
 								
@@ -21618,18 +21134,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＦＦタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -21641,10 +21156,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -21656,6 +21171,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -21677,6 +21192,5 @@
 				{
 					"classCode":153,
-					"description":"éå¸¸ç
-§æ",
+					"description":"非常照明",
 					"name":"EMERGENCY_LIGHTING_EOBJ",
 					"propertyList":[
@@ -21686,6 +21200,5 @@
 				{
 					"classCode":157,
-					"description":"è¨­åç
-§æ",
+					"description":"設備照明",
 					"name":"EQUIPMENT_LIGHT_EOBJ",
 					"propertyList":[
@@ -21695,5 +21208,5 @@
 				{
 					"classCode":160,
-					"description":"ãã¶ã¼",
+					"description":"ブザー",
 					"name":"BUZZER_EOBJ",
 					"propertyList":[
@@ -21704,5 +21217,5 @@
 							],
 							"arrayCount":0,
-							"description":"é³çºçè¨­å®",
+							"description":"音発生設定",
 							"fields":[
 								
@@ -21719,13 +21232,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é³çºçæ,0x42=é³çºçç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã¶ã¼é³ç¨®å¥è¨­å®",
+							"valueDescription":"0x41=音発生有,0x42=音発生無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ブザー音種別設定",
 							"fields":[
 								
@@ -21742,5 +21255,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x38"
+							"valueDescription":"0x31～0x38"
 						}
 					]
@@ -21750,10 +21263,10 @@
 		{
 			"classGroupCode":3,
-			"description":"èª¿çã»å®¶äºé¢é£æ©å¨",
+			"description":"調理・家事関連機器",
 			"define":"X1_HOUSEWORK",
 			"classList":[
 				{
 					"classCode":176,
-					"description":"ã³ã¼ãã¼ã¡ã¼ã«",
+					"description":"コーヒーメーカ",
 					"name":"COFFEE_MACHINE_EOBJ",
 					"propertyList":[
@@ -21763,5 +21276,5 @@
 				{
 					"classCode":177,
-					"description":"ã³ã¼ãã¼ãã«",
+					"description":"コーヒーミル",
 					"name":"COFFEE_MILL_EOBJ",
 					"propertyList":[
@@ -21771,5 +21284,5 @@
 				{
 					"classCode":178,
-					"description":"é»æ°ããã",
+					"description":"電気ポット",
 					"name":"ELECTRIC_HOT_WATER_POT_EOBJ",
 					"propertyList":[
@@ -21779,6 +21292,5 @@
 							],
 							"arrayCount":0,
-							"description":"èééç¶æ
-",
+							"description":"蓋開閉状態",
 							"fields":[
 								
@@ -21795,5 +21307,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èé,0x42=èé"
+							"valueDescription":"0x41=蓋開,0x42=蓋閉"
 						},
 						{
@@ -21803,6 +21315,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¹¯åãè­¦åç¶æ
-",
+							"description":"湯切れ警告状態",
 							"fields":[
 								
@@ -21819,13 +21330,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ¹¯åãæã,0x40=æ¹¯åããªã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ²¸é¨°è¨­å®",
+							"valueDescription":"0x41=湯切れ有り,0x40=湯切れなし"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"沸騰設定",
 							"fields":[
 								
@@ -21842,13 +21353,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ²¸é¨°éå§,0x42=æ²¸é¨°åæ­¢\/ä¿æ¸©"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ²¸é¨°ï¼ä¿æ¸©ã¢ã¼ãè¨­å®",
+							"valueDescription":"0x41=沸騰開始,0x42=沸騰停止\/保温"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"沸騰／保温モード設定",
 							"fields":[
 								
@@ -21865,14 +21376,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã¯ã¨ã³é
-¸æ´æµ,0x42=éå¸¸ä¿æ¸©,0x43=çã¨ãä¿æ¸©"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¿æ¸©æ¸©åº¦è¨­å®å¤",
+							"valueDescription":"0x41=クエン酸洗浄,0x42=通常保温,0x43=省エネ保温"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"保温温度設定値",
 							"fields":[
 								
@@ -21888,6 +21398,6 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100)"
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100)"
 						},
 						{
@@ -21897,6 +21407,5 @@
 							],
 							"arrayCount":0,
-							"description":"åºæ¹¯ç¶æ
-",
+							"description":"出湯状態",
 							"fields":[
 								
@@ -21913,13 +21422,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=åºæ¹¯æ,0x42=åºæ¹¯ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã­ãã¯ç¶æ
-",
+							"valueDescription":"0x41=出湯有,0x42=出湯無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ロック状態",
 							"fields":[
 								
@@ -21936,5 +21444,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã­ãã¯æ,0x42=ã­ãã¯ç¡"
+							"valueDescription":"0x41=ロック有,0x42=ロック無"
 						}
 					]
@@ -21942,5 +21450,5 @@
 				{
 					"classCode":179,
-					"description":"é»æ°ããã",
+					"description":"電気こんろ",
 					"name":"ELECTRIC_STOVE_EOBJ",
 					"propertyList":[
@@ -21950,5 +21458,5 @@
 				{
 					"classCode":180,
-					"description":"ãã¼ã¹ã¿",
+					"description":"トースタ",
 					"name":"TOASTER_EOBJ",
 					"propertyList":[
@@ -21958,5 +21466,5 @@
 				{
 					"classCode":181,
-					"description":"ã¸ã¥ã¼ãµã»ãã­ãµ",
+					"description":"ジューサ・ミキサ",
 					"name":"JUICER_FOOD_MIXER_EOBJ",
 					"propertyList":[
@@ -21966,5 +21474,5 @@
 				{
 					"classCode":182,
-					"description":"ãã¼ããã­ã»ããµ",
+					"description":"フードプロセッサ",
 					"name":"FOOD_PROCESSOR_EOBJ",
 					"propertyList":[
@@ -21974,5 +21482,5 @@
 				{
 					"classCode":183,
-					"description":"å·åå·èµåº«",
+					"description":"冷凍冷蔵庫",
 					"name":"REFRIGERATOR_EOBJ",
 					"propertyList":[
@@ -21982,6 +21490,5 @@
 							],
 							"arrayCount":0,
-							"description":"ãã¢ééç¶æ
-",
+							"description":"ドア開閉状態",
 							"fields":[
 								
@@ -21998,13 +21505,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã¢éæ¾è­¦åç¶æ
-",
+							"valueDescription":"0x41=ドア開,0x42=ドア閉"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ドア開放警告状態",
 							"fields":[
 								
@@ -22021,13 +21527,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãã¢éæ¾è­¦åæ,0x42=ãã¢éæ¾è­¦åç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·èµå®¤ãã¢ééç¶æ
-",
+							"valueDescription":"0x41=ドア開放警告有,0x42=ドア開放警告無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷蔵室ドア開閉状態",
 							"fields":[
 								
@@ -22044,13 +21549,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·åå®¤ãã¢ééç¶æ
-",
+							"valueDescription":"0x41=ドア開,0x42=ドア閉"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷凍室ドア開閉状態",
 							"fields":[
 								
@@ -22067,13 +21571,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°·æ¸©å®¤ãã¢ééç¶æ
-",
+							"valueDescription":"0x41=ドア開,0x42=ドア閉"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"氷温室ドア開閉状態",
 							"fields":[
 								
@@ -22090,13 +21593,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éèå®¤ãã¢ééç¶æ
-",
+							"valueDescription":"0x41=ドア開,0x42=ドア閉"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"野菜室ドア開閉状態",
 							"fields":[
 								
@@ -22113,13 +21615,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"åæå®¤ãã¢ééç¶æ
-",
+							"valueDescription":"0x41=ドア開,0x42=ドア閉"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"切換室ドア開閉状態",
 							"fields":[
 								
@@ -22136,16 +21637,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"å·èµå®¤",
+							"valueDescription":"0x41=ドア開,0x42=ドア閉"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"設定可能温度レベル最大値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"冷蔵室",
 									"fields":[
 										
@@ -22158,9 +21659,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"
 								},
 								{
 									"arrayCount":0,
-									"description":"å·åå®¤",
+									"description":"冷凍室",
 									"fields":[
 										
@@ -22173,9 +21674,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"
 								},
 								{
 									"arrayCount":0,
-									"description":"æ°·æ¸©å®¤",
+									"description":"氷温室",
 									"fields":[
 										
@@ -22188,9 +21689,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"
 								},
 								{
 									"arrayCount":0,
-									"description":"éèå®¤",
+									"description":"野菜室",
 									"fields":[
 										
@@ -22203,9 +21704,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"
 								},
 								{
 									"arrayCount":0,
-									"description":"åæå®¤",
+									"description":"切換室",
 									"fields":[
 										
@@ -22218,5 +21719,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"
 								},
 								{
@@ -22233,5 +21734,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"
 								},
 								{
@@ -22248,5 +21749,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"
 								},
 								{
@@ -22263,5 +21764,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"
+									"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"
 								}
 							],
@@ -22285,5 +21786,5 @@
 							],
 							"arrayCount":0,
-							"description":"å·èµå®¤æ¸©åº¦è¨­å®å¤",
+							"description":"冷蔵室温度設定値",
 							"fields":[
 								
@@ -22299,14 +21800,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·åå®¤æ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷凍室温度設定値",
 							"fields":[
 								
@@ -22322,14 +21823,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°·æ¸©å®¤æ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"氷温室温度設定値",
 							"fields":[
 								
@@ -22345,14 +21846,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éèå®¤æ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"野菜室温度設定値",
 							"fields":[
 								
@@ -22368,14 +21869,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"åæå®¤æ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"切換室温度設定値",
 							"fields":[
 								
@@ -22391,14 +21892,14 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·èµå®¤æ¸©åº¦ã¬ãã«è¨­å®",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷蔵室温度レベル設定",
 							"fields":[
 								
@@ -22415,13 +21916,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·åå®¤æ¸©åº¦ã¬ãã«è¨­å®",
+							"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷凍室温度レベル設定",
 							"fields":[
 								
@@ -22438,13 +21939,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°·æ¸©å®¤æ¸©åº¦ã¬ãã«è¨­å®",
+							"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"氷温室温度レベル設定",
 							"fields":[
 								
@@ -22461,13 +21962,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éèå®¤æ¸©åº¦ã¬ãã«è¨­å®",
+							"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"野菜室温度レベル設定",
 							"fields":[
 								
@@ -22484,13 +21985,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"åæå®¤æ¸©åº¦ã¬ãã«è¨­å®",
+							"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"切換室温度レベル設定",
 							"fields":[
 								
@@ -22507,12 +22008,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·èµå®¤æ¸©åº¦è¨æ¸¬å¤",
+							"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷蔵室温度計測値",
 							"fields":[
 								
@@ -22528,13 +22029,13 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·åå®¤æ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷凍室温度計測値",
 							"fields":[
 								
@@ -22550,13 +22051,13 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°·æ¸©å®¤æ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"氷温室温度計測値",
 							"fields":[
 								
@@ -22572,13 +22073,13 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éèå®¤æ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"野菜室温度計測値",
 							"fields":[
 								
@@ -22594,13 +22095,13 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"åæå®¤æ¸©åº¦è¨æ¸¬å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"切換室温度計測値",
 							"fields":[
 								
@@ -22616,17 +22117,17 @@
 							"size":1,
 							"type":"int8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å§ç¸®æ©åè»¢æ°ã¬ãã«",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æå¤§åè»¢æ°ã¬ãã«",
+							"unitDescription":"℃",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"圧縮機回転数レベル",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"最大回転数レベル",
 									"fields":[
 										
@@ -22639,9 +22140,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01ï½0xFF(1ï½255)"
+									"valueDescription":"0x01～0xFF(1～255)"
 								},
 								{
 									"arrayCount":0,
-									"description":"åè»¢æ°ã¬ãã«",
+									"description":"回転数レベル",
 									"fields":[
 										
@@ -22654,5 +22155,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x00=åæ­¢,0x01ï½0xFF(å¼±ï½å¼·)"
+									"valueDescription":"0x00=停止,0x01～0xFF(弱～強)"
 								}
 							],
@@ -22675,5 +22176,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¶è²»é»æµè¨æ¸¬å¤",
+							"description":"消費電流計測値",
 							"fields":[
 								
@@ -22690,12 +22191,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1A",
-							"valueDescription":"0x81ï½0x7E(-127ï½126â)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å®æ ¼æ¶è²»é»åå¤",
+							"valueDescription":"0x81～0x7E(-127～126℃)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"定格消費電力値",
 							"fields":[
 								
@@ -22712,13 +22213,13 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¥éå·ååä½è¨­å®",
+							"valueDescription":"0x0000～0xFFFD(0～65533W)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"急速冷凍動作設定",
 							"fields":[
 								
@@ -22735,14 +22236,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éå¸¸å·å,0x42=æ¥éå·å,0x43=æ¥éå·åå¾
-æ©"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ¥éå·èµåä½è¨­å®",
+							"valueDescription":"0x41=通常冷凍,0x42=急速冷凍,0x43=急速冷凍待機"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"急速冷蔵動作設定",
 							"fields":[
 								
@@ -22759,14 +22259,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éå¸¸å·èµ,0x42=æ¥éå·èµ,0x43=æ¥éå·èµå¾
-æ©"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è£½æ°·è¨±å¯è¨­å®",
+							"valueDescription":"0x41=通常冷蔵,0x42=急速冷蔵,0x43=急速冷蔵待機"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"製氷許可設定",
 							"fields":[
 								
@@ -22783,13 +22282,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=è£½æ°·è¨±å¯,0x42=è£½æ°·ç¦æ­¢,0x43=è£½æ°·ä¸å®æéç¦æ­¢"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è£½æ°·åä½ç¶æ
-",
+							"valueDescription":"0x41=製氷許可,0x42=製氷禁止,0x43=製氷一定時間禁止"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"製氷動作状態",
 							"fields":[
 								
@@ -22806,13 +22304,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=éè»¢ä¸­,0x42=åæ­¢ä¸­"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è£½æ°·ç¨çµ¦æ°´ã¿ã³ã¯ç¶æ
-",
+							"valueDescription":"0x41=運転中,0x42=停止中"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"製氷用給水タンク状態",
 							"fields":[
 								
@@ -22829,13 +22326,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã¿ã³ã¯æ°´ãã,0x42=ã¿ã³ã¯ãªãoræ°´ãªã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å·èµå®¤å æ¹¿åä½è¨­å®",
+							"valueDescription":"0x41=タンク水あり,0x42=タンクなしor水なし"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"冷蔵室加湿動作設定",
 							"fields":[
 								
@@ -22852,13 +22349,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å æ¹¿ON,0x42=å æ¹¿OFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éèå®¤å æ¹¿åä½è¨­å®",
+							"valueDescription":"0x41=加湿ON,0x42=加湿OFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"野菜室加湿動作設定",
 							"fields":[
 								
@@ -22875,13 +22372,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å æ¹¿ON,0x42=å æ¹¿OFF"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è±è­åä½è¨­å®",
+							"valueDescription":"0x41=加湿ON,0x42=加湿OFF"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"脱臭動作設定",
 							"fields":[
 								
@@ -22898,5 +22395,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=è±è­ON,0x42=è±è­OFF"
+							"valueDescription":"0x41=脱臭ON,0x42=脱臭OFF"
 						}
 					]
@@ -22904,5 +22401,5 @@
 				{
 					"classCode":184,
-					"description":"ãªã¼ãã³ã¬ã³ã¸",
+					"description":"オーブンレンジ",
 					"name":"COMBINATION_MICROWAVE_OVEN_EOBJ",
 					"propertyList":[
@@ -22912,6 +22409,5 @@
 							],
 							"arrayCount":0,
-							"description":"ãã¢ééç¶æ
-",
+							"description":"ドア開閉状態",
 							"fields":[
 								
@@ -22928,13 +22424,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å ç±ç¶æ
-",
+							"valueDescription":"0x41=ドア開,0x42=ドア閉"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"加熱状態",
 							"fields":[
 								
@@ -22951,14 +22446,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=åæç¶æ
-,0x41=éè»¢ä¸­,0x42=ä¸æåæ­¢ä¸­,0x43=å®äºå ±ç¥ä¸­,0x44=è¨­å®ä¸­,0x45=äºç±ä¸­,0x46=äºç±å®äºä¿æ¸©ä¸­,0x47=å ç±éä¸­å ±ç¥ä¸æåæ­¢ä¸­"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å ç±è¨­å®",
+							"valueDescription":"0x40=初期状態,0x41=運転中,0x42=一時停止中,0x43=完了報知中,0x44=設定中,0x45=予熱中,0x46=予熱完了保温中,0x47=加熱途中報知一時停止中"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"加熱設定",
 							"fields":[
 								
@@ -22975,13 +22469,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å ç±éå§ã»åé,0x42=å ç±ä¸æåæ­¢,0x43=å ç±åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å ç±ã¢ã¼ãè¨­å®",
+							"valueDescription":"0x41=加熱開始・再開,0x42=加熱一時停止,0x43=加熱停止"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"加熱モード設定",
 							"fields":[
 								
@@ -22998,15 +22492,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=é»å­ã¬ã³ã¸å ç±,0x42=è§£å,0x43=ãªã¼ãã³,0x44=ã°ãªã«,0x45=ãã¼ã¹ã,0x46=çºé
-µ,0x47=ç
-®è¾¼ã¿,0x48=ã¹ãã¼ã å ç±,0x51=é»å­ã¬ã³ã¸2æ®µå ç±,0xFF=æªè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èªåå ç±è¨­å®",
+							"valueDescription":"0x41=電子レンジ加熱,0x42=解凍,0x43=オーブン,0x44=グリル,0x45=トースト,0x46=発酵,0x47=煮込み,0x48=スチーム加熱,0x51=電子レンジ2段加熱,0xFF=未設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"自動加熱設定",
 							"fields":[
 								
@@ -23023,13 +22515,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èªå,0x42=ããã¥ã¢ã«,0xFF=æªè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èªåå ç±ã¬ãã«è¨­å®",
+							"valueDescription":"0x41=自動,0x42=マニュアル,0xFF=未設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"自動加熱レベル設定",
 							"fields":[
 								
@@ -23046,13 +22538,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x31ï½0x35(å¼±ï½å¼·),0xFF=æªè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èªåã¡ãã¥ã¼ã³ã¼ã¹è¨­å®",
+							"valueDescription":"0x31～0x35(弱～強),0xFF=未設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"自動メニューコース設定",
 							"fields":[
 								
@@ -23069,13 +22561,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00ï½0xFE=èªåã¡ãã¥ã¼ã³ã¼ã¹ã³ã¼ããã­ããã£ã®è©³ç´°èª¬æã«ãå®ç¾©ãããã³ã¼ããç¤ºãã,0xFF=æªè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãªã¼ãã³ã¢ã¼ãè¨­å®",
+							"valueDescription":"0x00～0xFE=自動メニューコースコードプロパティの詳細説明に、定義されたコードを示す。,0xFF=未設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"オーブンモード設定",
 							"fields":[
 								
@@ -23092,13 +22584,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=èªåé¸æã¢ã¼ã,0x41=å¯¾æµãªã¼ãã³ã¢ã¼ã,0x42=ç±é¢¨ãªã¼ãã³ã¢ã¼ã,0x43=è¤åãªã¼ãã³ã¢ã¼ã,0xFF=æªè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãªã¼ãã³äºç±è¨­å®",
+							"valueDescription":"0x40=自動選択モード,0x41=対流オーブンモード,0x42=熱風オーブンモード,0x43=複合オーブンモード,0xFF=未設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"オーブン予熱設定",
 							"fields":[
 								
@@ -23115,14 +22607,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç±ãã,0x42=äºç±ãªã,0xFF=æªè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çºé
-µã¢ã¼ãè¨­å®",
+							"valueDescription":"0x41=予熱あり,0x42=予熱なし,0xFF=未設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"発酵モード設定",
 							"fields":[
 								
@@ -23139,18 +22630,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=èªåé¸æã¢ã¼ã,0x41=å¯¾æµçºé
-µã¢ã¼ã,0x42=ç±é¢¨çºé
-µã¢ã¼ã,0x43=è¤åçºé
-µã¢ã¼ã,0x51=é»å­ã¬ã³ã¸çºé
-µã¢ã¼ã,0xFF=æªè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"åº«å
-æ¸©åº¦è¨­å®å¤",
+							"valueDescription":"0x40=自動選択モード,0x41=対流発酵モード,0x42=熱風発酵モード,0x43=複合発酵モード,0x51=電子レンジ発酵モード,0xFF=未設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"庫内温度設定値",
 							"fields":[
 								
@@ -23166,14 +22652,14 @@
 							"size":2,
 							"type":"int16_t",
-							"unitDescription":"â",
-							"valueDescription":"0xF554ï½0x7FFE(-273.2ï½3276.6â),0x8001=èªåè¨­å®,0x8002=æªè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä»ä¸ããæ¸©åº¦è¨­å®å¤",
+							"unitDescription":"℃",
+							"valueDescription":"0xF554～0x7FFE(-273.2～3276.6℃),0x8001=自動設定,0x8002=未設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"仕上がり温度設定値",
 							"fields":[
 								
@@ -23189,18 +22675,18 @@
 							"size":2,
 							"type":"int16_t",
-							"unitDescription":"â",
-							"valueDescription":"0xF554ï½0x7FFE(-273.2ï½3276.6â),0x8002=æªè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å ç±æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"unitDescription":"℃",
+							"valueDescription":"0xF554～0x7FFE(-273.2～3276.6℃),0x8002=未設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"加熱時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -23212,10 +22698,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -23227,10 +22713,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								},
 								{
 									"arrayCount":0,
-									"description":"ç§",
+									"description":"秒",
 									"fields":[
 										
@@ -23242,6 +22728,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"ç§",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"秒",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -23265,9 +22751,9 @@
 							],
 							"arrayCount":0,
-							"description":"å ç±æ®æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"加熱残時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -23279,10 +22765,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -23294,10 +22780,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								},
 								{
 									"arrayCount":0,
-									"description":"ç§",
+									"description":"秒",
 									"fields":[
 										
@@ -23309,6 +22795,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"ç§",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"秒",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -23332,5 +22818,5 @@
 							],
 							"arrayCount":0,
-							"description":"é»å­ã¬ã³ã¸å ç±åºåè¨­å®å¤",
+							"description":"電子レンジ加熱出力設定値",
 							"fields":[
 								
@@ -23347,5 +22833,5 @@
 							"type":"uint16_t",
 							"unitDescription":"W",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
+							"valueDescription":"0x0000～0xFFFD(0～65533W)"
 						},
 						{
@@ -23355,5 +22841,5 @@
 							],
 							"arrayCount":4,
-							"description":"éä¸­å ±ç¥ãã¿ã¼ã³è¨­å®",
+							"description":"途中報知パターン設定",
 							"fields":[
 								
@@ -23378,5 +22864,5 @@
 							],
 							"arrayCount":0,
-							"description":"ä»å±åè¨­å®",
+							"description":"付属品設定",
 							"fields":[
 								
@@ -23393,5 +22879,5 @@
 							"type":"uint16_t",
 							"unitDescription":null,
-							"valueDescription":"ä½¿ç¨ããä»å±åã®çµã¿åããã2ãã¤ãã®ããããããã§ç¤ºããä½¿ç¨ããä»å±åã«å¯¾å¿ããããããã¿ã¼ã³ã1ã¨ããããã­ããã£ã®è©³ç´°èª¬æã«åä»å±åã«å¯¾å¿ãããããããããã¿ã¼ã³ãç¤ºãã"
+							"valueDescription":"使用する付属品の組み合わせを2バイトのビットマップで示す。使用する付属品に対応するビットパターンを1とする。プロパティの詳細説明に各付属品に対応するビットマップパターンを示す。"
 						},
 						{
@@ -23400,5 +22886,5 @@
 							],
 							"arrayCount":20,
-							"description":"è¡¨ç¤ºæå­åè¨­å®",
+							"description":"表示文字列設定",
 							"fields":[
 								
@@ -23415,21 +22901,21 @@
 							"type":"uint16_t",
 							"unitDescription":null,
-							"valueDescription":"ShiftJISã³ã¼ãÃ20"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é»å­ã¬ã³ã¸ï¼æ®µå ç±æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"1æ®µç®ã®å ç±æé",
+							"valueDescription":"ShiftJISコード×20"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"電子レンジ２段加熱時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"1段目の加熱時間",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"時",
 											"fields":[
 												
@@ -23441,10 +22927,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x00ï½0x17(0ï½23)"
+											"unitDescription":"時",
+											"valueDescription":"0x00～0x17(0～23)"
 										},
 										{
 											"arrayCount":0,
-											"description":"å",
+											"description":"分",
 											"fields":[
 												
@@ -23456,10 +22942,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"å",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"分",
+											"valueDescription":"0x00～0x3B(0～59)"
 										},
 										{
 											"arrayCount":0,
-											"description":"ç§",
+											"description":"秒",
 											"fields":[
 												
@@ -23471,6 +22957,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"ç§",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"秒",
+											"valueDescription":"0x00～0x3B(0～59)"
 										}
 									],
@@ -23486,9 +22972,9 @@
 								{
 									"arrayCount":0,
-									"description":"2æ®µç®ã®å ç±æé",
+									"description":"2段目の加熱時間",
 									"fields":[
 										{
 											"arrayCount":0,
-											"description":"æ",
+											"description":"時",
 											"fields":[
 												
@@ -23500,10 +22986,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"æ",
-											"valueDescription":"0x00ï½0x17(0ï½23)"
+											"unitDescription":"時",
+											"valueDescription":"0x00～0x17(0～23)"
 										},
 										{
 											"arrayCount":0,
-											"description":"å",
+											"description":"分",
 											"fields":[
 												
@@ -23515,10 +23001,10 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"å",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"分",
+											"valueDescription":"0x00～0x3B(0～59)"
 										},
 										{
 											"arrayCount":0,
-											"description":"ç§",
+											"description":"秒",
 											"fields":[
 												
@@ -23530,6 +23016,6 @@
 											"size":1,
 											"type":"uint8_t",
-											"unitDescription":"ç§",
-											"valueDescription":"0x00ï½0x3B(0ï½59)"
+											"unitDescription":"秒",
+											"valueDescription":"0x00～0x3B(0～59)"
 										}
 									],
@@ -23563,9 +23049,9 @@
 							],
 							"arrayCount":0,
-							"description":"é»å­ã¬ã³ã¸ï¼æ®µå ç±åºåè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"1æ®µç®ã®å ç±åºå",
+							"description":"電子レンジ２段加熱出力設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"1段目の加熱出力",
 									"fields":[
 										
@@ -23578,9 +23064,9 @@
 									"type":"uint16_t",
 									"unitDescription":"W",
-									"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
+									"valueDescription":"0x0000～0xFFFD(0～65533W)"
 								},
 								{
 									"arrayCount":0,
-									"description":"2æ®µç®ã®å ç±åºå",
+									"description":"2段目の加熱出力",
 									"fields":[
 										
@@ -23593,5 +23079,5 @@
 									"type":"uint16_t",
 									"unitDescription":"W",
-									"valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"
+									"valueDescription":"0x0000～0xFFFD(0～65533W)"
 								}
 							],
@@ -23613,5 +23099,5 @@
 				{
 					"classCode":185,
-					"description":"ã¯ãã­ã³ã°ãã¼ã¿",
+					"description":"クッキングヒータ",
 					"name":"COOKING_HEATER_EOBJ",
 					"propertyList":[
@@ -23621,6 +23107,5 @@
 							],
 							"arrayCount":4,
-							"description":"å ç±ç¶æ
-",
+							"description":"加熱状態",
 							"fields":[
 								
@@ -23637,7 +23122,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=å¾
-æ©ä¸­,0x41=éè»¢ä¸­,0x42=ä¸æåæ­¢ä¸­,0x50=å ç±ç¦æ­¢ç¶æ
-,0xFF=ä¸æ"
+							"valueDescription":"0x40=待機中,0x41=運転中,0x42=一時停止中,0x50=加熱禁止状態,0xFF=不明"
 						},
 						{
@@ -23647,5 +23130,5 @@
 							],
 							"arrayCount":4,
-							"description":"å ç±è¨­å®",
+							"description":"加熱設定",
 							"fields":[
 								
@@ -23662,5 +23145,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=å ç±åæ­¢,0x41=å ç±éå§ã»åé,0x42=å ç±ä¸æåæ­¢,0xFF=è¨­å®ãªã"
+							"valueDescription":"0x40=加熱停止,0x41=加熱開始・再開,0x42=加熱一時停止,0xFF=設定なし"
 						},
 						{
@@ -23669,5 +23152,5 @@
 							],
 							"arrayCount":0,
-							"description":"ä¸æ¬åæ­¢è¨­å®",
+							"description":"一括停止設定",
 							"fields":[
 								
@@ -23684,5 +23167,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=ä¸æ¬å ç±åæ­¢"
+							"valueDescription":"0x40=一括加熱停止"
 						},
 						{
@@ -23692,5 +23175,5 @@
 							],
 							"arrayCount":4,
-							"description":"å ç±åºåè¨­å®",
+							"description":"加熱出力設定",
 							"fields":[
 								
@@ -23706,6 +23189,6 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"W|æ®µé|ï¼",
-							"valueDescription":"0x0000ï½0x2710=åºåè¨­å®å½¢å¼(0ï½10000W),0x3000ï½0x3010=ã¬ãã«è¨­å®å½¢å¼ï¼17æ®µéï¼,0x4002=ã¨ãç«,0x4004=å¼±ç«,0x4006=ä¸­ç«,0x4008=å¼·ç«,0x400A=ãã¤ãã¯ã¼,0xFFFF=æªè¨­å®"
+							"unitDescription":"W|段階|－",
+							"valueDescription":"0x0000～0x2710=出力設定形式(0～10000W),0x3000～0x3010=レベル設定形式（17段階）,0x4002=とろ火,0x4004=弱火,0x4006=中火,0x4008=強火,0x400A=ハイパワー,0xFFFF=未設定"
 						},
 						{
@@ -23715,5 +23198,5 @@
 							],
 							"arrayCount":3,
-							"description":"å ç±æ¸©åº¦è¨­å®å¤",
+							"description":"加熱温度設定値",
 							"fields":[
 								
@@ -23729,6 +23212,6 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x32ï½0xFA=è¨­å®æ¸©åº¦(50ï½250â),0xFF=è¨­å®ãªã"
+							"unitDescription":"℃",
+							"valueDescription":"0x32～0xFA=設定温度(50～250℃),0xFF=設定なし"
 						},
 						{
@@ -23738,5 +23221,5 @@
 							],
 							"arrayCount":3,
-							"description":"ã³ã³ã­å ç±ã¢ã¼ãè¨­å®",
+							"description":"コンロ加熱モード設定",
 							"fields":[
 								
@@ -23753,5 +23236,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=å ç±åºåå¶å¾¡ã¢ã¼ã,0x42=å¤©ã·ãï¼æãç©ï¼,0x43=æ¹¯æ²¸ã,0x44=çé£¯,0x45=çãç©,0xFF=è¨­å®ãªã"
+							"valueDescription":"0x41=加熱出力制御モード,0x42=天ぷら（揚げ物）,0x43=湯沸し,0x44=炊飯,0x45=炒め物,0xFF=設定なし"
 						},
 						{
@@ -23761,5 +23244,5 @@
 							],
 							"arrayCount":3,
-							"description":"åã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
+							"description":"切タイマ相対時間設定値",
 							"fields":[
 								
@@ -23776,13 +23259,13 @@
 							"type":"hour_minute_second_t",
 							"unitDescription":null,
-							"valueDescription":"0xFFFFFF=è¨­å®ãªã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãã£ã¤ã«ãã­ãã¯è¨­å®",
+							"valueDescription":"0xFFFFFF=設定なし"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"チャイルドロック設定",
 							"fields":[
 								
@@ -23799,13 +23282,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=ãã£ã¤ã«ãã­ãã¯OFF,0x41=ãã£ã¤ã«ãã­ãã¯ON"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã©ã¸ã¨ã³ããã¼ã¿ã­ãã¯è¨­å®",
+							"valueDescription":"0x40=チャイルドロックOFF,0x41=チャイルドロックON"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ラジエントヒータロック設定",
 							"fields":[
 								
@@ -23822,5 +23305,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=ã©ã¸ã¨ã³ããã¼ã¿ã­ãã¯OFF,0x41=ã©ã¸ã¨ã³ããã¼ã¿ã­ãã¯ON"
+							"valueDescription":"0x40=ラジエントヒータロックOFF,0x41=ラジエントヒータロックON"
 						}
 					]
@@ -23828,5 +23311,5 @@
 				{
 					"classCode":186,
-					"description":"ãªã¼ãã³",
+					"description":"オーブン",
 					"name":"OVEN_EOBJ",
 					"propertyList":[
@@ -23836,5 +23319,5 @@
 				{
 					"classCode":187,
-					"description":"çé£¯å¨",
+					"description":"炊飯器",
 					"name":"RICE_COOKER_EOBJ",
 					"propertyList":[
@@ -23844,6 +23327,5 @@
 							],
 							"arrayCount":0,
-							"description":"èééç¶æ
-",
+							"description":"蓋開閉状態",
 							"fields":[
 								
@@ -23860,13 +23342,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=èé,0x42=èé"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çé£¯ç¶æ
-",
+							"valueDescription":"0x41=蓋開,0x42=蓋閉"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"炊飯状態",
 							"fields":[
 								
@@ -23883,13 +23364,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=åæ­¢,0x42=äºç±,0x43=çé£¯,0x44=è¸ãã,0x45=çé£¯å®äº"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çé£¯å¶å¾¡è¨­å®",
+							"valueDescription":"0x41=停止,0x42=予熱,0x43=炊飯,0x44=蒸らし,0x45=炊飯完了"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"炊飯制御設定",
 							"fields":[
 								
@@ -23907,13 +23388,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=çé£¯éå§ã»çé£¯åé,0x42=çé£¯ä¸æåæ­¢"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¿æ¸©è¨­å®",
+							"valueDescription":"0x41=炊飯開始・炊飯再開,0x42=炊飯一時停止"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"保温設定",
 							"fields":[
 								
@@ -23930,14 +23411,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ä¿æ¸©æ,0x42=ä¿æ¸©ç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"å
-ãªã¹åãå¤ãç¶æ
-",
+							"valueDescription":"0x41=保温有,0x42=保温無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"内なべ取り外し状態",
 							"fields":[
 								
@@ -23954,13 +23433,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=åãå¤ãæ,0x42=åãå¤ãç¡"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"èåãå¤ãç¶æ
-",
+							"valueDescription":"0x41=取り外し有,0x42=取り外し無"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"蓋取り外し状態",
 							"fields":[
 								
@@ -23977,13 +23455,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=åãå¤ãæ,0x42=åãå¤ãç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çé£¯äºç´è¨­å®",
+							"valueDescription":"0x41=取り外し有,0x42=取り外し無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"炊飯予約設定",
 							"fields":[
 								
@@ -24000,17 +23478,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´æ,0x42=äºç´ç¡"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"çé£¯äºç´è¨­å®æå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約有,0x42=予約無"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"炊飯予約設定時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -24022,10 +23500,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -24037,6 +23515,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -24060,9 +23538,9 @@
 							],
 							"arrayCount":0,
-							"description":"çé£¯äºç´è¨­å®ç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"炊飯予約設定相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -24074,10 +23552,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -24089,6 +23567,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -24110,5 +23588,5 @@
 				{
 					"classCode":188,
-					"description":"é»å­ã¸ã£ã¼",
+					"description":"電子ジャー",
 					"name":"ELECTRONIC_JAR_EOBJ",
 					"propertyList":[
@@ -24118,5 +23596,5 @@
 				{
 					"classCode":189,
-					"description":"é£å¨æ´ãæ©",
+					"description":"食器洗い機",
 					"name":"DISH_WASHER_EOBJ",
 					"propertyList":[
@@ -24126,5 +23604,5 @@
 				{
 					"classCode":190,
-					"description":"é£å¨ä¹¾ç¥æ©",
+					"description":"食器乾燥機",
 					"name":"DISH_DRYER_EOBJ",
 					"propertyList":[
@@ -24134,5 +23612,5 @@
 				{
 					"classCode":191,
-					"description":"é»æ°ãã¡ã¤ãæ©",
+					"description":"電気もちつき機",
 					"name":"ELECTRIC_RICE_CARD_COOKER_EOBJ",
 					"propertyList":[
@@ -24142,5 +23620,5 @@
 				{
 					"classCode":192,
-					"description":"ä¿æ¸©æ©",
+					"description":"保温機",
 					"name":"KEEP_WARM_MACHINE_EOBJ",
 					"propertyList":[
@@ -24150,5 +23628,5 @@
 				{
 					"classCode":193,
-					"description":"ç²¾ç±³æ©",
+					"description":"精米機",
 					"name":"RICE_MILL_EOBJ",
 					"propertyList":[
@@ -24158,5 +23636,5 @@
 				{
 					"classCode":194,
-					"description":"èªåè£½ãã³æ©",
+					"description":"自動製パン機",
 					"name":"AUTOMATIC_BREAD_COOKER_EOBJ",
 					"propertyList":[
@@ -24166,5 +23644,5 @@
 				{
 					"classCode":195,
-					"description":"ã¹ã­ã¼ã¯ãã«ã¼",
+					"description":"スロークッカー",
 					"name":"SLOW_COOKER_EOBJ",
 					"propertyList":[
@@ -24174,5 +23652,5 @@
 				{
 					"classCode":196,
-					"description":"é»æ°æ¼¬ç©æ©",
+					"description":"電気漬物機",
 					"name":"ELECTRIC_PICKLES_COOKER_EOBJ",
 					"propertyList":[
@@ -24182,5 +23660,5 @@
 				{
 					"classCode":197,
-					"description":"æ´æ¿¯æ©",
+					"description":"洗濯機",
 					"name":"WASHING_MACHINE_EOBJ",
 					"propertyList":[
@@ -24190,6 +23668,5 @@
 							],
 							"arrayCount":0,
-							"description":"æã»èééç¶æ
-",
+							"description":"扉・蓋開閉状態",
 							"fields":[
 								
@@ -24206,13 +23683,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æã»èé,0x42=æã»èé"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯è¨­å®",
+							"valueDescription":"0x41=扉・蓋開,0x42=扉・蓋閉"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯設定",
 							"fields":[
 								
@@ -24229,13 +23706,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ´æ¿¯éå§ã»åé,0x42=æ´æ¿¯ä¸æåæ­¢,0x43=æ´æ¿¯åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯é·ç§»ç¶æ
-",
+							"valueDescription":"0x41=洗濯開始・再開,0x42=洗濯一時停止,0x43=洗濯停止"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯遷移状態",
 							"fields":[
 								
@@ -24252,16 +23728,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ´ã,0x42=ããã,0x43=è±æ°´,0x44=ä¸æåæ­¢,0x45=æ´æ¿¯å®äºã»åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯æ®ãæé",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=洗い,0x42=すすぎ,0x43=脱水,0x44=一時停止,0x45=洗濯完了・停止"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯残り時間",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -24273,10 +23749,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -24288,10 +23764,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								},
 								{
 									"arrayCount":0,
-									"description":"ç§",
+									"description":"秒",
 									"fields":[
 										
@@ -24303,6 +23779,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"ç§",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"秒",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -24326,5 +23802,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -24341,18 +23817,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -24364,10 +23839,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -24379,6 +23854,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -24402,9 +23877,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -24416,10 +23891,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -24431,6 +23906,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -24452,5 +23927,5 @@
 				{
 					"classCode":198,
-					"description":"è¡£é¡ä¹¾ç¥æ©",
+					"description":"衣類乾燥機",
 					"name":"CLOTHES_DRYER_EOBJ",
 					"propertyList":[
@@ -24460,6 +23935,5 @@
 							],
 							"arrayCount":0,
-							"description":"æã»èééç¶æ
-",
+							"description":"扉・蓋開閉状態",
 							"fields":[
 								
@@ -24476,13 +23950,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æã»èé,0x42=æã»èé"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¹¾ç¥è¨­å®",
+							"valueDescription":"0x41=扉・蓋開,0x42=扉・蓋閉"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"乾燥設定",
 							"fields":[
 								
@@ -24499,13 +23973,12 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ä¹¾ç¥éå§ã»åé,0x42=ä¹¾ç¥ä¸æåæ­¢,0x43=ä¹¾ç¥åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¹¾ç¥é·ç§»ç¶æ
-",
+							"valueDescription":"0x41=乾燥開始・再開,0x42=乾燥一時停止,0x43=乾燥停止"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"乾燥遷移状態",
 							"fields":[
 								
@@ -24522,16 +23995,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ä¹¾ç¥,0x42=ä¸æåæ­¢,0x43=ä¹¾ç¥å®äºã»åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¹¾ç¥æ®ãæé",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=乾燥,0x42=一時停止,0x43=乾燥完了・停止"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"乾燥残り時間",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -24543,10 +24016,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -24558,10 +24031,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								},
 								{
 									"arrayCount":0,
-									"description":"ç§",
+									"description":"秒",
 									"fields":[
 										
@@ -24573,6 +24046,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"ç§",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"秒",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -24596,5 +24069,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -24611,18 +24084,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -24634,10 +24106,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -24649,6 +24121,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -24672,9 +24144,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -24686,10 +24158,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -24701,6 +24173,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -24722,5 +24194,5 @@
 				{
 					"classCode":199,
-					"description":"é»æ°ã¢ã¤ã­ã³",
+					"description":"電気アイロン",
 					"name":"ELECTRIC_IRON_EOBJ",
 					"propertyList":[
@@ -24730,5 +24202,5 @@
 				{
 					"classCode":200,
-					"description":"ãºãã³ãã¬ããµ",
+					"description":"ズボンプレッサ",
 					"name":"TROUSER_PRESS_EOBJ",
 					"propertyList":[
@@ -24738,5 +24210,5 @@
 				{
 					"classCode":201,
-					"description":"ãµã¨ãä¹¾ç¥æ©",
+					"description":"ふとん乾燥機",
 					"name":"FUTON_DRYER_EOBJ",
 					"propertyList":[
@@ -24746,5 +24218,5 @@
 				{
 					"classCode":202,
-					"description":"å°ç©ã»ãã¤ä¹¾ç¥æ©",
+					"description":"小物・くつ乾燥機",
 					"name":"SMALL_ARTICLE_SHOES_DRYER_EOBJ",
 					"propertyList":[
@@ -24754,5 +24226,5 @@
 				{
 					"classCode":203,
-					"description":"é»æ°æé¤æ©ï¼ã»ã³ãã©ã«ã¯ãªã¼ãå«ãï¼",
+					"description":"電気掃除機（セントラルクリーナ含む）",
 					"name":"ELECTRIC_VACUUM_CLEANER_EOBJ",
 					"propertyList":[
@@ -24762,5 +24234,5 @@
 				{
 					"classCode":204,
-					"description":"ãã£ã¹ãã¼ã¶",
+					"description":"ディスポーザ",
 					"name":"DISPOSER_EOBJ",
 					"propertyList":[
@@ -24770,5 +24242,5 @@
 				{
 					"classCode":205,
-					"description":"é»æ°èåãæ©",
+					"description":"電気蚊取り機",
 					"name":"ELECTRIC_MOSQUITO_CATCHER_EOBJ",
 					"propertyList":[
@@ -24778,5 +24250,5 @@
 				{
 					"classCode":206,
-					"description":"æ¥­åç¨ã·ã§ã¼ã±ã¼ã¹",
+					"description":"業務用ショーケース",
 					"name":"COMMERCIAL_SHOW_CASE_EOBJ",
 					"propertyList":[
@@ -24786,5 +24258,5 @@
 				{
 					"classCode":207,
-					"description":"æ¥­åç¨å·èµåº«",
+					"description":"業務用冷蔵庫",
 					"name":"COMMERCIAL_REFRIGERATOR_EOBJ",
 					"propertyList":[
@@ -24794,5 +24266,5 @@
 				{
 					"classCode":208,
-					"description":"æ¥­åç¨ãããã±ã¼ã¹",
+					"description":"業務用ホットケース",
 					"name":"COMMERCIAL_HOT_CASE_EOBJ",
 					"propertyList":[
@@ -24802,5 +24274,5 @@
 				{
 					"classCode":209,
-					"description":"æ¥­åç¨ãã©ã¤ã¤ã¼",
+					"description":"業務用フライヤー",
 					"name":"COMMERCIAL_FRYER_EOBJ",
 					"propertyList":[
@@ -24810,5 +24282,5 @@
 				{
 					"classCode":210,
-					"description":"æ¥­åç¨é»å­ã¬ã³ã¸",
+					"description":"業務用電子レンジ",
 					"name":"COMMERCIAL_MICROWAVE_OVEN_EOBJ",
 					"propertyList":[
@@ -24818,5 +24290,5 @@
 				{
 					"classCode":211,
-					"description":"æ´æ¿¯ä¹¾ç¥æ©",
+					"description":"洗濯乾燥機",
 					"name":"WASHER_AND_DRYER_EOBJ",
 					"propertyList":[
@@ -24826,6 +24298,5 @@
 							],
 							"arrayCount":0,
-							"description":"æã»èééç¶æ
-",
+							"description":"扉・蓋開閉状態",
 							"fields":[
 								
@@ -24842,13 +24313,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æã»èé,0x42=æã»èé"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯ã»ä¹¾ç¥è¨­å®",
+							"valueDescription":"0x41=扉・蓋開,0x42=扉・蓋閉"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯・乾燥設定",
 							"fields":[
 								
@@ -24865,13 +24336,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ´æ¿¯ä¹¾ç¥éå§ã»åé\/æ´æ¿¯ä¹¾ç¥éè»¢ä¸­,0x42=æ´æ¿¯ä¹¾ç¥ä¸æåæ­¢,0x43=æ´æ¿¯ä¹¾ç¥åæ­¢"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯ä¹¾ç¥ã³ã¼ã¹è¨­å®ï¼",
+							"valueDescription":"0x41=洗濯乾燥開始・再開\/洗濯乾燥運転中,0x42=洗濯乾燥一時停止,0x43=洗濯乾燥停止"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯乾燥コース設定１",
 							"fields":[
 								
@@ -24888,15 +24359,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"<æ´æ¿¯ä¹¾ç¥ã³ã¼ã¹>\u000d\u000a0x21=æ¨æº,0x22=éé³,0x23=æ±ãå¤§,0x24=ãã¤ããæ±ã,0x25=ã¤ããã,0x26=æ¯å¸,0x27=ã½ãã,0x28=ãã©ã¤,0x29=æ¸
-æ½ããã,0x2A=ã¢ã¤ã­ã³\/Yã·ã£ã,0x2B=åãå¹²ã,0x2C=åç©,0x2D=é¤è,0x2E=æ²¹æ±ã,0x2F=ã¡ã¢ãªã¼,0x30=çæ´å¤,0x31=æ±ãå°,0x32=å°éç­æé,0x40ï½0x4F=æ´æ¿¯ä¹¾ç¥ã³ã¼ã¹\/ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹\u000d\u000a<æ´æ¿¯ã³ã¼ã¹>\u000d\u000a0x61=æ¨æº,0x62=éé³,0x63=æ±ãå¤§,0x64=ãã¤ããæ±ã,0x65=ã¤ããã,0x66=æ¯å¸,0x67=ã½ãã,0x68=ãã©ã¤,0x69=æ¸
-æ½ããã,0x6A=é¤è,0x6B=æ²¹æ±ã,0x6C=ã¡ã¢ãª,0x6D=çæ´å¤,0x6E=æ±ãå°,0x6F=å°éç­æé,0x7F=æ§½æ´æµ,0x80ï½0x8F=æ´æ¿¯ã³ã¼ã¹\/ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹\u000d\u000a<ä¹¾ç¥ã³ã¼ã¹>\u000d\u000a0xA1=æ¨æº,0xA2=æ¯å¸,0xA3=ã½ãã,0xA4=ãã©ã¤,0xA5=ã¢ã¤ã­ã³\/Yã·ã£ã,0xA6=åãå¹²ã,0xA7=åç©,0xA8=é¤è,0xA9=ç¸®ã¿ä½æ¸,0xAA=ä»ä¸ã,0xAB=éæ­¢ä¹¾ç¥,0xAC=æéæå®,0xAD=è¡£é¡ãããã,0xBF=æ§½ä¹¾ç¥,0xC0ï½0xCF=ä¹¾ç¥ã³ã¼ã¹\/ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯ä¹¾ç¥ã³ã¼ã¹è¨­å®ï¼",
+							"valueDescription":"<洗濯乾燥コース>\u000d\u000a0x21=標準,0x22=静音,0x23=汚れ大,0x24=しつこい汚れ,0x25=つけおき,0x26=毛布,0x27=ソフト,0x28=ドライ,0x29=清潔すすぎ,0x2A=アイロン\/Yシャツ,0x2B=吊り干し,0x2C=厚物,0x2D=除菌,0x2E=油汚れ,0x2F=メモリー,0x30=省洗剤,0x31=汚れ少,0x32=少量短時間,0x40～0x4F=洗濯乾燥コース\/メーカオリジナルコース\u000d\u000a<洗濯コース>\u000d\u000a0x61=標準,0x62=静音,0x63=汚れ大,0x64=しつこい汚れ,0x65=つけおき,0x66=毛布,0x67=ソフト,0x68=ドライ,0x69=清潔すすぎ,0x6A=除菌,0x6B=油汚れ,0x6C=メモリ,0x6D=省洗剤,0x6E=汚れ少,0x6F=少量短時間,0x7F=槽洗浄,0x80～0x8F=洗濯コース\/メーカオリジナルコース\u000d\u000a<乾燥コース>\u000d\u000a0xA1=標準,0xA2=毛布,0xA3=ソフト,0xA4=ドライ,0xA5=アイロン\/Yシャツ,0xA6=吊り干し,0xA7=厚物,0xA8=除菌,0xA9=縮み低減,0xAA=仕上げ,0xAB=静止乾燥,0xAC=時間指定,0xAD=衣類あたため,0xBF=槽乾燥,0xC0～0xCF=乾燥コース\/メーカオリジナルコース"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯乾燥コース設定２",
 							"fields":[
 								
@@ -24913,14 +24382,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x20=æ´æ¿¯ãªã,0x21=æ¨æº,0x22=éé³,0x23=æ±ãå¤§,0x24=ãã¤ããæ±ã,0x25=ã¤ããã,0x26=æ¯å¸,0x27=ã½ãã,0x28=ãã©ã¤,0x29=æ¸
-æ½ããã,0x2D=é¤è,0x2E=æ²¹æ±ã,0x2F=ã¡ã¢ãªã¼,0x30=çæ´å¤,0x31=æ±ãå°,0x32=å°éç­æé,0x3F=æ§½æ´æµ,0xE0ï½0xEF=ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¹¾ç¥æ¹æ³è¨­å®",
+							"valueDescription":"0x20=洗濯なし,0x21=標準,0x22=静音,0x23=汚れ大,0x24=しつこい汚れ,0x25=つけおき,0x26=毛布,0x27=ソフト,0x28=ドライ,0x29=清潔すすぎ,0x2D=除菌,0x2E=油汚れ,0x2F=メモリー,0x30=省洗剤,0x31=汚れ少,0x32=少量短時間,0x3F=槽洗浄,0xE0～0xEF=メーカオリジナルコース"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"乾燥方法設定",
 							"fields":[
 								
@@ -24937,6 +24405,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0xA0=ä¹¾ç¥ãªã,0xA1=æ¨æº,0xA2=æ¯å¸,0xA3=ã½ãã,0xA4=ãã©ã¤,0xA5=ã¢ã¤ã­ã³\/Yã·ã£ã,0xA6=åãå¹²ã,0xA7=åç©,0xA8=é¤è,0xA9=ç¸®ã¿ä½æ¸,0xAA=ä»ä¸ã,0xAB=éæ­¢ä¹¾ç¥,0xAC=æéæå®,0xAD=è¡£é¡ãããã,0xAE=ãã¼ã¿å
-¥åå¶é,0xBF=æ§½ä¹¾ç¥,0xE0ï½0xEF=ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹"
+							"valueDescription":"0xA0=乾燥なし,0xA1=標準,0xA2=毛布,0xA3=ソフト,0xA4=ドライ,0xA5=アイロン\/Yシャツ,0xA6=吊り干し,0xA7=厚物,0xA8=除菌,0xA9=縮み低減,0xAA=仕上げ,0xAB=静止乾燥,0xAC=時間指定,0xAD=衣類あたため,0xAE=ヒータ入力制限,0xBF=槽乾燥,0xE0～0xEF=メーカオリジナルコース"
 						},
 						{
@@ -24945,6 +24412,5 @@
 							],
 							"arrayCount":12,
-							"description":"è¨­å®å¯è½ã³ã¼ã¹æ
-å ±ï¼",
+							"description":"設定可能コース情報１",
 							"fields":[
 								
@@ -24961,6 +24427,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"ãããã1ã®å ´åãå¯¾å¿ããã³ã¼ã¹ã®è¨­å®ãå¯è½ãªãã¨ãã0ã®å ´åã¯ä¸å¯è½ãªãã¨ãç¤ºãããããã¨ã³ã¼ã¹ã®é¢ä¿ã¯è©³ç´°ãåç
-§ã®ãã¨ã"
+							"valueDescription":"ビットが1の場合、対応するコースの設定が可能なことを、0の場合は不可能なことを示す。ビットとコースの関係は詳細を参照のこと。"
 						},
 						{
@@ -24969,6 +24434,5 @@
 							],
 							"arrayCount":4,
-							"description":"è¨­å®å¯è½ã³ã¼ã¹æ
-å ±ï¼",
+							"description":"設定可能コース情報２",
 							"fields":[
 								
@@ -24985,6 +24449,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"ãããã1ã®å ´åãå¯¾å¿ããã³ã¼ã¹ã®è¨­å®ãå¯è½ãªãã¨ãã0ã®å ´åã¯ä¸å¯è½ãªãã¨ãç¤ºãããããã¨ã³ã¼ã¹ã®é¢ä¿ã¯è©³ç´°ãåç
-§ã®ãã¨ã"
+							"valueDescription":"ビットが1の場合、対応するコースの設定が可能なことを、0の場合は不可能なことを示す。ビットとコースの関係は詳細を参照のこと。"
 						},
 						{
@@ -24993,6 +24456,5 @@
 							],
 							"arrayCount":4,
-							"description":"è¨­å®å¯è½ã³ã¼ã¹æ
-å ±ï¼",
+							"description":"設定可能コース情報３",
 							"fields":[
 								
@@ -25009,14 +24471,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"ãããã1ã®å ´åãå¯¾å¿ããã³ã¼ã¹ã®è¨­å®ãå¯è½ãªãã¨ãã0ã®å ´åã¯ä¸å¯è½ãªãã¨ãç¤ºãããããã¨ã³ã¼ã¹ã®é¢ä¿ã¯è©³ç´°ãåç
-§ã®ãã¨ã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´æµè¨­å®",
+							"valueDescription":"ビットが1の場合、対応するコースの設定が可能なことを、0の場合は不可能なことを示す。ビットとコースの関係は詳細を参照のこと。"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水流設定",
 							"fields":[
 								
@@ -25033,13 +24494,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x31ï½0x40(æãå¼±ãæ°´æµï½æãå¼·ãæ°´æµ)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xA7=ãã©ã¹ç¸å¯¾æå®(1ï½8æ®µé),0xC0ï½0xC7=ãã¤ãã¹ç¸å¯¾æå®(1ï½8æ®µé)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ®µéè±æ°´åè»¢æ°è¨­å®å¤",
+							"valueDescription":"<絶対値指定>\u000d\u000a0x31～0x40(最も弱い水流～最も強い水流)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xA7=プラス相対指定(1～8段階),0xC0～0xC7=マイナス相対指定(1～8段階)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"段階脱水回転数設定値",
 							"fields":[
 								
@@ -25056,13 +24517,13 @@
 							"type":"uint16_t",
 							"unitDescription":null,
-							"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x0000ï½0x0FFF(0ï½4095 r\/min)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFFFF=èªåè¨­å®,0xA000ï½0xA7FF=ãã©ã¹ç¸å¯¾æå®(1ï½2048r\/min),0xC000ï½0xC7FF=ãã¤ãã¹ç¸å¯¾æå®(1ï½2048r\/min)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¹¾ç¥åº¦è¨­å®",
+							"valueDescription":"<絶対値指定>\u000d\u000a0x0000～0x0FFF(0～4095 r\/min)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFFFF=自動設定,0xA000～0xA7FF=プラス相対指定(1～2048r\/min),0xC000～0xC7FF=マイナス相対指定(1～2048r\/min)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"乾燥度設定",
 							"fields":[
 								
@@ -25079,16 +24540,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x31ï½0x40(æãä½ãä¹¾ç¥åº¦ï½æãé«ãä¹¾ç¥åº¦)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xA7=ãã©ã¹ç¸å¯¾æå®(1ï½8æ®µé),0xC0ï½0xC7=ãã¤ãã¹ç¸å¯¾æå®(1ï½8æ®µé)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯æ®ãæé",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"<絶対値指定>\u000d\u000a0x31～0x40(最も低い乾燥度～最も高い乾燥度)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xA7=プラス相対指定(1～8段階),0xC0～0xC7=マイナス相対指定(1～8段階)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯残り時間",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -25100,10 +24561,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æé",
-									"valueDescription":"0x00ï½0xFE(0ï½254)"
+									"unitDescription":"時間",
+									"valueDescription":"0x00～0xFE(0～254)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -25115,6 +24576,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -25130,16 +24591,16 @@
 							"type":"hours_minutes_t",
 							"unitDescription":null,
-							"valueDescription":"0xFFFF=æ®ãæéä¸æ"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä¹¾ç¥æ®ãæé",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0xFFFF=残り時間不明"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"乾燥残り時間",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -25151,10 +24612,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æé",
-									"valueDescription":"0x00ï½0xFE(0ï½254)"
+									"unitDescription":"時間",
+									"valueDescription":"0x00～0xFE(0～254)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -25166,6 +24627,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -25181,16 +24642,16 @@
 							"type":"hours_minutes_t",
 							"unitDescription":null,
-							"valueDescription":"0xFFFF=æ®ãæéä¸æ"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãçµéæé",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0xFFFF=残り時間不明"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ経過時間",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -25202,10 +24663,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æé",
-									"valueDescription":"0x00ï½0xFF(0ï½255)"
+									"unitDescription":"時間",
+									"valueDescription":"0x00～0xFF(0～255)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -25217,6 +24678,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -25240,5 +24701,5 @@
 							],
 							"arrayCount":2,
-							"description":"ã¤ãããè¡ç¨æéè¨­å®å¤",
+							"description":"つけおき行程時間設定値",
 							"fields":[
 								
@@ -25254,14 +24715,13 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"æéå",
-							"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x17:0x00ï½0x3B(0ï½23):(0ï½59)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFFFF=èªåè¨­å®,0xA000ï½0xA03B=ãã©ã¹ç¸å¯¾æå®(1ï½60å),0xC000ï½0xC03B=ãã¤ãã¹ç¸å¯¾æå®(1ï½60å)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯ä¹¾ç¥é·ç§»ç¶æ
-",
+							"unitDescription":"時間分",
+							"valueDescription":"<絶対値指定>\u000d\u000a0x00～0x17:0x00～0x3B(0～23):(0～59)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFFFF=自動設定,0xA000～0xA03B=プラス相対指定(1～60分),0xC000～0xC03B=マイナス相対指定(1～60分)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯乾燥遷移状態",
 							"fields":[
 								
@@ -25278,14 +24738,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=æ´ã,0x42=ããã,0x43=è±æ°´,0x44=ä¸æåæ­¢,0x45=æ´æ¿¯å®äº,0x51=æ´æ¿¯\/ä¹¾ç¥ï¼ã½ããã­ã¼ããªãï¼å®äº,0x52=ä¹¾ç¥,0x53=ã½ããã­ã¼ã,0x54=ä¹¾ç¥ï¼ã½ããã­ã¼ãããï¼å®äº,0x61=éè»¢åå¾
-æ©ä¸­,0x71=ç¬¬1ããã,0x72=ç¬¬2ããã,0x73=ç¬¬3ããã,0x74=ç¬¬4ããã,0x75=ç¬¬5ããã,0x76=ç¬¬6ããã,0x77=ç¬¬7ããã,0x78=ç¬¬8ããã,0x81=ç¬¬1è±æ°´,0x82=ç¬¬2è±æ°´,0x83=ç¬¬3è±æ°´,0x84=ç¬¬4è±æ°´,0x85=ç¬¬5è±æ°´,0x86=ç¬¬6è±æ°´,0x87=ç¬¬7è±æ°´,0x88=ç¬¬8è±æ°´,0x91=ããªãã¼ãè±æ°´,0xE0ï½0xEF=ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´éè¨­å®ï¼",
+							"valueDescription":"0x41=洗い,0x42=すすぎ,0x43=脱水,0x44=一時停止,0x45=洗濯完了,0x51=洗濯\/乾燥（ソフトキープなし）完了,0x52=乾燥,0x53=ソフトキープ,0x54=乾燥（ソフトキープあり）完了,0x61=運転前待機中,0x71=第1すすぎ,0x72=第2すすぎ,0x73=第3すすぎ,0x74=第4すすぎ,0x75=第5すすぎ,0x76=第6すすぎ,0x77=第7すすぎ,0x78=第8すすぎ,0x81=第1脱水,0x82=第2脱水,0x83=第3脱水,0x84=第4脱水,0x85=第5脱水,0x86=第6脱水,0x87=第7脱水,0x88=第8脱水,0x91=プリヒート脱水,0xE0～0xEF=メーカオリジナルコード"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水量設定１",
 							"fields":[
 								
@@ -25301,14 +24760,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"ã",
-							"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x7F(0ï½127ã)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xBF=ãã©ã¹ç¸å¯¾æå®(1ï½32ã),0xC0ï½0xDF=ãã¤ãã¹ç¸å¯¾æå®(1ï½32ã)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ°´éè¨­å®ï¼",
+							"unitDescription":"㍑",
+							"valueDescription":"<絶対値指定>\u000d\u000a0x00～0x7F(0～127㍑)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xBF=プラス相対指定(1～32㍑),0xC0～0xDF=マイナス相対指定(1～32㍑)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"水量設定２",
 							"fields":[
 								
@@ -25325,5 +24784,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x31ï½0x40(æãä½ãæ°´ä½ï½æãé«ãæ°´ä½)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xA7=ãã©ã¹ç¸å¯¾æå®(1ï½8æ®µé),0xC0ï½0xC7=ãã¤ãã¹ç¸å¯¾æå®(1ï½8æ®µé)"
+							"valueDescription":"<絶対値指定>\u000d\u000a0x31～0x40(最も低い水位～最も高い水位)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xA7=プラス相対指定(1～8段階),0xC0～0xC7=マイナス相対指定(1～8段階)"
 						},
 						{
@@ -25333,5 +24792,5 @@
 							],
 							"arrayCount":2,
-							"description":"æ´ãæéè¨­å®å¤",
+							"description":"洗い時間設定値",
 							"fields":[
 								
@@ -25347,14 +24806,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"æéå",
-							"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x17:0x00ï½0x3B(0ï½23):(0ï½59)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA000ï½0xA03B=ãã©ã¹ç¸å¯¾æå®(1ï½60å),0xC000ï½0xC03B=ãã¤ãã¹ç¸å¯¾æå®(1ï½60å)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ãããåæ°è¨­å®å¤",
+							"unitDescription":"時間分",
+							"valueDescription":"<絶対値指定>\u000d\u000a0x00～0x17:0x00～0x3B(0～23):(0～59)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA000～0xA03B=プラス相対指定(1～60分),0xC000～0xC03B=マイナス相対指定(1～60分)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"すすぎ回数設定値",
 							"fields":[
 								
@@ -25371,5 +24830,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x00ï½0x08(0ï½8å),0xFF=èªå"
+							"valueDescription":"0x00～0x08(0～8回),0xFF=自動"
 						},
 						{
@@ -25379,5 +24838,5 @@
 							],
 							"arrayCount":4,
-							"description":"ãããã¢ã¼ãè¨­å®",
+							"description":"すすぎモード設定",
 							"fields":[
 								
@@ -25394,13 +24853,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0000=ã¢ã¼ãèªåè¨­å®,0001=æºãããã,0010=æµæ°´ããã,0011=ã·ã£ã¯ã¼ããã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"è±æ°´æéè¨­å®å¤",
+							"valueDescription":"0000=モード自動設定,0001=溜めすすぎ,0010=流水すすぎ,0011=シャワーすすぎ"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"脱水時間設定値",
 							"fields":[
 								
@@ -25416,6 +24875,6 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"å",
-							"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x3B(0ï½59å)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xBF=ãã©ã¹ç¸å¯¾æå®(1ï½32å),0xC0ï½0xDF=ãã¤ãã¹ç¸å¯¾æå®(1ï½32å)"
+							"unitDescription":"分",
+							"valueDescription":"<絶対値指定>\u000d\u000a0x00～0x3B(0～59分)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xBF=プラス相対指定(1～32分),0xC0～0xDF=マイナス相対指定(1～32分)"
 						},
 						{
@@ -25425,5 +24884,5 @@
 							],
 							"arrayCount":2,
-							"description":"ä¹¾ç¥æéè¨­å®å¤",
+							"description":"乾燥時間設定値",
 							"fields":[
 								
@@ -25439,14 +24898,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"æéå",
-							"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x17:0x00ï½0x3B(0ï½23):(0ï½59)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFFFF=èªåè¨­å®,0xA000ï½0xA03B=ãã©ã¹ç¸å¯¾æå®(1ï½60å),0xC000ï½0xC03B=ãã¤ãã¹ç¸å¯¾æå®(1ï½60å)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´ãæ¸©æ°´è¨­å®å¤",
+							"unitDescription":"時間分",
+							"valueDescription":"<絶対値指定>\u000d\u000a0x00～0x17:0x00～0x3B(0～23):(0～59)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFFFF=自動設定,0xA000～0xA03B=プラス相対指定(1～60分),0xC000～0xC03B=マイナス相対指定(1～60分)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗い温水設定値",
 							"fields":[
 								
@@ -25462,14 +24921,14 @@
 							"size":1,
 							"type":"uint8_t",
-							"unitDescription":"â",
-							"valueDescription":"0x00ï½0x64(0ï½100â),0xFE=æ¸©æ°´ä¸ä½¿ç¨,0xFF=æ¸©åº¦èªåè¨­å®"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"é¢¨åæ°´è¨­å®",
+							"unitDescription":"℃",
+							"valueDescription":"0x00～0x64(0～100℃),0xFE=温水不使用,0xFF=温度自動設定"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"風呂水設定",
 							"fields":[
 								
@@ -25486,15 +24945,13 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x40=é¢¨åæ°´çµ¦æ°´ãªã,0x41=æ´ãã®ã¿,0x42=ãããã®ã¿ï¼é¤ãæçµãããï¼,0x43=å
-¨ããã,0x44=æ´ãï¼ãããï¼é¤ãæçµãããï¼,0x45=æ´ãï¼å
-¨ããã"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ã½ããã­ã¼ãè¨­å®",
+							"valueDescription":"0x40=風呂水給水なし,0x41=洗いのみ,0x42=すすぎのみ（除く最終すすぎ）,0x43=全すすぎ,0x44=洗い＋すすぎ（除く最終すすぎ）,0x45=洗い＋全すすぎ"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ソフトキープ設定",
 							"fields":[
 								
@@ -25511,17 +24968,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã½ããã­ã¼ãå
-¥ã,0x42=ã½ããã­ã¼ãåã"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯ä¹¾ç¥æ®ãæé",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=ソフトキープ入り,0x42=ソフトキープ切り"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯乾燥残り時間",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -25533,10 +24989,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æé",
-									"valueDescription":"0x00ï½0xFE(0ï½254)"
+									"unitDescription":"時間",
+									"valueDescription":"0x00～0xFE(0～254)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -25548,6 +25004,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -25563,13 +25019,13 @@
 							"type":"hours_minutes_t",
 							"unitDescription":null,
-							"valueDescription":"0xFFFF=æ®ãæéä¸æ"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"éè»¢ä¸­æã»èã­ãã¯è¨­å®",
+							"valueDescription":"0xFFFF=残り時間不明"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"運転中扉・蓋ロック設定",
 							"fields":[
 								
@@ -25586,18 +25042,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=ã­ãã¯,0x42=ã¢ã³ã­ãã¯"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"æ´æ¿¯ä¹¾ç¥è¡ç¨æ
-å ±",
+							"valueDescription":"0x41=ロック,0x42=アンロック"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"洗濯乾燥行程情報",
 							"fields":[
 								{
 									"arrayCount":2,
-									"description":"æå¹ãªè¡¨ç¤ºé 
-ç®",
+									"description":"有効な表示項目",
 									"fields":[
 										
@@ -25610,10 +25064,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"æå¹ãªè¡¨ç¤ºé 
-ç®ãããããããã§ç¤ºãã"
+									"valueDescription":"有効な表示項目をビットマップで示す。"
 								},
 								{
 									"arrayCount":0,
-									"description":"ã¤ãããè¡ç¨",
+									"description":"つけおき行程",
 									"fields":[
 										
@@ -25626,9 +25079,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x41=ã¤ãããè¡ç¨ãã,0x42=ã¤ãããè¡ç¨ãªã"
+									"valueDescription":"0x41=つけおき行程あり,0x42=つけおき行程なし"
 								},
 								{
 									"arrayCount":2,
-									"description":"æ´ãæé",
+									"description":"洗い時間",
 									"fields":[
 										
@@ -25641,10 +25094,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯æ´ãæéè¨­å®å¤ãåç
-§"
+									"valueDescription":"値は洗い時間設定値を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"ãããåæ°",
+									"description":"すすぎ回数",
 									"fields":[
 										
@@ -25657,10 +25109,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯ãããåæ°è¨­å®å¤ãåç
-§"
+									"valueDescription":"値はすすぎ回数設定値を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"ãããã¢ã¼ã",
+									"description":"すすぎモード",
 									"fields":[
 										
@@ -25673,10 +25124,9 @@
 									"type":"uint32_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯ãããã¢ã¼ãè¨­å®ãåç
-§"
+									"valueDescription":"値はすすぎモード設定を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"è±æ°´æé",
+									"description":"脱水時間",
 									"fields":[
 										
@@ -25689,10 +25139,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯è±æ°´æéè¨­å®å¤ãåç
-§"
+									"valueDescription":"値は脱水時間設定値を参照"
 								},
 								{
 									"arrayCount":2,
-									"description":"ä¹¾ç¥æé",
+									"description":"乾燥時間",
 									"fields":[
 										
@@ -25705,10 +25154,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯ä¹¾ç¥æéè¨­å®å¤ãåç
-§"
+									"valueDescription":"値は乾燥時間設定値を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"æ¸©æ°´è¨­å®",
+									"description":"温水設定",
 									"fields":[
 										
@@ -25721,10 +25169,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯æ¸©æ°´è¨­å®ãåç
-§"
+									"valueDescription":"値は温水設定を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"æ°´éè¨­å®1",
+									"description":"水量設定1",
 									"fields":[
 										
@@ -25737,10 +25184,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯æ°´éè¨­å®1ãåç
-§"
+									"valueDescription":"値は水量設定1を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"æ°´éè¨­å®2",
+									"description":"水量設定2",
 									"fields":[
 										
@@ -25753,10 +25199,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯æ°´éè¨­å®2ãåç
-§"
+									"valueDescription":"値は水量設定2を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"é¢¨åæ°´è¨­å®",
+									"description":"風呂水設定",
 									"fields":[
 										
@@ -25769,10 +25214,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯é¢¨åæ°´è¨­å®ãåç
-§"
+									"valueDescription":"値は風呂水設定を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"æ°´æµè¨­å®",
+									"description":"水流設定",
 									"fields":[
 										
@@ -25785,10 +25229,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯æ°´æµè¨­å®ãåç
-§"
+									"valueDescription":"値は水流設定を参照"
 								},
 								{
 									"arrayCount":2,
-									"description":"è±æ°´åè»¢æ°è¨­å®",
+									"description":"脱水回転数設定",
 									"fields":[
 										
@@ -25801,10 +25244,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯è±æ°´åè»¢æ°è¨­å®å¤ãåç
-§"
+									"valueDescription":"値は脱水回転数設定値を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"ä¹¾ç¥åº¦è¨­å®",
+									"description":"乾燥度設定",
 									"fields":[
 										
@@ -25817,10 +25259,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯ä¹¾ç¥åº¦è¨­å®ãåç
-§"
+									"valueDescription":"値は乾燥度設定を参照"
 								},
 								{
 									"arrayCount":2,
-									"description":"ã¤ãããè¡ç¨æéè¨­å®",
+									"description":"つけおき行程時間設定",
 									"fields":[
 										
@@ -25833,10 +25274,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯ã¤ãããè¡ç¨æéè¨­å®ãåç
-§"
+									"valueDescription":"値はつけおき行程時間設定を参照"
 								},
 								{
 									"arrayCount":0,
-									"description":"ã½ããã­ã¼ãè¨­å®",
+									"description":"ソフトキープ設定",
 									"fields":[
 										
@@ -25849,6 +25289,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"å¤ã¯ã½ããã­ã¼ãè¨­å®ãåç
-§"
+									"valueDescription":"値はソフトキープ設定を参照"
 								}
 							],
@@ -25872,5 +25311,5 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®",
+							"description":"ＯＮタイマ予約設定",
 							"fields":[
 								
@@ -25887,18 +25326,17 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"valueDescription":"0x41=予約入,0x42=予約切"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"ＯＮタイマ時刻設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -25910,10 +25348,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æ",
-									"valueDescription":"0x00ï½0x17(0ï½23)"
+									"unitDescription":"時",
+									"valueDescription":"0x00～0x17(0～23)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -25925,6 +25363,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -25948,9 +25386,9 @@
 							],
 							"arrayCount":0,
-							"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"æ",
+							"description":"ＯＮタイマ相対時間設定値",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"時",
 									"fields":[
 										
@@ -25962,10 +25400,10 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"æé",
-									"valueDescription":"0x00ï½0xFF(0ï½255)"
+									"unitDescription":"時間",
+									"valueDescription":"0x00～0xFF(0～255)"
 								},
 								{
 									"arrayCount":0,
-									"description":"å",
+									"description":"分",
 									"fields":[
 										
@@ -25977,6 +25415,6 @@
 									"size":1,
 									"type":"uint8_t",
-									"unitDescription":"å",
-									"valueDescription":"0x00ï½0x3B(0ï½59)"
+									"unitDescription":"分",
+									"valueDescription":"0x00～0x3B(0～59)"
 								}
 							],
@@ -26000,10 +25438,10 @@
 		{
 			"classGroupCode":4,
-			"description":"å¥åº·é¢é£æ©å¨",
+			"description":"健康関連機器",
 			"define":"X1_WELLNESS",
 			"classList":[
 				{
 					"classCode":1,
-					"description":"ä½éè¨",
+					"description":"体重計",
 					"name":"WEIGHING_MACHINE_EOBJ",
 					"propertyList":[
@@ -26013,5 +25451,5 @@
 							],
 							"arrayCount":0,
-							"description":"ä½éè¨æ¸¬å¤",
+							"description":"体重計測値",
 							"fields":[
 								
@@ -26028,12 +25466,12 @@
 							"type":"uint16_t",
 							"unitDescription":"0.1kg",
-							"valueDescription":"0x0000ï½0xFFFD(0ï½6553.3kg)"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ä½èèªè¨æ¸¬å¤",
+							"valueDescription":"0x0000～0xFFFD(0～6553.3kg)"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"体脂肪計測値",
 							"fields":[
 								
@@ -26049,7 +25487,6 @@
 							"size":2,
 							"type":"uint16_t",
-							"unitDescription":"0.10ï¼
-",
-							"valueDescription":"0x0000ï½0x03E8(0ï½100.0%)"
+							"unitDescription":"0.10％",
+							"valueDescription":"0x0000～0x03E8(0～100.0%)"
 						}
 					]
@@ -26057,5 +25494,5 @@
 				{
 					"classCode":2,
-					"description":"ä½æ¸©è¨",
+					"description":"体温計",
 					"name":"CLINICAL_THERMOMETER_EOBJ",
 					"propertyList":[
@@ -26065,5 +25502,5 @@
 				{
 					"classCode":3,
-					"description":"è¡å§è¨",
+					"description":"血圧計",
 					"name":"BLOOD_PRESSURE_METER_EOBJ",
 					"propertyList":[
@@ -26073,5 +25510,5 @@
 				{
 					"classCode":4,
-					"description":"è¡ç³å¤è¨",
+					"description":"血糖値計",
 					"name":"BLOOD_SUGAR_METER_EOBJ",
 					"propertyList":[
@@ -26081,5 +25518,5 @@
 				{
 					"classCode":5,
-					"description":"ä½èèªè¨",
+					"description":"体脂肪計",
 					"name":"BODY_FAT_METER_EOBJ",
 					"propertyList":[
@@ -26091,11 +25528,10 @@
 		{
 			"classGroupCode":5,
-			"description":"ç®¡çã»æä½é¢é£æ©å¨",
+			"description":"管理・操作関連機器",
 			"define":"X1_CONTROLLER",
 			"classList":[
 				{
 					"classCode":252,
-					"description":"ã»ã­ã¥ã¢éä¿¡ç¨å
-±æéµè¨­å®ãã¼ã",
+					"description":"セキュア通信用共有鍵設定ノード",
 					"name":"SECURE_COMMUNICATION_SHARED_KEY_SETUP_NODE_EOBJ",
 					"propertyList":[
@@ -26105,5 +25541,5 @@
 				{
 					"classCode":253,
-					"description":"ã¹ã¤ããï¼JEMA/HAç«¯å­å¯¾å¿ï¼",
+					"description":"スイッチ（JEMA/HA端子対応）",
 					"name":"SWITCH_EOBJ",
 					"propertyList":[
@@ -26113,5 +25549,5 @@
 							],
 							"arrayCount":0,
-							"description":"æ¥ç¶æ©å¨",
+							"description":"接続機器",
 							"fields":[
 								
@@ -26128,5 +25564,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"æ©å¨ã®å½¢åãä¿æãã"
+							"valueDescription":"機器の形名を保持する"
 						}
 					]
@@ -26134,5 +25570,5 @@
 				{
 					"classCode":254,
-					"description":"æºå¸¯ç«¯æ«",
+					"description":"携帯端末",
 					"name":"PORTABLE_TERMINAL_EOBJ",
 					"propertyList":[
@@ -26142,5 +25578,5 @@
 				{
 					"classCode":255,
-					"description":"ã³ã³ãã­ã¼ã©",
+					"description":"コントローラ",
 					"name":"CONTROLLER_EOBJ",
 					"propertyList":[
@@ -26152,10 +25588,10 @@
 		{
 			"classGroupCode":6,
-			"description":"AVé¢é£æ©å¨",
+			"description":"AV関連機器",
 			"define":"X1_AUDIO_VISUAL",
 			"classList":[
 				{
 					"classCode":1,
-					"description":"ãã£ã¹ãã¬ã¼",
+					"description":"ディスプレー",
 					"name":"DISPLAY_EOBJ",
 					"propertyList":[
@@ -26166,5 +25602,5 @@
 							],
 							"arrayCount":0,
-							"description":"è¡¨ç¤ºå¶å¾¡è¨­å®",
+							"description":"表示制御設定",
 							"fields":[
 								
@@ -26181,5 +25617,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=è¡¨ç¤º,0x31=éè¡¨ç¤º"
+							"valueDescription":"0x30=表示,0x31=非表示"
 						},
 						{
@@ -26189,6 +25625,5 @@
 							],
 							"arrayCount":0,
-							"description":"æå­åè¨­å®åä»å¯è½ç¶æ
-",
+							"description":"文字列設定受付可能状態",
 							"fields":[
 								
@@ -26205,5 +25640,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=ã¬ãã£,0x31=ãã¸ã¼"
+							"valueDescription":"0x30=レディ,0x31=ビジー"
 						},
 						{
@@ -26212,5 +25647,5 @@
 							],
 							"arrayCount":2,
-							"description":"è¡¨ç¤ºå¯è½æå­ã³ã¼ã",
+							"description":"表示可能文字コード",
 							"fields":[
 								
@@ -26227,5 +25662,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"[0]ANSI X3.4:1=æ­è¼,0=éæ­è¼\u000d\u000a[1]Shift-JIS:1=æ­è¼,0=éæ­è¼\u000d\u000a[2]JIS:1=æ­è¼,0=éæ­è¼\u000d\u000a[3]æ¥æ¬èªEUC:1=æ­è¼,0=éæ­è¼\u000d\u000a[4]UCS-4:1=æ­è¼,0=éæ­è¼\u000d\u000a[5]UCS-2:1=æ­è¼,0=éæ­è¼\u000d\u000a[6]Latin-1:1=æ­è¼,0=éæ­è¼\u000d\u000a[7]UTF-8:1=æ­è¼,0=éæ­è¼\u000d\u000a[8ï½15]for future reserved:0"
+							"valueDescription":"[0]ANSI X3.4:1=搭載,0=非搭載\u000d\u000a[1]Shift-JIS:1=搭載,0=非搭載\u000d\u000a[2]JIS:1=搭載,0=非搭載\u000d\u000a[3]日本語EUC:1=搭載,0=非搭載\u000d\u000a[4]UCS-4:1=搭載,0=非搭載\u000d\u000a[5]UCS-2:1=搭載,0=非搭載\u000d\u000a[6]Latin-1:1=搭載,0=非搭載\u000d\u000a[7]UTF-8:1=搭載,0=非搭載\u000d\u000a[8～15]for future reserved:0"
 						},
 						{
@@ -26236,9 +25671,9 @@
 							],
 							"arrayCount":0,
-							"description":"ä¼éæå­åè¨­å®",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ä¼éæå­ãã¤ãã³ã¼ãåãã¼ã¿é·",
+							"description":"伝達文字列設定",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"伝達文字バイトコード列データ長",
 									"fields":[
 										
@@ -26251,9 +25686,9 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"ä¼éæå­ãã¤ãã³ã¼ãåãã¼ã¿é·ã®16é²æç®å¤"
+									"valueDescription":"伝達文字バイトコード列データ長の16進換算値"
 								},
 								{
 									"arrayCount":0,
-									"description":"ä½¿ç¨æå­ã³ã¼ã",
+									"description":"使用文字コード",
 									"fields":[
 										
@@ -26266,5 +25701,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x01=ANSI X3.4,0x02=Shift-JIS,0x03=JIS,0x04=æ¥æ¬èªEUC,0x05=UCS-4,0x06=UCS-2,0x07=Latin-1,0x08=UTF-8,0x09ï½=for future reserved"
+									"valueDescription":"0x01=ANSI X3.4,0x02=Shift-JIS,0x03=JIS,0x04=日本語EUC,0x05=UCS-4,0x06=UCS-2,0x07=Latin-1,0x08=UTF-8,0x09～=for future reserved"
 								},
 								{
@@ -26285,5 +25720,5 @@
 								{
 									"arrayCount":244,
-									"description":"ä¼éæå­åãã¤ãã³ã¼ãå",
+									"description":"伝達文字列バイトコード列",
 									"fields":[
 										
@@ -26318,5 +25753,5 @@
 							],
 							"arrayCount":0,
-							"description":"åä»ãä¼éæå­åé·",
+							"description":"受付け伝達文字列長",
 							"fields":[
 								{
@@ -26333,5 +25768,5 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0x00ï½0xF4"
+									"valueDescription":"0x00～0xF4"
 								},
 								{
@@ -26368,5 +25803,5 @@
 				{
 					"classCode":2,
-					"description":"ãã¬ã",
+					"description":"テレビ",
 					"name":"TELEVISION_EOBJ",
 					"propertyList":[
@@ -26377,5 +25812,5 @@
 							],
 							"arrayCount":0,
-							"description":"è¡¨ç¤ºå¶å¾¡è¨­å®",
+							"description":"表示制御設定",
 							"fields":[
 								
@@ -26400,6 +25835,5 @@
 							],
 							"arrayCount":0,
-							"description":"æå­åè¨­å®åä»å¯è½ç¶æ
-",
+							"description":"文字列設定受付可能状態",
 							"fields":[
 								
@@ -26424,5 +25858,5 @@
 							],
 							"arrayCount":2,
-							"description":"è¡¨ç¤ºå¯è½æå­ã³ã¼ã",
+							"description":"表示可能文字コード",
 							"fields":[
 								
@@ -26448,5 +25882,5 @@
 							],
 							"arrayCount":247,
-							"description":"ä¼éæå­åè¨­å®",
+							"description":"伝達文字列設定",
 							"fields":[
 								
@@ -26472,5 +25906,5 @@
 							],
 							"arrayCount":0,
-							"description":"åä»ãä¼éæå­åé·",
+							"description":"受付け伝達文字列長",
 							"fields":[
 								
@@ -26495,10 +25929,10 @@
 		{
 			"classGroupCode":14,
-			"description":"ãã­ãã¡ã¤ã«",
+			"description":"プロファイル",
 			"define":"X1_PROFILE",
 			"classList":[
 				{
 					"classCode":240,
-					"description":"ãã¼ããã­ãã¡ã¤ã«ãªãã¸ã§ã¯ã",
+					"description":"ノードプロファイルオブジェクト",
 					"name":"NODE_PROFILE_EOBJ",
 					"propertyList":[
@@ -26509,6 +25943,5 @@
 							],
 							"arrayCount":0,
-							"description":"åä½ç¶æ
-",
+							"description":"動作状態",
 							"fields":[
 								
@@ -26525,18 +25958,16 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"0x30=èµ·åä¸­,0x31=æªèµ·åä¸­"
-						},
-						{
-							"access":[
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"ï¼¶ï½
-ï½ï½ï½ï½ï½æ
-å ±",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³(å°æ°ç¹ä»¥ä¸)",
+							"valueDescription":"0x30=起動中,0x31=未起動中"
+						},
+						{
+							"access":[
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"Ｖｅｒｓｉｏｎ情報",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"メジャーバージョン(小数点以上)",
 									"fields":[
 										
@@ -26553,5 +25984,5 @@
 								{
 									"arrayCount":0,
-									"description":"ãã¤ãã¼ãã¼ã¸ã§ã³(å°æ°ç¹ä»¥ä¸)",
+									"description":"マイナーバージョン(小数点以下)",
 									"fields":[
 										
@@ -26568,5 +25999,5 @@
 								{
 									"arrayCount":2,
-									"description":"é»æã¿ã¤ã",
+									"description":"電文タイプ",
 									"fields":[
 										
@@ -26600,9 +26031,9 @@
 							],
 							"arrayCount":0,
-							"description":"è­å¥çªå·",
-							"fields":[
-								{
-									"arrayCount":0,
-									"description":"ä¸ä½éä¿¡å±¤IDãã£ã¼ã«ã",
+							"description":"識別番号",
+							"fields":[
+								{
+									"arrayCount":0,
+									"description":"下位通信層IDフィールド",
 									"fields":[
 										
@@ -26615,13 +26046,13 @@
 									"type":"uint8_t",
 									"unitDescription":null,
-									"valueDescription":"0xFE=2ãã17ãã¤ããã¡ã¼ã«è¦å®å½¢å¼ã«ããè¨­å®,ãã®ä»=future reserved"
+									"valueDescription":"0xFE=2から17バイトをメーカ規定形式により設定,その他=future reserved"
 								},
 								{
 									"arrayCount":0,
-									"description":"ã¡ã¼ã«ã¼ã³ã¼ã",
+									"description":"メーカーコード",
 									"fields":[
 										{
 											"arrayCount":3,
-											"description":"ã¡ã¼ã«ã¼ã³ã¼ã",
+											"description":"メーカーコード",
 											"fields":[
 												
@@ -26634,5 +26065,5 @@
 											"type":"uint8_t",
 											"unitDescription":null,
-											"valueDescription":"ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã"
+											"valueDescription":"ECHONETコンソーシアムで規定。"
 										}
 									],
@@ -26648,5 +26079,5 @@
 								{
 									"arrayCount":13,
-									"description":"ã¦ãã¼ã¯IDé¨(ã¡ã¼ã«ã¼ç¬èª)",
+									"description":"ユニークID部(メーカー独自)",
 									"fields":[
 										
@@ -26680,6 +26111,5 @@
 							],
 							"arrayCount":0,
-							"description":"ç°å¸¸å
-å®¹",
+							"description":"異常内容",
 							"fields":[
 								
@@ -26696,14 +26126,13 @@
 							"type":"uint16_t",
 							"unitDescription":null,
-							"valueDescription":"0x0000ï½0x03EC(0ï½1004)"
-						},
-						{
-							"access":[
-								"RULE_SET",
-								"RULE_GET"
-							],
-							"arrayCount":0,
-							"description":"åä½è­å¥æ
-å ±",
+							"valueDescription":"0x0000～0x03EC(0～1004)"
+						},
+						{
+							"access":[
+								"RULE_SET",
+								"RULE_GET"
+							],
+							"arrayCount":0,
+							"description":"個体識別情報",
 							"fields":[
 								
@@ -26720,6 +26149,5 @@
 							"type":"uint16_t",
 							"unitDescription":null,
-							"valueDescription":"ä¸è¨(3)åç
-§ã"
+							"valueDescription":"下記(3)参照。"
 						},
 						{
@@ -26728,5 +26156,5 @@
 							],
 							"arrayCount":3,
-							"description":"èªãã¼ãã¤ã³ã¹ã¿ã³ã¹æ°",
+							"description":"自ノードインスタンス数",
 							"fields":[
 								
@@ -26743,5 +26171,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"1ï½3ãã¤ãç®ï¼ã¤ã³ã¹ã¿ã³ã¹ç·æ°"
+							"valueDescription":"1～3バイト目：インスタンス総数"
 						},
 						{
@@ -26750,5 +26178,5 @@
 							],
 							"arrayCount":2,
-							"description":"èªãã¼ãã¯ã©ã¹æ°",
+							"description":"自ノードクラス数",
 							"fields":[
 								
@@ -26765,5 +26193,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"1ï½2ãã¤ãç®ï¼ã¯ã©ã¹ç·æ°"
+							"valueDescription":"1～2バイト目：クラス総数"
 						},
 						{
@@ -26773,5 +26201,5 @@
 							],
 							"arrayCount":253,
-							"description":"ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥",
+							"description":"インスタンスリスト通知",
 							"fields":[
 								
@@ -26788,5 +26216,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"1ãã¤ãç®ï¼éå ±ã¤ã³ã¹ã¿ã³ã¹æ°\u000d\u000a2ï½253ãã¤ãç®ï¼ECHONETãªãã¸ã§ã¯ãã³ã¼ã(EOJ3ãã¤ã)ãåæã"
+							"valueDescription":"1バイト目：通報インスタンス数\u000d\u000a2～253バイト目：ECHONETオブジェクトコード(EOJ3バイト)を列挙。"
 						},
 						{
@@ -26796,5 +26224,5 @@
 							],
 							"arrayCount":253,
-							"description":"èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³",
+							"description":"自ノードインスタンスリストＳ",
 							"fields":[
 								
@@ -26811,5 +26239,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"1ãã¤ãç®ï¼ã¤ã³ã¹ã¿ã³ã¹ç·æ°\u000d\u000a2ï½253ãã¤ãç®ï¼ECHONETãªãã¸ã§ã¯ãã³ã¼ã(EOJ3ãã¤ã)ãåæã"
+							"valueDescription":"1バイト目：インスタンス総数\u000d\u000a2～253バイト目：ECHONETオブジェクトコード(EOJ3バイト)を列挙。"
 						},
 						{
@@ -26819,5 +26247,5 @@
 							],
 							"arrayCount":17,
-							"description":"èªãã¼ãã¯ã©ã¹ãªã¹ãï¼³",
+							"description":"自ノードクラスリストＳ",
 							"fields":[
 								
@@ -26834,5 +26262,5 @@
 							"type":"uint8_t",
 							"unitDescription":null,
-							"valueDescription":"1ãã¤ãç®ï¼ã¯ã©ã¹ç·æ°\u000d\u000a2ï½17ãã¤ãç®ï¼ã¯ã©ã¹ã³ã¼ã(EOJã®ä¸ä½2ãã¤ã)ãåæã"
+							"valueDescription":"1バイト目：クラス総数\u000d\u000a2～17バイト目：クラスコード(EOJの上位2バイト)を列挙。"
 						}
 					]
@@ -26842,5 +26270,5 @@
 		{
 			"classGroupCode":15,
-			"description":"ã¦ã¼ã¶ã¼å®ç¾©",
+			"description":"ユーザー定義",
 			"define":"X1_USER_DEFINED",
 			"classList":[
Index: EcnlProtoTool/trunk/webapp/webmrbc/echonet_objects.min.json
===================================================================
--- EcnlProtoTool/trunk/webapp/webmrbc/echonet_objects.min.json	(revision 299)
+++ EcnlProtoTool/trunk/webapp/webmrbc/echonet_objects.min.json	(revision 321)
@@ -1,573 +1,1 @@
-{"baseProfilePropertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ç°å¸¸çºçç¶æ
-","fields":[],"identifier":"FaultStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":136,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç°å¸¸çºçæ,0x42=ç°å¸¸çºçç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã¡ã¼ã«ã¼ã³ã¼ã","fields":[{"arrayCount":3,"description":"ã¡ã¼ã«ã¼ã³ã¼ã","fields":[],"identifier":"ManufacturerCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã"}],"identifier":"ManufacturerCode","initialValue":null,"isArray":false,"primitive":false,"propertyCode":138,"required":["RULE_GET"],"size":3,"type":"manufacturer_code_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":3,"description":"äºæ¥­å ´ã³ã¼ã","fields":[],"identifier":"PlaceOfBusinessCode","initialValue":null,"isArray":true,"primitive":true,"propertyCode":139,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"},{"access":["RULE_GET"],"arrayCount":12,"description":"ååã³ã¼ã","fields":[],"identifier":"ProductCode","initialValue":null,"isArray":true,"primitive":true,"propertyCode":140,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"},{"access":["RULE_GET"],"arrayCount":12,"description":"è£½é çªå·","fields":[],"identifier":"SerialNumber","initialValue":null,"isArray":true,"primitive":true,"propertyCode":141,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"},{"access":["RULE_GET"],"arrayCount":0,"description":"è£½é å¹´ææ¥","fields":[{"arrayCount":0,"description":"å¹´","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"å¹´","valueDescription":"0x0001ï½0x270F(1ï½9999)"},{"arrayCount":0,"description":"æ","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x01ï½0x0C(1ï½12)"},{"arrayCount":0,"description":"æ¥","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x01ï½0x1F(1ï½31)"}],"identifier":"DateOfManufacture","initialValue":null,"isArray":false,"primitive":false,"propertyCode":142,"required":["NONE"],"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ç¶å¤ã¢ãã¦ã³ã¹ãã­ããã£ããã","fields":[],"identifier":"StatusChangeAnnouncementPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":157,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ï¼³ï½
-ï½ãã­ããã£ããã","fields":[],"identifier":"SetPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":158,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ï¼§ï½
-ï½ãã­ããã£ããã","fields":[],"identifier":"GetPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":159,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"baseObjectPropertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"åä½ç¶æ
-","fields":[],"identifier":"OperationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":128,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=ON,0x31=OFF"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"è¨­ç½®å ´æ","fields":[],"identifier":"InstallationLocation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":129,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"2.2è¨­ç½®å ´æãã­ããã£åç
-§"},{"access":["RULE_GET"],"arrayCount":0,"description":"è¦æ ¼ï¼¶ï½
-ï½ï½ï½ï½ï½æ
-å ±","fields":[{"arrayCount":0,"description":"åºå®1(for future reserved)","fields":[],"identifier":"Reserved1","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00"},{"arrayCount":0,"description":"åºå®2(for future reserved)","fields":[],"identifier":"Reserved2","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00"},{"arrayCount":0,"description":"ãªãªã¼ã¹é ãASCIIã§ç¤ºã","fields":[],"identifier":"OrderOfRelease","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"åºå®4(for future reserved)","fields":[],"identifier":"Reserved4","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00"}],"identifier":"StandardVersionInformation","initialValue":null,"isArray":false,"primitive":false,"propertyCode":130,"required":["RULE_GET"],"size":4,"type":"standard_version_information_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è­å¥çªå·","fields":[{"arrayCount":0,"description":"ä¸ä½éä¿¡å±¤IDãã£ã¼ã«ã","fields":[],"identifier":"LowerLayerCommunicationIdField","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFD=ä¸ä½éä¿¡å±¤ã§ä½¿ç¨ãããéä¿¡ãã­ãã³ã«ã§åºæã®çªå·ãæ¯ããã¦ããå ´åããã­ãã³ã«å¥ã«å¿ãã¦ãä»»æã«è¨­å®ï¼ECHONET Liteã§ã¯ä½¿ç¨ããªãï¼,0x11ï½0x1F=é»ç¯ç·a\/dæ¹å¼,0x31ï½0x3F=ç¹å®å°é»åç¡ç·,0x41ï½0x4F=æ¡å¼µHBS,0x51ï½0x5F=IrDA,0x61ï½0x6F=LonTalk,0x71ï½0x7F=Bluetooth,0x81ï½0x8F=ã¤ã¼ãµããã,0x91ï½0x9F=IEEE802.11\/11b,0xA1=é»ç¯ç·cæ¹å¼,0xB1=IPv6\/Ethernet,0xB2=IPv6\/6LoWPAN,0xFE=2ãã17ãã¤ããã¡ã¼ã«è¦å®ãå½¢å¼ã«ããè¨­å®ï¼è©³ç´°èª¬æåç
-§ï¼,0xFF=2ãã9ãã¤ããä¹±æ°ã«ããçæãããã­ãã³ã«ãä¸ä½éä¿¡å±¤ã§ä½¿ç¨ããå ´åã«è¨­å®,0x00=è­å¥çªå·æªè¨­å®"},{"arrayCount":16,"description":"åºæçªå·ãã£ã¼ã«ã","fields":[],"identifier":"UniqueNumberField","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"IdentificationNumber","initialValue":null,"isArray":false,"primitive":false,"propertyCode":131,"required":["NONE"],"size":17,"type":"device_identification_number_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬ææ¶è²»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousPowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":132,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®æ¶è²»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativePowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":133,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_GET","VARIABLE"],"arrayCount":0,"description":"ã¡ã¼ã«ç°å¸¸ã³ã¼ã","fields":[{"arrayCount":0,"description":"ç°å¸¸ã³ã¼ãé¨ã®ãã¼ã¿ãµã¤ãº","fields":[],"identifier":"DataSizeOfTheFaultCodeField","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"ã¡ã¼ã«ã¼ã³ã¼ã","fields":[{"arrayCount":3,"description":"ã¡ã¼ã«ã¼ã³ã¼ã","fields":[],"identifier":"ManufacturerCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã"}],"identifier":"ManufacturerCode","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"manufacturer_code_t","unitDescription":null,"valueDescription":""},{"arrayCount":221,"description":"åã¡ã¼ã«ç¬èªã®ç°å¸¸ã³ã¼ãé¨","fields":[],"identifier":"FieldForManufacturerDefinedFaultCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"ManufacturersFaultCode","initialValue":null,"isArray":false,"primitive":false,"propertyCode":134,"required":["NONE"],"size":225,"type":"manufacturers_fault_code_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é»æµå¶éè¨­å®","fields":[],"identifier":"CurrentLimitSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":135,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ç°å¸¸çºçç¶æ
-","fields":[],"identifier":"FaultStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":136,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç°å¸¸çºçæ,0x42=ç°å¸¸çºçç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç°å¸¸å
-å®¹","fields":[],"identifier":"FaultDescription","initialValue":null,"isArray":false,"primitive":true,"propertyCode":137,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"2.5ç°å¸¸å
-å®¹ãã­ããã£åç
-§"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã¡ã¼ã«ã¼ã³ã¼ã","fields":[{"arrayCount":3,"description":"ã¡ã¼ã«ã¼ã³ã¼ã","fields":[],"identifier":"ManufacturerCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã"}],"identifier":"ManufacturerCode","initialValue":null,"isArray":false,"primitive":false,"propertyCode":138,"required":["RULE_GET"],"size":3,"type":"manufacturer_code_t","unitDescription":null,"valueDescription":"(ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã)"},{"access":["RULE_GET"],"arrayCount":3,"description":"äºæ¥­å ´ã³ã¼ã","fields":[],"identifier":"BusinessFacilityCode","initialValue":null,"isArray":true,"primitive":true,"propertyCode":139,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"},{"access":["RULE_GET"],"arrayCount":12,"description":"ååã³ã¼ã","fields":[],"identifier":"ProductCode","initialValue":null,"isArray":true,"primitive":true,"propertyCode":140,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"},{"access":["RULE_GET"],"arrayCount":12,"description":"è£½é çªå·","fields":[],"identifier":"ProductionNumber","initialValue":null,"isArray":true,"primitive":true,"propertyCode":141,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(åã¡ã¼ã«æ¯ã«è¦å®ã)"},{"access":["RULE_GET"],"arrayCount":0,"description":"è£½é å¹´ææ¥","fields":[{"arrayCount":0,"description":"å¹´","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"å¹´","valueDescription":"0x0001ï½0x270F(1ï½9999)"},{"arrayCount":0,"description":"æ","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x01ï½0x0C(1ï½12)"},{"arrayCount":0,"description":"æ¥","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x01ï½0x1F(1ï½31)"}],"identifier":"ProductionDate","initialValue":null,"isArray":false,"primitive":false,"propertyCode":142,"required":["NONE"],"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¯é»åä½è¨­å®","fields":[],"identifier":"PowerSavingOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":143,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç¯é»åä½ä¸­,0x42=éå¸¸åä½ä¸­"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é éæä½è¨­å®","fields":[],"identifier":"PositionInformation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":147,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å
-¬è¡åç·æªçµç±æä½,0x42=å
-¬è¡åç·çµç±æä½"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¾å¨æå»è¨­å®","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"CurrentTimeSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":151,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¾å¨å¹´ææ¥è¨­å®","fields":[{"arrayCount":0,"description":"å¹´","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"å¹´","valueDescription":"0x0001ï½0x270F(1ï½9999)"},{"arrayCount":0,"description":"æ","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x01ï½0x0C(1ï½12)"},{"arrayCount":0,"description":"æ¥","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x01ï½0x1F(1ï½31)"}],"identifier":"CurrentDateSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":152,"required":["NONE"],"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é»åå¶éè¨­å®","fields":[],"identifier":"PowerLimitSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":153,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0000ï½0xFFFF(0ï½65535W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®éè»¢æé","fields":[{"arrayCount":0,"description":"åä½","fields":[],"identifier":"Unit","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç§,0x42=å,0x43=æ,0x44=æ¥"},{"arrayCount":0,"description":"çµéæé","fields":[],"identifier":"ElapsedTime","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000ï½0xFFFFFFFF(0ï½4294967295)"}],"identifier":"CumulativeOperatingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":154,"required":["NONE"],"size":5,"type":"cumulative_operating_time_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ï¼³ï½
-ï½ï¼­ãã­ããã£ããã","fields":[],"identifier":"SetMPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":155,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ä»é²1.åç
-§"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ï¼§ï½
-ï½ï¼­ãã­ããã£ããã","fields":[],"identifier":"GetMPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":156,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ä»é²1.åç
-§"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ç¶å¤ã¢ãã¦ã³ã¹ãã­ããã£ããã","fields":[],"identifier":"StatusChangeAnnouncementPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":157,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ä»é²1.åç
-§"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ï¼³ï½
-ï½ãã­ããã£ããã","fields":[],"identifier":"SetPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":158,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ä»é²1.åç
-§"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ï¼§ï½
-ï½ãã­ããã£ããã","fields":[],"identifier":"GetPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":159,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ä»é²1.åç
-§"}],"classGroupList":[{"classGroupCode":0,"description":"ã»ã³ãµã¼é¢é£æ©å¨","define":"X1_SENSOR","classList":[{"classCode":1,"description":"ã¬ã¹æ¼ãã»ã³ãµ","name":"GAS_LEAK_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ã¬ã¹æ¼ãçºçç¶æ
-","fields":[],"identifier":"GasLeakOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã¬ã¹æ¼ãçºçæ,0x42=ã¬ã¹æ¼ãçºçç¡"},{"access":["RULE_SET"],"arrayCount":0,"description":"ã¬ã¹æ¼ãçºçç¶æ
-ãªã»ããè¨­å®","fields":[],"identifier":"GasLeakOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"}]},{"classCode":2,"description":"é²ç¯ã»ã³ãµ","name":"CRIME_PREVENTION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ä¾µå
-¥çºçç¶æ
-","fields":[],"identifier":"InvasionOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ä¾µå
-¥çºçæ,0x42=ä¾µå
-¥çºçç¡"},{"access":["RULE_SET"],"arrayCount":0,"description":"ä¾µå
-¥çºçç¶æ
-ãªã»ããè¨­å®","fields":[],"identifier":"InvasionOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"}]},{"classCode":3,"description":"éå¸¸ãã¿ã³","name":"EMERGENCY_BUTTON_EOBJ","propertyList":[{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"éå¸¸çºçç¶æ
-","fields":[],"identifier":"EmergencyOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éå¸¸çºçæ,0x42=éå¸¸çºçç¡"},{"access":["RULE_SET"],"arrayCount":0,"description":"éå¸¸çºçç¶æ
-ãªã»ããè¨­å®","fields":[],"identifier":"EmergencyOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"}]},{"classCode":4,"description":"ææ¥ç¨ã»ã³ãµ","name":"FIRST_AID_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ææ¥çºçç¶æ
-","fields":[],"identifier":"FirstAidOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ææ¥çºçæ,0x42=ææ¥çºçç¡"},{"access":["RULE_SET"],"arrayCount":0,"description":"ææ¥çºçç¶æ
-ãªã»ããè¨­å®","fields":[],"identifier":"FirstAidOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"}]},{"classCode":5,"description":"å°éã»ã³ãµ","name":"EARTHQUAKE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"å°éçºçç¶æ
-","fields":[],"identifier":"EarthquakeOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å°éçºçæ,0x42=å°éçºçç¡"},{"access":["RULE_SET"],"arrayCount":0,"description":"å°éçºçç¶æ
-ãªã»ããè¨­å®","fields":[],"identifier":"EarthquakeOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"}]},{"classCode":6,"description":"æ¼é»ã»ã³ãµ","name":"ELECTRIC_LEAK_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æ¼é»çºçç¶æ
-","fields":[],"identifier":"ElectricLeakOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ¼é»çºçæ,0x42=æ¼é»çºçç¡"},{"access":["RULE_SET"],"arrayCount":0,"description":"æ¼é»çºçç¶æ
-ãªã»ããè¨­å®","fields":[],"identifier":"ElectricLeakOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"}]},{"classCode":7,"description":"äººä½æ¤ç¥ã»ã³ãµ","name":"HUMAN_DETECTION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"äººä½æ¤ç¥ç¶æ
-","fields":[],"identifier":"HumanDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äººä½æ¤ç¥æ,0x42=äººä½æ¤ç¥ç¡"}]},{"classCode":8,"description":"æ¥å®¢ã»ã³ãµ","name":"VISITOR_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æ¥å®¢æ¤ç¥ç¶æ
-","fields":[],"identifier":"VisitorDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ¥å®¢æ¤ç¥æ,0x42=æ¥å®¢æ¤ç¥ç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¥å®¢æ¤ç¥ãã¼ã«ãæéè¨­å®å¤","fields":[],"identifier":"VisitorDetectionHoldingTime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"10sec","valueDescription":"0x0000ï½0xFFFD(0ï½655,330ç§)"}]},{"classCode":9,"description":"å¼ã³åºãã»ã³ãµ","name":"CALL_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"å¼ã³åºãç¶æ
-","fields":[],"identifier":"CallStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å¼ã³åºãæ,0x42=å¼ã³åºãç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å¼ã³åºããã¼ã«ãæéè¨­å®å¤","fields":[],"identifier":"CallHoldingTime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"10sec","valueDescription":"0x0000ï½0xFFFD(0ï½655,330ç§)"}]},{"classCode":10,"description":"çµé²ã»ã³ãµ","name":"CONDENSATION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"çµé²æ¤åºç¶æ
-","fields":[],"identifier":"CondensationDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çµé²æ¤åºæ,0x42=çµé²æ¤åºç¡"}]},{"classCode":11,"description":"ç©ºæ°æ±æã»ã³ãµ","name":"AIR_POLLUTION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ç©ºæ°æ±ææ¤åºç¶æ
-","fields":[],"identifier":"AirPollutionDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç©ºæ°æ±ææ¤åºæ,0x42=ç©ºæ°æ±ææ¤åºç¡"}]},{"classCode":12,"description":"é
-¸ç´ ã»ã³ãµ","name":"OXYGEN_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"é
-¸ç´ æ¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfOxygenConcentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.01ï¼
-","valueDescription":"0x0000ï½0x2710(0.00ï½100.00%)"}]},{"classCode":13,"description":"ç
-§åº¦ã»ã³ãµ","name":"ILLUMINANCE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ç
-§åº¦è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredIlluminanceValue1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"ã«ã¯ã¹","valueDescription":"0x0000ï½0xFFFD(0ï½65533ã«ã¯ã¹)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç
-§åº¦è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredIlluminanceValue2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"kã«ã¯ã¹","valueDescription":"0x0000ï½0xFFFD(0ï½65533kã«ã¯ã¹)"}]},{"classCode":14,"description":"é³ã»ã³ãµ","name":"SOUND_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"é³æ¤ç¥ç¶æ
-","fields":[],"identifier":"SoundDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é³æ¤ç¥æ,0x42=é³æ¤ç¥ç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é³æ¤ç¥ãã¼ã«ãæéè¨­å®å¤","fields":[],"identifier":"SoundDetectionHoldingTime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"10sec","valueDescription":"0x0000ï½0xFFFD(0ï½655,330ç§)"}]},{"classCode":15,"description":"æå½ã»ã³ãµ","name":"MAILING_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æå½æ¤åºç¶æ
-","fields":[],"identifier":"MailingDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æå½æ¤åºæ,0x42=æå½æ¤åºç¡"}]},{"classCode":16,"description":"éè·ã»ã³ãµ","name":"WEIGHT_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"éè·æ¤ç¥ç¶æ
-","fields":[],"identifier":"WeightDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éè·æ¤ç¥æ,0x42=éè·æ¤ç¥ç¡"}]},{"classCode":17,"description":"æ¸©åº¦ã»ã³ãµ","name":"TEMPERATURE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredTemperatureValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"int16_t","unitDescription":"0.1â","valueDescription":"0xF554ï½0x7FFE(-273.2ï½3276.6â)"}]},{"classCode":18,"description":"æ¹¿åº¦ã»ã³ãµ","name":"HUMIDITY_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"}]},{"classCode":19,"description":"é¨ã»ã³ãµ","name":"RAIN_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"é¨æ¤ç¥ç¶æ
-","fields":[],"identifier":"RainDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é¨æ¤ç¥æ,0x42=é¨æ¤ç¥ç¡"}]},{"classCode":20,"description":"æ°´ä½ã»ã³ãµ","name":"WATER_LEVEL_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"æ°´ä½è¶
-éæ¤ç¥é¾å¤è¨­å®å¤","fields":[],"identifier":"WaterLevelOverDetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"cm","valueDescription":"0x00ï½0xFD(0ï½253)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æ°´ä½è¶
-éæ¤ç¥ç¶æ
-","fields":[],"identifier":"WaterLevelOverDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ°´ä½è¶
-éæ,0x42=æ°´ä½è¶
-éç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ°´ä½è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfWaterLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"cm","valueDescription":"0x00ï½0xFD(0ï½253)"}]},{"classCode":21,"description":"é¢¨åæ°´ä½ã»ã³ãµ","name":"BATH_WATER_LEVEL_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"é¢¨åæ°´ä½è¶
-éæ¤ç¥é¾å¤è¨­å®å¤","fields":[],"identifier":"BathWaterLevelOverDetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"cm","valueDescription":"0x00ï½0xFD(0ï½253)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"é¢¨åæ°´ä½è¶
-éæ¤ç¥ç¶æ
-","fields":[],"identifier":"BathWaterLevelOverDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ°´ä½è¶
-éæ,0x42=æ°´ä½è¶
-éç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"é¢¨åæ°´ä½è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfBathWaterLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"cm","valueDescription":"0x00ï½0xFD(0ï½253)"}]},{"classCode":22,"description":"é¢¨åæ²¸ãä¸ããã»ã³ãµ","name":"BATH_HEATING_STATUS_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"é¢¨åæ²¸ãä¸ããæ¤ç¥ç¶æ
-","fields":[],"identifier":"BathHeatingDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é¢¨åæ²¸ãä¸ããæ,0x42=é¢¨åæ²¸ãä¸ããç¡"}]},{"classCode":23,"description":"æ°´æ¼ãã»ã³ãµ","name":"WATER_LEAK_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æ°´æ¼ãæ¤ç¥ç¶æ
-","fields":[],"identifier":"WaterLeakDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ°´æ¼ãæ¤ç¥æ,0x42=æ°´æ¼ãæ¤ç¥ç¡"}]},{"classCode":24,"description":"æ°´ããµãã»ã³ãµ","name":"WATER_OVERFLOW_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æ°´ããµãæ¤ç¥ç¶æ
-","fields":[],"identifier":"WaterOverflowDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ°´ããµãæ¤ç¥æ,0x42=æ°´ããµãæ¤ç¥ç¡"}]},{"classCode":25,"description":"ç«ç½ã»ã³ãµ","name":"FIRE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ç«ç½çºçæ¤ç¥ç¶æ
-","fields":[],"identifier":"FireOccurrenceDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç«ç½çºçæ¤ç¥æ,0x42=ç«ç½çºçæ¤ç¥ç¡"},{"access":["RULE_SET"],"arrayCount":0,"description":"ç«ç½çºçæ¤ç¥ç¶æ
-ãªã»ããè¨­å®","fields":[],"identifier":"FireOccurrenceDetectionStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"}]},{"classCode":26,"description":"ã¿ãã³ç
-ã»ã³ãµ","name":"CIGARETTE_SMOKE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¶æ
-","fields":[],"identifier":"SmokeCigaretteDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç
-ï¼ã¿ãã³ï¼æ¤ç¥æ,0x42=ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¡"}]},{"classCode":27,"description":"CO2ã»ã³ãµ","name":"CO2_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼£ï¼¯ï¼æ¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfCo2Concentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"ppm","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"}]},{"classCode":28,"description":"ã¬ã¹ã»ã³ãµ","name":"GAS_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ã¬ã¹æ¤ç¥ç¶æ
-","fields":[],"identifier":"GasDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã¬ã¹æ¤ç¥æ,0x42=ã¬ã¹æ¤ç¥ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã¬ã¹æ¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfGasConcentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"ppm","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"}]},{"classCode":29,"description":"VOCã»ã³ãµ","name":"VOC_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ï¼¶ï¼¯ï¼£æ¤ç¥ç¶æ
-","fields":[],"identifier":"VocDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=VOCæ¤ç¥æ,0x42=VOCæ¤ç¥ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼¶ï¼¯ï¼£æ¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfVocConcentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"ppm","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"}]},{"classCode":30,"description":"å·®å§ã»ã³ãµ","name":"DIFFERENTIAL_PRESSURE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"å·®å§è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfDifferentialPressure","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"int16_t","unitDescription":"Pa","valueDescription":"0x8001ï½0x7FFE(-32767ï½32766)"}]},{"classCode":31,"description":"é¢¨éã»ã³ãµ","name":"AIR_SPEED_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"é¢¨éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfAirSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.01m\/sec","valueDescription":"0x0000ï½0xFFFD(0ï½655.33m\/sec)"},{"access":["RULE_GET"],"arrayCount":0,"description":"é¢¨å","fields":[],"identifier":"AirFlowDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"degree","valueDescription":"0x0000ï½0x0168(0ï½360degree)"}]},{"classCode":32,"description":"è­ãã»ã³ãµ","name":"ODOR_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET"],"arrayCount":0,"description":"è­ãæ¤ç¥ç¶æ
-","fields":[],"identifier":"OdorDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=è­ãæ¤ç¥æ,0x42=è­ãæ¤ç¥ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"è­ãè¨æ¸¬å¤","fields":[],"identifier":"MeasuredOdorValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFD(0ï½253)"}]},{"classCode":33,"description":"çã»ã³ãµ","name":"FLAME_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"çæ¤ç¥ç¶æ
-","fields":[],"identifier":"FlameDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çæ¤ç¥æ,0x42=çæ¤ç¥ç¡"},{"access":["RULE_SET"],"arrayCount":0,"description":"çæ¤ç¥ç¶æ
-ãªã»ããè¨­å®","fields":[],"identifier":"FlameDetectionStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"}]},{"classCode":34,"description":"é»åéã»ã³ãµ","name":"ELECTRIC_ENERGY_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤","fields":[],"identifier":"IntegralElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä¸­å®¹éã»ã³ãµç¬æé»åå¤è¨æ¸¬å¤","fields":[],"identifier":"MediumCapacitySensorInstantaneousElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0xC4653601ï½0x3B9AC9FF(-999,999,999ï½999,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å°å®¹éã»ã³ãµç¬æé»åå¤è¨æ¸¬å¤","fields":[],"identifier":"SmallCapacitySensorInstantaneousElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1W","valueDescription":"0x8001ï½0x7FFE(-3276.7ï½3276.6)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¤§å®¹éã»ã³ãµç¬æé»åå¤è¨æ¸¬å¤","fields":[],"identifier":"LargeCapacitySensorInstantaneousElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1kW","valueDescription":"0x8001ï½0x7FFE(-3276.7ï½3276.6)"},{"access":["RULE_GET"],"arrayCount":48,"description":"ç©ç®é»åéè¨æ¸¬å±¥æ­´æ
-å ±","fields":[],"identifier":"IntegralElectricEnergyMeasurementLog","initialValue":null,"isArray":true,"primitive":true,"propertyCode":228,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®å¹é»å§å¤è¨æ¸¬å¤","fields":[],"identifier":"EffectiveVoltageValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000ï½0xFFFD(0ï½65533V)"}]},{"classCode":35,"description":"é»æµå¤ã»ã³ãµ","name":"CURRENT_VALUE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"é»æµå¤è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredCurrentValue1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"mA","valueDescription":"0x00000000ï½0xFFFFFFFD(0ï½4,294,967,293mA)"},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬å¯¾è±¡å®æ ¼é»å§å¤","fields":[],"identifier":"RatedVoltageToBeMeasured","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000ï½0xFFFD(0ï½65533V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"é»æµå¤è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredCurrentValue2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"int32_t","unitDescription":"mA","valueDescription":"0x80000001ï½0x7FFFFFFE(-2,147,483,647ï½2,147,483,646mA)"}]},{"classCode":36,"description":"æ¼å
-ã»ã³ãµ","name":"DAYLIGHT_SENSOR_EOBJ","propertyList":[]},{"classCode":37,"description":"æ°´æµéã»ã³ãµ","name":"WATER_FLOW_RATE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®æµéè¨æ¸¬å¤","fields":[],"identifier":"IntegralFlowRate","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"cã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æµéè¨æ¸¬å¤","fields":[],"identifier":"FlowRate","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"cã¥\/min","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999)"}]},{"classCode":38,"description":"å¾®åã»ã³ãµ","name":"MICROMOTION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"å¾®åæ¤ç¥ç¶æ
-","fields":[],"identifier":"MicromotionDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å¾®åæ¤ç¥æ,0x42=å¾®åæ¤ç¥ç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å¾®åæ¤ç¥ã«ã¦ã³ãæ°è¨­å®","fields":[],"identifier":"DetectionCounter","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0000ï½0xFFFE(0ï½65534)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãµã³ããªã³ã°åæ°è¨­å®","fields":[],"identifier":"SamplingCount","initialValue":null,"isArray":false,"primitive":true,"propertyCode":188,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0000ï½0xFFFE(0ï½65534)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãµã³ããªã³ã°æéè¨­å®å¤","fields":[],"identifier":"SamplingCycle","initialValue":null,"isArray":false,"primitive":true,"propertyCode":189,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"msec","valueDescription":"0x0000ï½0xFFFE(0ï½65534)"}]},{"classCode":39,"description":"ééã»ã³ãµ","name":"PASSAGE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ééæ¤ç¥ãã¼ã«ãæéè¨­å®å¤","fields":[],"identifier":"PassageDetectionHoldTime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ms","valueDescription":"0x0000ï½0xFFFD(0ï½65533ms)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ééæ¤ç¥æ¹åç¶æ
-","fields":[],"identifier":"PassageDetectionDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=ééç¡ã,0x31ï½0x38=ééæ¹å,0x39=ééãæ¤ç¥ãããå ´æãç¹å®ã§ããªãå ´åããããã¯ãééæ¹åãæ¤ç¥ã§ããªãã»ã³ãµã«ãããééããã"}]},{"classCode":40,"description":"å¨åºã»ã³ãµ","name":"BED_PRESENCE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«è¨­å®","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"å¨åºæ¤ç¥ç¶æ
-","fields":[],"identifier":"BedPresenceDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å¨åºæ¤ç¥æ,0x42=å¨åºæ¤ç¥ç¡"}]},{"classCode":41,"description":"ééã»ã³ãµ","name":"OPEN_CLOSE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"éåº¦æ¤ç¥ç¶æ
-ï¼","fields":[],"identifier":"DegreeOfOpeniNgDetectionStatus1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=éæ¤ç¥æã,0x31ï½0x38=éåº¦ã¬ãã«,0x39=éæ¤ç¥æãéåº¦ä¸æ"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"éåº¦æ¤ç¥ç¶æ
-ï¼","fields":[],"identifier":"DegreeOfOpeniNgDetectionStatus2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éæ¤ç¥æ,0x42=éæ¤ç¥æ"}]},{"classCode":42,"description":"æ´»åéã»ã³ãµ","name":"ACTIVITY_AMOUNT_SENSOR_EOBJ","propertyList":[{"access":["VARIABLE"],"arrayCount":128,"description":"æ´»åéã¬ãã«ï¼","fields":[],"identifier":"ActivityAmountLevel1","initialValue":null,"isArray":true,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET"],"arrayCount":0,"description":"äººä½ï¼©ï¼¤æ°æå¤§å¤","fields":[],"identifier":"MaximumNumberOfHumanBodyIdFs","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0001ï½0x0080(1ï½128)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ´»åéã¬ãã«ï¼","fields":[],"identifier":"ActivityAmountLevel2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET"],"arrayCount":16,"description":"å­å¨äººä½æ
-å ±","fields":[],"identifier":"HumanBodyExistenceInformation","initialValue":null,"isArray":true,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(è©³ç´°ã¯ãèª¬æ(5)åç
-§)"}]},{"classCode":43,"description":"äººä½ä½ç½®ã»ã³ãµ","name":"HUMAN_BODY_LOCATION_SENSOR_EOBJ","propertyList":[{"access":["VARIABLE"],"arrayCount":128,"description":"äººä½æ¤ç¥ä½ç½®ï¼","fields":[],"identifier":"HumanBodyDetectionLocation1","initialValue":null,"isArray":true,"primitive":false,"propertyCode":224,"required":["NONE"],"size":0,"type":"location_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"äººä½ï¼©ï¼¤æ°æå¤§å¤","fields":[],"identifier":"MaximumNumberOfHumanBodyIdFs","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0001ï½0x0080(1ï½128)"},{"access":["RULE_GET"],"arrayCount":0,"description":"äººä½æ¤ç¥ä½ç½®ï¼","fields":[{"arrayCount":0,"description":"Xåº§æ¨","fields":[],"identifier":"XCoordinate","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"Yåº§æ¨","fields":[],"identifier":"YCoordinate","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"Zåº§æ¨","fields":[],"identifier":"ZCoordinate","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"HumanBodyDetectionLocation2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":226,"required":["NONE"],"size":3,"type":"location_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":16,"description":"å­å¨äººä½æ
-å ±","fields":[],"identifier":"HumanBodyExistenceInformation","initialValue":null,"isArray":true,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(è©³ç´°ã¯ãèª¬æ(5)åç
-§)"}]},{"classCode":44,"description":"éªã»ã³ãµ","name":"SNOW_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤ç¥é¾å¤ã¬ãã«","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38(ã¬ãã«1ï½ã¬ãã«8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"éªæ¤ç¥ç¶æ
-","fields":[],"identifier":"SnowDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éªæ¤ç¥æ,0x42=éªæ¤ç¥ç¡"}]}]},{"classGroupCode":1,"description":"ç©ºèª¿é¢é£æ©å¨","define":"X1_AIR_CONDITIONER","classList":[{"classCode":48,"description":"å®¶åº­ç¨ã¨ã¢ã³ã³","name":"HOME_AIR_CONDITIONER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"éè»¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x45=éé¢¨,0x40=ãã®ä»"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦èªåè¨­å®","fields":[],"identifier":"AutomaticTemperatureControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=éAUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¥éåä½ã¢ã¼ãè¨­å®","fields":[],"identifier":"NormalHighSpeedSilentOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éå¸¸éè»¢,0x42=æ¥é,0x43=éé³"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"SetTemperatureValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x32(0ï½50â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¤æ¹¿ã¢ã¼ãæç¸å¯¾æ¹¿åº¦è¨­å®å¤","fields":[],"identifier":"SetValueOfRelativeHumidityInDehumidifyingMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å·æ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤","fields":[],"identifier":"SetTemperatureValueInCoolingMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":181,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x32(0ï½50â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤","fields":[],"identifier":"SetTemperatureValueInHeatingMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":182,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x32(0ï½50â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¤æ¹¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤","fields":[],"identifier":"SetTemperatureValueInDehumidifyingMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":183,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x32(0ï½50â)"},{"access":["RULE_GET"],"arrayCount":4,"description":"å®æ ¼æ¶è²»é»åå¤","fields":[],"identifier":"RatedPowerConsumption","initialValue":null,"isArray":true,"primitive":true,"propertyCode":184,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å·æ¿ï¼ææ¿ï¼é¤æ¹¿ï¼éé¢¨æ¶è²»é»æµè¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfCurrentConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":185,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0xFFFD(0ï½6553.3A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfRoomRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfRoomTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7D(-127ï½125â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã¦ã¼ã¶ãªã¢ã³ã³æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"SetTemperatureValueOfUserRemoteControl","initialValue":null,"isArray":false,"primitive":true,"propertyCode":188,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x32(0ï½50â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¹ãåºãæ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredCooledAirTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":189,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7D(-127ï½125â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¤æ°æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredOutdoorAirTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7D(-127ï½125â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¸å¯¾æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"RelativeTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"0.1â","valueDescription":"0x81ï½0x7D(-12.7ï½12.5â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨éè¨­å®","fields":[],"identifier":"AirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é¢¨éèªåè¨­å®,0x31ï½0x38=é¢¨éã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åèªåè¨­å®","fields":[],"identifier":"AutomaticControlOfAirFlowDirectionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":161,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=éAUTO,0x43=ä¸ä¸AUTO,0x44=å·¦å³AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åã¹ã¤ã³ã°è¨­å®","fields":[],"identifier":"AutomaticSwingOfAirFlowSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":163,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=é¢¨åã¹ã¤ã³ã°OFF,0x41=ä¸ä¸,0x42=å·¦å³,0x43=ä¸ä¸å·¦å³"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åä¸ä¸è¨­å®","fields":[],"identifier":"AirFlowDirectionVerticalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":164,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ä¸,0x42=ä¸,0x43=ä¸­å¤®,0x44=ä¸ä¸­,0x45=ä¸ä¸­"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åå·¦å³è¨­å®","fields":[],"identifier":"AirFlowDirectionHorizontalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":165,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å³,0x42=å·¦,0x43=ä¸­å¤®,0x44=å·¦å³,ä»ããã­ããã£è©³ç´°èª¬æã®è¡¨ã«è¨è¼ã®ã³ã¼ãã§ç¤ºãã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¹æ®ç¶æ
-","fields":[],"identifier":"SpecialState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":170,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=éå¸¸ç¶æ
-,0x41=é¤éç¶æ
-,0x42=äºç±ç¶æ
-,0x43=æç±ç¶æ
-"},{"access":["RULE_GET"],"arrayCount":0,"description":"éåªå
-ç¶æ
-","fields":[],"identifier":"NonPriorityState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":171,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=éå¸¸ç¶æ
-,0x41=éåªå
-ç¶æ
-"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°ã¢ã¼ãè¨­å®","fields":[],"identifier":"VentilationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ææ°ONï¼ææ°æ¹åï¼,0x42=ææ°OFF,0x43=ææ°ONï¼å¸æ°æ¹åï¼"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å æ¹¿ã¢ã¼ãè¨­å®","fields":[],"identifier":"HumidifierFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å æ¹¿ON,0x42=OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°é¢¨éè¨­å®","fields":[],"identifier":"VentilationAirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ææ°é¢¨éèªå,0x31ï½0x38=ææ°é¢¨éã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å æ¹¿éè¨­å®","fields":[],"identifier":"DegreeOfHumidificationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å æ¹¿éèªå,0x31ï½0x38=å æ¹¿éã¬ãã«"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ­è¼ç©ºæ°æ¸
-æµæ¹æ³","fields":[],"identifier":"MountedAirCleaningMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]é»æ°éå¡µæ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼\u000d\u000a[1]ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç©ºæ°æ¸
-æµæ©è½ã¢ã¼ãè¨­å®","fields":[{"arrayCount":0,"description":"é»æ°éå¡µæ¹å¼ã«ããç©ºæ°æ¸
-æµæ©è½ã®è¨­å®ç¶æ
-","fields":[],"identifier":"WhetherOrNotToUseTheElectricalDustCollectionBasedAirPurifierFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼ã«ããç©ºæ°æ¸
-æµæ©è½ã®è¨­å®ç¶æ
-","fields":[],"identifier":"WhetherOrNotToUseTheClusterIonBasedAirPurifierFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":6,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"AirPurifierFunctionSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":199,"required":["NONE"],"size":8,"type":"air_purifier_function_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æ­è¼ãªãã¬ãã·ã¥æ¹æ³","fields":[],"identifier":"MountedAirRefreshMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":200,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ãã¤ãã¹ã¤ãªã³æ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼\u000d\u000a[1]ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãªãã¬ãã·ã¥æ©è½ã¢ã¼ãè¨­å®","fields":[{"arrayCount":0,"description":"ãã¤ãã¹ã¤ãªã³æ¹å¼ã«ãããªãã¬ãã·ã¥æ©è½ã®è¨­å®ç¶æ
-","fields":[],"identifier":"WhetherOrNotToUseTheMinusIonBasedAirRefresherFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼ã«ãããªãã¬ãã·ã¥æ©è½ã®è¨­å®ç¶æ
-","fields":[],"identifier":"WhetherOrNotToUseTheClusterIonBasedAirRefresherFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":6,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"AirRefresherFunctionSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":201,"required":["NONE"],"size":8,"type":"air_refresher_function_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æ­è¼èªå·±æ´æµæ¹æ³","fields":[],"identifier":"MountedSelfCleaningMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":202,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ãªã¾ã³æ´æµæ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼\u000d\u000a[1]ä¹¾ç¥æ¹å¼æ­è¼æ
-å ±:0=éæ­è¼,1=æ­è¼"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"èªå·±æ´æµæ©è½ã¢ã¼ãè¨­å®","fields":[{"arrayCount":0,"description":"ãªã¾ã³æ´æµæ¹å¼ã«ããèªå·±æ´æµæ©è½ã®è¨­å®ç¶æ
-","fields":[],"identifier":"WhetherOrNotToUseTheOzoneBasedSelfCleaningFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"ä¹¾ç¥æ¹å¼ã«ããèªå·±æ´æµæ©è½ã®è¨­å®ç¶æ
-","fields":[],"identifier":"WhetherOrNotToUseTheDryingBasedSelfCleaningFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":6,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"SelfCleaningFunctionSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":203,"required":["NONE"],"size":8,"type":"self_cleaning_function_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¹å¥éè»¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"SpecialFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":204,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=è¨­å®ãªã,0x41=è¡£é¡ä¹¾ç¥,0x42=çµé²æå¶,0x43=ããã«ãæå¶,0x44=å¼·å¶é¤é,0x45ï½=for future reserved"},{"access":["RULE_GET"],"arrayCount":0,"description":"å
-é¨åä½ç¶æ
-","fields":[],"identifier":"OperationStatusOfComponents","initialValue":null,"isArray":false,"primitive":true,"propertyCode":205,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ã³ã³ãã¬ããµåä½ç¶æ
-:0=åæ­¢ä¸­,1=åä½ä¸­\u000d\u000a[1]ãµã¼ã¢ON\/OFFç¶æ
-:0=ãµã¼ã¢OFFç¶æ
-,1=ãµã¼ã¢ONç¶æ
-\u000d\u000a[2ï½7]for future reserved"},{"access":["RULE_SET"],"arrayCount":0,"description":"å¼·å¶ãµã¼ã¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"ThermostatSettingOverrideFunction","initialValue":null,"isArray":false,"primitive":true,"propertyCode":206,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=éå¸¸è¨­å®,0x41=å¼·å¶ãµã¼ã¢ON,0x42=å¼·å¶ãµã¼ã¢OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç©ºæ°æ¸
-æµã¢ã¼ãè¨­å®","fields":[],"identifier":"AirPurificationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":207,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç©ºæ°æ¸
-æµON,0x42=OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥ã,0x44=ç¸å¯¾æå»äºç´ã®ã¿å
-¥ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æé","valueDescription":"0x00ï½0xFF(0ï½255)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OffTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥ã,0x44=ç¸å¯¾æå»äºç´ã®ã¿å
-¥ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æé","valueDescription":"0x00ï½0xFF(0ï½255)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""}]},{"classCode":49,"description":"å·é¢¨æ©","name":"COLD_BLASTER_EOBJ","propertyList":[]},{"classCode":50,"description":"æé¢¨æ©","name":"ELECTRIC_FAN_EOBJ","propertyList":[]},{"classCode":51,"description":"ææ°æ","name":"VENTILATION_FAN_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°èªåè¨­å®","fields":[],"identifier":"VentilationAutoSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=éAUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°é¢¨éè¨­å®","fields":[],"identifier":"SetValueOfVentilationAirFlowRate","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ææ°é¢¨éèªåç¶æ
-,0x31ï½0x38=ææ°é¢¨éã¬ãã«"}]},{"classCode":52,"description":"ç©ºèª¿ææ°æ","name":"AIR_CONDITIONER_VENTILATION_FAN_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨­å®å¤","fields":[],"identifier":"SetValueOfRoomRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°èªåè¨­å®","fields":[],"identifier":"VentilationAutoSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=éAUTO"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfRoomRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°é¢¨éè¨­å®","fields":[],"identifier":"SetValueOfVentilationAirFlowRate","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ææ°é¢¨éèªåç¶æ
-,0x31ï½0x38=ææ°é¢¨éã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç±äº¤ææ©åä½è¨­å®","fields":[],"identifier":"HeatExchangerOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç±äº¤ææ©ON,0x42=OFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼£ï¼¯ï¼æ¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfCo2Concentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ppm","valueDescription":"0x0000ï½0xFFFD(0ï½65533ppm)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¶æ
-","fields":[],"identifier":"SmokeCigaretteDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç
-ï¼ã¿ãã³ï¼æ¤ç¥æ,0x42=ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ±ãæ¤ç¥ç¶æ
-","fields":[],"identifier":"PollutionDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ±ãæ¤ç¥æ,0x42=æ±ãæ¤ç¥ç¡"}]},{"classCode":53,"description":"ç©ºæ°æ¸
-æµå¨","name":"AIR_CLEANER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ãã£ã«ã¿ã¼äº¤æéç¥ç¶æ
-","fields":[],"identifier":"FilterChangeNotice","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ,0x42=ç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨éè¨­å®","fields":[],"identifier":"AirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ææ°é¢¨éèªåç¶æ
-,0x31ï½0x38=ææ°é¢¨éã¬ãã«"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¶æ
-","fields":[],"identifier":"SmokeCigaretteDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç
-ï¼ã¿ãã³ï¼æ¤ç¥æ,0x42=ç
-ï¼ã¿ãã³ï¼æ¤ç¥ç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-è§¦åªåä½è¨­å®","fields":[],"identifier":"OpticalCatalystOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å
-è§¦åªON,0x42=å
-è§¦åªOFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ºæ°æ±ãæ¤ç¥ç¶æ
-","fields":[],"identifier":"AirPollutionDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç©ºæ°æ±ãæ¤ç¥æ,0x42=ç©ºæ°æ±ãæ¤ç¥ç¡"}]},{"classCode":54,"description":"å·é¢¨æ","name":"COLD_BLAST_FAN_EOBJ","propertyList":[]},{"classCode":55,"description":"ãµã¼ã­ã¥ã¬ã¼ã¿","name":"CIRCULATOR_EOBJ","propertyList":[]},{"classCode":56,"description":"é¤æ¹¿æ©","name":"DEHUMIDIFIER_EOBJ","propertyList":[]},{"classCode":57,"description":"å æ¹¿å¨","name":"HUMIDIFIER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å æ¹¿è¨­å®ï¼","fields":[],"identifier":"HumidifyingSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0x64(0ï½100%),0x70=èªåè¨­å®,0x71=é£ç¶éè»¢,0x72=éæ¬ éè»¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å æ¹¿è¨­å®ï¼","fields":[],"identifier":"HumidifyingSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x33=å æ¹¿ã¬ãã«,0x70=èªåè¨­å®,0x71=é£ç¶éè»¢,0x72=éæ¬ éè»¢"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"ReservationSetOfOffTimer","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RelativeTimeValueSetOfOffTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ã¤ãªã³æ¾åºè¨­å®","fields":[],"identifier":"IonEmissionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ¾åºå
-¥,0x42=æ¾åºå"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ­è¼ã¤ãªã³æ¾åºæ¹æ³","fields":[],"identifier":"ImplementedIonEmissionMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ãã¤ãã¹ã¤ãªã³æ¹å¼\u000d\u000a[1]ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¹å¥éè»¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"SpecialOperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"è¨­å®æå¹ã®å ´åã1ã¨ãã\u000d\u000a[0]ã®ã©ä¹¾ç¥æå¶\u000d\u000a[1]éé³éè»¢\u000d\u000a[2ï½7]for future reserved"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ°´éã¬ãã«","fields":[],"identifier":"WaterAmountLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=ç©ºç¶æ
-,0x41ï½0x45(æä½ï½æé«ã¬ãã«)"}]},{"classCode":58,"description":"å¤©äºæ","name":"CEILING_FAN_EOBJ","propertyList":[]},{"classCode":59,"description":"é»æ°ããã¤","name":"ELECTRIC_KOTATSU_EOBJ","propertyList":[]},{"classCode":60,"description":"é»æ°ããã","name":"ELECTRIC_HEATING_PAD_EOBJ","propertyList":[]},{"classCode":61,"description":"é»æ°æ¯å¸","name":"ELECTRIC_BLANKET_EOBJ","propertyList":[]},{"classCode":62,"description":"ã¹ãã¼ã","name":"SPACE_HEATER_EOBJ","propertyList":[]},{"classCode":63,"description":"ããã«ãã¼ã¿","name":"PANEL_HEATER_EOBJ","propertyList":[]},{"classCode":64,"description":"é»æ°ã«ã¼ããã","name":"ELECTRIC_CARPET_EOBJ","propertyList":[]},{"classCode":65,"description":"ãã­ã¢ãã¼ã¿","name":"FLOOR_HEATER_EOBJ","propertyList":[]},{"classCode":66,"description":"é»æ°ææ¿æ©","name":"ELECTRIC_HEATER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦èªåè¨­å®","fields":[],"identifier":"AutomaticTemperatureControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=éAUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"TemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x32(0ï½50)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredRoomTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-128ï½127)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã¦ã¼ã¶ãªã¢ã³ã³æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"RemotelySetTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":188,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x32(0ï½50)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨éè¨­å®","fields":[],"identifier":"AirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é¢¨éèªåç¶æ
-,0x31ï½0x38=é¢¨éã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OffTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"SetValueOfOffTimerRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":67,"description":"ãã¡ã³ãã¼ã¿","name":"FAN_HEATER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"TemperatureSettingValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x32(0ï½50)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7D(-128ï½125)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦èªåè¨­å®","fields":[],"identifier":"AutomaticTemperatureControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=éAUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥,0x44=ç¸å¯¾æéäºç´ã®ã¿å
-¥"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingValueTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingValueRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OffTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥,0x44=ç¸å¯¾æéäºç´ã®ã¿å
-¥"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerSettingValueTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerValueRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å»¶é·éè»¢è¨­å®","fields":[],"identifier":"ExtentionalOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å»¶é·å
-¥,0x42=å»¶é·å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å»¶é·ã¿ã¤ãæéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"ExtentionalOperationTimerTimeSettingValue","initialValue":null,"isArray":false,"primitive":false,"propertyCode":193,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ã¤ãªã³æ¾åºè¨­å®","fields":[],"identifier":"IonEmissionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ¾åºå
-¥,0x42=æ¾åºå"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ­è¼ã¤ãªã³æ¾åºæ¹æ³","fields":[],"identifier":"ImplementedIonEmissionMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ãã¤ãã¹ã¤ãªã³æ¹å¼\u000d\u000a[1]ã¯ã©ã¹ã¿ã¤ãªã³æ¹å¼"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ²¹éã¬ãã«","fields":[],"identifier":"OilAmountLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=ç©ºç¶æ
-,0x41ï½0x45(æä½ï½æé«ã¬ãã«)"}]},{"classCode":68,"description":"å
-
-é»å¨","name":"BATTERY_CHARGER_EOBJ","propertyList":[]},{"classCode":69,"description":"æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³å®¤å
-æ©","name":"PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_INDOOR_UNIT_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"éè»¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x45=éé¢¨"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æ¸©åº¦è¨­å®å¤ï¼","fields":[],"identifier":"TemperatureSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"int8_t","unitDescription":"1â","valueDescription":"0x00ï½0x32(0ï½50â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¤æ¹¿ã¢ã¼ãæç¸å¯¾æ¹¿åº¦è¨­å®å¤ï¼","fields":[],"identifier":"RelativeHumiditySettingForDehumidificationMode1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"1ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å·æ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼","fields":[],"identifier":"TemperatureSettingForCoolingMode1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":181,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1â","valueDescription":"0x00ï½0x32(0ï½50â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼","fields":[],"identifier":"TemperatureSettingForHeatingMode1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":182,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1â","valueDescription":"0x00ï½0x32(0ï½50â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¤æ¹¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼","fields":[],"identifier":"TemperatureSettingForDehumidificationMode1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":183,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1â","valueDescription":"0x00ï½0x32(0ï½50â)"},{"access":["RULE_GET"],"arrayCount":4,"description":"å®¤å
-å®æ ¼æ¶è²»é»åå¤","fields":[],"identifier":"RatedPowerConsumptionOfIndoorUnit","initialValue":null,"isArray":true,"primitive":true,"propertyCode":184,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å·æ¿ï¼ææ¿ï¼é¤æ¹¿ï¼éé¢¨å®¤å
-æ¶è²»é»æµè¨æ¸¬å¤","fields":[],"identifier":"MeasuredElectricCurrentConsumptionOfIndoorUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":185,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0xFFFD(0ï½6553.3A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredIndoorRelativeHumidity1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"1ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredIndoorTemperature1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1â","valueDescription":"0x81ï½0x7D(-127ï½125â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¸å¯¾æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"RelativeTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"0.1â","valueDescription":"0x81ï½0x7D(-12.7ï½12.5â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨éè¨­å®","fields":[],"identifier":"AirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é¢¨éèªåç¶æ
-,0x31ï½0x38=é¢¨éã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åä¸ä¸è¨­å®","fields":[],"identifier":"AirFlowDirectionVerticalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":164,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=èªå,0x32=ã¹ã¤ã³ã°,0x41ï½0x49=é¢¨åä¸ä¸è¨­å®(æä¸ï½æä¸)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åå·¦å³è¨­å®","fields":[],"identifier":"AirFlowDirectionHorizontalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":165,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=èªå,0x32=ã¹ã¤ã³ã°,0x41=å³,0x42=å·¦,0x43=ä¸­å¤®,0x44=å·¦å³"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¹æ®ç¶æ
-","fields":[],"identifier":"SpecialState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":170,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=éå¸¸ç¶æ
-,0x42=äºç±ç¶æ
-,0x43=æç±ç¶æ
-"},{"access":["RULE_GET"],"arrayCount":0,"description":"ãµã¼ã¢ç¶æ
-","fields":[],"identifier":"ThermostatState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":172,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãµã¼ã¢on,0x42=ãµã¼ã¢off"},{"access":["RULE_GET"],"arrayCount":0,"description":"èªåéè»¢æéè»¢ã¢ã¼ãç¶æ
-","fields":[],"identifier":"CurrentFunctionAutomaticOperationMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":174,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x45=éé¢¨,0x40=ãã®ä»"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°ã¢ã¼ãè¨­å®","fields":[],"identifier":"VentilationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ®éææ°,0x42=å
-¨ç±äº¤ææ°,0x43=èªåææ°"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-¨ç±äº¤æå¨é£åè¨­å®","fields":[],"identifier":"CombinedOperationOfIndoorUnitAndTotalHeatExchanger","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å
-¨ç±äº¤æå¨é£å,0x42=å
-¨ç±äº¤æå¨éé£å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°é¢¨éè¨­å®","fields":[],"identifier":"VentilationAirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ææ°é¢¨éèªå,0x31ï½0x38=ææ°é¢¨éã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å¼·å¶åæ­¢è¨­å®","fields":[],"identifier":"DisablingOfAirConditionerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":205,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å¼·å¶åæ­¢,0x42=è§£é¤"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å¼·å¶ãµã¼ã¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"ThermostatSettingOverrideFunction","initialValue":null,"isArray":false,"primitive":true,"propertyCode":206,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=éå¸¸è¨­å®,0x41=å¼·å¶ãµã¼ã¢ON,0x42=å¼·å¶ãµã¼ã¢OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã£ã«ã¿ã¼ãµã¤ã³è¨­å®","fields":[],"identifier":"FilterCleaningReminderLampSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":207,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç¹ç¯,0x42=æ¶ç¯"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-æ¶è²»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredPowerConsumptionOfIndoorUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨å¼µå¼éåº¦ã¬ãã«","fields":[],"identifier":"ApertureOfExpansionValve","initialValue":null,"isArray":false,"primitive":true,"propertyCode":220,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100)"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æ¸©åº¦è¨­å®å¤ï¼","fields":[],"identifier":"TemperatureSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_SET","RULE_GET"],"size":2,"type":"int16_t","unitDescription":"0.1â","valueDescription":"0xFE0Cï½0x3E8(-50.0ï½100.0â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¤æ¹¿ã¢ã¼ãæç¸å¯¾æ¹¿åº¦è¨­å®å¤ï¼","fields":[],"identifier":"RelativeHumiditySettingForDehumidificationMode2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["RULE_SET","RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.10ï¼
-","valueDescription":"0x0000ï½0x3E8(0.0ï½100.0%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å·æ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼","fields":[],"identifier":"TemperatureSettingForCoolingMode2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1â","valueDescription":"0xFE0Cï½0x3E8(-50.0ï½100.0â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼","fields":[],"identifier":"TemperatureSettingForHeatingMode2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1â","valueDescription":"0xFE0Cï½0x3E8(-50.0ï½100.0â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¤æ¹¿ã¢ã¼ãææ¸©åº¦è¨­å®å¤ï¼","fields":[],"identifier":"TemperatureSettingForDehumidificationMode2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1â","valueDescription":"0xFE0Cï½0x3E8(-50.0ï½100.0â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredIndoorRelativeHumidity2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.10ï¼
-","valueDescription":"0x0000ï½0x3E8(0.0ï½100.0%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredIndoorTemperature2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1â","valueDescription":"0xF554ï½0x7FFD(-273.2ï½3276.5â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥,0x44=ç¸å¯¾æéäºç´ã®ã¿å
-¥"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æé","valueDescription":"0x00ï½0xFF(0ï½255)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OffTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æå»äºç´ãç¸å¯¾æéäºç´å
-±ã«å
-¥,0x42=äºç´å,0x43=æå»äºç´ã®ã¿å
-¥,0x44=ç¸å¯¾æéäºç´ã®ã¿å
-¥"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æé","valueDescription":"0x00ï½0xFF(0ï½255)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""}]},{"classCode":70,"description":"æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³å®¤å¤æ©","name":"PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_OUTDOOR_UNIT_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éè»¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x45=éé¢¨"},{"access":["RULE_GET"],"arrayCount":3,"description":"å®¤å¤å®æ ¼æ¶è²»é»åå¤","fields":[],"identifier":"RatedPowerConsumptionOfOutdoorUnit","initialValue":null,"isArray":true,"primitive":true,"propertyCode":184,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å·æ¿ï¼ææ¿ï¼é¤æ¹¿å®¤å¤æ¶è²»é»æµè¨æ¸¬å¤","fields":[],"identifier":"MeasuredElectricCurrentConsumptionOfOutdoorUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":185,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0xFFFD(0ï½6553.3A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¤æ°æ¸©åº¦è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredOutdoorAirTemperature1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1â","valueDescription":"0x81ï½0x7D(-127ï½125â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¹æ®ç¶æ
-","fields":[],"identifier":"SpecialState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":170,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=éå¸¸ç¶æ
-,0x41=é¤éç¶æ
-"},{"access":["RULE_GET"],"arrayCount":0,"description":"å§ç¸®æ©åä½ç¶æ
-","fields":[],"identifier":"OperationStatusOfCompressor","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å§ç¸®æ©ON,0x42=å§ç¸®æ©OFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"éè»¢ã¢ã¼ãç¶æ
-","fields":[],"identifier":"OperationModeInformation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x42=å·æ¿,0x43=ææ¿,0x44=é¤æ¹¿,0x40=ãã®ä»"},{"access":["RULE_GET"],"arrayCount":0,"description":"ãã¡ã³åè»¢ã¬ãã«","fields":[],"identifier":"FanRotationSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å¤æ¶è²»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredPowerConsumptionOfOutdoorUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¤æ°æ¸©åº¦è¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredOutdoorAirTemperature2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1â","valueDescription":"0xF554ï½0x7FFD(-273.2ï½3276.5â)"}]},{"classCode":71,"description":"æ¥­åç¨ããã±ã¼ã¸ã¨ã¢ã³ã³èç±ã¦ããã","name":"PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_THERMAL_STORAGE_UNIT_EOBJ","propertyList":[]},{"classCode":72,"description":"æ¥­åç¨ãã¡ã³ã³ã¤ã«ã¦ããã","name":"COMMERCIAL_FAN_COIL_UNIT_EOBJ","propertyList":[]},{"classCode":73,"description":"æ¥­åç¨ç©ºèª¿å·ç±æº(ãã©ã¼)","name":"COMMERCIAL_AIR_CONDITIONING_COLD_SOURCE_CHILLER_EOBJ","propertyList":[]},{"classCode":80,"description":"æ¥­åç¨ç©ºèª¿æ¸©ç±æº(ãã¤ã©ã¼)","name":"COMMERCIAL_AIR_CONDITIONING_HOT_SOURCE_BOILER_EOBJ","propertyList":[]},{"classCode":81,"description":"æ¥­åç¨ç©ºèª¿VAV","name":"AIR_CONDITIONING_VAV_FOR_COMMERCIAL_APPLICATIONS_EOBJ","propertyList":[]},{"classCode":82,"description":"æ¥­åç¨ç©ºèª¿ã¨ã¢ãã³ããªã³ã°ã¦ããã","name":"AIR_HANDLING_UNIT_AIR_CONDITIONING_FOR_COMMERCIAL_APPLICATIONS_EOBJ","propertyList":[]},{"classCode":83,"description":"ã¦ãããã¯ã¼ã©ã¼","name":"UNIT_COOLER_EOBJ","propertyList":[]},{"classCode":84,"description":"æ¥­åç¨ã³ã³ãã³ã·ã³ã°ã¦ããã","name":"CONDENSING_UNIT_FOR_COMMERCIAL_APPLICATIONS_EOBJ","propertyList":[]}]},{"classGroupCode":2,"description":"ä½å®
-ã»è¨­åé¢é£æ©å¨","define":"X1_AMENITY","classList":[{"classCode":96,"description":"é»åãã©ã¤ã³ã","name":"ELECTRICALLY_OPERATED_SHADE_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ééè¨­å®","fields":[],"identifier":"OpenCloseSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é,0x42=é"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"éåº¦ã¬ãã«è¨­å®","fields":[],"identifier":"DegreeOfOpeningLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã©ã¤ã³ãè§åº¦è¨­å®å¤","fields":[],"identifier":"SetValueOfShadeAngle","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"degree","valueDescription":"0x00ï½0xB4(0ï½180degree)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã©ã¤ã³ãéééåº¦è¨­å®","fields":[],"identifier":"ShadeOpenCloseSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ä½,0x42=ä¸­,0x43=é«"}]},{"classCode":97,"description":"é»åã·ã£ãã¿ã¼","name":"ELECTRICALLY_OPERATED_SHUTTER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ééè¨­å®ï¼","fields":[],"identifier":"OpenCloseSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é,0x42=é,0x43=åæ­¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éåº¦ã¬ãã«è¨­å®ï¼","fields":[],"identifier":"ExtentOfOpening1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã©ã¤ã³ãè§åº¦è¨­å®å¤","fields":[],"identifier":"BlindAngleSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"degree","valueDescription":"0x00ï½0xB4(0ï½180degree)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ã·ã£ãã¿ã¼éééåº¦è¨­å®","fields":[],"identifier":"ShutterSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ä½,0x42=ä¸­,0x43=é«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éåº¦ã¬ãã«è¨­å®ï¼","fields":[],"identifier":"ExtentOfOpening2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF(0ï½255)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é»æ°é è¨­å®","fields":[],"identifier":"ElectricLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ½é ,0x42=éé ,0x41=è¨±å¯,0x42=ç¦æ­¢"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ééè¨­å®ï¼","fields":[],"identifier":"OpenCloseSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é,0x42=é"}]},{"classCode":98,"description":"é»åã«ã¼ãã³","name":"ELECTRICALLY_OPERATED_CURTAIN_EOBJ","propertyList":[]},{"classCode":99,"description":"é»åé¨æ¸","name":"ELECTRICALLY_OPERATED_STORM_WINDOW_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ééè¨­å®ï¼","fields":[],"identifier":"OpenCloseSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é,0x42=é,0x43=åæ­¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éåº¦ã¬ãã«è¨­å®ï¼","fields":[],"identifier":"ExtentOfOpening1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã©ã¤ã³ãè§åº¦è¨­å®å¤","fields":[],"identifier":"BlindAngleSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"degree","valueDescription":"0x00ï½0xB4(0ï½180degree)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ã·ã£ãã¿ã¼éééåº¦ã¬ãã«è¨­å®","fields":[],"identifier":"ShutterSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ä½,0x42=ä¸­,0x43=é«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éåº¦ã¬ãã«è¨­å®ï¼","fields":[],"identifier":"ExtentOfOpening2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF(0ï½255)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é»æ°é è¨­å®","fields":[],"identifier":"ElectricLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ½é ,0x42=éé ,0x41=è¨±å¯,0x42=ç¦æ­¢"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ééè¨­å®ï¼","fields":[],"identifier":"OpenCloseSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é,0x42=é"}]},{"classCode":100,"description":"é»åã¬ã¬ã¼ã¸","name":"ELECTRICALLY_OPERATED_DOOR_EOBJ","propertyList":[]},{"classCode":101,"description":"é»åå¤©çª","name":"ELECTRICALLY_OPERATED_SKYLIGHT_EOBJ","propertyList":[]},{"classCode":102,"description":"ãªã¼ãã³ã°ï¼æ¥ããï¼","name":"AWNING_EOBJ","propertyList":[]},{"classCode":103,"description":"æ£æ°´å¨ï¼åº­ç¨ï¼","name":"GARDEN_SPRINKLER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ£æ°´å¼ééè¨­å®","fields":[],"identifier":"SprinkleValveOpenCloseSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=èªåON,0x41=æåON,0x42=æåOFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´ããééè¨­å®","fields":[],"identifier":"SprinkleIntervalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x40=å,0x41=æ¯æ¥,0x42=ï¼æ¥ãã,0x43=ï¼æ¥ãã,0x44=é±ï¼å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´ããåæ°è¨­å®","fields":[],"identifier":"NumberOfSprinklesSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ï¼çªç®ON,0x42=ï¼çªç®ON,0x43=ä¸¡æ¹ON"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´ããæå»è¨­å®ï¼","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"SprinkleTimeSetting1","initialValue":null,"isArray":false,"primitive":false,"propertyCode":227,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´ããæå»è¨­å®ï¼","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"SprinkleTimeSetting2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´ããæéè¨­å®","fields":[],"identifier":"SprinkleDurationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0x3B(0ï½59)"}]},{"classCode":104,"description":"æ£æ°´å¨ï¼ç«ç½ç¨ï¼","name":"FIRE_SPRINKLER_EOBJ","propertyList":[]},{"classCode":105,"description":"å´æ°´","name":"FOUNTAIN_EOBJ","propertyList":[]},{"classCode":106,"description":"ç¬éæ¹¯æ²¸å¨","name":"INSTANTANEOUS_WATER_HEATER_EOBJ","propertyList":[]},{"classCode":107,"description":"é»æ°æ¸©æ°´å¨","name":"ELECTRIC_WATER_HEATER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ²¸ãä¸ãèªåè¨­å®","fields":[],"identifier":"AutomaticWaterHeatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªåæ²¸ãä¸ã,0x43=æåæ²¸ãä¸ãåæ­¢,0x42=æåæ²¸ãä¸ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ²¸ãä¸ãæ¹¯æ¸©èªåè¨­å®","fields":[],"identifier":"AutomaticWaterTemperatureControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=éAUTO"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ²¸ãä¸ãä¸­ç¶æ
-","fields":[],"identifier":"WaterHeaterStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ²¸ãä¸ãä¸­,0x42=éæ²¸ãä¸ãä¸­"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ²¸ãä¸ãæ¹¯æ¸©è¨­å®å¤","fields":[],"identifier":"WaterHeatingTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¼éæ²¸ãå¢ãè¨±å¯è¨­å®","fields":[],"identifier":"DaytimeReheatingPermissionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ¼éæ²¸ãå¢ãè¨±å¯,0x42=æ¼éæ²¸ãå¢ãç¦æ­¢"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ¸©æ°´å¨æ¹¯æ¸©è¨æ¸¬å¤","fields":[],"identifier":"MeasuredTemperatureOfWaterInWaterHeater","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"è­¦å ±çºçç¶æ
-","fields":[{"arrayCount":0,"description":"è­¦å ±","fields":[],"identifier":"Alarm","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]æ¹¯åãè­¦å ±:0=æ­£å¸¸,1=çºç\u000d\u000a[1]æ¼æ°´è­¦å ±:0=æ­£å¸¸,1=çºç\u000d\u000a[2]åçµè­¦å ±:0=æ­£å¸¸,1=çºç\u000d\u000a[3ï½7]for future reserved"},{"arrayCount":3,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"AlarmStatus","initialValue":null,"isArray":false,"primitive":false,"propertyCode":194,"required":["RULE_GET"],"size":4,"type":"alarm_status_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çµ¦æ¹¯æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"TemperatureOfSuppliedWaterSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¸©åº¦è¨­å®å¤","fields":[],"identifier":"BathWaterTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ²¸ãä¸ãæ¹¯éè¨­å®å¤","fields":[],"identifier":"BathWaterVolumeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ®æ¹¯éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredAmountOfWaterRemainingInTank","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ã","valueDescription":"0x0000ï½0xFFFD(0ï½65533ã)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã¿ã³ã¯å®¹éå¤","fields":[],"identifier":"TankCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ã","valueDescription":"0x0000ï½0xFFFD(0ï½65533ã)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åèªåã¢ã¼ãè¨­å®","fields":[],"identifier":"AutomaticBathWaterHeatingModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªåå
-¥,0x42=èªåè§£é¤"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åè¶³ãæ¹¯åä½è¨­å®","fields":[],"identifier":"AdditionOfHotWaterFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=è¶³ãæ¹¯å
-¥,0x42=è¶³ãæ¹¯å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åã¬ããåä½è¨­å®","fields":[],"identifier":"SlightBathWaterTemperatureLoweringFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã¬ããå
-¥,0x42=ã¬ããå"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼","fields":[],"identifier":"BathWaterVolumeSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ã","valueDescription":"0x00ï½0xFD(0ï½253ã)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼","fields":[],"identifier":"BathWaterVolumeSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼","fields":[],"identifier":"BathWaterVolumeSetting3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ã","valueDescription":"0x0000ï½0xFFFD(0ï½65533ã)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼","fields":[],"identifier":"BathWaterVolumeSetting4","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼è¨­å®å¯è½æå¤§ã¬ãã«","fields":[],"identifier":"BathWaterVolumeSetting4MaximumSettableLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"å¬å­£ï¼¨ï¼ï¼°ã¦ãããå®æ ¼æ¶è²»é»å","fields":[],"identifier":"RatedPowerConsumptionOfHPUnitInWintertime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä¸­éæï¼¨ï¼ï¼°ã¦ãããå®æ ¼æ¶è²»é»å","fields":[],"identifier":"RatedPowerConsumptionOfHPUnitInInBetweenSeasons","initialValue":null,"isArray":false,"primitive":true,"propertyCode":220,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¤å­£ï¼¨ï¼ï¼°ã¦ãããå®æ ¼æ¶è²»é»å","fields":[],"identifier":"RatedPowerConsumptionOfHPUnitInSummertime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":221,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"}]},{"classCode":108,"description":"å¤ªé½ç±æ¸©æ°´å¨","name":"SOLAR_WATER_HEATER_EOBJ","propertyList":[]},{"classCode":109,"description":"å¾ªç°ãã³ã","name":"CIRCULATION_PUMP_EOBJ","propertyList":[]},{"classCode":110,"description":"é»æ°ä¾¿åº§ï¼æ¸©æ°´æ´æµä¾¿åº§ã»ææ¿ä¾¿åº§ãªã©ï¼","name":"BIDET_EQUIPPED_TOILET_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¾¿åº§æ¸©åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"TemperatureLevelOfToiletSeat","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x3A"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¾¿åº§ãã¼ã¿è¨­å®","fields":[],"identifier":"HeaterSettingOfToiletSeat","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ON,0x42=OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¾¿åº§ãã¼ã¿ä¸æåæ­¢è¨­å®","fields":[],"identifier":"TemporalHaltSettingOfToiletSeat","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é£ç¶è¨­å®,0x42=ä¸åè¨­å®,0x43=è¨­å®ãªã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¾¿åº§ãã¼ã¿ä¸æåæ­¢éå§æå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TemporalHaltStartTimeOfToiletSeat","initialValue":null,"isArray":false,"primitive":false,"propertyCode":227,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¾¿åº§ãã¼ã¿ä¸æåæ­¢æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TemporalHaltTimeDurationOfToiletSeat","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¨å±ææ¿æ¸©åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"TemperatureLevelSettingOfRoomHeating","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=ä½,0x32=ä¸­,0x33=é«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¨å±ææ¿è¨­å®","fields":[],"identifier":"RoomHeatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é¨å±ææ¿ON,0x42=é¨å±ææ¿OFF,0x43=ã¿ã¤ãã¢ã¼ãè¨­å®"},{"access":["RULE_GET"],"arrayCount":0,"description":"é¨å±ææ¿ç¶æ
-","fields":[],"identifier":"RoomHeatingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ON,0x42=OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¨å±ææ¿éå§æå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"StartTimeOfRoomHeating","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¨å±ææ¿éè»¢æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"DurationTimeOfRoomHreating","initialValue":null,"isArray":false,"primitive":false,"propertyCode":233,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¹å¥éè»¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"SpecialOperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=è¨­å®ãªã,0x41=å·ãè¾¼ã¿é²æ­¢,0x42ï½=for future reserved"},{"access":["RULE_GET"],"arrayCount":0,"description":"äººä½æ¤ç¥ç¶æ
-","fields":[],"identifier":"HumanDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äººä½æ¤ç¥æ,0x42=äººä½æ¤ç¥ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"çåº§æ¤ç¥ç¶æ
-","fields":[],"identifier":"SeatingDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çåº§æ¤ç¥æ,0x42=çåº§æ¤ç¥ç¡"}]},{"classCode":111,"description":"é»æ°é ","name":"ELECTRIC_KEY_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æ½é è¨­å®ï¼","fields":[],"identifier":"LockSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ½é ,0x42=è§£é "},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ½é è¨­å®ï¼","fields":[],"identifier":"LockSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ½é ,0x42=è§£é "},{"access":["RULE_GET"],"arrayCount":0,"description":"ãã¢ã¬ã¼ãæ½é ç¶æ
-","fields":[],"identifier":"LockStatusOfDoorGuard","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ½é ,0x42=è§£é "},{"access":["RULE_GET"],"arrayCount":0,"description":"æééç¶æ
-","fields":[],"identifier":"DoorOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é,0x42=é"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¨å®¤ã»ä¸å¨ç¶æ
-","fields":[],"identifier":"OccupantNonOccupantStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å¨å®¤,0x42=ä¸å¨"},{"access":["RULE_GET"],"arrayCount":0,"description":"è­¦å ±ç¶æ
-","fields":[],"identifier":"AlarmStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=éå¸¸ç¶æ
-ï¼è­¦å ±ãªãï¼,0x41=ããéã,0x42=æéæ¾,0x43=æåè§£é ,0x44=ã¿ã³ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"èªåæ½é ã¢ã¼ãè¨­å®","fields":[],"identifier":"AutoLockModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å
-¥,0x42=å"}]},{"classCode":112,"description":"ã¬ã¹å
-å¼","name":"GAS_LINE_VALVE_EOBJ","propertyList":[]},{"classCode":113,"description":"ãã¼ã ãµã¦ã","name":"HOME_SAUNA_EOBJ","propertyList":[]},{"classCode":114,"description":"ç¬éå¼çµ¦æ¹¯å¨","name":"HOT_WATER_GENERATOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"çµ¦æ¹¯å¨çç¼ç¶æ
-","fields":[],"identifier":"HotWaterHeatingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çµ¦æ¹¯çç¼ç¶æ
-æ,0x42=ç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çµ¦æ¹¯æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"SetValueOfHotWaterTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çµ¦æ¹¯ä¿æ¸©è¨­å®","fields":[],"identifier":"HotWaterWarmerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çµ¦æ¹¯ä¿æ¸©åä½,0x42=çµ¦æ¹¯ä¿æ¸©åä½è§£é¤"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"èªåéè»¢æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"DurationOfAutomaticOperationSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":218,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":"0xFFFF=ç¡é"},{"access":["RULE_GET"],"arrayCount":0,"description":"èªåéè»¢æ®æé","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RemainingAutomaticOperationTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":219,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":"0xFFFF=ç¡é"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¸©åº¦è¨­å®å¤","fields":[],"identifier":"SetValueOfBathTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100)"},{"access":["RULE_GET"],"arrayCount":0,"description":"é¢¨åçµ¦æ¹¯å¨çç¼ç¶æ
-","fields":[],"identifier":"BathWaterHeaterStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çç¼ç¶æ
-æ,0x42=ç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åèªåã¢ã¼ãè¨­å®","fields":[],"identifier":"BathAutoModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªåå
-¥,0x42=èªåè§£é¤"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åè¿½ãçãåä½è¨­å®","fields":[],"identifier":"BathAdditionalBoilUpOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=è¿½ãçãå
-¥,0x42=è¿½ãçãå"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åè¶³ãæ¹¯åä½è¨­å®","fields":[],"identifier":"BathHotWaterAddingOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=è¶³ãæ¹¯å
-¥,0x42=è¶³ãæ¹¯å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åã¬ããåä½è¨­å®","fields":[],"identifier":"BathWaterTemperatureLoweringOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã¬ããå
-¥,0x42=ã¬ããå"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼","fields":[],"identifier":"BathHotWaterVolumeSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ã","valueDescription":"0x00ï½0xFD(0ï½253ã)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼","fields":[],"identifier":"BathHotWaterVolumeSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼","fields":[],"identifier":"BathHotWaterVolumeSetting3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ã","valueDescription":"0x0000ï½0xFFFD(0ï½65533ã)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼","fields":[],"identifier":"BathHotWaterVolumeSetting4","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"é¢¨åæ¹¯éè¨­å®ï¼è¨­å®å¯è½æå¤§ã¬ãã«","fields":[],"identifier":"BathHotWaterVolumeSetting4MaximumSettableLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æµ´å®¤åªå
-è¨­å®","fields":[],"identifier":"BathroomPrioritySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æµ´å®¤åªå
-å
-¥,0x42=æµ´å®¤åªå
-å"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã·ã£ã¯ã¼çµ¦æ¹¯ç¶æ
-","fields":[],"identifier":"ShowerHotWaterSupplyStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã·ã£ã¯ã¼çµ¦æ¹¯ç¶æ
-æ,0x42=ã·ã£ã¯ã¼çµ¦æ¹¯ç¶æ
-ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"å°æçµ¦æ¹¯ç¶æ
-","fields":[],"identifier":"KitchenHotWaterSupplyStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å°æçµ¦æ¹¯ç¶æ
-æ,0x42=å°æçµ¦æ¹¯ç¶æ
-ç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çµ¦æ¹¯ä¿æ¸©ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"HotWaterWarmerOnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çµ¦æ¹¯ä¿æ¸©ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"SetValueOfHotWaterWarmerOnTimerTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":237,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åèªåï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åèªåï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"SetValueOfOnTimerTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åèªåï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"SetValueOfOnTimerRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":115,"description":"æµ´å®¤ææ¿ä¹¾ç¥æ©","name":"BATHROOM_DRYER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éè»¢è¨­å®","fields":[],"identifier":"OperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x10=ææ°éè»¢,0x20=å
-¥æµ´åäºåææ¿éè»¢,0x30=å
-¥æµ´ä¸­ææ¿éè»¢,0x40=ä¹¾ç¥éè»¢,0x50=æ¶¼é¢¨éè»¢,0x00=åæ­¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°éè»¢è¨­å®","fields":[],"identifier":"VentilationOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=é¢¨éã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-¥æµ´åäºåææ¿éè»¢è¨­å®","fields":[],"identifier":"BathroomPreWarmerOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=è½åã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-¥æµ´ä¸­ææ¿éè»¢è¨­å®","fields":[],"identifier":"BathroomHeaterOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=è½åã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¹¾ç¥éè»¢è¨­å®","fields":[],"identifier":"BathroomDryerOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=è½åã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¶¼é¢¨éè»¢è¨­å®","fields":[],"identifier":"CoolAirCirculatorOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":181,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=æ¨æº,0x31ï½0x38=è½åã¬ãã«"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-ç¸å¯¾æ¹¿åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredRelativeBathroomHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredBathroomTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7D(-127ï½125â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææ°é¢¨éè¨­å®","fields":[],"identifier":"VentilationAirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x31ï½0x38=é¢¨éã¬ãã«"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã£ã«ã¿ãµã¤ã³è¨­å®","fields":[],"identifier":"FilterCleaningReminderSignSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":207,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç¹ç¯,0x42=æ¶ç¯"},{"access":["RULE_GET"],"arrayCount":0,"description":"äººä½æ¤ç¥ç¶æ
-","fields":[],"identifier":"HumanBodyDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äººä½æ¤ç¥ãã,0x42=äººä½æ¤ç¥ãªã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®ï¼","fields":[],"identifier":"OnTimerBasedReservationSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®ï¼","fields":[],"identifier":"OnTimerBasedReservationSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x10=ææ°éè»¢äºç´,0x20=å
-¥æµ´åäºåææ¿éè»¢äºç´,0x30=å
-¥æµ´ä¸­ææ¿éè»¢äºç´,0x40=ä¹¾ç¥éè»¢äºç´,0x50=æ¶¼é¢¨éè»¢äºç´,0x00=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OffTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":116,"description":"ãã¼ã ã¨ã¬ãã¼ã¿","name":"HOME_ELEVATOR_EOBJ","propertyList":[]},{"classCode":117,"description":"é»åéä»åã","name":"ELECTRICALLY_OPERATED_ROOM_DIVIDER_EOBJ","propertyList":[]},{"classCode":118,"description":"æ°´å¹³ãã©ã³ã¹ãã¡","name":"HORIZONTAL_TRANSFER_EOBJ","propertyList":[]},{"classCode":119,"description":"é»åç©å¹²ã","name":"ELECTRICALLY_OPERATED_CLOTHES_DRYING_POLE_EOBJ","propertyList":[]},{"classCode":120,"description":"æµåæ§½","name":"SEPTIC_TANK_EOBJ","propertyList":[]},{"classCode":121,"description":"ä½å®
-ç¨å¤ªé½å
-çºé»","name":"HOME_SOLAR_POWER_GENERATION_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ç³»çµ±é£ç³»ç¶æ
-","fields":[],"identifier":"SystemInterconnectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æçºé»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousAmountOfElectricityGenerated","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®çºé»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricityGenerated","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"ç©ç®çºé»é»åéãªã»ããè¨­å®","fields":[],"identifier":"ResettingCumulativeAmountOfElectricityGenerated","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®å£²é»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricitySold","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"ç©ç®å£²é»é»åéãªã»ããè¨­å®","fields":[],"identifier":"ResettingCumulativeAmountOfElectricitySold","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çºé»é»åå¶éè¨­å®ï¼","fields":[],"identifier":"PowerGenerationOutputLimitSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çºé»é»åå¶éè¨­å®ï¼","fields":[],"identifier":"PowerGenerationOutputLimitSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å£²é»é»åå¶éè¨­å®","fields":[],"identifier":"LimitSettingForTheAmountOfElectricitySold","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å®æ ¼çºé»é»åå¤ï¼ç³»çµ±é£ç³»æï¼","fields":[],"identifier":"RatedPowerGenerationOutputSystemInterconnected","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å®æ ¼çºé»é»åå¤ï¼ç¬ç«æï¼","fields":[],"identifier":"RatedPowerGenerationOutputIndependent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533)"}]},{"classCode":122,"description":"å·æ¸©æ°´ç±æºæ©","name":"COLD_AND_HOT_WATER_HEAT_SOURCE_EQUIPMENT_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éè»¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ææ¿,0x42=å·æ¿"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´æ¸©è¨­å®ï¼","fields":[],"identifier":"WaterTemperatureSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â),0x71=AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´æ¸©è¨­å®ï¼","fields":[],"identifier":"WaterTemperatureSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x21ï½0x2F=å·æ¿ï¼å·æ°´ï¼(æä½ã¬ãã«ï½æé«ã¬ãã«),0x31ï½0x3F=ææ¿ï¼æ¸©æ°´ï¼(æä½ã¬ãã«ï½æé«ã¬ãã«),0x41=AUTO"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¾ãæ°´æ¸©è¨æ¸¬å¤ï¼åºå£æ°´æ¸©ï¼","fields":[],"identifier":"MeasuredTemperatureOfOutwardWaterExitWaterTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ»ãæ°´æ¸©è¨æ¸¬å¤ï¼å
-¥å£æ°´æ¸©ï¼","fields":[],"identifier":"MeasuredTemperatureOfInwardWaterEntranceWaterTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¹æ®éè»¢è¨­å®","fields":[],"identifier":"SpecialOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éå¸¸éè»¢,0x42=ã²ãããéè»¢,0x43=ãã¤ãã¯ã¼éè»¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã¤ãªã¼ã¿ã¤ãã¼è¨­å®","fields":[],"identifier":"DailyTimerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=ã¿ã¤ãã¼å,0x41=ã¿ã¤ãã¼1,0x42=ã¿ã¤ãã¼2"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã¤ãªã¼ã¿ã¤ãã¼ï¼è¨­å®","fields":[{"arrayCount":0,"description":"ï¼æããï¼æ","fields":[],"identifier":"FromZeroToThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼æããï¼æ","fields":[],"identifier":"FromFourToSevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼æããï¼ï¼æ","fields":[],"identifier":"FromEightToElevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromTwelveToFifteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromSixteenToNineteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromTwentyToTwentyThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"}],"identifier":"DailyTimerSetting1","initialValue":null,"isArray":false,"primitive":false,"propertyCode":231,"required":["NONE"],"size":6,"type":"daily_timer_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã¤ãªã¼ã¿ã¤ãã¼ï¼è¨­å®","fields":[{"arrayCount":0,"description":"ï¼æããï¼æ","fields":[],"identifier":"FromZeroToThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼æããï¼æ","fields":[],"identifier":"FromFourToSevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼æããï¼ï¼æ","fields":[],"identifier":"FromEightToElevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromTwelveToFifteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromSixteenToNineteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromTwentyToTwentyThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"}],"identifier":"DailyTimerSetting2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":6,"type":"daily_timer_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RelativeOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OffTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TimeSetByOffTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RelativeOffTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":123,"description":"åºææ¿","name":"FLOOR_HEATER2_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦è¨­å®ï¼","fields":[],"identifier":"TemperatureSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x32(0ï½50â),0x41=AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¸©åº¦è¨­å®ï¼","fields":[],"identifier":"TemperatureSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x3F(æä½ï½æé«ã¬ãã«),0x41=AUTO"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®¤å
-æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredRoomTeemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7D(-127ï½125â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"åºæ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredFloorTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7D(-127ï½125â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ã¾ã¼ã³åæ¿ãè¨­å®","fields":[],"identifier":"ZoneChangeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ã¾ã¼ã³0:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[1]ã¾ã¼ã³1:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[2]ã¾ã¼ã³2:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[3]ã¾ã¼ã³3:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[4]ã¾ã¼ã³4:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[5]ã¾ã¼ã³5:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[6]ã¾ã¼ã³6:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã\u000d\u000a[7]ã¾ã¼ã³7:1=å¶å¾¡æã,0=å¶å¾¡ç¡ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¹æ®éè»¢è¨­å®","fields":[],"identifier":"SpecialOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éå¸¸éè»¢,0x42=ã²ãããéè»¢,0x43=ãã¤ãã¯ã¼éè»¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã¤ãªã¼ã¿ã¤ãã¼è¨­å®","fields":[],"identifier":"DailyTimerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=ã¿ã¤ãã¼å,0x41=ã¿ã¤ãã¼1,0x42=ã¿ã¤ãã¼2"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã¤ãªã¼ã¿ã¤ãã¼ï¼è¨­å®","fields":[{"arrayCount":0,"description":"ï¼æããï¼æ","fields":[],"identifier":"FromZeroToThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼æããï¼æ","fields":[],"identifier":"FromFourToSevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼æããï¼ï¼æ","fields":[],"identifier":"FromEightToElevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromTwelveToFifteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromSixteenToNineteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromTwentyToTwentyThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"}],"identifier":"DailyTimerSetting1","initialValue":null,"isArray":false,"primitive":false,"propertyCode":231,"required":["NONE"],"size":6,"type":"daily_timer_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã¤ãªã¼ã¿ã¤ãã¼ï¼è¨­å®","fields":[{"arrayCount":0,"description":"ï¼æããï¼æ","fields":[],"identifier":"FromZeroToThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼æããï¼æ","fields":[],"identifier":"FromFourToSevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼æããï¼ï¼æ","fields":[],"identifier":"FromEightToElevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromTwelveToFifteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromSixteenToNineteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"},{"arrayCount":0,"description":"ï¼ï¼æããï¼ï¼æ","fields":[],"identifier":"FromTwentyToTwentyThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[1]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[2]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[3]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[4]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[5]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[6]ï¼ï¼æï¼å:1=éè»¢,0=åæ­¢\u000d\u000a[7]ï¼ï¼æï¼ï¼å:1=éè»¢,0=åæ­¢"}],"identifier":"DailyTimerSetting2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":6,"type":"daily_timer_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TimeSetByOnTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RelativeOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OffTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TimeSetByOffTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RelativeOffTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":124,"description":"çæé»æ± ","name":"FUEL_CELL_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"æ¸©æ°´å¨æ¹¯æ¸©è¨æ¸¬å¤","fields":[],"identifier":"MeasuredTemperatureOfWaterInWaterHeater","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼çºé»é","fields":[],"identifier":"RatedPowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"è²¯æ¹¯æ§½ç±é","fields":[],"identifier":"HeatingValueOfHotWaterStorageTank","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"MJ","valueDescription":"0x0000ï½0xFFFD(0ï½65,533MJ)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æçºé»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousPowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®çºé»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativePowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"ç©ç®çºé»é»åéãªã»ããè¨­å®","fields":[],"identifier":"CumulativePowerGenerationOutputResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æã¬ã¹æ¶è²»éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":199,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.001ã¥\/h","valueDescription":"0x0000ï½0xFFFD(0ï½65.533ã¥\/h)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":200,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"},{"access":["RULE_SET"],"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»éãªã»ããè¨­å®","fields":[],"identifier":"CumulativeGasConsumptionResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":201,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_SET"],"arrayCount":0,"description":"çºé»åä½è¨­å®","fields":[],"identifier":"PowerGenerationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":202,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çºé»åä½,0x42=çºé»åæ­¢"},{"access":["RULE_GET"],"arrayCount":0,"description":"çºé»åä½ç¶æ
-","fields":[],"identifier":"PowerGenerationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":203,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çºé»ä¸­,0x42=åæ­¢ä¸­,0x43=èµ·åä¸­,0x44=åæ­¢åä½ä¸­,0x45=ã¢ã¤ãã«ä¸­"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®
-å
-ç¬ææ¶è²»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInHouseInstantaneousPowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":204,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®
-å
-ç©ç®æ¶è²»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInHouseCumulativePowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":205,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"å®
-å
-ç©ç®æ¶è²»é»åéãªã»ããè¨­å®","fields":[],"identifier":"InHouseCumulativePowerConsumptionReset","initialValue":null,"isArray":false,"primitive":true,"propertyCode":206,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç³»çµ±é£ç³»ç¶æ
-","fields":[],"identifier":"SystemInterconnectedType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ®æ¹¯éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredRemainingHotWaterAmount","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ã","valueDescription":"0x0000ï½0xFFFD(0ï½65,533ã)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã¿ã³ã¯å®¹éå¤","fields":[],"identifier":"TankCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ã","valueDescription":"0x0000ï½0xFFFD(0ï½65,533ã)"}]},{"classCode":125,"description":"èé»æ± ","name":"STORAGE_BATTERY_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§å
-
-é»é»åå¤","fields":[{"arrayCount":0,"description":"æå°å
-
-é»é»åå¤","fields":[],"identifier":"MinimumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"arrayCount":0,"description":"æå¤§å
-
-é»é»åå¤","fields":[],"identifier":"MaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"}],"identifier":"MinimumMaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":false,"propertyCode":200,"required":["NONE"],"size":8,"type":"minimum_maximum_charging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§æ¾é»é»åå¤","fields":[{"arrayCount":0,"description":"æå°æ¾é»é»åå¤","fields":[],"identifier":"MinimumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"arrayCount":0,"description":"æå¤§æ¾é»é»åå¤","fields":[],"identifier":"MaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"}],"identifier":"MinimumMaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":false,"propertyCode":201,"required":["NONE"],"size":8,"type":"minimum_maximum_discharging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§å
-
-é»é»æµå¤","fields":[{"arrayCount":0,"description":"æå°å
-
-é»é»æµå¤","fields":[],"identifier":"MinimumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"},{"arrayCount":0,"description":"æå¤§å
-
-é»é»æµå¤","fields":[],"identifier":"MaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"}],"identifier":"MinimumMaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":202,"required":["NONE"],"size":4,"type":"minimum_maximum_charging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§æ¾é»é»æµå¤","fields":[{"arrayCount":0,"description":"æå°æ¾é»é»æµå¤","fields":[],"identifier":"MinimumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"},{"arrayCount":0,"description":"æå¤§æ¾é»é»æµå¤","fields":[],"identifier":"MaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"}],"identifier":"MinimumMaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":203,"required":["NONE"],"size":4,"type":"minimum_maximum_discharging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼é»åé","fields":[],"identifier":"RatedElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼å®¹é","fields":[],"identifier":"RatedCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼é»å§","fields":[],"identifier":"RatedVoltage","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000ï½0x7FFE(0ï½32,766V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æå
-
-æ¾é»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousChargeDischargElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0x00000001ï½0x3B9AC9FF=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½999,999,999W),0xFFFFFFFFï½0xC4653601=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-999,999,999W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æå
-
-æ¾é»é»æµè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousChargeDischargCurrent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(0.1ï½3,276.6A),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-0.1ï½-3,276.7A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æå
-
-æ¾é»é»å§è¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousChargeDischargVoltage","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"V","valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½32,766V),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-32,767V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®æ¾é»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativeDischargeElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":214,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"ç©ç®æ¾é»é»åéãªã»ããè¨­å®","fields":[],"identifier":"MeasuredCumulativeDischargeElectricEnergyResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®å
-
-é»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativeChargeElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":216,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"ç©ç®å
-
-é»é»åéãªã»ããè¨­å®","fields":[],"identifier":"MeasuredCumulativeChargeElectricEnergyResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":217,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"éè»¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":218,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ¥éå
-
-é»,0x42=å
-
-é»,0x43=æ¾é»,0x44=å¾
-æ©,0x45=ãã¹ã,0x40=ãã®ä»"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç³»çµ±é£ç³»ç¶æ
-","fields":[],"identifier":"SystemInterconnectedType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§å
-
-é»é»åå¤ï¼ç¬ç«æï¼","fields":[{"arrayCount":0,"description":"æå°å
-
-é»é»åå¤","fields":[],"identifier":"MinimumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"arrayCount":0,"description":"æå¤§å
-
-é»é»åå¤","fields":[],"identifier":"MaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"}],"identifier":"MinimumMaximumChargingPowerIndependent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":220,"required":["NONE"],"size":8,"type":"minimum_maximum_charging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§æ¾é»é»åå¤ï¼ç¬ç«æï¼","fields":[{"arrayCount":0,"description":"æå°æ¾é»é»åå¤","fields":[],"identifier":"MinimumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"arrayCount":0,"description":"æå¤§æ¾é»é»åå¤","fields":[],"identifier":"MaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"}],"identifier":"MinimumMaximumDischargingPowerIndependent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":221,"required":["NONE"],"size":8,"type":"minimum_maximum_discharging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§å
-
-é»é»æµå¤ï¼ç¬ç«æï¼","fields":[{"arrayCount":0,"description":"æå°å
-
-é»é»æµå¤","fields":[],"identifier":"MinimumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"},{"arrayCount":0,"description":"æå¤§å
-
-é»é»æµå¤","fields":[],"identifier":"MaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"}],"identifier":"MinimumMaximumChargingCurrentIndependent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":222,"required":["NONE"],"size":4,"type":"minimum_maximum_charging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§æ¾é»é»æµå¤ï¼ç¬ç«æï¼","fields":[{"arrayCount":0,"description":"æå°æ¾é»é»æµå¤","fields":[],"identifier":"MinimumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"},{"arrayCount":0,"description":"æå¤§æ¾é»é»æµå¤","fields":[],"identifier":"MaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"}],"identifier":"MinimumMaximumDischargingCurrentIndependent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":223,"required":["NONE"],"size":4,"type":"minimum_maximum_discharging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-æ¾é»éè¨­å®å¤ï¼","fields":[],"identifier":"ChargingDischaRgingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"Wh","valueDescription":"0x00000001ï½0x3B9AC9FF=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½999,999,999Wh),0xFFFFFFFFï½0xC4653601=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-æ¾é»éè¨­å®å¤ï¼","fields":[],"identifier":"ChargingDischaRgingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1Ah","valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(0.1ï½3,276.6Ah),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-0.1ï½-3,276.7Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"èé»æ®éï¼","fields":[],"identifier":"RemainingStoredElectricity1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"èé»æ®éï¼","fields":[],"identifier":"RemainingStoredElectricity2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"èé»æ®éï¼","fields":[],"identifier":"RemainingStoredElectricity3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å£åç¶æ
-","fields":[],"identifier":"BatteryStateOfHealth","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"èé»æ± ã¿ã¤ã","fields":[],"identifier":"BatteryType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF=ã¿ã¤ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-é»éè¨­å®å¤ï¼","fields":[],"identifier":"ChargingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¾é»éè¨­å®å¤ï¼","fields":[],"identifier":"DischargingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-é»éè¨­å®å¤ï¼","fields":[],"identifier":"ChargingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¾é»éè¨­å®å¤ï¼","fields":[],"identifier":"DischargingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-é»é»åè¨­å®å¤","fields":[],"identifier":"ChargingElectricEnergySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¾é»é»åè¨­å®å¤","fields":[],"identifier":"DischargingElectricEnergySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-é»é»æµè¨­å®å¤","fields":[],"identifier":"ChargingCurrentSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":237,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3A)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¾é»é»æµè¨­å®å¤","fields":[],"identifier":"DischargingCurrentSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼é»å§ï¼ç¬ç«æï¼","fields":[],"identifier":"RatedVoltageIndependent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":239,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000ï½0x7FFE(0ï½32,766V)"}]},{"classCode":126,"description":"é»æ°èªåè»å
-
-æ¾é»ã·ã¹ãã ","name":"ELECTRIC_VEHICLE_CHARGER_DISCHARGER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½å®¹éå¤ï¼","fields":[],"identifier":"DischargeableCapacityOfVehicleMountedBattery1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½å®¹éå¤ï¼","fields":[],"identifier":"DischargeableCapacityOfVehicleMountedBattery2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½æ®å®¹éï¼","fields":[],"identifier":"RemainingDischargeableCapacityOfVehicleMountedBattery1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½æ®å®¹éï¼","fields":[],"identifier":"RemainingDischargeableCapacityOfVehicleMountedBattery2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼¶ï¼ï¼¨ä½¿ç¨å¯è½æ®å®¹éï¼","fields":[],"identifier":"RemainingDischargeableCapacityOfVehicleMountedBattery3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼å
-
-é»è½å","fields":[],"identifier":"RatedChargeCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼æ¾é»è½å","fields":[],"identifier":"RatedDischargeCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"å
-
-æ¾é»å¯å¦ç¶æ
-","fields":[],"identifier":"VehicleConnectionAndChargeableDischarge","initialValue":null,"isArray":false,"primitive":true,"propertyCode":199,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=å
-
-é»ä¸å¯ã»æ¾é»ä¸å¯,0x41=å
-
-é»å¯ã»æ¾é»ä¸å¯,0x42=å
-
-é»ä¸å¯ã»æ¾é»å¯,0x043=å
-
-é»å¯ã»æ¾é»å¯"},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§å
-
-é»é»åå¤","fields":[{"arrayCount":0,"description":"æå°å
-
-é»é»åå¤","fields":[],"identifier":"MinimumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"arrayCount":0,"description":"æå¤§å
-
-é»é»åå¤","fields":[],"identifier":"MaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"}],"identifier":"MinimumMaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":false,"propertyCode":200,"required":["NONE"],"size":8,"type":"minimum_maximum_charging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§æ¾é»é»åå¤","fields":[{"arrayCount":0,"description":"æå°æ¾é»é»åå¤","fields":[],"identifier":"MinimumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"arrayCount":0,"description":"æå¤§æ¾é»é»åå¤","fields":[],"identifier":"MaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"}],"identifier":"MinimumMaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":false,"propertyCode":201,"required":["NONE"],"size":8,"type":"minimum_maximum_discharging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§å
-
-é»é»æµå¤","fields":[{"arrayCount":0,"description":"æå°å
-
-é»é»æµå¤","fields":[],"identifier":"MinimumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"},{"arrayCount":0,"description":"æå¤§å
-
-é»é»æµå¤","fields":[],"identifier":"MaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"}],"identifier":"MinimumMaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":202,"required":["NONE"],"size":4,"type":"minimum_maximum_charging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æå°æå¤§æ¾é»é»æµå¤","fields":[{"arrayCount":0,"description":"æå°æ¾é»é»æµå¤","fields":[],"identifier":"MinimumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"},{"arrayCount":0,"description":"æå¤§æ¾é»é»æµå¤","fields":[],"identifier":"MaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6A)"}],"identifier":"MinimumMaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":203,"required":["NONE"],"size":4,"type":"minimum_maximum_discharging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"ä½¿ç¨å®¹éå¤ï¼","fields":[],"identifier":"UsedCapacityOfVehicleMountedBattery1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä½¿ç¨å®¹éå¤ï¼","fields":[],"identifier":"UsedCapacityOfVehicleMountedBattery2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼é»å§","fields":[],"identifier":"RatedVoltage","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000ï½0x7FFE(0ï½32,766V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æå
-
-æ¾é»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousChargingDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0x00000001ï½0x3B9AC9FF=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½999,999,999W),0xFFFFFFFFï½0xC4653601=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-999,999,999W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æå
-
-æ¾é»é»æµè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousChargingDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(0.1ï½3,276.6A),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-0.1ï½-3,276.7A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æå
-
-æ¾é»é»å§è¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousChargingDischargingVoltage","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"V","valueDescription":"0x0001ï½0x7FFE=å
-
-é»æï¼ãã©ã¹å¤ï¼(1ï½32,766V),0xFFFFï½0x8001=æ¾é»æï¼ãã¤ãã¹å¤ï¼(-1ï½-32,767V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®æ¾é»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredIntegralDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":214,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç©ç®æ¾é»é»åéãªã»ããè¨­å®","fields":[],"identifier":"IntegralDischargingElectricEnergyResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®å
-
-é»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredIntegralChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":216,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç©ç®å
-
-é»é»åéãªã»ããè¨­å®","fields":[],"identifier":"IntegralChargingElectricEnergyResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":217,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"éè»¢ã¢ã¼ãè¨­å®","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":218,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ¥éå
-
-é»,0x42=å
-
-é»,0x43=æ¾é»,0x44=å¾
-æ©,0x45=ãã¹ã,0x40=ãã®ä»"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç³»çµ±é£ç³»ç¶æ
-","fields":[],"identifier":"SystemInterconnectedType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"},{"access":["RULE_GET"],"arrayCount":0,"description":"é»æ± æ®å®¹éï¼","fields":[],"identifier":"RemainingStoredElectricityOfVehicleMountedBattery1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"é»æ± æ®å®¹éï¼","fields":[],"identifier":"RemainingStoredElectricityOfVehicleMountedBattery2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"é»æ± æ®å®¹éï¼","fields":[],"identifier":"RemainingStoredElectricityOfVehicleMountedBattery3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å£åç¶æ
-","fields":[],"identifier":"BatteryStateOfHealth","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-é»éè¨­å®å¤ï¼","fields":[],"identifier":"ChargingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¾é»éè¨­å®å¤ï¼","fields":[],"identifier":"DischargingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-é»éè¨­å®å¤ï¼","fields":[],"identifier":"ChargingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¾é»éè¨­å®å¤ï¼","fields":[],"identifier":"DischargingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000ï½0x7FFE(0ï½3,276.6Ah)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-é»é»åè¨­å®å¤","fields":[],"identifier":"ChargingElectricEnergySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¾é»é»åè¨­å®å¤","fields":[],"identifier":"DischargingElectricEnergySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-
-é»é»æµè¨­å®å¤","fields":[],"identifier":"ChargingCurrentSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":237,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3A)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¾é»é»æµè¨­å®å¤","fields":[],"identifier":"DischargingCurrentSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3A)"}]},{"classCode":127,"description":"ã¨ã³ã¸ã³ã³ã¼ã¸ã§ãã¬ã¼ã·ã§ã³","name":"ENGINE_COGENERATION_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"æ¸©æ°´å¨æ¹¯æ¸©è¨æ¸¬å¤","fields":[],"identifier":"MeasuredTemperatureOfWaterInWaterHeater","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼çºé»é","fields":[],"identifier":"RatedPowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"è²¯æ¹¯æ§½ç±é","fields":[],"identifier":"HeatingValueOfHotWaterStorageTank","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"MJ","valueDescription":"0x0000ï½0xFFFD(0ï½65,533MJ)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æçºé»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousPowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®çºé»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativePowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"ç©ç®çºé»é»åéãªã»ããè¨­å®","fields":[],"identifier":"CumulativePowerGenerationOutputResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æã¬ã¹æ¶è²»éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":199,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.001ã¥\/h","valueDescription":"0x0000ï½0xFFFD(0ï½65.533ã¥\/h)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":200,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"},{"access":["RULE_SET"],"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»éãªã»ããè¨­å®","fields":[],"identifier":"CumulativeGasConsumptionResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":201,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_SET"],"arrayCount":0,"description":"çºé»åä½è¨­å®","fields":[],"identifier":"PowerGenerationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":202,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çºé»åä½,0x42=çºé»åæ­¢"},{"access":["RULE_GET"],"arrayCount":0,"description":"çºé»åä½ç¶æ
-","fields":[],"identifier":"PowerGenerationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":203,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çºé»ä¸­,0x42=åæ­¢ä¸­,0x45=ã¢ã¤ãã«ä¸­"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®
-å
-ç¬ææ¶è²»é»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInHouseInstantaneousPowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":204,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®
-å
-ç©ç®æ¶è²»é»åéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInHouseCumulativePowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":205,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"å®
-å
-ç©ç®æ¶è²»é»åéãªã»ããè¨­å®","fields":[],"identifier":"InHouseCumulativePowerConsumptionReset","initialValue":null,"isArray":false,"primitive":true,"propertyCode":206,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ãªã»ãã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç³»çµ±é£ç³»ç¶æ
-","fields":[],"identifier":"SystemInterconnectedType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=ç³»çµ±é£ç³»ï¼éæ½®æµå¯ï¼,0x01=ç¬ç«,0x02=ç³»çµ±é£ç³»ï¼éæ½®æµä¸å¯ï¼"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ®æ¹¯éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredRemainingHotWaterAmount","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ã","valueDescription":"0x0000ï½0xFFFD(0ï½65,533ã)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã¿ã³ã¯å®¹éå¤","fields":[],"identifier":"TankCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ã","valueDescription":"0x0000ï½0xFFFD(0ï½65,533ã)"}]},{"classCode":128,"description":"é»åéã¡ã¼ã¿","name":"ELECTRIC_ENERGY_METER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤","fields":[],"identifier":"IntegralElectricEnergyMeasurementValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.1kWh|0.01kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéåä½","fields":[],"identifier":"IntegralElectricEnergyUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01=0.1kWh,0x02=0.01kWh"},{"access":["RULE_GET"],"arrayCount":48,"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼","fields":[],"identifier":"IntegralElectricEnergyMeasurementLog1","initialValue":null,"isArray":true,"primitive":true,"propertyCode":227,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.1kWh|0.01kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"access":["NONE"],"arrayCount":2160,"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼","fields":[],"identifier":"IntegralElectricEnergyMeasurementLog2","initialValue":null,"isArray":true,"primitive":true,"propertyCode":228,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.1kWh|0.01kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"}]},{"classCode":129,"description":"æ°´æµéã¡ã¼ã¿","name":"WATER_FLOW_METER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´æµåºå","fields":[],"identifier":"FlowingWaterClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=ä¸æ°´,0x31=ä¸­æ°´,0x32=æ¸©æ°´,0x33=ãã®ä»"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææè
-åºå","fields":[],"identifier":"OwnerClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=æå®ãªã,0x31=äºæ¥­ä½,0x32=æ°éä¼ç¤¾,0x33=åäºº"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®æ°´æµéè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativeAmountOfFlowingWater","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®æ°´æµéè¨æ¸¬å¤åä½","fields":[],"identifier":"UnitForMeasuredCumulativeAmountsOfFlowingWater","initialValue":"0x04","isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=1ã¥,0x01=0.1ã¥,0x02=0.01ã¥,0x03=0.001ã¥,0x04=0.0001ã¥,0x05=0.00001ã¥,0x06=0.000001ã¥"},{"access":["RULE_GET"],"arrayCount":48,"description":"ç©ç®æ°´æµéè¨æ¸¬å¤å±¥æ­´","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfFlowingWater","initialValue":null,"isArray":true,"primitive":true,"propertyCode":226,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ¤éãã¼ã¿ç°å¸¸æ¤ç¥ç¶æ
-","fields":[],"identifier":"DetectionOfAbnormalValueInMeteringData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç°å¸¸æ¤ç¥æ,0x42=ç°å¸¸æ¤ç¥ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã»ã­ã¥ãªãã£ãã¼ã¿æ
-å ±","fields":[],"identifier":"SecurityDataInformation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000ï½0xFFFFFFFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼©ï¼¤çªå·è¨­å®","fields":[],"identifier":"IdNumberSetting","initialValue":"'000000'","isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ASCIIã³ã¼ãã§æå®ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¤å®æºææ
-å ±","fields":[],"identifier":"VerificationExpirationInformation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ASCIIã³ã¼ãã§æå®ãxxxxå¹´xxæ"}]},{"classCode":130,"description":"ã¬ã¹ã¡ã¼ã¿","name":"GAS_METER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤","fields":[],"identifier":"IntegralGasConsumptionMeasurementValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"},{"access":["RULE_GET"],"arrayCount":48,"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤å±¥æ­´","fields":[],"identifier":"IntegralGasConsumptionMeasurementLog","initialValue":null,"isArray":true,"primitive":true,"propertyCode":226,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"}]},{"classCode":131,"description":"ï¼¬ï¼°ã¬ã¹ã¡ã¼ã¿","name":"LP_GAS_METERS_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"æ¤éãã¼ã¿ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤ï¼","fields":[],"identifier":"IntegralGasConsumptionOfMeteringData1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.0001ã¥","valueDescription":"0x00000000ï½0x005F5E0FF(0ï½9,999.9999ã¥)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ¤éãã¼ã¿ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤ï¼","fields":[],"identifier":"IntegralGasConsumptionOfMeteringData2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x005F5E0FF(0ï½99,999.999ã¥)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ¤éãã¼ã¿ç°å¸¸æ¤ç¥ç¶æ
-","fields":[],"identifier":"ErrorDetectionStatusofMeteringData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç°å¸¸æ¤ç¥æ,0x42=ç°å¸¸æ¤ç¥ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã»ã­ã¥ãªãã£ãã¼ã¿æ
-å ±ï¼","fields":[],"identifier":"SecurityData1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000ï½0xFFFFFFFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã»ã­ã¥ãªãã£ãã¼ã¿æ
-å ±ï¼","fields":[],"identifier":"SecurityData2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000ï½0xFFFFFFFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã»ã³ã¿ã¼å¼é®æ­ç¶æ
-","fields":[],"identifier":"CenterValveShutOffStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã»ã³ã¿ã¼å¼é®æ­æã,0x42=ã»ã³ã¿ã¼å¼é®æ­ç¡ã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°è¨±å¯ç¶æ
-","fields":[],"identifier":"CenterValveShutOffRecoveryPermissionSettingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°è¨±å¯,0x42=ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°éè¨±å¯"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç·æ¥å¼é®æ­ç¶æ
-","fields":[],"identifier":"EmergencyValveShutOffStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç·æ¥å¼é®æ­æã,0x42=ç·æ¥å¼é®æ­ç¡ã"},{"access":["RULE_GET"],"arrayCount":0,"description":"é®æ­å¼ééç¶æ
-","fields":[],"identifier":"ShutOffValveOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é®æ­å¼éç¶æ
-,0x42=é®æ­å¼éç¶æ
-"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ®éç®¡çè­¦åã¬ãã«","fields":[],"identifier":"ResidualVolumeControlWarning","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=æ®éç®¡çè­¦åã¬ãã«1,0x32=æ®éç®¡çè­¦åã¬ãã«2,0x33=æ®éç®¡çè­¦åã¬ãã«3,0x42=æ®éç®¡çè­¦åç¡ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"æ®éç®¡çè­¦åã¬ãã«è¨­å®å¤ï¼","fields":[],"identifier":"SetValueOfResidualVolumeControlWarningLevel1","initialValue":null,"isArray":true,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ã","valueDescription":"0x000000ï½0xFFFFFF(0ï½16,777,215)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"æ®éç®¡çè­¦åã¬ãã«è¨­å®å¤ï¼","fields":[],"identifier":"SetValueOfResidualVolumeControlWarningLevel2","initialValue":null,"isArray":true,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ã","valueDescription":"0x000000ï½0xFFFFFF(0ï½16,777,215)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"æ®éç®¡çè­¦åã¬ãã«è¨­å®å¤ï¼","fields":[],"identifier":"SetValueOfResidualVolumeControlWarningLevel3","initialValue":null,"isArray":true,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ã","valueDescription":"0x000000ï½0xFFFFFF(0ï½16,777,215)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¾®å°æ¼æ´©ã¿ã¤ãå¤ï¼ã¬ã¹æµéç¶ç¶ï¼","fields":[],"identifier":"SlightLeakTimerValueGasFlowRateContinuation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":237,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x00ï½0xFD(0ï½253æ¥)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å¾®å°æ¼æ´©ã¿ã¤ãå¤ï¼å§åä¸æç¡ãï¼","fields":[],"identifier":"SlightLeakTimerValueWithoutPressureIncrease","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x00ï½0xFD(0ï½253æ¥)"},{"access":["RULE_GET"],"arrayCount":3,"description":"é®æ­çç±å±¥æ­´æ
-å ±","fields":[],"identifier":"ShutOffReasonLog","initialValue":null,"isArray":true,"primitive":true,"propertyCode":239,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0xFF:0xFF:0xFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä¾çµ¦å§åãã¼ã¿æå¤§å¤","fields":[],"identifier":"MaximumValueOfSupplyPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä¾çµ¦å§åãã¼ã¿æå°å¤","fields":[],"identifier":"MinimumValueOfSupplyPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä¾çµ¦å§åãã¼ã¿ç¾å¨å¤","fields":[],"identifier":"CurrentValueOfSupplyPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"éå¡å§åãã¼ã¿æå¤§å¤","fields":[],"identifier":"MaximumValueOfBlockPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"éå¡å§åãã¼ã¿æå°å¤","fields":[],"identifier":"MinimumValueOfBlockPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"éå¡å§åãã¼ã¿ç¾å¨å¤","fields":[],"identifier":"CurrentValueOfBlockPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000ï½0xFFFD(0ï½655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"éå¡å§åã»ä¾çµ¦å§åç°å¸¸æ¥åæ°æ
-å ±","fields":[{"arrayCount":0,"description":"éå¡å§åç°å¸¸æ¥æ°","fields":[],"identifier":"NumberOfBlockPressureErrorDays","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF(0ï½255æ¥)"},{"arrayCount":0,"description":"ä¾çµ¦å§åç°å¸¸æ¥æ°","fields":[],"identifier":"NumberOfSupplyPressureErrorDays","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF(0ï½255æ¥)"},{"arrayCount":0,"description":"éå¡å§åç°å¸¸åæ°","fields":[],"identifier":"NumberOfBlockPressureErrorTimes","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF(0ï½255å)"},{"arrayCount":0,"description":"ä¾çµ¦å§åç°å¸¸åæ°","fields":[],"identifier":"NumberOfSupplyPressureErrorTimes","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF(0ï½255å)"}],"identifier":"NumberOfBlockPressureSupplyPressureErrorDaysTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":214,"required":["NONE"],"size":4,"type":"number_of_block_pressure_supply_pressure_error_days_time_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã¹ãçºå¼è¨­å®","fields":[],"identifier":"TestCallSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãã¹ãçºå¼åä½ãã,0x42=ãã¹ãçºå¼åä½ãªã"}]},{"classCode":132,"description":"æè¨","name":"CLOCK_EOBJ","propertyList":[]},{"classCode":133,"description":"èªåãã¢","name":"AUTOMATIC_DOOR_EOBJ","propertyList":[]},{"classCode":134,"description":"æ¥­åç¨ã¨ã¬ãã¼ã¿","name":"COMMERCIAL_ELEVATOR_EOBJ","propertyList":[]},{"classCode":135,"description":"åé»ç¤ã¡ã¼ã¿ãªã³ã°","name":"DISTRIBUTION_PANEL_METERING_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤ï¼æ­£æ¹åï¼","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricEnergyNormalDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤ï¼éæ¹åï¼","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricEnergyReverseDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéåä½","fields":[],"identifier":"UnitForCumulativeAmountsOfElectricEnergy","initialValue":"0x03","isArray":false,"primitive":true,"propertyCode":194,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=1kWh,0x01=0.1kWh,0x02=0.01kWh,0x03=0.001kWh,0x04=0.0001kWh,0x0A=10kWh,0x0B=100kWh,0x0C=1000kWh,0x0D=10000kWh"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼æ­£æ¹åï¼","fields":[{"arrayCount":0,"description":"ç©ç®å±¥æ­´åéæ¥","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"æ¥","valueDescription":"0x0000ï½0x0063(0ï½99)"},{"arrayCount":48,"description":"ç©ç®é»åé","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"}],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyNormalDirectioHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyNormalDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":195,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t","unitDescription":"kWh","valueDescription":"0x0000ï½0x0063:0x00000000ï½0x05F5E0FF(0ï½99):(0ï½99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼éæ¹åï¼","fields":[{"arrayCount":0,"description":"ç©ç®å±¥æ­´åéæ¥","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"æ¥","valueDescription":"0x0000ï½0x0063(0ï½99)"},{"arrayCount":48,"description":"ç©ç®é»åé","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"}],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyReverseDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":196,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t","unitDescription":"kWh","valueDescription":"0x0000ï½0x0063:0x00000000ï½0x05F5E0FF(0ï½99):(0ï½99,999,999)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç©ç®å±¥æ­´åéæ¥","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyIsToBeRetrieved","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x00=å½æ¥,0x01ï½0x63=åæ¥ã®æ¥æ°(0ï½99)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æé»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneoUsAmountOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0x80000001ï½0x7FFFFFFD(-2,147,483,647ï½2,147,483,645)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æé»æµè¨æ¸¬å¤","fields":[{"arrayCount":0,"description":"Rç¸","fields":[],"identifier":"RPhase","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"Tç¸","fields":[],"identifier":"TPhase","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasuredInstantaneousCurrents","initialValue":null,"isArray":false,"primitive":false,"propertyCode":199,"required":["NONE"],"size":4,"type":"measured_instantaneous_currents_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æé»å§è¨æ¸¬å¤","fields":[{"arrayCount":0,"description":"R-S(N)é","fields":[],"identifier":"BetweenRAndSN","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1V","valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3)"},{"arrayCount":0,"description":"S(N)-Té","fields":[],"identifier":"BetweenSNAndT","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1V","valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3)"}],"identifier":"MeasuredInstantaneousVoltages","initialValue":null,"isArray":false,"primitive":false,"propertyCode":200,"required":["NONE"],"size":4,"type":"measured_instantaneous_voltages_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel1","initialValue":null,"isArray":false,"primitive":false,"propertyCode":208,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":209,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel3","initialValue":null,"isArray":false,"primitive":false,"propertyCode":210,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel4","initialValue":null,"isArray":false,"primitive":false,"propertyCode":211,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel5","initialValue":null,"isArray":false,"primitive":false,"propertyCode":212,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel6","initialValue":null,"isArray":false,"primitive":false,"propertyCode":213,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel7","initialValue":null,"isArray":false,"primitive":false,"propertyCode":214,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel8","initialValue":null,"isArray":false,"primitive":false,"propertyCode":215,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel9","initialValue":null,"isArray":false,"primitive":false,"propertyCode":216,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel10","initialValue":null,"isArray":false,"primitive":false,"propertyCode":217,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel11","initialValue":null,"isArray":false,"primitive":false,"propertyCode":218,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel12","initialValue":null,"isArray":false,"primitive":false,"propertyCode":219,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel13","initialValue":null,"isArray":false,"primitive":false,"propertyCode":220,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel14","initialValue":null,"isArray":false,"primitive":false,"propertyCode":221,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel15","initialValue":null,"isArray":false,"primitive":false,"propertyCode":222,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel16","initialValue":null,"isArray":false,"primitive":false,"propertyCode":223,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel17","initialValue":null,"isArray":false,"primitive":false,"propertyCode":224,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel18","initialValue":null,"isArray":false,"primitive":false,"propertyCode":225,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel19","initialValue":null,"isArray":false,"primitive":false,"propertyCode":226,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel20","initialValue":null,"isArray":false,"primitive":false,"propertyCode":227,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel21","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel22","initialValue":null,"isArray":false,"primitive":false,"propertyCode":229,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel23","initialValue":null,"isArray":false,"primitive":false,"propertyCode":230,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel24","initialValue":null,"isArray":false,"primitive":false,"propertyCode":231,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel25","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel26","initialValue":null,"isArray":false,"primitive":false,"propertyCode":233,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel27","initialValue":null,"isArray":false,"primitive":false,"propertyCode":234,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel28","initialValue":null,"isArray":false,"primitive":false,"propertyCode":235,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel29","initialValue":null,"isArray":false,"primitive":false,"propertyCode":236,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel30","initialValue":null,"isArray":false,"primitive":false,"propertyCode":237,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel31","initialValue":null,"isArray":false,"primitive":false,"propertyCode":238,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨æ¸¬ãã£ã³ãã«ï¼ï¼","fields":[{"arrayCount":0,"description":"é»åé","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Rç¸","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"å®å¹é»æµå¤Tç¸","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasurementChannel32","initialValue":null,"isArray":false,"primitive":false,"propertyCode":239,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""}]},{"classCode":136,"description":"ã¹ãã¼ãé»åéã¡ã¼ã¿","name":"SMART_ELECTRIC_ENERGY_METER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é»ååºå","fields":[],"identifier":"ElectricEnergyMeterClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=é»åä¼ç¤¾,0x31=å¤ªé½å
-,0x32=çæé»æ± ,0x33=èé»æ± ,0x34=EV,0x35=ãã®ä»"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææè
-åºå","fields":[],"identifier":"OwnerClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=æå®ãªã,0x31=é»åä¼ç¤¾,0x32=é»åä¼ç¤¾ä»¥å¤,0x33=åäºº"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¸ç·å¼è¨­å®ç¶æ
-","fields":[],"identifier":"ConfigurationInformationOfPhasesAndWiresOfTheSystems","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=åç¸2ç·,0x31=åç¸3ç·,0x32=ä¸ç¸3ç·,0x33=ä¸ç¸4ç·"},{"access":["RULE_GET"],"arrayCount":0,"description":"åæå¤ææ¯","fields":[],"identifier":"CompositeTransformationRatio","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000ï½0x000F423F(000000ï½999999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"åæå¤ææ¯ã®åç","fields":[],"identifier":"MultiplyingFactorForCompositeTransformationRatio","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=Ã1,0x01=Ã0.1,0x02=Ã0.01,0x03=Ã0.001"},{"access":["RULE_GET"],"arrayCount":10,"description":"è¨å¨èªå®çªå·","fields":[],"identifier":"MeterTypeCertificationNumberTypeApprovalNumberInJapan","initialValue":null,"isArray":true,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(åå¼èªå®è¨å¨çªå·è¨è¼æ¹æ³ã«å¾ã)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":6,"description":"æ¤å®æºäºå¹´æ","fields":[],"identifier":"VerificationExpirationDate","initialValue":null,"isArray":true,"primitive":true,"propertyCode":214,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"YYYYMM:YYYY(è¥¿æ¦),MM(æ)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéæå¹æ¡æ°","fields":[],"identifier":"NumberOfEffectiveDigitsForCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"æ¡","valueDescription":"0x01ï½0x08(1ï½8)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤ï¼æ­£æ¹åè¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricEnergyNormalDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéåä½ï¼æ­£æ¹åãéæ¹åè¨æ¸¬å¤ï¼","fields":[],"identifier":"UnitForCumulativeAmountsOfElectricEnergyNormalAndReverseDirections","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=1kWh,0x01=0.1kWh,0x02=0.01kWh,0x03=0.001kWh,0x04=0.0001kWh,0x0A=10kWh,0x0B=100kWh,0x0C=1000kWh,0x0D=10000kWh"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼æ­£æ¹åè¨æ¸¬å¤ï¼","fields":[{"arrayCount":0,"description":"ç©ç®å±¥æ­´åéæ¥","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"æ¥","valueDescription":"0x0000ï½0x0063(0ï½99)"},{"arrayCount":48,"description":"ç©ç®é»åé","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"}],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyNormalDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":226,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t","unitDescription":"kWh","valueDescription":"0x0000ï½0x0063:0x00000000ï½0x05F5E0FF(0ï½99):(0ï½99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤ï¼éæ¹åè¨æ¸¬å¤ï¼","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricEnergyReverseDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®é»åéè¨æ¸¬å¤å±¥æ­´ï¼éæ¹åè¨æ¸¬å¤ï¼","fields":[{"arrayCount":0,"description":"ç©ç®å±¥æ­´åéæ¥","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"æ¥","valueDescription":"0x0000ï½0x0063(0ï½99)"},{"arrayCount":48,"description":"ç©ç®é»åé","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"}],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyReverseDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t","unitDescription":"kWh","valueDescription":"0x0000ï½0x0063:0x00000000ï½0x05F5E0FF(0ï½99):(0ï½99,999,999)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç©ç®å±¥æ­´åéæ¥","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyIsToBeRetrieved","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=å½æ¥,0x01ï½0x63=åæ¥ã®æ¥æ°(0ï½99)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æé»åè¨æ¸¬å¤","fields":[],"identifier":"MeasuredInstantaneousAmountOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0x80000001ï½0x7FFFFFFD(-2,147,483,647ï½2,147,483,645)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æé»æµè¨æ¸¬å¤","fields":[{"arrayCount":0,"description":"Rç¸","fields":[],"identifier":"RPhase","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"},{"arrayCount":0,"description":"Tç¸","fields":[],"identifier":"TPhase","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001ï½0x7FFD(-3,276.7ï½3,276.5)"}],"identifier":"MeasuredInstantaneousCurrents","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":4,"type":"measured_instantaneous_currents_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"ç¬æé»å§è¨æ¸¬å¤","fields":[{"arrayCount":0,"description":"R-S(N)é","fields":[],"identifier":"BetweenRAndSN","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1V","valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3)"},{"arrayCount":0,"description":"S(N)-Té","fields":[],"identifier":"BetweenSNAndT","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1V","valueDescription":"0x0000ï½0xFFFD(0ï½6,553.3)"}],"identifier":"MeasuredInstantaneousVoltages","initialValue":null,"isArray":false,"primitive":false,"propertyCode":233,"required":["NONE"],"size":4,"type":"measured_instantaneous_voltages_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æç©ç®é»åéè¨æ¸¬å¤ï¼æ­£æ¹åè¨æ¸¬å¤ï¼","fields":[{"arrayCount":0,"description":"è¨æ¸¬å¹´ææ¥","fields":[{"arrayCount":0,"description":"å¹´","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"å¹´","valueDescription":"0x0001ï½0x270F(1ï½9999)"},{"arrayCount":0,"description":"æ","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x01ï½0x0C(1ï½12)"},{"arrayCount":0,"description":"æ¥","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x01ï½0x1F(1ï½31)"}],"identifier":"DateOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"è¨æ¸¬æå»","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TimeOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"ç©ç®é»åé","fields":[],"identifier":"CumulativeElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"}],"identifier":"CumulativeAmountsOfElectricEnergyMeasuredAtFixedTimeNormalDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":234,"required":["RULE_GET"],"size":11,"type":"cumulative_amounts_of_electric_energy_measured_at_fixed_time_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æç©ç®é»åéè¨æ¸¬å¤ï¼éæ¹åè¨æ¸¬å¤ï¼","fields":[{"arrayCount":0,"description":"è¨æ¸¬å¹´ææ¥","fields":[{"arrayCount":0,"description":"å¹´","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"å¹´","valueDescription":"0x0001ï½0x270F(1ï½9999)"},{"arrayCount":0,"description":"æ","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x01ï½0x0C(1ï½12)"},{"arrayCount":0,"description":"æ¥","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x01ï½0x1F(1ï½31)"}],"identifier":"DateOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"è¨æ¸¬æå»","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TimeOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"ç©ç®é»åé","fields":[],"identifier":"CumulativeElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000ï½0x05F5E0FF(0ï½99,999,999)"}],"identifier":"CumulativeAmountsOfElectricEnergyMeasuredAtFixedTimeReverseDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":235,"required":["NONE"],"size":11,"type":"cumulative_amounts_of_electric_energy_measured_at_fixed_time_t","unitDescription":null,"valueDescription":""}]},{"classCode":137,"description":"ã¹ãã¼ãã¬ã¹ã¡ã¼ã¿","name":"SMART_GAS_METER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ã¬ã¹åºåè¨­å®","fields":[],"identifier":"GasMeterClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=é½å¸ã¬ã¹,0x31=LPã¬ã¹,0x32=å¤©ç¶,0x33=ãã®ä»"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ææè
-åºåè¨­å®","fields":[],"identifier":"OwnerClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=æå®ãªã,0x31=é½å¸ã¬ã¹,0x32=LPã¬ã¹,0x33=æ°éä¼ç¤¾,0x34=åäºº"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999.999ã¥)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤åä½","fields":[],"identifier":"UnitForMeasuredCumulativeGasConsumptions","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=1ã¥,0x01=0.1ã¥,0x02=0.01ã¥,0x03=0.001ã¥,0x04=0.0001ã¥,0x05=0.00001ã¥,0x06=0.000001ã¥"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»éå±¥æ­´æ
-å ±","fields":[{"arrayCount":0,"description":"ç©ç®å±¥æ­´åéæ¥","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"æ¥","valueDescription":"0x0000ï½0x0063(0ï½99)"},{"arrayCount":48,"description":"ç©ç®ã¬ã¹æ¶è²»é","fields":[],"identifier":"CumulativeGasConsumption","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999ã¥)"}],"identifier":"HistoricalDataOfMeasuredCumulativeGasConsumptions","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_gas_consumptions_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»éå±¥æ­´åéæ¥è¨­å®","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeGasConsumptionsIsToBeRetrieved","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=å½æ¥,0x01ï½0x63=åæ¥ã®æ¥æ°(0ï½99)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ¤éãã¼ã¿ç°å¸¸æ¤ç¥ç¶æ
-","fields":[],"identifier":"DetectionOfAbnormalValueInMeteringData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç°å¸¸æ¤ç¥æ,0x42=ç°å¸¸æ¤ç¥ç¡"},{"access":["RULE_GET"],"arrayCount":10,"description":"ã»ã­ã¥ãªãã£ãã¼ã¿æ
-å ±","fields":[],"identifier":"SecurityDataInformation","initialValue":null,"isArray":true,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"è©³ç´°ã¯èª¬æ(9)åç
-§"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã»ã³ã¿ã¼å¼é®æ­ç¶æ
-","fields":[],"identifier":"ValveClosureByTheCenter","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã»ã³ã¿ã¼å¼é®æ­æã,0x42=ã»ã³ã¿ã¼å¼é®æ­ç¡ã"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°è¨±å¯ç¶æ
-","fields":[],"identifier":"PermissionFromTheCenterToReopenTheValveClosedByTheCenter","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°è¨±å¯,0x42=ã»ã³ã¿ã¼å¼é®æ­å¾©å¸°éè¨±å¯"},{"access":["RULE_GET"],"arrayCount":0,"description":"ç·æ¥å¼é®æ­ç¶æ
-","fields":[],"identifier":"EmergencyClosureOfShutoffValve","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ç·æ¥å¼é®æ­æã,0x42=ç·æ¥å¼é®æ­ç¡ã"},{"access":["RULE_GET"],"arrayCount":0,"description":"é®æ­å¼ééç¶æ
-","fields":[],"identifier":"ShutoffValveStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é®æ­å¼éç¶æ
-,0x42=é®æ­å¼éç¶æ
-"},{"access":["RULE_GET"],"arrayCount":3,"description":"é®æ­çç±å±¥æ­´æ
-å ±","fields":[],"identifier":"HistoricalDataOfShutoffReasons","initialValue":null,"isArray":true,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0xFF:0xFF:0xFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":6,"description":"ï¼©ï¼¤çªå·è¨­å®","fields":[],"identifier":"IdNumberSetting","initialValue":"'000000'","isArray":true,"primitive":true,"propertyCode":237,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"'000000'ï½'FFFFFF'"},{"access":["RULE_SET","RULE_GET"],"arrayCount":6,"description":"æ¤å®æºæè¨­å®","fields":[],"identifier":"VerificationExpirationInformation","initialValue":null,"isArray":true,"primitive":true,"propertyCode":238,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"YYYYMM:YYYY(è¥¿æ¦),MM(æ)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ¥æä»ç©ç®ã¬ã¹æ¶è²»éè¨æ¸¬å¤æ
-å ±","fields":[{"arrayCount":0,"description":"è¨æ¸¬å¹´ææ¥","fields":[{"arrayCount":0,"description":"å¹´","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"å¹´","valueDescription":"0x0001ï½0x270F(1ï½9999)"},{"arrayCount":0,"description":"æ","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x01ï½0x0C(1ï½12)"},{"arrayCount":0,"description":"æ¥","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x01ï½0x1F(1ï½31)"}],"identifier":"DateOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"è¨æ¸¬æå»","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TimeOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"ç©ç®ã¬ã¹æ¶è²»é","fields":[],"identifier":"CumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999ã¥)"}],"identifier":"MeasuredCumulativeGasConsumptionInformationWithDateAndTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":208,"required":["RULE_GET"],"size":11,"type":"measured_cumulative_gas_consumption_information_with_date_and_time_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"ã¬ã¹æ¶è²»éå±¥æ­´æ
-å ±","fields":[{"arrayCount":0,"description":"å±¥æ­´ã¹ã¿ã¼ãå¹´ææ¥","fields":[{"arrayCount":0,"description":"å¹´","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"å¹´","valueDescription":"0x0001ï½0x270F(1ï½9999)"},{"arrayCount":0,"description":"æ","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x01ï½0x0C(1ï½12)"},{"arrayCount":0,"description":"æ¥","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ¥","valueDescription":"0x01ï½0x1F(1ï½31)"}],"identifier":"Date","initialValue":null,"isArray":false,"primitive":false,"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"å±¥æ­´ã¹ã¿ã¼ãæå»","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"Time","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":24,"description":"ã¬ã¹æ¶è²»éå±¥æ­´ãã¼ã¿","fields":[],"identifier":"HistoricalInformationOfGasConsumption","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x0001869F(0ï½99.999ã¥)"},{"arrayCount":0,"description":"å±¥æ­´ã¹ã¿ã¼ãæç©ç®ã¬ã¹æ¶è²»é","fields":[],"identifier":"CumulativeGasConsumptionAtHistoryStart","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"0.001ã¥","valueDescription":"0x00000000ï½0x3B9AC9FF(0ï½999,999,999ã¥)"},{"arrayCount":0,"description":"ç©ç®æééé","fields":[],"identifier":"CumulativeTimeInterval","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"å","valueDescription":"0x0001ï½0xFFFF(1ï½65535)"}],"identifier":"HistoricalInformationOfCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":false,"propertyCode":209,"required":["NONE"],"size":109,"type":"historical_information_of_cumulative_gas_consumption_t","unitDescription":null,"valueDescription":""}]},{"classCode":144,"description":"ä¸è¬ç
-§æ","name":"GENERAL_LIGHTING_CLASS_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç
-§åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"IlluminanceLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-è²è¨­å®","fields":[],"identifier":"LightColorSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é»çè²,0x42=ç½è²,0x43=æ¼ç½è²,0x44=æ¼å
-è²,0x40=ãã®ä»"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç
-§åº¦ã¬ãã«æ®µæ°è¨­å®","fields":[],"identifier":"IlluminanceLevelStepSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½ç
-§åº¦ã¬ãã«æå¤§å¤(æï½æ)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å
-è²ã¬ãã«æ®µæ°è¨­å®","fields":[],"identifier":"LightColorStepSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½å
-è²ã¬ãã«æå¤§å¤(é»çè²ï½ç½è²)"},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨­å®å¯è½ã¬ãã«æå¤§å¤","fields":[{"arrayCount":0,"description":"ç
-§åº¦","fields":[],"identifier":"Illuminance","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=æ©è½ãæ­è¼ãã¦ããªã"},{"arrayCount":0,"description":"å
-è²","fields":[],"identifier":"LightColor","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=æ©è½ãæ­è¼ãã¦ããªã"}],"identifier":"MaximumSpecifiableValues","initialValue":null,"isArray":false,"primitive":false,"propertyCode":180,"required":["NONE"],"size":2,"type":"maximum_specifiable_values_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"å¸¸å¤ç¯è¨­å®å¯è½ã¬ãã«æå¤§å¤","fields":[{"arrayCount":0,"description":"ç
-§åº¦","fields":[],"identifier":"Illuminance","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=æ©è½ãæ­è¼ãã¦ããªã"},{"arrayCount":0,"description":"å
-è²","fields":[],"identifier":"LightColor","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=æ©è½ãæ­è¼ãã¦ããªã"}],"identifier":"MaximumValueOfSettableLevelForNightLighting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":181,"required":["NONE"],"size":2,"type":"maximum_specifiable_values_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ç¹ç¯ã¢ã¼ãè¨­å®","fields":[],"identifier":"LightingModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":182,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=éå¸¸ç¯,0x43=å¸¸å¤ç¯,0x45=ã«ã©ã¼ç¯"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éå¸¸ç¯ã¢ã¼ãæç
-§åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"IlluminanceLevelSettingForMainLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":183,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éå¸¸ç¯ã¢ã¼ãæç
-§åº¦ã¬ãã«æ®µæ°è¨­å®","fields":[],"identifier":"IlluminanceLevelStepSettingForMainLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":184,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½ç
-§åº¦ã¬ãã«æå¤§å¤(æï½æ)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å¸¸å¤ç¯ã¢ã¼ãæç
-§åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"IlluminanceLevelSettingForNightLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":185,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ï¼
-","valueDescription":"0x00ï½0x64(0ï½100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å¸¸å¤ç¯ã¢ã¼ãæç
-§åº¦ã¬ãã«æ®µæ°è¨­å®","fields":[],"identifier":"IlluminanceLevelStepSettingForNightLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½ç
-§åº¦ã¬ãã«æå¤§å¤(æï½æ)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éå¸¸ç¯ã¢ã¼ãæå
-è²è¨­å®","fields":[],"identifier":"LightColorSettingForMainLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é»çè²,0x42=ç½è²,0x43=æ¼ç½è²,0x44=æ¼å
-è²,0x40=ãã®ä»"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éå¸¸ç¯ã¢ã¼ãæå
-è²ã¬ãã«æ®µæ°è¨­å®","fields":[],"identifier":"LightColorLevelStepSettingForMainLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":188,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½å
-è²ã¬ãã«æå¤§å¤(é»çè²ï½ç½è²)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å¸¸å¤ç¯ã¢ã¼ãæå
-è²è¨­å®","fields":[],"identifier":"LightColorSettingForNightLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":189,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é»çè²,0x42=ç½è²,0x43=æ¼ç½è²,0x44=æ¼å
-è²,0x40=ãã®ä»"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å¸¸å¤ç¯ã¢ã¼ãæå
-è²ã¬ãã«æ®µæ°è¨­å®","fields":[],"identifier":"LightColorLevelStepSettingForNightLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½å
-è²ã¬ãã«æå¤§å¤(é»çè²ï½ç½è²)"},{"access":["RULE_GET"],"arrayCount":0,"description":"èªåã¢ã¼ãæç¹ç¯ã¢ã¼ãç¶æ
-","fields":[],"identifier":"LightingModeStatusInAutoMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x42=éå¸¸ç¯,0x43=å¸¸å¤ç¯,0x44=æ¶ç¯,0x45=ã«ã©ã¼ç¯"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ã«ã©ã¼ç¯ã¢ã¼ãæï¼²ï¼§ï¼¢è¨­å®","fields":[{"arrayCount":0,"description":"ï¼²","fields":[],"identifier":"ï¼²","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF(æä½è¼åº¦ï½æé«è¼åº¦)"},{"arrayCount":0,"description":"ï¼§","fields":[],"identifier":"ï¼§","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF(æä½è¼åº¦ï½æé«è¼åº¦)"},{"arrayCount":0,"description":"ï¼¢","fields":[],"identifier":"ï¼¢","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFF(æä½è¼åº¦ï½æé«è¼åº¦)"}],"identifier":"RGBSettingForColorLighting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":192,"required":["NONE"],"size":3,"type":"rgbsetting_for_color_lighting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OffTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼¦ï¼¦ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OffTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":153,"description":"éå¸¸ç
-§æ","name":"EMERGENCY_LIGHTING_EOBJ","propertyList":[]},{"classCode":157,"description":"è¨­åç
-§æ","name":"EQUIPMENT_LIGHT_EOBJ","propertyList":[]},{"classCode":160,"description":"ãã¶ã¼","name":"BUZZER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é³çºçè¨­å®","fields":[],"identifier":"SoundGenerationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é³çºçæ,0x42=é³çºçç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã¶ã¼é³ç¨®å¥è¨­å®","fields":[],"identifier":"BuzzerSoundType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x38"}]}]},{"classGroupCode":3,"description":"èª¿çã»å®¶äºé¢é£æ©å¨","define":"X1_HOUSEWORK","classList":[{"classCode":176,"description":"ã³ã¼ãã¼ã¡ã¼ã«","name":"COFFEE_MACHINE_EOBJ","propertyList":[]},{"classCode":177,"description":"ã³ã¼ãã¼ãã«","name":"COFFEE_MILL_EOBJ","propertyList":[]},{"classCode":178,"description":"é»æ°ããã","name":"ELECTRIC_HOT_WATER_POT_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"èééç¶æ
-","fields":[],"identifier":"CoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èé,0x42=èé"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æ¹¯åãè­¦åç¶æ
-","fields":[],"identifier":"NoWaterWarning","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ¹¯åãæã,0x40=æ¹¯åããªã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ²¸é¨°è¨­å®","fields":[],"identifier":"BoilUpSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ²¸é¨°éå§,0x42=æ²¸é¨°åæ­¢\/ä¿æ¸©"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ²¸é¨°ï¼ä¿æ¸©ã¢ã¼ãè¨­å®","fields":[],"identifier":"BoilUpWarmerModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã¯ã¨ã³é
-¸æ´æµ,0x42=éå¸¸ä¿æ¸©,0x43=çã¨ãä¿æ¸©"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¿æ¸©æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"SetValueOfWarmerTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"åºæ¹¯ç¶æ
-","fields":[],"identifier":"HotWaterDischargeStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=åºæ¹¯æ,0x42=åºæ¹¯ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"ã­ãã¯ç¶æ
-","fields":[],"identifier":"LockStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã­ãã¯æ,0x42=ã­ãã¯ç¡"}]},{"classCode":179,"description":"é»æ°ããã","name":"ELECTRIC_STOVE_EOBJ","propertyList":[]},{"classCode":180,"description":"ãã¼ã¹ã¿","name":"TOASTER_EOBJ","propertyList":[]},{"classCode":181,"description":"ã¸ã¥ã¼ãµã»ãã­ãµ","name":"JUICER_FOOD_MIXER_EOBJ","propertyList":[]},{"classCode":182,"description":"ãã¼ããã­ã»ããµ","name":"FOOD_PROCESSOR_EOBJ","propertyList":[]},{"classCode":183,"description":"å·åå·èµåº«","name":"REFRIGERATOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ãã¢ééç¶æ
-","fields":[],"identifier":"DoorOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"},{"access":["RULE_GET"],"arrayCount":0,"description":"ãã¢éæ¾è­¦åç¶æ
-","fields":[],"identifier":"DoorOpenWarning","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãã¢éæ¾è­¦åæ,0x42=ãã¢éæ¾è­¦åç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"å·èµå®¤ãã¢ééç¶æ
-","fields":[],"identifier":"RefrigeratorCompartmentDoorStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"},{"access":["RULE_GET"],"arrayCount":0,"description":"å·åå®¤ãã¢ééç¶æ
-","fields":[],"identifier":"FreezerCompartmentDoorStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ°·æ¸©å®¤ãã¢ééç¶æ
-","fields":[],"identifier":"IceCompartmentDoorStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"},{"access":["RULE_GET"],"arrayCount":0,"description":"éèå®¤ãã¢ééç¶æ
-","fields":[],"identifier":"VegetableCompartmentDoorStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":181,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"},{"access":["RULE_GET"],"arrayCount":0,"description":"åæå®¤ãã¢ééç¶æ
-","fields":[],"identifier":"MultiRefrigeratingModeCompartmentDoor","initialValue":null,"isArray":false,"primitive":true,"propertyCode":182,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"},{"access":["RULE_GET"],"arrayCount":0,"description":"è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤","fields":[{"arrayCount":0,"description":"å·èµå®¤","fields":[],"identifier":"RefrigeratorCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"},{"arrayCount":0,"description":"å·åå®¤","fields":[],"identifier":"FreezerCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"},{"arrayCount":0,"description":"æ°·æ¸©å®¤","fields":[],"identifier":"SubzeroFreshCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"},{"arrayCount":0,"description":"éèå®¤","fields":[],"identifier":"VegetableCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"},{"arrayCount":0,"description":"åæå®¤","fields":[],"identifier":"MultiRefrigeratingModeCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"},{"arrayCount":0,"description":"for future reserved 1","fields":[],"identifier":"Reserved6","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"},{"arrayCount":0,"description":"for future reserved 2","fields":[],"identifier":"Reserved7","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"},{"arrayCount":0,"description":"for future reserved 3","fields":[],"identifier":"Reserved8","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255æ®µé),0x00=å®¤ãæ­è¼ãã¦ããªã"}],"identifier":"MaximumAllowableTemperatureSettingLevel","initialValue":null,"isArray":false,"primitive":false,"propertyCode":224,"required":["NONE"],"size":8,"type":"maximum_allowable_temperature_setting_level_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å·èµå®¤æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"RefrigeratorCompartmentTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å·åå®¤æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"FreezerCompartmentTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°·æ¸©å®¤æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"IceTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éèå®¤æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"VegetableCompartmentTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"åæå®¤æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"MultiRefrigeratingModeCompartmentTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å·èµå®¤æ¸©åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"RefrigeratorCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å·åå®¤æ¸©åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"FreezerCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°·æ¸©å®¤æ¸©åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"IceCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éèå®¤æ¸©åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"VegetableCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"åæå®¤æ¸©åº¦ã¬ãã«è¨­å®","fields":[],"identifier":"MultiRefrigeratingModeCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":237,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½è¨­å®å¯è½æ¸©åº¦ã¬ãã«æå¤§å¤(å¼±ï½å¼·)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å·èµå®¤æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredRefrigeratorCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å·åå®¤æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredFreezerCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ°·æ¸©å®¤æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredSubzeroFreshCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"éèå®¤æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredVegetableCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"åæå®¤æ¸©åº¦è¨æ¸¬å¤","fields":[],"identifier":"MeasuredMultiRefrigeratingModeCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"â","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å§ç¸®æ©åè»¢æ°ã¬ãã«","fields":[{"arrayCount":0,"description":"æå¤§åè»¢æ°ã¬ãã«","fields":[],"identifier":"MaximumRotationSpeedLevel","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01ï½0xFF(1ï½255)"},{"arrayCount":0,"description":"åè»¢æ°ã¬ãã«","fields":[],"identifier":"RotationSpeedLevel","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=åæ­¢,0x01ï½0xFF(å¼±ï½å¼·)"}],"identifier":"CompressorRotationSpeed","initialValue":null,"isArray":false,"primitive":false,"propertyCode":216,"required":["NONE"],"size":2,"type":"compressor_rotation_speed_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"æ¶è²»é»æµè¨æ¸¬å¤","fields":[],"identifier":"MeasuredElectricCurrentConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":218,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x81ï½0x7E(-127ï½126â)"},{"access":["RULE_GET"],"arrayCount":0,"description":"å®æ ¼æ¶è²»é»åå¤","fields":[],"identifier":"RatedPowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":220,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¥éå·ååä½è¨­å®","fields":[],"identifier":"QuickFreezeFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éå¸¸å·å,0x42=æ¥éå·å,0x43=æ¥éå·åå¾
-æ©"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ¥éå·èµåä½è¨­å®","fields":[],"identifier":"QuickRefrigerationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":161,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éå¸¸å·èµ,0x42=æ¥éå·èµ,0x43=æ¥éå·èµå¾
-æ©"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"è£½æ°·è¨±å¯è¨­å®","fields":[],"identifier":"IcemakerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":164,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=è£½æ°·è¨±å¯,0x42=è£½æ°·ç¦æ­¢,0x43=è£½æ°·ä¸å®æéç¦æ­¢"},{"access":["RULE_GET"],"arrayCount":0,"description":"è£½æ°·åä½ç¶æ
-","fields":[],"identifier":"IcemakerOperationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":165,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=éè»¢ä¸­,0x42=åæ­¢ä¸­"},{"access":["RULE_GET"],"arrayCount":0,"description":"è£½æ°·ç¨çµ¦æ°´ã¿ã³ã¯ç¶æ
-","fields":[],"identifier":"IcemakerTankStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":166,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã¿ã³ã¯æ°´ãã,0x42=ã¿ã³ã¯ãªãoræ°´ãªã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å·èµå®¤å æ¹¿åä½è¨­å®","fields":[],"identifier":"RefrigeratorCompartmentHumidificationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":168,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å æ¹¿ON,0x42=å æ¹¿OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éèå®¤å æ¹¿åä½è¨­å®","fields":[],"identifier":"VegetableCompartmentHumidificationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":169,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å æ¹¿ON,0x42=å æ¹¿OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"è±è­åä½è¨­å®","fields":[],"identifier":"DeodorizationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":173,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=è±è­ON,0x42=è±è­OFF"}]},{"classCode":184,"description":"ãªã¼ãã³ã¬ã³ã¸","name":"COMBINATION_MICROWAVE_OVEN_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ãã¢ééç¶æ
-","fields":[],"identifier":"DoorOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ãã¢é,0x42=ãã¢é"},{"access":["RULE_GET"],"arrayCount":0,"description":"å ç±ç¶æ
-","fields":[],"identifier":"HeatingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=åæç¶æ
-,0x41=éè»¢ä¸­,0x42=ä¸æåæ­¢ä¸­,0x43=å®äºå ±ç¥ä¸­,0x44=è¨­å®ä¸­,0x45=äºç±ä¸­,0x46=äºç±å®äºä¿æ¸©ä¸­,0x47=å ç±éä¸­å ±ç¥ä¸æåæ­¢ä¸­"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å ç±è¨­å®","fields":[],"identifier":"HeatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å ç±éå§ã»åé,0x42=å ç±ä¸æåæ­¢,0x43=å ç±åæ­¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å ç±ã¢ã¼ãè¨­å®","fields":[],"identifier":"HeatingModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=é»å­ã¬ã³ã¸å ç±,0x42=è§£å,0x43=ãªã¼ãã³,0x44=ã°ãªã«,0x45=ãã¼ã¹ã,0x46=çºé
-µ,0x47=ç
-®è¾¼ã¿,0x48=ã¹ãã¼ã å ç±,0x51=é»å­ã¬ã³ã¸2æ®µå ç±,0xFF=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"èªåå ç±è¨­å®","fields":[],"identifier":"AutomaticHeatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èªå,0x42=ããã¥ã¢ã«,0xFF=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"èªåå ç±ã¬ãã«è¨­å®","fields":[],"identifier":"AutomaticHeatingLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31ï½0x35(å¼±ï½å¼·),0xFF=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"èªåã¡ãã¥ã¼ã³ã¼ã¹è¨­å®","fields":[],"identifier":"AutomaticHeatingMenuSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xFE=èªåã¡ãã¥ã¼ã³ã¼ã¹ã³ã¼ããã­ããã£ã®è©³ç´°èª¬æã«ãå®ç¾©ãããã³ã¼ããç¤ºãã,0xFF=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãªã¼ãã³ã¢ã¼ãè¨­å®","fields":[],"identifier":"OvenModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=èªåé¸æã¢ã¼ã,0x41=å¯¾æµãªã¼ãã³ã¢ã¼ã,0x42=ç±é¢¨ãªã¼ãã³ã¢ã¼ã,0x43=è¤åãªã¼ãã³ã¢ã¼ã,0xFF=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãªã¼ãã³äºç±è¨­å®","fields":[],"identifier":"OvenPreheatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç±ãã,0x42=äºç±ãªã,0xFF=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çºé
-µã¢ã¼ãè¨­å®","fields":[],"identifier":"FermentingModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":214,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=èªåé¸æã¢ã¼ã,0x41=å¯¾æµçºé
-µã¢ã¼ã,0x42=ç±é¢¨çºé
-µã¢ã¼ã,0x43=è¤åçºé
-µã¢ã¼ã,0x51=é»å­ã¬ã³ã¸çºé
-µã¢ã¼ã,0xFF=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"åº«å
-æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"ChamberTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"â","valueDescription":"0xF554ï½0x7FFE(-273.2ï½3276.6â),0x8001=èªåè¨­å®,0x8002=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä»ä¸ããæ¸©åº¦è¨­å®å¤","fields":[],"identifier":"FoodTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"â","valueDescription":"0xF554ï½0x7FFE(-273.2ï½3276.6â),0x8002=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å ç±æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"HeatingTimeSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":229,"required":["NONE"],"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"å ç±æ®æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RemainingHeatingTimeSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":230,"required":["NONE"],"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é»å­ã¬ã³ã¸å ç±åºåè¨­å®å¤","fields":[],"identifier":"MicrowaveHeatingPowerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":4,"description":"éä¸­å ±ç¥ãã¿ã¼ã³è¨­å®","fields":[],"identifier":"PromptMessageSetting","initialValue":null,"isArray":true,"primitive":false,"propertyCode":232,"required":["NONE"],"size":0,"type":"prompt_message_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä»å±åè¨­å®","fields":[],"identifier":"AccessoriesToCombinationMicrowaveOvenSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"ä½¿ç¨ããä»å±åã®çµã¿åããã2ãã¤ãã®ããããããã§ç¤ºããä½¿ç¨ããä»å±åã«å¯¾å¿ããããããã¿ã¼ã³ã1ã¨ããããã­ããã£ã®è©³ç´°èª¬æã«åä»å±åã«å¯¾å¿ãããããããããã¿ã¼ã³ãç¤ºãã"},{"access":["RULE_SET"],"arrayCount":20,"description":"è¡¨ç¤ºæå­åè¨­å®","fields":[],"identifier":"DisplayCharacterStringSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":234,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"ShiftJISã³ã¼ãÃ20"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é»å­ã¬ã³ã¸ï¼æ®µå ç±æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"1æ®µç®ã®å ç±æé","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"DurationOfFirstMicrowaveHeatingCycle","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"2æ®µç®ã®å ç±æé","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"DurationOfSecondMicrowaveHeatingCycle","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""}],"identifier":"TwoStageMicrowaveHeatingSettingDuration","initialValue":null,"isArray":false,"primitive":false,"propertyCode":235,"required":["NONE"],"size":6,"type":"two_stage_microwave_heating_setting_duration_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é»å­ã¬ã³ã¸ï¼æ®µå ç±åºåè¨­å®å¤","fields":[{"arrayCount":0,"description":"1æ®µç®ã®å ç±åºå","fields":[],"identifier":"HeatingPowerForFirstMicrowaveHeatingCycle","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"},{"arrayCount":0,"description":"2æ®µç®ã®å ç±åºå","fields":[],"identifier":"HeatingPowerForSecondMicrowaveHeatingCycle","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000ï½0xFFFD(0ï½65533W)"}],"identifier":"TwoStageMicrowaveHeatingSettingHeatingPower","initialValue":null,"isArray":false,"primitive":false,"propertyCode":236,"required":["NONE"],"size":4,"type":"two_stage_microwave_heating_setting_heating_power_t","unitDescription":null,"valueDescription":""}]},{"classCode":185,"description":"ã¯ãã­ã³ã°ãã¼ã¿","name":"COOKING_HEATER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":4,"description":"å ç±ç¶æ
-","fields":[],"identifier":"HeatingStatus","initialValue":null,"isArray":true,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=å¾
-æ©ä¸­,0x41=éè»¢ä¸­,0x42=ä¸æåæ­¢ä¸­,0x50=å ç±ç¦æ­¢ç¶æ
-,0xFF=ä¸æ"},{"access":["RULE_SET","RULE_GET"],"arrayCount":4,"description":"å ç±è¨­å®","fields":[],"identifier":"HeatingSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=å ç±åæ­¢,0x41=å ç±éå§ã»åé,0x42=å ç±ä¸æåæ­¢,0xFF=è¨­å®ãªã"},{"access":["RULE_SET"],"arrayCount":0,"description":"ä¸æ¬åæ­¢è¨­å®","fields":[],"identifier":"AllStopSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=ä¸æ¬å ç±åæ­¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":4,"description":"å ç±åºåè¨­å®","fields":[],"identifier":"HeatingPowerSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":231,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W|æ®µé|ï¼","valueDescription":"0x0000ï½0x2710=åºåè¨­å®å½¢å¼(0ï½10000W),0x3000ï½0x3010=ã¬ãã«è¨­å®å½¢å¼ï¼17æ®µéï¼,0x4002=ã¨ãç«,0x4004=å¼±ç«,0x4006=ä¸­ç«,0x4008=å¼·ç«,0x400A=ãã¤ãã¯ã¼,0xFFFF=æªè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"å ç±æ¸©åº¦è¨­å®å¤","fields":[],"identifier":"HeatingTemperatureSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x32ï½0xFA=è¨­å®æ¸©åº¦(50ï½250â),0xFF=è¨­å®ãªã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"ã³ã³ã­å ç±ã¢ã¼ãè¨­å®","fields":[],"identifier":"HeatingModesOfStovesSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=å ç±åºåå¶å¾¡ã¢ã¼ã,0x42=å¤©ã·ãï¼æãç©ï¼,0x43=æ¹¯æ²¸ã,0x44=çé£¯,0x45=çãç©,0xFF=è¨­å®ãªã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"åã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[],"identifier":"RelativeTimeSettingsOfOffTimers","initialValue":null,"isArray":true,"primitive":false,"propertyCode":150,"required":["NONE"],"size":0,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":"0xFFFFFF=è¨­å®ãªã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãã£ã¤ã«ãã­ãã¯è¨­å®","fields":[],"identifier":"ChildLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":161,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=ãã£ã¤ã«ãã­ãã¯OFF,0x41=ãã£ã¤ã«ãã­ãã¯ON"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ã©ã¸ã¨ã³ããã¼ã¿ã­ãã¯è¨­å®","fields":[],"identifier":"RadiantHeaterLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":162,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=ã©ã¸ã¨ã³ããã¼ã¿ã­ãã¯OFF,0x41=ã©ã¸ã¨ã³ããã¼ã¿ã­ãã¯ON"}]},{"classCode":186,"description":"ãªã¼ãã³","name":"OVEN_EOBJ","propertyList":[]},{"classCode":187,"description":"çé£¯å¨","name":"RICE_COOKER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"èééç¶æ
-","fields":[],"identifier":"CoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=èé,0x42=èé"},{"access":["RULE_GET"],"arrayCount":0,"description":"çé£¯ç¶æ
-","fields":[],"identifier":"RiceCookingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=åæ­¢,0x42=äºç±,0x43=çé£¯,0x44=è¸ãã,0x45=çé£¯å®äº"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çé£¯å¶å¾¡è¨­å®","fields":[],"identifier":"RiceCookingControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=çé£¯éå§ã»çé£¯åé,0x42=çé£¯ä¸æåæ­¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¿æ¸©è¨­å®","fields":[],"identifier":"WarmerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ä¿æ¸©æ,0x42=ä¿æ¸©ç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"å
-ãªã¹åãå¤ãç¶æ
-","fields":[],"identifier":"InnerPotRemovalStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=åãå¤ãæ,0x42=åãå¤ãç¡"},{"access":["RULE_GET"],"arrayCount":0,"description":"èåãå¤ãç¶æ
-","fields":[],"identifier":"CoverRemovalStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=åãå¤ãæ,0x42=åãå¤ãç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çé£¯äºç´è¨­å®","fields":[],"identifier":"RiceCookingReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´æ,0x42=äºç´ç¡"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çé£¯äºç´è¨­å®æå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"SetValueOfRiceCookingReservationSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"çé£¯äºç´è¨­å®ç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"SetValueOfRiceCookingReservationSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":188,"description":"é»å­ã¸ã£ã¼","name":"ELECTRONIC_JAR_EOBJ","propertyList":[]},{"classCode":189,"description":"é£å¨æ´ãæ©","name":"DISH_WASHER_EOBJ","propertyList":[]},{"classCode":190,"description":"é£å¨ä¹¾ç¥æ©","name":"DISH_DRYER_EOBJ","propertyList":[]},{"classCode":191,"description":"é»æ°ãã¡ã¤ãæ©","name":"ELECTRIC_RICE_CARD_COOKER_EOBJ","propertyList":[]},{"classCode":192,"description":"ä¿æ¸©æ©","name":"KEEP_WARM_MACHINE_EOBJ","propertyList":[]},{"classCode":193,"description":"ç²¾ç±³æ©","name":"RICE_MILL_EOBJ","propertyList":[]},{"classCode":194,"description":"èªåè£½ãã³æ©","name":"AUTOMATIC_BREAD_COOKER_EOBJ","propertyList":[]},{"classCode":195,"description":"ã¹ã­ã¼ã¯ãã«ã¼","name":"SLOW_COOKER_EOBJ","propertyList":[]},{"classCode":196,"description":"é»æ°æ¼¬ç©æ©","name":"ELECTRIC_PICKLES_COOKER_EOBJ","propertyList":[]},{"classCode":197,"description":"æ´æ¿¯æ©","name":"WASHING_MACHINE_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"æã»èééç¶æ
-","fields":[],"identifier":"DoorCoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æã»èé,0x42=æã»èé"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯è¨­å®","fields":[],"identifier":"WashingMachineSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ´æ¿¯éå§ã»åé,0x42=æ´æ¿¯ä¸æåæ­¢,0x43=æ´æ¿¯åæ­¢"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯é·ç§»ç¶æ
-","fields":[],"identifier":"CurrentStageOfWashingCycle","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ´ã,0x42=ããã,0x43=è±æ°´,0x44=ä¸æåæ­¢,0x45=æ´æ¿¯å®äºã»åæ­¢"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯æ®ãæé","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TimeRemainingToCompleteWashingCycle","initialValue":null,"isArray":false,"primitive":false,"propertyCode":230,"required":["NONE"],"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RelativeTimeBasedOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":198,"description":"è¡£é¡ä¹¾ç¥æ©","name":"CLOTHES_DRYER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"æã»èééç¶æ
-","fields":[],"identifier":"DoorCoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æã»èé,0x42=æã»èé"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¹¾ç¥è¨­å®","fields":[],"identifier":"DryingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ä¹¾ç¥éå§ã»åé,0x42=ä¹¾ç¥ä¸æåæ­¢,0x43=ä¹¾ç¥åæ­¢"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä¹¾ç¥é·ç§»ç¶æ
-","fields":[],"identifier":"DryingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ä¹¾ç¥,0x42=ä¸æåæ­¢,0x43=ä¹¾ç¥å®äºã»åæ­¢"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä¹¾ç¥æ®ãæé","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"},{"arrayCount":0,"description":"ç§","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"ç§","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RemainingDryingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":230,"required":["NONE"],"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RelativeTimeBasedOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":199,"description":"é»æ°ã¢ã¤ã­ã³","name":"ELECTRIC_IRON_EOBJ","propertyList":[]},{"classCode":200,"description":"ãºãã³ãã¬ããµ","name":"TROUSER_PRESS_EOBJ","propertyList":[]},{"classCode":201,"description":"ãµã¨ãä¹¾ç¥æ©","name":"FUTON_DRYER_EOBJ","propertyList":[]},{"classCode":202,"description":"å°ç©ã»ãã¤ä¹¾ç¥æ©","name":"SMALL_ARTICLE_SHOES_DRYER_EOBJ","propertyList":[]},{"classCode":203,"description":"é»æ°æé¤æ©ï¼ã»ã³ãã©ã«ã¯ãªã¼ãå«ãï¼","name":"ELECTRIC_VACUUM_CLEANER_EOBJ","propertyList":[]},{"classCode":204,"description":"ãã£ã¹ãã¼ã¶","name":"DISPOSER_EOBJ","propertyList":[]},{"classCode":205,"description":"é»æ°èåãæ©","name":"ELECTRIC_MOSQUITO_CATCHER_EOBJ","propertyList":[]},{"classCode":206,"description":"æ¥­åç¨ã·ã§ã¼ã±ã¼ã¹","name":"COMMERCIAL_SHOW_CASE_EOBJ","propertyList":[]},{"classCode":207,"description":"æ¥­åç¨å·èµåº«","name":"COMMERCIAL_REFRIGERATOR_EOBJ","propertyList":[]},{"classCode":208,"description":"æ¥­åç¨ãããã±ã¼ã¹","name":"COMMERCIAL_HOT_CASE_EOBJ","propertyList":[]},{"classCode":209,"description":"æ¥­åç¨ãã©ã¤ã¤ã¼","name":"COMMERCIAL_FRYER_EOBJ","propertyList":[]},{"classCode":210,"description":"æ¥­åç¨é»å­ã¬ã³ã¸","name":"COMMERCIAL_MICROWAVE_OVEN_EOBJ","propertyList":[]},{"classCode":211,"description":"æ´æ¿¯ä¹¾ç¥æ©","name":"WASHER_AND_DRYER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"æã»èééç¶æ
-","fields":[],"identifier":"DoorCoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æã»èé,0x42=æã»èé"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯ã»ä¹¾ç¥è¨­å®","fields":[],"identifier":"WasherAndDryerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ´æ¿¯ä¹¾ç¥éå§ã»åé\/æ´æ¿¯ä¹¾ç¥éè»¢ä¸­,0x42=æ´æ¿¯ä¹¾ç¥ä¸æåæ­¢,0x43=æ´æ¿¯ä¹¾ç¥åæ­¢"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯ä¹¾ç¥ã³ã¼ã¹è¨­å®ï¼","fields":[],"identifier":"WasherAndDryerCycleSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"<æ´æ¿¯ä¹¾ç¥ã³ã¼ã¹>\u000d\u000a0x21=æ¨æº,0x22=éé³,0x23=æ±ãå¤§,0x24=ãã¤ããæ±ã,0x25=ã¤ããã,0x26=æ¯å¸,0x27=ã½ãã,0x28=ãã©ã¤,0x29=æ¸
-æ½ããã,0x2A=ã¢ã¤ã­ã³\/Yã·ã£ã,0x2B=åãå¹²ã,0x2C=åç©,0x2D=é¤è,0x2E=æ²¹æ±ã,0x2F=ã¡ã¢ãªã¼,0x30=çæ´å¤,0x31=æ±ãå°,0x32=å°éç­æé,0x40ï½0x4F=æ´æ¿¯ä¹¾ç¥ã³ã¼ã¹\/ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹\u000d\u000a<æ´æ¿¯ã³ã¼ã¹>\u000d\u000a0x61=æ¨æº,0x62=éé³,0x63=æ±ãå¤§,0x64=ãã¤ããæ±ã,0x65=ã¤ããã,0x66=æ¯å¸,0x67=ã½ãã,0x68=ãã©ã¤,0x69=æ¸
-æ½ããã,0x6A=é¤è,0x6B=æ²¹æ±ã,0x6C=ã¡ã¢ãª,0x6D=çæ´å¤,0x6E=æ±ãå°,0x6F=å°éç­æé,0x7F=æ§½æ´æµ,0x80ï½0x8F=æ´æ¿¯ã³ã¼ã¹\/ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹\u000d\u000a<ä¹¾ç¥ã³ã¼ã¹>\u000d\u000a0xA1=æ¨æº,0xA2=æ¯å¸,0xA3=ã½ãã,0xA4=ãã©ã¤,0xA5=ã¢ã¤ã­ã³\/Yã·ã£ã,0xA6=åãå¹²ã,0xA7=åç©,0xA8=é¤è,0xA9=ç¸®ã¿ä½æ¸,0xAA=ä»ä¸ã,0xAB=éæ­¢ä¹¾ç¥,0xAC=æéæå®,0xAD=è¡£é¡ãããã,0xBF=æ§½ä¹¾ç¥,0xC0ï½0xCF=ä¹¾ç¥ã³ã¼ã¹\/ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯ä¹¾ç¥ã³ã¼ã¹è¨­å®ï¼","fields":[],"identifier":"WasherAndDryerCycleSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x20=æ´æ¿¯ãªã,0x21=æ¨æº,0x22=éé³,0x23=æ±ãå¤§,0x24=ãã¤ããæ±ã,0x25=ã¤ããã,0x26=æ¯å¸,0x27=ã½ãã,0x28=ãã©ã¤,0x29=æ¸
-æ½ããã,0x2D=é¤è,0x2E=æ²¹æ±ã,0x2F=ã¡ã¢ãªã¼,0x30=çæ´å¤,0x31=æ±ãå°,0x32=å°éç­æé,0x3F=æ§½æ´æµ,0xE0ï½0xEF=ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¹¾ç¥æ¹æ³è¨­å®","fields":[],"identifier":"DryingCycleSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0xA0=ä¹¾ç¥ãªã,0xA1=æ¨æº,0xA2=æ¯å¸,0xA3=ã½ãã,0xA4=ãã©ã¤,0xA5=ã¢ã¤ã­ã³\/Yã·ã£ã,0xA6=åãå¹²ã,0xA7=åç©,0xA8=é¤è,0xA9=ç¸®ã¿ä½æ¸,0xAA=ä»ä¸ã,0xAB=éæ­¢ä¹¾ç¥,0xAC=æéæå®,0xAD=è¡£é¡ãããã,0xAE=ãã¼ã¿å
-¥åå¶é,0xBF=æ§½ä¹¾ç¥,0xE0ï½0xEF=ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã¹"},{"access":["RULE_GET"],"arrayCount":12,"description":"è¨­å®å¯è½ã³ã¼ã¹æ
-å ±ï¼","fields":[],"identifier":"WasherAndDryerCycleOptionList1","initialValue":null,"isArray":true,"primitive":true,"propertyCode":211,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ãããã1ã®å ´åãå¯¾å¿ããã³ã¼ã¹ã®è¨­å®ãå¯è½ãªãã¨ãã0ã®å ´åã¯ä¸å¯è½ãªãã¨ãç¤ºãããããã¨ã³ã¼ã¹ã®é¢ä¿ã¯è©³ç´°ãåç
-§ã®ãã¨ã"},{"access":["RULE_GET"],"arrayCount":4,"description":"è¨­å®å¯è½ã³ã¼ã¹æ
-å ±ï¼","fields":[],"identifier":"WasherAndDryerCycleOptionList2","initialValue":null,"isArray":true,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ãããã1ã®å ´åãå¯¾å¿ããã³ã¼ã¹ã®è¨­å®ãå¯è½ãªãã¨ãã0ã®å ´åã¯ä¸å¯è½ãªãã¨ãç¤ºãããããã¨ã³ã¼ã¹ã®é¢ä¿ã¯è©³ç´°ãåç
-§ã®ãã¨ã"},{"access":["RULE_GET"],"arrayCount":4,"description":"è¨­å®å¯è½ã³ã¼ã¹æ
-å ±ï¼","fields":[],"identifier":"WasherAndDryerCycleOptionList3","initialValue":null,"isArray":true,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ãããã1ã®å ´åãå¯¾å¿ããã³ã¼ã¹ã®è¨­å®ãå¯è½ãªãã¨ãã0ã®å ´åã¯ä¸å¯è½ãªãã¨ãç¤ºãããããã¨ã³ã¼ã¹ã®é¢ä¿ã¯è©³ç´°ãåç
-§ã®ãã¨ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´æµè¨­å®","fields":[],"identifier":"WaterFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":214,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x31ï½0x40(æãå¼±ãæ°´æµï½æãå¼·ãæ°´æµ)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xA7=ãã©ã¹ç¸å¯¾æå®(1ï½8æ®µé),0xC0ï½0xC7=ãã¤ãã¹ç¸å¯¾æå®(1ï½8æ®µé)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ®µéè±æ°´åè»¢æ°è¨­å®å¤","fields":[],"identifier":"RotationSpeedForSpinDryingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x0000ï½0x0FFF(0ï½4095 r\/min)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFFFF=èªåè¨­å®,0xA000ï½0xA7FF=ãã©ã¹ç¸å¯¾æå®(1ï½2048r\/min),0xC000ï½0xC7FF=ãã¤ãã¹ç¸å¯¾æå®(1ï½2048r\/min)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ä¹¾ç¥åº¦è¨­å®","fields":[],"identifier":"DegreeOfDryingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":216,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x31ï½0x40(æãä½ãä¹¾ç¥åº¦ï½æãé«ãä¹¾ç¥åº¦)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xA7=ãã©ã¹ç¸å¯¾æå®(1ï½8æ®µé),0xC0ï½0xC7=ãã¤ãã¹ç¸å¯¾æå®(1ï½8æ®µé)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯æ®ãæé","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æé","valueDescription":"0x00ï½0xFE(0ï½254)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RemainingWashingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":219,"required":["NONE"],"size":2,"type":"hours_minutes_t","unitDescription":null,"valueDescription":"0xFFFF=æ®ãæéä¸æ"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä¹¾ç¥æ®ãæé","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æé","valueDescription":"0x00ï½0xFE(0ï½254)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RemainingDryingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":220,"required":["NONE"],"size":2,"type":"hours_minutes_t","unitDescription":null,"valueDescription":"0xFFFF=æ®ãæéä¸æ"},{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãçµéæé","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æé","valueDescription":"0x00ï½0xFF(0ï½255)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"ElapsedTimeOnTheOnTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":223,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":2,"description":"ã¤ãããè¡ç¨æéè¨­å®å¤","fields":[],"identifier":"PresoakingTimeSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"æéå","valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x17:0x00ï½0x3B(0ï½23):(0ï½59)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFFFF=èªåè¨­å®,0xA000ï½0xA03B=ãã©ã¹ç¸å¯¾æå®(1ï½60å),0xC000ï½0xC03B=ãã¤ãã¹ç¸å¯¾æå®(1ï½60å)"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯ä¹¾ç¥é·ç§»ç¶æ
-","fields":[],"identifier":"CurrentStageOfWasherAndDryerCycle","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=æ´ã,0x42=ããã,0x43=è±æ°´,0x44=ä¸æåæ­¢,0x45=æ´æ¿¯å®äº,0x51=æ´æ¿¯\/ä¹¾ç¥ï¼ã½ããã­ã¼ããªãï¼å®äº,0x52=ä¹¾ç¥,0x53=ã½ããã­ã¼ã,0x54=ä¹¾ç¥ï¼ã½ããã­ã¼ãããï¼å®äº,0x61=éè»¢åå¾
-æ©ä¸­,0x71=ç¬¬1ããã,0x72=ç¬¬2ããã,0x73=ç¬¬3ããã,0x74=ç¬¬4ããã,0x75=ç¬¬5ããã,0x76=ç¬¬6ããã,0x77=ç¬¬7ããã,0x78=ç¬¬8ããã,0x81=ç¬¬1è±æ°´,0x82=ç¬¬2è±æ°´,0x83=ç¬¬3è±æ°´,0x84=ç¬¬4è±æ°´,0x85=ç¬¬5è±æ°´,0x86=ç¬¬6è±æ°´,0x87=ç¬¬7è±æ°´,0x88=ç¬¬8è±æ°´,0x91=ããªãã¼ãè±æ°´,0xE0ï½0xEF=ã¡ã¼ã«ãªãªã¸ãã«ã³ã¼ã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´éè¨­å®ï¼","fields":[],"identifier":"WaterVolumeSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"ã","valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x7F(0ï½127ã)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xBF=ãã©ã¹ç¸å¯¾æå®(1ï½32ã),0xC0ï½0xDF=ãã¤ãã¹ç¸å¯¾æå®(1ï½32ã)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ°´éè¨­å®ï¼","fields":[],"identifier":"WaterVolumeSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x31ï½0x40(æãä½ãæ°´ä½ï½æãé«ãæ°´ä½)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xA7=ãã©ã¹ç¸å¯¾æå®(1ï½8æ®µé),0xC0ï½0xC7=ãã¤ãã¹ç¸å¯¾æå®(1ï½8æ®µé)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":2,"description":"æ´ãæéè¨­å®å¤","fields":[],"identifier":"WashingTimeSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"æéå","valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x17:0x00ï½0x3B(0ï½23):(0ï½59)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA000ï½0xA03B=ãã©ã¹ç¸å¯¾æå®(1ï½60å),0xC000ï½0xC03B=ãã¤ãã¹ç¸å¯¾æå®(1ï½60å)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ãããåæ°è¨­å®å¤","fields":[],"identifier":"NumberOfTimesOfRinsingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0x08(0ï½8å),0xFF=èªå"},{"access":["RULE_SET","RULE_GET"],"arrayCount":4,"description":"ãããã¢ã¼ãè¨­å®","fields":[],"identifier":"RinsingProcessSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0000=ã¢ã¼ãèªåè¨­å®,0001=æºãããã,0010=æµæ°´ããã,0011=ã·ã£ã¯ã¼ããã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"è±æ°´æéè¨­å®å¤","fields":[],"identifier":"SpinDryingTimeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x3B(0ï½59å)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFF=èªåè¨­å®,0xA0ï½0xBF=ãã©ã¹ç¸å¯¾æå®(1ï½32å),0xC0ï½0xDF=ãã¤ãã¹ç¸å¯¾æå®(1ï½32å)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":2,"description":"ä¹¾ç¥æéè¨­å®å¤","fields":[],"identifier":"DryingTimeSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":233,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"æéå","valueDescription":"<çµ¶å¯¾å¤æå®>\u000d\u000a0x00ï½0x17:0x00ï½0x3B(0ï½23):(0ï½59)\u000d\u000a<èªåããã®ç¸å¯¾æå®>\u000d\u000a0xFFFF=èªåè¨­å®,0xA000ï½0xA03B=ãã©ã¹ç¸å¯¾æå®(1ï½60å),0xC000ï½0xC03B=ãã¤ãã¹ç¸å¯¾æå®(1ï½60å)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"æ´ãæ¸©æ°´è¨­å®å¤","fields":[],"identifier":"WarmWaterSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"â","valueDescription":"0x00ï½0x64(0ï½100â),0xFE=æ¸©æ°´ä¸ä½¿ç¨,0xFF=æ¸©åº¦èªåè¨­å®"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"é¢¨åæ°´è¨­å®","fields":[],"identifier":"BathtubWaterRecycleSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=é¢¨åæ°´çµ¦æ°´ãªã,0x41=æ´ãã®ã¿,0x42=ãããã®ã¿ï¼é¤ãæçµãããï¼,0x43=å
-¨ããã,0x44=æ´ãï¼ãããï¼é¤ãæçµãããï¼,0x45=æ´ãï¼å
-¨ããã"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ã½ããã­ã¼ãè¨­å®","fields":[],"identifier":"WrinklingMinimizationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã½ããã­ã¼ãå
-¥ã,0x42=ã½ããã­ã¼ãåã"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯ä¹¾ç¥æ®ãæé","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æé","valueDescription":"0x00ï½0xFE(0ï½254)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"TimeRemainingToCompleteWasherAndDryerCycle","initialValue":null,"isArray":false,"primitive":false,"propertyCode":237,"required":["NONE"],"size":2,"type":"hours_minutes_t","unitDescription":null,"valueDescription":"0xFFFF=æ®ãæéä¸æ"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"éè»¢ä¸­æã»èã­ãã¯è¨­å®","fields":[],"identifier":"DoorCoverLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã­ãã¯,0x42=ã¢ã³ã­ãã¯"},{"access":["RULE_GET"],"arrayCount":0,"description":"æ´æ¿¯ä¹¾ç¥è¡ç¨æ
-å ±","fields":[{"arrayCount":2,"description":"æå¹ãªè¡¨ç¤ºé 
-ç®","fields":[],"identifier":"AvailableItems","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"æå¹ãªè¡¨ç¤ºé 
-ç®ãããããããã§ç¤ºãã"},{"arrayCount":0,"description":"ã¤ãããè¡ç¨","fields":[],"identifier":"Presoaking","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ã¤ãããè¡ç¨ãã,0x42=ã¤ãããè¡ç¨ãªã"},{"arrayCount":2,"description":"æ´ãæé","fields":[],"identifier":"WashingTime","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯æ´ãæéè¨­å®å¤ãåç
-§"},{"arrayCount":0,"description":"ãããåæ°","fields":[],"identifier":"NumberOfTimesOfRinsing","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯ãããåæ°è¨­å®å¤ãåç
-§"},{"arrayCount":0,"description":"ãããã¢ã¼ã","fields":[],"identifier":"RinsingProcess","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"å¤ã¯ãããã¢ã¼ãè¨­å®ãåç
-§"},{"arrayCount":0,"description":"è±æ°´æé","fields":[],"identifier":"SpinDryingTime","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯è±æ°´æéè¨­å®å¤ãåç
-§"},{"arrayCount":2,"description":"ä¹¾ç¥æé","fields":[],"identifier":"DryingTime","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯ä¹¾ç¥æéè¨­å®å¤ãåç
-§"},{"arrayCount":0,"description":"æ¸©æ°´è¨­å®","fields":[],"identifier":"WarmWaterSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯æ¸©æ°´è¨­å®ãåç
-§"},{"arrayCount":0,"description":"æ°´éè¨­å®1","fields":[],"identifier":"WaterVolumeSetting1","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯æ°´éè¨­å®1ãåç
-§"},{"arrayCount":0,"description":"æ°´éè¨­å®2","fields":[],"identifier":"WaterVolumeSetting2","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯æ°´éè¨­å®2ãåç
-§"},{"arrayCount":0,"description":"é¢¨åæ°´è¨­å®","fields":[],"identifier":"BathtubWaterRecycleSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯é¢¨åæ°´è¨­å®ãåç
-§"},{"arrayCount":0,"description":"æ°´æµè¨­å®","fields":[],"identifier":"WaterFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯æ°´æµè¨­å®ãåç
-§"},{"arrayCount":2,"description":"è±æ°´åè»¢æ°è¨­å®","fields":[],"identifier":"RotationSpeedForSpinDryingSetting","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯è±æ°´åè»¢æ°è¨­å®å¤ãåç
-§"},{"arrayCount":0,"description":"ä¹¾ç¥åº¦è¨­å®","fields":[],"identifier":"DegreeOfDryingSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯ä¹¾ç¥åº¦è¨­å®ãåç
-§"},{"arrayCount":2,"description":"ã¤ãããè¡ç¨æéè¨­å®","fields":[],"identifier":"PresoakingTimeSetting","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯ã¤ãããè¡ç¨æéè¨­å®ãåç
-§"},{"arrayCount":0,"description":"ã½ããã­ã¼ãè¨­å®","fields":[],"identifier":"WrinklingMinimizationSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"å¤ã¯ã½ããã­ã¼ãè¨­å®ãåç
-§"}],"identifier":"WasherAndDryerCycle","initialValue":null,"isArray":false,"primitive":false,"propertyCode":239,"required":["NONE"],"size":24,"type":"washer_and_dryer_cycle_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãäºç´è¨­å®","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=äºç´å
-¥,0x42=äºç´å"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãæå»è¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æ","valueDescription":"0x00ï½0x17(0ï½23)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ï¼¯ï¼®ã¿ã¤ãç¸å¯¾æéè¨­å®å¤","fields":[{"arrayCount":0,"description":"æ","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"æé","valueDescription":"0x00ï½0xFF(0ï½255)"},{"arrayCount":0,"description":"å","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"å","valueDescription":"0x00ï½0x3B(0ï½59)"}],"identifier":"RelativeTimeBasedOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""}]}]},{"classGroupCode":4,"description":"å¥åº·é¢é£æ©å¨","define":"X1_WELLNESS","classList":[{"classCode":1,"description":"ä½éè¨","name":"WEIGHING_MACHINE_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ä½éè¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfBodyWeight","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1kg","valueDescription":"0x0000ï½0xFFFD(0ï½6553.3kg)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ä½èèªè¨æ¸¬å¤","fields":[],"identifier":"MeasuredValueOfBodyFat","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.10ï¼
-","valueDescription":"0x0000ï½0x03E8(0ï½100.0%)"}]},{"classCode":2,"description":"ä½æ¸©è¨","name":"CLINICAL_THERMOMETER_EOBJ","propertyList":[]},{"classCode":3,"description":"è¡å§è¨","name":"BLOOD_PRESSURE_METER_EOBJ","propertyList":[]},{"classCode":4,"description":"è¡ç³å¤è¨","name":"BLOOD_SUGAR_METER_EOBJ","propertyList":[]},{"classCode":5,"description":"ä½èèªè¨","name":"BODY_FAT_METER_EOBJ","propertyList":[]}]},{"classGroupCode":5,"description":"ç®¡çã»æä½é¢é£æ©å¨","define":"X1_CONTROLLER","classList":[{"classCode":252,"description":"ã»ã­ã¥ã¢éä¿¡ç¨å
-±æéµè¨­å®ãã¼ã","name":"SECURE_COMMUNICATION_SHARED_KEY_SETUP_NODE_EOBJ","propertyList":[]},{"classCode":253,"description":"ã¹ã¤ããï¼JEMA/HAç«¯å­å¯¾å¿ï¼","name":"SWITCH_EOBJ","propertyList":[{"access":["RULE_SET"],"arrayCount":0,"description":"æ¥ç¶æ©å¨","fields":[],"identifier":"ConnectedDevice","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"æ©å¨ã®å½¢åãä¿æãã"}]},{"classCode":254,"description":"æºå¸¯ç«¯æ«","name":"PORTABLE_TERMINAL_EOBJ","propertyList":[]},{"classCode":255,"description":"ã³ã³ãã­ã¼ã©","name":"CONTROLLER_EOBJ","propertyList":[]}]},{"classGroupCode":6,"description":"AVé¢é£æ©å¨","define":"X1_AUDIO_VISUAL","classList":[{"classCode":1,"description":"ãã£ã¹ãã¬ã¼","name":"DISPLAY_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"è¡¨ç¤ºå¶å¾¡è¨­å®","fields":[],"identifier":"DisplayControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=è¡¨ç¤º,0x31=éè¡¨ç¤º"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æå­åè¨­å®åä»å¯è½ç¶æ
-","fields":[],"identifier":"CharacterStringSettingAcceptanceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=ã¬ãã£,0x31=ãã¸ã¼"},{"access":["RULE_GET"],"arrayCount":2,"description":"è¡¨ç¤ºå¯è½æå­ã³ã¼ã","fields":[],"identifier":"SupportedCharacterCodes","initialValue":null,"isArray":true,"primitive":true,"propertyCode":178,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ANSI X3.4:1=æ­è¼,0=éæ­è¼\u000d\u000a[1]Shift-JIS:1=æ­è¼,0=éæ­è¼\u000d\u000a[2]JIS:1=æ­è¼,0=éæ­è¼\u000d\u000a[3]æ¥æ¬èªEUC:1=æ­è¼,0=éæ­è¼\u000d\u000a[4]UCS-4:1=æ­è¼,0=éæ­è¼\u000d\u000a[5]UCS-2:1=æ­è¼,0=éæ­è¼\u000d\u000a[6]Latin-1:1=æ­è¼,0=éæ­è¼\u000d\u000a[7]UTF-8:1=æ­è¼,0=éæ­è¼\u000d\u000a[8ï½15]for future reserved:0"},{"access":["RULE_SET","RULE_GET","VARIABLE"],"arrayCount":0,"description":"ä¼éæå­åè¨­å®","fields":[{"arrayCount":0,"description":"ä¼éæå­ãã¤ãã³ã¼ãåãã¼ã¿é·","fields":[],"identifier":"ByteCodeSequenceDataLength","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ä¼éæå­ãã¤ãã³ã¼ãåãã¼ã¿é·ã®16é²æç®å¤"},{"arrayCount":0,"description":"ä½¿ç¨æå­ã³ã¼ã","fields":[],"identifier":"CharacterCodeToUse","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01=ANSI X3.4,0x02=Shift-JIS,0x03=JIS,0x04=æ¥æ¬èªEUC,0x05=UCS-4,0x06=UCS-2,0x07=Latin-1,0x08=UTF-8,0x09ï½=for future reserved"},{"arrayCount":0,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":244,"description":"ä¼éæå­åãã¤ãã³ã¼ãå","fields":[],"identifier":"ByteCodeSequenceOfTheCharacterStringToPresentToTheUser","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"CharacterStringToPresentToTheUser","initialValue":null,"isArray":false,"primitive":false,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":247,"type":"character_string_to_present_to_the_user_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"åä»ãä¼éæå­åé·","fields":[{"arrayCount":0,"description":"for future reserved","fields":[],"identifier":"TotalNumberOfBytesOfTheNewestCharacterString","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00ï½0xF4"},{"arrayCount":0,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00"}],"identifier":"LengthOfCharacterStringAccepted","initialValue":null,"isArray":false,"primitive":false,"propertyCode":180,"required":["RULE_GET"],"size":2,"type":"length_of_character_string_accepted_t","unitDescription":null,"valueDescription":""}]},{"classCode":2,"description":"ãã¬ã","name":"TELEVISION_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"è¡¨ç¤ºå¶å¾¡è¨­å®","fields":[],"identifier":"DisplayControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"æå­åè¨­å®åä»å¯è½ç¶æ
-","fields":[],"identifier":"CharacterStringSettingAcceptanceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":2,"description":"è¡¨ç¤ºå¯è½æå­ã³ã¼ã","fields":[],"identifier":"SupportedCharacterCodes","initialValue":null,"isArray":true,"primitive":true,"propertyCode":178,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET","VARIABLE"],"arrayCount":247,"description":"ä¼éæå­åè¨­å®","fields":[],"identifier":"CharacterStringToPresentToTheUser","initialValue":null,"isArray":true,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"åä»ãä¼éæå­åé·","fields":[],"identifier":"LengthOfCharacterStringAccepted","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}]}]},{"classGroupCode":14,"description":"ãã­ãã¡ã¤ã«","define":"X1_PROFILE","classList":[{"classCode":240,"description":"ãã¼ããã­ãã¡ã¤ã«ãªãã¸ã§ã¯ã","name":"NODE_PROFILE_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"åä½ç¶æ
-","fields":[],"identifier":"OperationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":128,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=èµ·åä¸­,0x31=æªèµ·åä¸­"},{"access":["RULE_GET"],"arrayCount":0,"description":"ï¼¶ï½
-ï½ï½ï½ï½ï½æ
-å ±","fields":[{"arrayCount":0,"description":"ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³(å°æ°ç¹ä»¥ä¸)","fields":[],"identifier":"MajorVersionNumber","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"Binary"},{"arrayCount":0,"description":"ãã¤ãã¼ãã¼ã¸ã§ã³(å°æ°ç¹ä»¥ä¸)","fields":[],"identifier":"MinorVersionNumber","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"Binary"},{"arrayCount":2,"description":"é»æã¿ã¤ã","fields":[],"identifier":"MessageType","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"Bitmap"}],"identifier":"VersionInformation","initialValue":null,"isArray":false,"primitive":false,"propertyCode":130,"required":["RULE_GET"],"size":4,"type":"version_information_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"è­å¥çªå·","fields":[{"arrayCount":0,"description":"ä¸ä½éä¿¡å±¤IDãã£ã¼ã«ã","fields":[],"identifier":"LowerCommunicationIdField","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0xFE=2ãã17ãã¤ããã¡ã¼ã«è¦å®å½¢å¼ã«ããè¨­å®,ãã®ä»=future reserved"},{"arrayCount":0,"description":"ã¡ã¼ã«ã¼ã³ã¼ã","fields":[{"arrayCount":3,"description":"ã¡ã¼ã«ã¼ã³ã¼ã","fields":[],"identifier":"ManufacturerCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ECHONETã³ã³ã½ã¼ã·ã¢ã ã§è¦å®ã"}],"identifier":"ManufacturerCode","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"manufacturer_code_t","unitDescription":null,"valueDescription":""},{"arrayCount":13,"description":"ã¦ãã¼ã¯IDé¨(ã¡ã¼ã«ã¼ç¬èª)","fields":[],"identifier":"UniqueIdSection","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"IdentificationNumber","initialValue":null,"isArray":false,"primitive":false,"propertyCode":131,"required":["RULE_GET"],"size":17,"type":"node_identification_number_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"ç°å¸¸å
-å®¹","fields":[],"identifier":"FaultContent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":137,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0000ï½0x03EC(0ï½1004)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"åä½è­å¥æ
-å ±","fields":[],"identifier":"UniqueIdentifierData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"ä¸è¨(3)åç
-§ã"},{"access":["RULE_GET"],"arrayCount":3,"description":"èªãã¼ãã¤ã³ã¹ã¿ã³ã¹æ°","fields":[],"identifier":"NumberOfSelfNodeInstances","initialValue":null,"isArray":true,"primitive":true,"propertyCode":211,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1ï½3ãã¤ãç®ï¼ã¤ã³ã¹ã¿ã³ã¹ç·æ°"},{"access":["RULE_GET"],"arrayCount":2,"description":"èªãã¼ãã¯ã©ã¹æ°","fields":[],"identifier":"NumberOfSelfNodeClasses","initialValue":null,"isArray":true,"primitive":true,"propertyCode":212,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1ï½2ãã¤ãç®ï¼ã¯ã©ã¹ç·æ°"},{"access":["RULE_ANNO","VARIABLE"],"arrayCount":253,"description":"ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥","fields":[],"identifier":"InstanceListNotification","initialValue":null,"isArray":true,"primitive":true,"propertyCode":213,"required":["RULE_ANNO"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1ãã¤ãç®ï¼éå ±ã¤ã³ã¹ã¿ã³ã¹æ°\u000d\u000a2ï½253ãã¤ãç®ï¼ECHONETãªãã¸ã§ã¯ãã³ã¼ã(EOJ3ãã¤ã)ãåæã"},{"access":["RULE_GET","VARIABLE"],"arrayCount":253,"description":"èªãã¼ãã¤ã³ã¹ã¿ã³ã¹ãªã¹ãï¼³","fields":[],"identifier":"SelfNodeInstanceListS","initialValue":null,"isArray":true,"primitive":true,"propertyCode":214,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1ãã¤ãç®ï¼ã¤ã³ã¹ã¿ã³ã¹ç·æ°\u000d\u000a2ï½253ãã¤ãç®ï¼ECHONETãªãã¸ã§ã¯ãã³ã¼ã(EOJ3ãã¤ã)ãåæã"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"èªãã¼ãã¯ã©ã¹ãªã¹ãï¼³","fields":[],"identifier":"SelfNodeClassListS","initialValue":null,"isArray":true,"primitive":true,"propertyCode":215,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1ãã¤ãç®ï¼ã¯ã©ã¹ç·æ°\u000d\u000a2ï½17ãã¤ãç®ï¼ã¯ã©ã¹ã³ã¼ã(EOJã®ä¸ä½2ãã¤ã)ãåæã"}]}]},{"classGroupCode":15,"description":"ã¦ã¼ã¶ã¼å®ç¾©","define":"X1_USER_DEFINED","classList":[]}]}
+{"baseProfilePropertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"異常発生状態","fields":[],"identifier":"FaultStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":136,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=異常発生有,0x42=異常発生無"},{"access":["RULE_GET"],"arrayCount":0,"description":"メーカーコード","fields":[{"arrayCount":3,"description":"メーカーコード","fields":[],"identifier":"ManufacturerCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ECHONETコンソーシアムで規定。"}],"identifier":"ManufacturerCode","initialValue":null,"isArray":false,"primitive":false,"propertyCode":138,"required":["RULE_GET"],"size":3,"type":"manufacturer_code_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":3,"description":"事業場コード","fields":[],"identifier":"PlaceOfBusinessCode","initialValue":null,"isArray":true,"primitive":true,"propertyCode":139,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(各メーカ毎に規定。)"},{"access":["RULE_GET"],"arrayCount":12,"description":"商品コード","fields":[],"identifier":"ProductCode","initialValue":null,"isArray":true,"primitive":true,"propertyCode":140,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(各メーカ毎に規定。)"},{"access":["RULE_GET"],"arrayCount":12,"description":"製造番号","fields":[],"identifier":"SerialNumber","initialValue":null,"isArray":true,"primitive":true,"propertyCode":141,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(各メーカ毎に規定。)"},{"access":["RULE_GET"],"arrayCount":0,"description":"製造年月日","fields":[{"arrayCount":0,"description":"年","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"年","valueDescription":"0x0001～0x270F(1～9999)"},{"arrayCount":0,"description":"月","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"月","valueDescription":"0x01～0x0C(1～12)"},{"arrayCount":0,"description":"日","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x01～0x1F(1～31)"}],"identifier":"DateOfManufacture","initialValue":null,"isArray":false,"primitive":false,"propertyCode":142,"required":["NONE"],"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"状変アナウンスプロパティマップ","fields":[],"identifier":"StatusChangeAnnouncementPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":157,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"Ｓｅｔプロパティマップ","fields":[],"identifier":"SetPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":158,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"Ｇｅｔプロパティマップ","fields":[],"identifier":"GetPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":159,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"baseObjectPropertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"動作状態","fields":[],"identifier":"OperationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":128,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=ON,0x31=OFF"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"設置場所","fields":[],"identifier":"InstallationLocation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":129,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"2.2設置場所プロパティ参照"},{"access":["RULE_GET"],"arrayCount":0,"description":"規格Ｖｅｒｓｉｏｎ情報","fields":[{"arrayCount":0,"description":"固定1(for future reserved)","fields":[],"identifier":"Reserved1","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00"},{"arrayCount":0,"description":"固定2(for future reserved)","fields":[],"identifier":"Reserved2","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00"},{"arrayCount":0,"description":"リリース順をASCIIで示す","fields":[],"identifier":"OrderOfRelease","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"固定4(for future reserved)","fields":[],"identifier":"Reserved4","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00"}],"identifier":"StandardVersionInformation","initialValue":null,"isArray":false,"primitive":false,"propertyCode":130,"required":["RULE_GET"],"size":4,"type":"standard_version_information_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"識別番号","fields":[{"arrayCount":0,"description":"下位通信層IDフィールド","fields":[],"identifier":"LowerLayerCommunicationIdField","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFD=下位通信層で使用される通信プロトコルで固有の番号が振られている場合、プロトコル別に応じて、任意に設定（ECHONET Liteでは使用しない）,0x11～0x1F=電灯線a\/d方式,0x31～0x3F=特定小電力無線,0x41～0x4F=拡張HBS,0x51～0x5F=IrDA,0x61～0x6F=LonTalk,0x71～0x7F=Bluetooth,0x81～0x8F=イーサネット,0x91～0x9F=IEEE802.11\/11b,0xA1=電灯線c方式,0xB1=IPv6\/Ethernet,0xB2=IPv6\/6LoWPAN,0xFE=2から17バイトをメーカ規定。形式により設定（詳細説明参照）,0xFF=2から9バイトを乱数により生成するプロトコルを下位通信層で使用する場合に設定,0x00=識別番号未設定"},{"arrayCount":16,"description":"固有番号フィールド","fields":[],"identifier":"UniqueNumberField","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"IdentificationNumber","initialValue":null,"isArray":false,"primitive":false,"propertyCode":131,"required":["NONE"],"size":17,"type":"device_identification_number_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時消費電力計測値","fields":[],"identifier":"MeasuredInstantaneousPowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":132,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算消費電力計測値","fields":[],"identifier":"MeasuredCumulativePowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":133,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_GET","VARIABLE"],"arrayCount":0,"description":"メーカ異常コード","fields":[{"arrayCount":0,"description":"異常コード部のデータサイズ","fields":[],"identifier":"DataSizeOfTheFaultCodeField","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"メーカーコード","fields":[{"arrayCount":3,"description":"メーカーコード","fields":[],"identifier":"ManufacturerCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ECHONETコンソーシアムで規定。"}],"identifier":"ManufacturerCode","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"manufacturer_code_t","unitDescription":null,"valueDescription":""},{"arrayCount":221,"description":"各メーカ独自の異常コード部","fields":[],"identifier":"FieldForManufacturerDefinedFaultCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"ManufacturersFaultCode","initialValue":null,"isArray":false,"primitive":false,"propertyCode":134,"required":["NONE"],"size":225,"type":"manufacturers_fault_code_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"電流制限設定","fields":[],"identifier":"CurrentLimitSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":135,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"異常発生状態","fields":[],"identifier":"FaultStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":136,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=異常発生有,0x42=異常発生無"},{"access":["RULE_GET"],"arrayCount":0,"description":"異常内容","fields":[],"identifier":"FaultDescription","initialValue":null,"isArray":false,"primitive":true,"propertyCode":137,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"2.5異常内容プロパティ参照"},{"access":["RULE_GET"],"arrayCount":0,"description":"メーカーコード","fields":[{"arrayCount":3,"description":"メーカーコード","fields":[],"identifier":"ManufacturerCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ECHONETコンソーシアムで規定。"}],"identifier":"ManufacturerCode","initialValue":null,"isArray":false,"primitive":false,"propertyCode":138,"required":["RULE_GET"],"size":3,"type":"manufacturer_code_t","unitDescription":null,"valueDescription":"(ECHONETコンソーシアムで規定。)"},{"access":["RULE_GET"],"arrayCount":3,"description":"事業場コード","fields":[],"identifier":"BusinessFacilityCode","initialValue":null,"isArray":true,"primitive":true,"propertyCode":139,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(各メーカ毎に規定。)"},{"access":["RULE_GET"],"arrayCount":12,"description":"商品コード","fields":[],"identifier":"ProductCode","initialValue":null,"isArray":true,"primitive":true,"propertyCode":140,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(各メーカ毎に規定。)"},{"access":["RULE_GET"],"arrayCount":12,"description":"製造番号","fields":[],"identifier":"ProductionNumber","initialValue":null,"isArray":true,"primitive":true,"propertyCode":141,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(各メーカ毎に規定。)"},{"access":["RULE_GET"],"arrayCount":0,"description":"製造年月日","fields":[{"arrayCount":0,"description":"年","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"年","valueDescription":"0x0001～0x270F(1～9999)"},{"arrayCount":0,"description":"月","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"月","valueDescription":"0x01～0x0C(1～12)"},{"arrayCount":0,"description":"日","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x01～0x1F(1～31)"}],"identifier":"ProductionDate","initialValue":null,"isArray":false,"primitive":false,"propertyCode":142,"required":["NONE"],"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"節電動作設定","fields":[],"identifier":"PowerSavingOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":143,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=節電動作中,0x42=通常動作中"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"遠隔操作設定","fields":[],"identifier":"PositionInformation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":147,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=公衆回線未経由操作,0x42=公衆回線経由操作"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"現在時刻設定","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"CurrentTimeSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":151,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"現在年月日設定","fields":[{"arrayCount":0,"description":"年","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"年","valueDescription":"0x0001～0x270F(1～9999)"},{"arrayCount":0,"description":"月","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"月","valueDescription":"0x01～0x0C(1～12)"},{"arrayCount":0,"description":"日","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x01～0x1F(1～31)"}],"identifier":"CurrentDateSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":152,"required":["NONE"],"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"電力制限設定","fields":[],"identifier":"PowerLimitSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":153,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0000～0xFFFF(0～65535W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算運転時間","fields":[{"arrayCount":0,"description":"単位","fields":[],"identifier":"Unit","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=秒,0x42=分,0x43=時,0x44=日"},{"arrayCount":0,"description":"経過時間","fields":[],"identifier":"ElapsedTime","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000～0xFFFFFFFF(0～4294967295)"}],"identifier":"CumulativeOperatingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":154,"required":["NONE"],"size":5,"type":"cumulative_operating_time_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ＳｅｔＭプロパティマップ","fields":[],"identifier":"SetMPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":155,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"付録1.参照"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"ＧｅｔＭプロパティマップ","fields":[],"identifier":"GetMPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":156,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"付録1.参照"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"状変アナウンスプロパティマップ","fields":[],"identifier":"StatusChangeAnnouncementPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":157,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"付録1.参照"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"Ｓｅｔプロパティマップ","fields":[],"identifier":"SetPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":158,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"付録1.参照"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"Ｇｅｔプロパティマップ","fields":[],"identifier":"GetPropertyMap","initialValue":null,"isArray":true,"primitive":true,"propertyCode":159,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"付録1.参照"}],"classGroupList":[{"classGroupCode":0,"description":"センサー関連機器","define":"X1_SENSOR","classList":[{"classCode":1,"description":"ガス漏れセンサ","name":"GAS_LEAK_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ガス漏れ発生状態","fields":[],"identifier":"GasLeakOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ガス漏れ発生有,0x42=ガス漏れ発生無"},{"access":["RULE_SET"],"arrayCount":0,"description":"ガス漏れ発生状態リセット設定","fields":[],"identifier":"GasLeakOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"}]},{"classCode":2,"description":"防犯センサ","name":"CRIME_PREVENTION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"侵入発生状態","fields":[],"identifier":"InvasionOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=侵入発生有,0x42=侵入発生無"},{"access":["RULE_SET"],"arrayCount":0,"description":"侵入発生状態リセット設定","fields":[],"identifier":"InvasionOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"}]},{"classCode":3,"description":"非常ボタン","name":"EMERGENCY_BUTTON_EOBJ","propertyList":[{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"非常発生状態","fields":[],"identifier":"EmergencyOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=非常発生有,0x42=非常発生無"},{"access":["RULE_SET"],"arrayCount":0,"description":"非常発生状態リセット設定","fields":[],"identifier":"EmergencyOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"}]},{"classCode":4,"description":"救急用センサ","name":"FIRST_AID_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"救急発生状態","fields":[],"identifier":"FirstAidOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=救急発生有,0x42=救急発生無"},{"access":["RULE_SET"],"arrayCount":0,"description":"救急発生状態リセット設定","fields":[],"identifier":"FirstAidOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"}]},{"classCode":5,"description":"地震センサ","name":"EARTHQUAKE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"地震発生状態","fields":[],"identifier":"EarthquakeOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=地震発生有,0x42=地震発生無"},{"access":["RULE_SET"],"arrayCount":0,"description":"地震発生状態リセット設定","fields":[],"identifier":"EarthquakeOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"}]},{"classCode":6,"description":"漏電センサ","name":"ELECTRIC_LEAK_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"漏電発生状態","fields":[],"identifier":"ElectricLeakOccurrenceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=漏電発生有,0x42=漏電発生無"},{"access":["RULE_SET"],"arrayCount":0,"description":"漏電発生状態リセット設定","fields":[],"identifier":"ElectricLeakOccurrenceStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"}]},{"classCode":7,"description":"人体検知センサ","name":"HUMAN_DETECTION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"人体検知状態","fields":[],"identifier":"HumanDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=人体検知有,0x42=人体検知無"}]},{"classCode":8,"description":"来客センサ","name":"VISITOR_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"来客検知状態","fields":[],"identifier":"VisitorDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=来客検知有,0x42=来客検知無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"来客検知ホールド時間設定値","fields":[],"identifier":"VisitorDetectionHoldingTime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"10sec","valueDescription":"0x0000～0xFFFD(0～655,330秒)"}]},{"classCode":9,"description":"呼び出しセンサ","name":"CALL_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"呼び出し状態","fields":[],"identifier":"CallStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=呼び出し有,0x42=呼び出し無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"呼び出しホールド時間設定値","fields":[],"identifier":"CallHoldingTime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"10sec","valueDescription":"0x0000～0xFFFD(0～655,330秒)"}]},{"classCode":10,"description":"結露センサ","name":"CONDENSATION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"結露検出状態","fields":[],"identifier":"CondensationDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=結露検出有,0x42=結露検出無"}]},{"classCode":11,"description":"空気汚染センサ","name":"AIR_POLLUTION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"空気汚染検出状態","fields":[],"identifier":"AirPollutionDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=空気汚染検出有,0x42=空気汚染検出無"}]},{"classCode":12,"description":"酸素センサ","name":"OXYGEN_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"酸素濃度計測値","fields":[],"identifier":"MeasuredValueOfOxygenConcentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.01％","valueDescription":"0x0000～0x2710(0.00～100.00%)"}]},{"classCode":13,"description":"照度センサ","name":"ILLUMINANCE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"照度計測値１","fields":[],"identifier":"MeasuredIlluminanceValue1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"ルクス","valueDescription":"0x0000～0xFFFD(0～65533ルクス)"},{"access":["RULE_GET"],"arrayCount":0,"description":"照度計測値２","fields":[],"identifier":"MeasuredIlluminanceValue2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"kルクス","valueDescription":"0x0000～0xFFFD(0～65533kルクス)"}]},{"classCode":14,"description":"音センサ","name":"SOUND_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"音検知状態","fields":[],"identifier":"SoundDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=音検知有,0x42=音検知無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"音検知ホールド時間設定値","fields":[],"identifier":"SoundDetectionHoldingTime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"10sec","valueDescription":"0x0000～0xFFFD(0～655,330秒)"}]},{"classCode":15,"description":"投函センサ","name":"MAILING_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"投函検出状態","fields":[],"identifier":"MailingDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=投函検出有,0x42=投函検出無"}]},{"classCode":16,"description":"重荷センサ","name":"WEIGHT_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"重荷検知状態","fields":[],"identifier":"WeightDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=重荷検知有,0x42=重荷検知無"}]},{"classCode":17,"description":"温度センサ","name":"TEMPERATURE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"温度計測値","fields":[],"identifier":"MeasuredTemperatureValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"int16_t","unitDescription":"0.1℃","valueDescription":"0xF554～0x7FFE(-273.2～3276.6℃)"}]},{"classCode":18,"description":"湿度センサ","name":"HUMIDITY_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"相対湿度計測値","fields":[],"identifier":"MeasuredValueOfRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"}]},{"classCode":19,"description":"雨センサ","name":"RAIN_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"雨検知状態","fields":[],"identifier":"RainDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=雨検知有,0x42=雨検知無"}]},{"classCode":20,"description":"水位センサ","name":"WATER_LEVEL_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"水位超過検知閾値設定値","fields":[],"identifier":"WaterLevelOverDetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"cm","valueDescription":"0x00～0xFD(0～253)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"水位超過検知状態","fields":[],"identifier":"WaterLevelOverDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=水位超過有,0x42=水位超過無"},{"access":["RULE_GET"],"arrayCount":0,"description":"水位計測値","fields":[],"identifier":"MeasuredValueOfWaterLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"cm","valueDescription":"0x00～0xFD(0～253)"}]},{"classCode":21,"description":"風呂水位センサ","name":"BATH_WATER_LEVEL_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"風呂水位超過検知閾値設定値","fields":[],"identifier":"BathWaterLevelOverDetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"cm","valueDescription":"0x00～0xFD(0～253)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"風呂水位超過検知状態","fields":[],"identifier":"BathWaterLevelOverDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=水位超過有,0x42=水位超過無"},{"access":["RULE_GET"],"arrayCount":0,"description":"風呂水位計測値","fields":[],"identifier":"MeasuredValueOfBathWaterLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"cm","valueDescription":"0x00～0xFD(0～253)"}]},{"classCode":22,"description":"風呂沸き上がりセンサ","name":"BATH_HEATING_STATUS_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"風呂沸き上がり検知状態","fields":[],"identifier":"BathHeatingDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=風呂沸き上がり有,0x42=風呂沸き上がり無"}]},{"classCode":23,"description":"水漏れセンサ","name":"WATER_LEAK_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"水漏れ検知状態","fields":[],"identifier":"WaterLeakDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=水漏れ検知有,0x42=水漏れ検知無"}]},{"classCode":24,"description":"水あふれセンサ","name":"WATER_OVERFLOW_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"水あふれ検知状態","fields":[],"identifier":"WaterOverflowDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=水あふれ検知有,0x42=水あふれ検知無"}]},{"classCode":25,"description":"火災センサ","name":"FIRE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"火災発生検知状態","fields":[],"identifier":"FireOccurrenceDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=火災発生検知有,0x42=火災発生検知無"},{"access":["RULE_SET"],"arrayCount":0,"description":"火災発生検知状態リセット設定","fields":[],"identifier":"FireOccurrenceDetectionStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"}]},{"classCode":26,"description":"タバコ煙センサ","name":"CIGARETTE_SMOKE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"煙（タバコ）検知状態","fields":[],"identifier":"SmokeCigaretteDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=煙（タバコ）検知有,0x42=煙（タバコ）検知無"}]},{"classCode":27,"description":"CO2センサ","name":"CO2_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ＣＯ２濃度計測値","fields":[],"identifier":"MeasuredValueOfCo2Concentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"ppm","valueDescription":"0x0000～0xFFFD(0～65533)"}]},{"classCode":28,"description":"ガスセンサ","name":"GAS_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ガス検知状態","fields":[],"identifier":"GasDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ガス検知有,0x42=ガス検知無"},{"access":["RULE_GET"],"arrayCount":0,"description":"ガス濃度計測値","fields":[],"identifier":"MeasuredValueOfGasConcentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"ppm","valueDescription":"0x0000～0xFFFD(0～65533)"}]},{"classCode":29,"description":"VOCセンサ","name":"VOC_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"ＶＯＣ検知状態","fields":[],"identifier":"VocDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=VOC検知有,0x42=VOC検知無"},{"access":["RULE_GET"],"arrayCount":0,"description":"ＶＯＣ濃度計測値","fields":[],"identifier":"MeasuredValueOfVocConcentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"ppm","valueDescription":"0x0000～0xFFFD(0～65533)"}]},{"classCode":30,"description":"差圧センサ","name":"DIFFERENTIAL_PRESSURE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"差圧計測値","fields":[],"identifier":"MeasuredValueOfDifferentialPressure","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"int16_t","unitDescription":"Pa","valueDescription":"0x8001～0x7FFE(-32767～32766)"}]},{"classCode":31,"description":"風速センサ","name":"AIR_SPEED_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"風速計測値","fields":[],"identifier":"MeasuredValueOfAirSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.01m\/sec","valueDescription":"0x0000～0xFFFD(0～655.33m\/sec)"},{"access":["RULE_GET"],"arrayCount":0,"description":"風向","fields":[],"identifier":"AirFlowDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"degree","valueDescription":"0x0000～0x0168(0～360degree)"}]},{"classCode":32,"description":"臭いセンサ","name":"ODOR_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET"],"arrayCount":0,"description":"臭い検知状態","fields":[],"identifier":"OdorDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=臭い検知有,0x42=臭い検知無"},{"access":["RULE_GET"],"arrayCount":0,"description":"臭い計測値","fields":[],"identifier":"MeasuredOdorValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFD(0～253)"}]},{"classCode":33,"description":"炎センサ","name":"FLAME_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"炎検知状態","fields":[],"identifier":"FlameDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=炎検知有,0x42=炎検知無"},{"access":["RULE_SET"],"arrayCount":0,"description":"炎検知状態リセット設定","fields":[],"identifier":"FlameDetectionStatusResetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"}]},{"classCode":34,"description":"電力量センサ","name":"ELECTRIC_ENERGY_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値","fields":[],"identifier":"IntegralElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"中容量センサ瞬時電力値計測値","fields":[],"identifier":"MediumCapacitySensorInstantaneousElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0xC4653601～0x3B9AC9FF(-999,999,999～999,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"小容量センサ瞬時電力値計測値","fields":[],"identifier":"SmallCapacitySensorInstantaneousElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1W","valueDescription":"0x8001～0x7FFE(-3276.7～3276.6)"},{"access":["RULE_GET"],"arrayCount":0,"description":"大容量センサ瞬時電力値計測値","fields":[],"identifier":"LargeCapacitySensorInstantaneousElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1kW","valueDescription":"0x8001～0x7FFE(-3276.7～3276.6)"},{"access":["RULE_GET"],"arrayCount":48,"description":"積算電力量計測履歴情報","fields":[],"identifier":"IntegralElectricEnergyMeasurementLog","initialValue":null,"isArray":true,"primitive":true,"propertyCode":228,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"実効電圧値計測値","fields":[],"identifier":"EffectiveVoltageValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000～0xFFFD(0～65533V)"}]},{"classCode":35,"description":"電流値センサ","name":"CURRENT_VALUE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"電流値計測値１","fields":[],"identifier":"MeasuredCurrentValue1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"mA","valueDescription":"0x00000000～0xFFFFFFFD(0～4,294,967,293mA)"},{"access":["RULE_GET"],"arrayCount":0,"description":"計測対象定格電圧値","fields":[],"identifier":"RatedVoltageToBeMeasured","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000～0xFFFD(0～65533V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"電流値計測値２","fields":[],"identifier":"MeasuredCurrentValue2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"int32_t","unitDescription":"mA","valueDescription":"0x80000001～0x7FFFFFFE(-2,147,483,647～2,147,483,646mA)"}]},{"classCode":36,"description":"昼光センサ","name":"DAYLIGHT_SENSOR_EOBJ","propertyList":[]},{"classCode":37,"description":"水流量センサ","name":"WATER_FLOW_RATE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"積算流量計測値","fields":[],"identifier":"IntegralFlowRate","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"c㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"流量計測値","fields":[],"identifier":"FlowRate","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"c㎥\/min","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999)"}]},{"classCode":38,"description":"微動センサ","name":"MICROMOTION_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"微動検知状態","fields":[],"identifier":"MicromotionDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=微動検知有,0x42=微動検知無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"微動検知カウント数設定","fields":[],"identifier":"DetectionCounter","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0000～0xFFFE(0～65534)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"サンプリング回数設定","fields":[],"identifier":"SamplingCount","initialValue":null,"isArray":false,"primitive":true,"propertyCode":188,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0000～0xFFFE(0～65534)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"サンプリング時間設定値","fields":[],"identifier":"SamplingCycle","initialValue":null,"isArray":false,"primitive":true,"propertyCode":189,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"msec","valueDescription":"0x0000～0xFFFE(0～65534)"}]},{"classCode":39,"description":"通過センサ","name":"PASSAGE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"通過検知ホールド時間設定値","fields":[],"identifier":"PassageDetectionHoldTime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ms","valueDescription":"0x0000～0xFFFD(0～65533ms)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"通過検知方向状態","fields":[],"identifier":"PassageDetectionDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=通過無し,0x31～0x38=通過方向,0x39=通過を検知したが場所を特定できない場合、もしくは、通過方向を検知できないセンサにおける通過あり。"}]},{"classCode":40,"description":"在床センサ","name":"BED_PRESENCE_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル設定","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"在床検知状態","fields":[],"identifier":"BedPresenceDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=在床検知有,0x42=在床検知無"}]},{"classCode":41,"description":"開閉センサ","name":"OPEN_CLOSE_SENSOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"開度検知状態１","fields":[],"identifier":"DegreeOfOpeniNgDetectionStatus1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=閉検知有り,0x31～0x38=開度レベル,0x39=開検知有り開度不明"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"開度検知状態２","fields":[],"identifier":"DegreeOfOpeniNgDetectionStatus2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=開検知有,0x42=閉検知有"}]},{"classCode":42,"description":"活動量センサ","name":"ACTIVITY_AMOUNT_SENSOR_EOBJ","propertyList":[{"access":["VARIABLE"],"arrayCount":128,"description":"活動量レベル１","fields":[],"identifier":"ActivityAmountLevel1","initialValue":null,"isArray":true,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET"],"arrayCount":0,"description":"人体ＩＤ数最大値","fields":[],"identifier":"MaximumNumberOfHumanBodyIdFs","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0001～0x0080(1～128)"},{"access":["RULE_GET"],"arrayCount":0,"description":"活動量レベル２","fields":[],"identifier":"ActivityAmountLevel2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET"],"arrayCount":16,"description":"存在人体情報","fields":[],"identifier":"HumanBodyExistenceInformation","initialValue":null,"isArray":true,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(詳細は、説明(5)参照)"}]},{"classCode":43,"description":"人体位置センサ","name":"HUMAN_BODY_LOCATION_SENSOR_EOBJ","propertyList":[{"access":["VARIABLE"],"arrayCount":128,"description":"人体検知位置１","fields":[],"identifier":"HumanBodyDetectionLocation1","initialValue":null,"isArray":true,"primitive":false,"propertyCode":224,"required":["NONE"],"size":0,"type":"location_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"人体ＩＤ数最大値","fields":[],"identifier":"MaximumNumberOfHumanBodyIdFs","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0001～0x0080(1～128)"},{"access":["RULE_GET"],"arrayCount":0,"description":"人体検知位置２","fields":[{"arrayCount":0,"description":"X座標","fields":[],"identifier":"XCoordinate","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"Y座標","fields":[],"identifier":"YCoordinate","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"Z座標","fields":[],"identifier":"ZCoordinate","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"HumanBodyDetectionLocation2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":226,"required":["NONE"],"size":3,"type":"location_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":16,"description":"存在人体情報","fields":[],"identifier":"HumanBodyExistenceInformation","initialValue":null,"isArray":true,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(詳細は、説明(5)参照)"}]},{"classCode":44,"description":"雪センサ","name":"SNOW_SENSOR_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検知閾値レベル","fields":[],"identifier":"DetectionThresholdLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38(レベル1～レベル8)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"雪検知状態","fields":[],"identifier":"SnowDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=雪検知有,0x42=雪検知無"}]}]},{"classGroupCode":1,"description":"空調関連機器","define":"X1_AIR_CONDITIONER","classList":[{"classCode":48,"description":"家庭用エアコン","name":"HOME_AIR_CONDITIONER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"運転モード設定","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=冷房,0x43=暖房,0x44=除湿,0x45=送風,0x40=その他"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"温度自動設定","fields":[],"identifier":"AutomaticTemperatureControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=非AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"急速動作モード設定","fields":[],"identifier":"NormalHighSpeedSilentOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=通常運転,0x42=急速,0x43=静音"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"温度設定値","fields":[],"identifier":"SetTemperatureValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x32(0～50℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"除湿モード時相対湿度設定値","fields":[],"identifier":"SetValueOfRelativeHumidityInDehumidifyingMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"冷房モード時温度設定値","fields":[],"identifier":"SetTemperatureValueInCoolingMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":181,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x32(0～50℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"暖房モード時温度設定値","fields":[],"identifier":"SetTemperatureValueInHeatingMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":182,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x32(0～50℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"除湿モード時温度設定値","fields":[],"identifier":"SetTemperatureValueInDehumidifyingMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":183,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x32(0～50℃)"},{"access":["RULE_GET"],"arrayCount":4,"description":"定格消費電力値","fields":[],"identifier":"RatedPowerConsumption","initialValue":null,"isArray":true,"primitive":true,"propertyCode":184,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"冷房：暖房：除湿：送風消費電流計測値","fields":[],"identifier":"MeasuredValueOfCurrentConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":185,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0xFFFD(0～6553.3A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内相対湿度計測値","fields":[],"identifier":"MeasuredValueOfRoomRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内温度計測値","fields":[],"identifier":"MeasuredValueOfRoomTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7D(-127～125℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ユーザリモコン温度設定値","fields":[],"identifier":"SetTemperatureValueOfUserRemoteControl","initialValue":null,"isArray":false,"primitive":true,"propertyCode":188,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x32(0～50℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"吹き出し温度計測値","fields":[],"identifier":"MeasuredCooledAirTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":189,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7D(-127～125℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"外気温度計測値","fields":[],"identifier":"MeasuredOutdoorAirTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7D(-127～125℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"相対温度設定値","fields":[],"identifier":"RelativeTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"0.1℃","valueDescription":"0x81～0x7D(-12.7～12.5℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風量設定","fields":[],"identifier":"AirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=風量自動設定,0x31～0x38=風量レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風向自動設定","fields":[],"identifier":"AutomaticControlOfAirFlowDirectionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":161,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=非AUTO,0x43=上下AUTO,0x44=左右AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風向スイング設定","fields":[],"identifier":"AutomaticSwingOfAirFlowSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":163,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=風向スイングOFF,0x41=上下,0x42=左右,0x43=上下左右"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風向上下設定","fields":[],"identifier":"AirFlowDirectionVerticalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":164,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=上,0x42=下,0x43=中央,0x44=上中,0x45=下中"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風向左右設定","fields":[],"identifier":"AirFlowDirectionHorizontalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":165,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=右,0x42=左,0x43=中央,0x44=左右,他、プロパティ詳細説明の表に記載のコードで示す。"},{"access":["RULE_GET"],"arrayCount":0,"description":"特殊状態","fields":[],"identifier":"SpecialState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":170,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=通常状態,0x41=除霜状態,0x42=予熱状態,0x43=排熱状態"},{"access":["RULE_GET"],"arrayCount":0,"description":"非優先状態","fields":[],"identifier":"NonPriorityState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":171,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=通常状態,0x41=非優先状態"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気モード設定","fields":[],"identifier":"VentilationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=換気ON（排気方向）,0x42=換気OFF,0x43=換気ON（吸気方向）"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"加湿モード設定","fields":[],"identifier":"HumidifierFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=加湿ON,0x42=OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気風量設定","fields":[],"identifier":"VentilationAirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=換気風量自動,0x31～0x38=換気風量レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"加湿量設定","fields":[],"identifier":"DegreeOfHumidificationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=加湿量自動,0x31～0x38=加湿量レベル"},{"access":["RULE_GET"],"arrayCount":0,"description":"搭載空気清浄方法","fields":[],"identifier":"MountedAirCleaningMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]電気集塵方式搭載情報:0=非搭載,1=搭載\u000d\u000a[1]クラスタイオン方式搭載情報:0=非搭載,1=搭載"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"空気清浄機能モード設定","fields":[{"arrayCount":0,"description":"電気集塵方式による空気清浄機能の設定状態","fields":[],"identifier":"WhetherOrNotToUseTheElectricalDustCollectionBasedAirPurifierFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"クラスタイオン方式による空気清浄機能の設定状態","fields":[],"identifier":"WhetherOrNotToUseTheClusterIonBasedAirPurifierFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":6,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"AirPurifierFunctionSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":199,"required":["NONE"],"size":8,"type":"air_purifier_function_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"搭載リフレッシュ方法","fields":[],"identifier":"MountedAirRefreshMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":200,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]マイナスイオン方式搭載情報:0=非搭載,1=搭載\u000d\u000a[1]クラスタイオン方式搭載情報:0=非搭載,1=搭載"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"リフレッシュ機能モード設定","fields":[{"arrayCount":0,"description":"マイナスイオン方式によるリフレッシュ機能の設定状態","fields":[],"identifier":"WhetherOrNotToUseTheMinusIonBasedAirRefresherFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"クラスタイオン方式によるリフレッシュ機能の設定状態","fields":[],"identifier":"WhetherOrNotToUseTheClusterIonBasedAirRefresherFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":6,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"AirRefresherFunctionSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":201,"required":["NONE"],"size":8,"type":"air_refresher_function_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"搭載自己洗浄方法","fields":[],"identifier":"MountedSelfCleaningMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":202,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]オゾン洗浄方式搭載情報:0=非搭載,1=搭載\u000d\u000a[1]乾燥方式搭載情報:0=非搭載,1=搭載"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"自己洗浄機能モード設定","fields":[{"arrayCount":0,"description":"オゾン洗浄方式による自己洗浄機能の設定状態","fields":[],"identifier":"WhetherOrNotToUseTheOzoneBasedSelfCleaningFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"乾燥方式による自己洗浄機能の設定状態","fields":[],"identifier":"WhetherOrNotToUseTheDryingBasedSelfCleaningFunction","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":6,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"SelfCleaningFunctionSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":203,"required":["NONE"],"size":8,"type":"self_cleaning_function_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"特別運転モード設定","fields":[],"identifier":"SpecialFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":204,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=設定なし,0x41=衣類乾燥,0x42=結露抑制,0x43=ダニカビ抑制,0x44=強制除霜,0x45～=for future reserved"},{"access":["RULE_GET"],"arrayCount":0,"description":"内部動作状態","fields":[],"identifier":"OperationStatusOfComponents","initialValue":null,"isArray":false,"primitive":true,"propertyCode":205,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]コンプレッサ動作状態:0=停止中,1=動作中\u000d\u000a[1]サーモON\/OFF状態:0=サーモOFF状態,1=サーモON状態\u000d\u000a[2～7]for future reserved"},{"access":["RULE_SET"],"arrayCount":0,"description":"強制サーモモード設定","fields":[],"identifier":"ThermostatSettingOverrideFunction","initialValue":null,"isArray":false,"primitive":true,"propertyCode":206,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=通常設定,0x41=強制サーモON,0x42=強制サーモOFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"空気清浄モード設定","fields":[],"identifier":"AirPurificationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":207,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=空気清浄ON,0x42=OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入り,0x44=相対時刻予約のみ入り"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時間","valueDescription":"0x00～0xFF(0～255)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ予約設定","fields":[],"identifier":"OffTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入り,0x44=相対時刻予約のみ入り"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時間","valueDescription":"0x00～0xFF(0～255)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""}]},{"classCode":49,"description":"冷風機","name":"COLD_BLASTER_EOBJ","propertyList":[]},{"classCode":50,"description":"扇風機","name":"ELECTRIC_FAN_EOBJ","propertyList":[]},{"classCode":51,"description":"換気扇","name":"VENTILATION_FAN_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気自動設定","fields":[],"identifier":"VentilationAutoSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=非AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気風量設定","fields":[],"identifier":"SetValueOfVentilationAirFlowRate","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=換気風量自動状態,0x31～0x38=換気風量レベル"}]},{"classCode":52,"description":"空調換気扇","name":"AIR_CONDITIONER_VENTILATION_FAN_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"室内相対湿度設定値","fields":[],"identifier":"SetValueOfRoomRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気自動設定","fields":[],"identifier":"VentilationAutoSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=非AUTO"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内相対湿度計測値","fields":[],"identifier":"MeasuredValueOfRoomRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気風量設定","fields":[],"identifier":"SetValueOfVentilationAirFlowRate","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=換気風量自動状態,0x31～0x38=換気風量レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"熱交換機動作設定","fields":[],"identifier":"HeatExchangerOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=熱交換機ON,0x42=OFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"ＣＯ２濃度計測値","fields":[],"identifier":"MeasuredValueOfCo2Concentration","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"ppm","valueDescription":"0x0000～0xFFFD(0～65533ppm)"},{"access":["RULE_GET"],"arrayCount":0,"description":"煙（タバコ）検知状態","fields":[],"identifier":"SmokeCigaretteDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=煙（タバコ）検知有,0x42=煙（タバコ）検知無"},{"access":["RULE_GET"],"arrayCount":0,"description":"汚れ検知状態","fields":[],"identifier":"PollutionDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=汚れ検知有,0x42=汚れ検知無"}]},{"classCode":53,"description":"空気清浄器","name":"AIR_CLEANER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"フィルター交換通知状態","fields":[],"identifier":"FilterChangeNotice","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=有,0x42=無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風量設定","fields":[],"identifier":"AirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=換気風量自動状態,0x31～0x38=換気風量レベル"},{"access":["RULE_GET"],"arrayCount":0,"description":"煙（タバコ）検知状態","fields":[],"identifier":"SmokeCigaretteDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=煙（タバコ）検知有,0x42=煙（タバコ）検知無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"光触媒動作設定","fields":[],"identifier":"OpticalCatalystOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=光触媒ON,0x42=光触媒OFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"空気汚れ検知状態","fields":[],"identifier":"AirPollutionDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=空気汚れ検知有,0x42=空気汚れ検知無"}]},{"classCode":54,"description":"冷風扇","name":"COLD_BLAST_FAN_EOBJ","propertyList":[]},{"classCode":55,"description":"サーキュレータ","name":"CIRCULATOR_EOBJ","propertyList":[]},{"classCode":56,"description":"除湿機","name":"DEHUMIDIFIER_EOBJ","propertyList":[]},{"classCode":57,"description":"加湿器","name":"HUMIDIFIER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"加湿設定１","fields":[],"identifier":"HumidifyingSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0x64(0～100%),0x70=自動設定,0x71=連続運転,0x72=間欠運転"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"加湿設定２","fields":[],"identifier":"HumidifyingSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x33=加湿レベル,0x70=自動設定,0x71=連続運転,0x72=間欠運転"},{"access":["RULE_GET"],"arrayCount":0,"description":"相対湿度計測値","fields":[],"identifier":"MeasuredValueOfRelativeHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ予約設定","fields":[],"identifier":"ReservationSetOfOffTimer","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RelativeTimeValueSetOfOffTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"イオン放出設定","fields":[],"identifier":"IonEmissionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=放出入,0x42=放出切"},{"access":["RULE_GET"],"arrayCount":0,"description":"搭載イオン放出方法","fields":[],"identifier":"ImplementedIonEmissionMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]マイナスイオン方式\u000d\u000a[1]クラスタイオン方式"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"特別運転モード設定","fields":[],"identifier":"SpecialOperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"設定有効の場合を1とする\u000d\u000a[0]のど乾燥抑制\u000d\u000a[1]静音運転\u000d\u000a[2～7]for future reserved"},{"access":["RULE_GET"],"arrayCount":0,"description":"水量レベル","fields":[],"identifier":"WaterAmountLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=空状態,0x41～0x45(最低～最高レベル)"}]},{"classCode":58,"description":"天井扇","name":"CEILING_FAN_EOBJ","propertyList":[]},{"classCode":59,"description":"電気こたつ","name":"ELECTRIC_KOTATSU_EOBJ","propertyList":[]},{"classCode":60,"description":"電気あんか","name":"ELECTRIC_HEATING_PAD_EOBJ","propertyList":[]},{"classCode":61,"description":"電気毛布","name":"ELECTRIC_BLANKET_EOBJ","propertyList":[]},{"classCode":62,"description":"ストーブ","name":"SPACE_HEATER_EOBJ","propertyList":[]},{"classCode":63,"description":"パネルヒータ","name":"PANEL_HEATER_EOBJ","propertyList":[]},{"classCode":64,"description":"電気カーペット","name":"ELECTRIC_CARPET_EOBJ","propertyList":[]},{"classCode":65,"description":"フロアヒータ","name":"FLOOR_HEATER_EOBJ","propertyList":[]},{"classCode":66,"description":"電気暖房機","name":"ELECTRIC_HEATER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"温度自動設定","fields":[],"identifier":"AutomaticTemperatureControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=非AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"温度設定値","fields":[],"identifier":"TemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x32(0～50)"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内温度計測値","fields":[],"identifier":"MeasuredRoomTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-128～127)"},{"access":["RULE_GET"],"arrayCount":0,"description":"ユーザリモコン温度設定値","fields":[],"identifier":"RemotelySetTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":188,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x32(0～50)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風量設定","fields":[],"identifier":"AirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=風量自動状態,0x31～0x38=風量レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ予約設定","fields":[],"identifier":"OffTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"SetValueOfOffTimerRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":67,"description":"ファンヒータ","name":"FAN_HEATER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"温度設定値","fields":[],"identifier":"TemperatureSettingValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x32(0～50)"},{"access":["RULE_GET"],"arrayCount":0,"description":"温度計測値","fields":[],"identifier":"MeasuredTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7D(-128～125)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"温度自動設定","fields":[],"identifier":"AutomaticTemperatureControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=非AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入,0x44=相対時間予約のみ入"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingValueTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingValueRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ予約設定","fields":[],"identifier":"OffTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入,0x44=相対時間予約のみ入"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerSettingValueTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerValueRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"延長運転設定","fields":[],"identifier":"ExtentionalOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=延長入,0x42=延長切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"延長タイマ時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"ExtentionalOperationTimerTimeSettingValue","initialValue":null,"isArray":false,"primitive":false,"propertyCode":193,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"イオン放出設定","fields":[],"identifier":"IonEmissionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=放出入,0x42=放出切"},{"access":["RULE_GET"],"arrayCount":0,"description":"搭載イオン放出方法","fields":[],"identifier":"ImplementedIonEmissionMethod","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]マイナスイオン方式\u000d\u000a[1]クラスタイオン方式"},{"access":["RULE_GET"],"arrayCount":0,"description":"油量レベル","fields":[],"identifier":"OilAmountLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=空状態,0x41～0x45(最低～最高レベル)"}]},{"classCode":68,"description":"充電器","name":"BATTERY_CHARGER_EOBJ","propertyList":[]},{"classCode":69,"description":"業務用パッケージエアコン室内機","name":"PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_INDOOR_UNIT_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"運転モード設定","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=冷房,0x43=暖房,0x44=除湿,0x45=送風"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"温度設定値１","fields":[],"identifier":"TemperatureSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"int8_t","unitDescription":"1℃","valueDescription":"0x00～0x32(0～50℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"除湿モード時相対湿度設定値１","fields":[],"identifier":"RelativeHumiditySettingForDehumidificationMode1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"1％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"冷房モード時温度設定値１","fields":[],"identifier":"TemperatureSettingForCoolingMode1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":181,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1℃","valueDescription":"0x00～0x32(0～50℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"暖房モード時温度設定値１","fields":[],"identifier":"TemperatureSettingForHeatingMode1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":182,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1℃","valueDescription":"0x00～0x32(0～50℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"除湿モード時温度設定値１","fields":[],"identifier":"TemperatureSettingForDehumidificationMode1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":183,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1℃","valueDescription":"0x00～0x32(0～50℃)"},{"access":["RULE_GET"],"arrayCount":4,"description":"室内定格消費電力値","fields":[],"identifier":"RatedPowerConsumptionOfIndoorUnit","initialValue":null,"isArray":true,"primitive":true,"propertyCode":184,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"冷房：暖房：除湿：送風室内消費電流計測値","fields":[],"identifier":"MeasuredElectricCurrentConsumptionOfIndoorUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":185,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0xFFFD(0～6553.3A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内相対湿度計測値１","fields":[],"identifier":"MeasuredIndoorRelativeHumidity1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"1％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内温度計測値１","fields":[],"identifier":"MeasuredIndoorTemperature1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1℃","valueDescription":"0x81～0x7D(-127～125℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"相対温度設定値","fields":[],"identifier":"RelativeTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"0.1℃","valueDescription":"0x81～0x7D(-12.7～12.5℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風量設定","fields":[],"identifier":"AirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=風量自動状態,0x31～0x38=風量レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風向上下設定","fields":[],"identifier":"AirFlowDirectionVerticalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":164,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=自動,0x32=スイング,0x41～0x49=風向上下設定(最上～最下)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風向左右設定","fields":[],"identifier":"AirFlowDirectionHorizontalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":165,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=自動,0x32=スイング,0x41=右,0x42=左,0x43=中央,0x44=左右"},{"access":["RULE_GET"],"arrayCount":0,"description":"特殊状態","fields":[],"identifier":"SpecialState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":170,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=通常状態,0x42=予熱状態,0x43=排熱状態"},{"access":["RULE_GET"],"arrayCount":0,"description":"サーモ状態","fields":[],"identifier":"ThermostatState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":172,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=サーモon,0x42=サーモoff"},{"access":["RULE_GET"],"arrayCount":0,"description":"自動運転時運転モード状態","fields":[],"identifier":"CurrentFunctionAutomaticOperationMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":174,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x42=冷房,0x43=暖房,0x44=除湿,0x45=送風,0x40=その他"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気モード設定","fields":[],"identifier":"VentilationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=普通換気,0x42=全熱交換気,0x43=自動換気"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"全熱交換器連動設定","fields":[],"identifier":"CombinedOperationOfIndoorUnitAndTotalHeatExchanger","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=全熱交換器連動,0x42=全熱交換器非連動"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気風量設定","fields":[],"identifier":"VentilationAirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=換気風量自動,0x31～0x38=換気風量レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"強制停止設定","fields":[],"identifier":"DisablingOfAirConditionerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":205,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=強制停止,0x42=解除"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"強制サーモモード設定","fields":[],"identifier":"ThermostatSettingOverrideFunction","initialValue":null,"isArray":false,"primitive":true,"propertyCode":206,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=通常設定,0x41=強制サーモON,0x42=強制サーモOFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"フィルターサイン設定","fields":[],"identifier":"FilterCleaningReminderLampSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":207,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=点灯,0x42=消灯"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内消費電力計測値","fields":[],"identifier":"MeasuredPowerConsumptionOfIndoorUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"膨張弁開度レベル","fields":[],"identifier":"ApertureOfExpansionValve","initialValue":null,"isArray":false,"primitive":true,"propertyCode":220,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100)"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"温度設定値２","fields":[],"identifier":"TemperatureSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_SET","RULE_GET"],"size":2,"type":"int16_t","unitDescription":"0.1℃","valueDescription":"0xFE0C～0x3E8(-50.0～100.0℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"除湿モード時相対湿度設定値２","fields":[],"identifier":"RelativeHumiditySettingForDehumidificationMode2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["RULE_SET","RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.10％","valueDescription":"0x0000～0x3E8(0.0～100.0%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"冷房モード時温度設定値２","fields":[],"identifier":"TemperatureSettingForCoolingMode2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1℃","valueDescription":"0xFE0C～0x3E8(-50.0～100.0℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"暖房モード時温度設定値２","fields":[],"identifier":"TemperatureSettingForHeatingMode2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1℃","valueDescription":"0xFE0C～0x3E8(-50.0～100.0℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"除湿モード時温度設定値２","fields":[],"identifier":"TemperatureSettingForDehumidificationMode2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1℃","valueDescription":"0xFE0C～0x3E8(-50.0～100.0℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内相対湿度計測値２","fields":[],"identifier":"MeasuredIndoorRelativeHumidity2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.10％","valueDescription":"0x0000～0x3E8(0.0～100.0%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内温度計測値２","fields":[],"identifier":"MeasuredIndoorTemperature2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1℃","valueDescription":"0xF554～0x7FFD(-273.2～3276.5℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入,0x44=相対時間予約のみ入"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時間","valueDescription":"0x00～0xFF(0～255)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ予約設定","fields":[],"identifier":"OffTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=時刻予約、相対時間予約共に入,0x42=予約切,0x43=時刻予約のみ入,0x44=相対時間予約のみ入"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時間","valueDescription":"0x00～0xFF(0～255)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""}]},{"classCode":70,"description":"業務用パッケージエアコン室外機","name":"PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_OUTDOOR_UNIT_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"運転モード設定","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=冷房,0x43=暖房,0x44=除湿,0x45=送風"},{"access":["RULE_GET"],"arrayCount":3,"description":"室外定格消費電力値","fields":[],"identifier":"RatedPowerConsumptionOfOutdoorUnit","initialValue":null,"isArray":true,"primitive":true,"propertyCode":184,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"冷房：暖房：除湿室外消費電流計測値","fields":[],"identifier":"MeasuredElectricCurrentConsumptionOfOutdoorUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":185,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0xFFFD(0～6553.3A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"外気温度計測値１","fields":[],"identifier":"MeasuredOutdoorAirTemperature1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"1℃","valueDescription":"0x81～0x7D(-127～125℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"特殊状態","fields":[],"identifier":"SpecialState","initialValue":null,"isArray":false,"primitive":true,"propertyCode":170,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=通常状態,0x41=除霜状態"},{"access":["RULE_GET"],"arrayCount":0,"description":"圧縮機動作状態","fields":[],"identifier":"OperationStatusOfCompressor","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=圧縮機ON,0x42=圧縮機OFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"運転モード状態","fields":[],"identifier":"OperationModeInformation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x42=冷房,0x43=暖房,0x44=除湿,0x40=その他"},{"access":["RULE_GET"],"arrayCount":0,"description":"ファン回転レベル","fields":[],"identifier":"FanRotationSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"室外消費電力計測値","fields":[],"identifier":"MeasuredPowerConsumptionOfOutdoorUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"外気温度計測値２","fields":[],"identifier":"MeasuredOutdoorAirTemperature2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1℃","valueDescription":"0xF554～0x7FFD(-273.2～3276.5℃)"}]},{"classCode":71,"description":"業務用パッケージエアコン蓄熱ユニット","name":"PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_THERMAL_STORAGE_UNIT_EOBJ","propertyList":[]},{"classCode":72,"description":"業務用ファンコイルユニット","name":"COMMERCIAL_FAN_COIL_UNIT_EOBJ","propertyList":[]},{"classCode":73,"description":"業務用空調冷熱源(チラー)","name":"COMMERCIAL_AIR_CONDITIONING_COLD_SOURCE_CHILLER_EOBJ","propertyList":[]},{"classCode":80,"description":"業務用空調温熱源(ボイラー)","name":"COMMERCIAL_AIR_CONDITIONING_HOT_SOURCE_BOILER_EOBJ","propertyList":[]},{"classCode":81,"description":"業務用空調VAV","name":"AIR_CONDITIONING_VAV_FOR_COMMERCIAL_APPLICATIONS_EOBJ","propertyList":[]},{"classCode":82,"description":"業務用空調エアハンドリングユニット","name":"AIR_HANDLING_UNIT_AIR_CONDITIONING_FOR_COMMERCIAL_APPLICATIONS_EOBJ","propertyList":[]},{"classCode":83,"description":"ユニットクーラー","name":"UNIT_COOLER_EOBJ","propertyList":[]},{"classCode":84,"description":"業務用コンデンシングユニット","name":"CONDENSING_UNIT_FOR_COMMERCIAL_APPLICATIONS_EOBJ","propertyList":[]}]},{"classGroupCode":2,"description":"住宅・設備関連機器","define":"X1_AMENITY","classList":[{"classCode":96,"description":"電動ブラインド","name":"ELECTRICALLY_OPERATED_SHADE_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"開閉設定","fields":[],"identifier":"OpenCloseSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=開,0x42=閉"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"開度レベル設定","fields":[],"identifier":"DegreeOfOpeningLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ブラインド角度設定値","fields":[],"identifier":"SetValueOfShadeAngle","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"degree","valueDescription":"0x00～0xB4(0～180degree)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ブラインド開閉速度設定","fields":[],"identifier":"ShadeOpenCloseSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=低,0x42=中,0x43=高"}]},{"classCode":97,"description":"電動シャッター","name":"ELECTRICALLY_OPERATED_SHUTTER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"開閉設定１","fields":[],"identifier":"OpenCloseSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=開,0x42=閉,0x43=停止"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"開度レベル設定１","fields":[],"identifier":"ExtentOfOpening1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ブラインド角度設定値","fields":[],"identifier":"BlindAngleSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"degree","valueDescription":"0x00～0xB4(0～180degree)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"シャッター開閉速度設定","fields":[],"identifier":"ShutterSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=低,0x42=中,0x43=高"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"開度レベル設定２","fields":[],"identifier":"ExtentOfOpening2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF(0～255)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"電気錠設定","fields":[],"identifier":"ElectricLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=施錠,0x42=開錠,0x41=許可,0x42=禁止"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"開閉設定２","fields":[],"identifier":"OpenCloseSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=開,0x42=閉"}]},{"classCode":98,"description":"電動カーテン","name":"ELECTRICALLY_OPERATED_CURTAIN_EOBJ","propertyList":[]},{"classCode":99,"description":"電動雨戸","name":"ELECTRICALLY_OPERATED_STORM_WINDOW_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"開閉設定１","fields":[],"identifier":"OpenCloseSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=開,0x42=閉,0x43=停止"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"開度レベル設定１","fields":[],"identifier":"ExtentOfOpening1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ブラインド角度設定値","fields":[],"identifier":"BlindAngleSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"degree","valueDescription":"0x00～0xB4(0～180degree)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"シャッター開閉速度レベル設定","fields":[],"identifier":"ShutterSpeed","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=低,0x42=中,0x43=高"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"開度レベル設定２","fields":[],"identifier":"ExtentOfOpening2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF(0～255)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"電気錠設定","fields":[],"identifier":"ElectricLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=施錠,0x42=開錠,0x41=許可,0x42=禁止"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"開閉設定２","fields":[],"identifier":"OpenCloseSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=開,0x42=閉"}]},{"classCode":100,"description":"電動ガレージ","name":"ELECTRICALLY_OPERATED_DOOR_EOBJ","propertyList":[]},{"classCode":101,"description":"電動天窓","name":"ELECTRICALLY_OPERATED_SKYLIGHT_EOBJ","propertyList":[]},{"classCode":102,"description":"オーニング（日よけ）","name":"AWNING_EOBJ","propertyList":[]},{"classCode":103,"description":"散水器（庭用）","name":"GARDEN_SPRINKLER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"散水弁開閉設定","fields":[],"identifier":"SprinkleValveOpenCloseSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=自動ON,0x41=手動ON,0x42=手動OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水やり間隔設定","fields":[],"identifier":"SprinkleIntervalSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x40=切,0x41=毎日,0x42=１日おき,0x43=２日おき,0x44=週１回"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水やり回数設定","fields":[],"identifier":"NumberOfSprinklesSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=１番目ON,0x42=２番目ON,0x43=両方ON"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水やり時刻設定１","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"SprinkleTimeSetting1","initialValue":null,"isArray":false,"primitive":false,"propertyCode":227,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水やり時刻設定２","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"SprinkleTimeSetting2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水やり時間設定","fields":[],"identifier":"SprinkleDurationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0x3B(0～59)"}]},{"classCode":104,"description":"散水器（火災用）","name":"FIRE_SPRINKLER_EOBJ","propertyList":[]},{"classCode":105,"description":"噴水","name":"FOUNTAIN_EOBJ","propertyList":[]},{"classCode":106,"description":"瞬間湯沸器","name":"INSTANTANEOUS_WATER_HEATER_EOBJ","propertyList":[]},{"classCode":107,"description":"電気温水器","name":"ELECTRIC_WATER_HEATER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"沸き上げ自動設定","fields":[],"identifier":"AutomaticWaterHeatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動沸き上げ,0x43=手動沸き上げ停止,0x42=手動沸き上げ"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"沸き上げ湯温自動設定","fields":[],"identifier":"AutomaticWaterTemperatureControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=AUTO,0x42=非AUTO"},{"access":["RULE_GET"],"arrayCount":0,"description":"沸き上げ中状態","fields":[],"identifier":"WaterHeaterStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=沸き上げ中,0x42=非沸き上げ中"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"沸き上げ湯温設定値","fields":[],"identifier":"WaterHeatingTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"昼間沸き増し許可設定","fields":[],"identifier":"DaytimeReheatingPermissionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=昼間沸き増し許可,0x42=昼間沸き増し禁止"},{"access":["RULE_GET"],"arrayCount":0,"description":"温水器湯温計測値","fields":[],"identifier":"MeasuredTemperatureOfWaterInWaterHeater","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"警報発生状態","fields":[{"arrayCount":0,"description":"警報","fields":[],"identifier":"Alarm","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]湯切れ警報:0=正常,1=発生\u000d\u000a[1]漏水警報:0=正常,1=発生\u000d\u000a[2]凍結警報:0=正常,1=発生\u000d\u000a[3～7]for future reserved"},{"arrayCount":3,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"AlarmStatus","initialValue":null,"isArray":false,"primitive":false,"propertyCode":194,"required":["RULE_GET"],"size":4,"type":"alarm_status_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"給湯温度設定値","fields":[],"identifier":"TemperatureOfSuppliedWaterSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂温度設定値","fields":[],"identifier":"BathWaterTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"沸き上げ湯量設定値","fields":[],"identifier":"BathWaterVolumeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"残湯量計測値","fields":[],"identifier":"MeasuredAmountOfWaterRemainingInTank","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"㍑","valueDescription":"0x0000～0xFFFD(0～65533㍑)"},{"access":["RULE_GET"],"arrayCount":0,"description":"タンク容量値","fields":[],"identifier":"TankCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"㍑","valueDescription":"0x0000～0xFFFD(0～65533㍑)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂自動モード設定","fields":[],"identifier":"AutomaticBathWaterHeatingModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動入,0x42=自動解除"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂足し湯動作設定","fields":[],"identifier":"AdditionOfHotWaterFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=足し湯入,0x42=足し湯切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂ぬるめ動作設定","fields":[],"identifier":"SlightBathWaterTemperatureLoweringFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ぬるめ入,0x42=ぬるめ切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂湯量設定１","fields":[],"identifier":"BathWaterVolumeSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"㍑","valueDescription":"0x00～0xFD(0～253㍑)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂湯量設定２","fields":[],"identifier":"BathWaterVolumeSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂湯量設定３","fields":[],"identifier":"BathWaterVolumeSetting3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"㍑","valueDescription":"0x0000～0xFFFD(0～65533㍑)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂湯量設定４","fields":[],"identifier":"BathWaterVolumeSetting4","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"風呂湯量設定４設定可能最大レベル","fields":[],"identifier":"BathWaterVolumeSetting4MaximumSettableLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"冬季Ｈ／Ｐユニット定格消費電力","fields":[],"identifier":"RatedPowerConsumptionOfHPUnitInWintertime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533)"},{"access":["RULE_GET"],"arrayCount":0,"description":"中間期Ｈ／Ｐユニット定格消費電力","fields":[],"identifier":"RatedPowerConsumptionOfHPUnitInInBetweenSeasons","initialValue":null,"isArray":false,"primitive":true,"propertyCode":220,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533)"},{"access":["RULE_GET"],"arrayCount":0,"description":"夏季Ｈ／Ｐユニット定格消費電力","fields":[],"identifier":"RatedPowerConsumptionOfHPUnitInSummertime","initialValue":null,"isArray":false,"primitive":true,"propertyCode":221,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533)"}]},{"classCode":108,"description":"太陽熱温水器","name":"SOLAR_WATER_HEATER_EOBJ","propertyList":[]},{"classCode":109,"description":"循環ポンプ","name":"CIRCULATION_PUMP_EOBJ","propertyList":[]},{"classCode":110,"description":"電気便座（温水洗浄便座・暖房便座など）","name":"BIDET_EQUIPPED_TOILET_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"便座温度レベル設定","fields":[],"identifier":"TemperatureLevelOfToiletSeat","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x3A"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"便座ヒータ設定","fields":[],"identifier":"HeaterSettingOfToiletSeat","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ON,0x42=OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"便座ヒータ一時停止設定","fields":[],"identifier":"TemporalHaltSettingOfToiletSeat","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=連続設定,0x42=一回設定,0x43=設定なし"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"便座ヒータ一時停止開始時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TemporalHaltStartTimeOfToiletSeat","initialValue":null,"isArray":false,"primitive":false,"propertyCode":227,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"便座ヒータ一時停止時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TemporalHaltTimeDurationOfToiletSeat","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"部屋暖房温度レベル設定","fields":[],"identifier":"TemperatureLevelSettingOfRoomHeating","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=低,0x32=中,0x33=高"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"部屋暖房設定","fields":[],"identifier":"RoomHeatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=部屋暖房ON,0x42=部屋暖房OFF,0x43=タイマモード設定"},{"access":["RULE_GET"],"arrayCount":0,"description":"部屋暖房状態","fields":[],"identifier":"RoomHeatingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ON,0x42=OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"部屋暖房開始時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"StartTimeOfRoomHeating","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"部屋暖房運転時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"DurationTimeOfRoomHreating","initialValue":null,"isArray":false,"primitive":false,"propertyCode":233,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"特別運転モード設定","fields":[],"identifier":"SpecialOperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=設定なし,0x41=冷え込み防止,0x42～=for future reserved"},{"access":["RULE_GET"],"arrayCount":0,"description":"人体検知状態","fields":[],"identifier":"HumanDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=人体検知有,0x42=人体検知無"},{"access":["RULE_GET"],"arrayCount":0,"description":"着座検知状態","fields":[],"identifier":"SeatingDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=着座検知有,0x42=着座検知無"}]},{"classCode":111,"description":"電気錠","name":"ELECTRIC_KEY_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"施錠設定１","fields":[],"identifier":"LockSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=施錠,0x42=解錠"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"施錠設定２","fields":[],"identifier":"LockSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=施錠,0x42=解錠"},{"access":["RULE_GET"],"arrayCount":0,"description":"ドアガード施錠状態","fields":[],"identifier":"LockStatusOfDoorGuard","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=施錠,0x42=解錠"},{"access":["RULE_GET"],"arrayCount":0,"description":"扉開閉状態","fields":[],"identifier":"DoorOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=開,0x42=閉"},{"access":["RULE_GET"],"arrayCount":0,"description":"在室・不在状態","fields":[],"identifier":"OccupantNonOccupantStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=在室,0x42=不在"},{"access":["RULE_GET"],"arrayCount":0,"description":"警報状態","fields":[],"identifier":"AlarmStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=通常状態（警報なし）,0x41=こじ開け,0x42=扉開放,0x43=手動解錠,0x44=タンパ"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"自動施錠モード設定","fields":[],"identifier":"AutoLockModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=入,0x42=切"}]},{"classCode":112,"description":"ガス元弁","name":"GAS_LINE_VALVE_EOBJ","propertyList":[]},{"classCode":113,"description":"ホームサウナ","name":"HOME_SAUNA_EOBJ","propertyList":[]},{"classCode":114,"description":"瞬間式給湯器","name":"HOT_WATER_GENERATOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"給湯器燃焼状態","fields":[],"identifier":"HotWaterHeatingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=給湯燃焼状態有,0x42=無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"給湯温度設定値","fields":[],"identifier":"SetValueOfHotWaterTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"給湯保温設定","fields":[],"identifier":"HotWaterWarmerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=給湯保温動作,0x42=給湯保温動作解除"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"自動運転時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"DurationOfAutomaticOperationSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":218,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":"0xFFFF=無限"},{"access":["RULE_GET"],"arrayCount":0,"description":"自動運転残時間","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RemainingAutomaticOperationTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":219,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":"0xFFFF=無限"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂温度設定値","fields":[],"identifier":"SetValueOfBathTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100)"},{"access":["RULE_GET"],"arrayCount":0,"description":"風呂給湯器燃焼状態","fields":[],"identifier":"BathWaterHeaterStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=燃焼状態有,0x42=無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂自動モード設定","fields":[],"identifier":"BathAutoModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動入,0x42=自動解除"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂追い焚き動作設定","fields":[],"identifier":"BathAdditionalBoilUpOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=追い焚き入,0x42=追い焚き切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂足し湯動作設定","fields":[],"identifier":"BathHotWaterAddingOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=足し湯入,0x42=足し湯切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂ぬるめ動作設定","fields":[],"identifier":"BathWaterTemperatureLoweringOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ぬるめ入,0x42=ぬるめ切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂湯量設定１","fields":[],"identifier":"BathHotWaterVolumeSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"㍑","valueDescription":"0x00～0xFD(0～253㍑)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂湯量設定２","fields":[],"identifier":"BathHotWaterVolumeSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂湯量設定３","fields":[],"identifier":"BathHotWaterVolumeSetting3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"㍑","valueDescription":"0x0000～0xFFFD(0～65533㍑)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂湯量設定４","fields":[],"identifier":"BathHotWaterVolumeSetting4","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"風呂湯量設定４設定可能最大レベル","fields":[],"identifier":"BathHotWaterVolumeSetting4MaximumSettableLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"浴室優先設定","fields":[],"identifier":"BathroomPrioritySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=浴室優先入,0x42=浴室優先切"},{"access":["RULE_GET"],"arrayCount":0,"description":"シャワー給湯状態","fields":[],"identifier":"ShowerHotWaterSupplyStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=シャワー給湯状態有,0x42=シャワー給湯状態無"},{"access":["RULE_GET"],"arrayCount":0,"description":"台所給湯状態","fields":[],"identifier":"KitchenHotWaterSupplyStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=台所給湯状態有,0x42=台所給湯状態無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"給湯保温ＯＮタイマ予約設定","fields":[],"identifier":"HotWaterWarmerOnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"給湯保温ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"SetValueOfHotWaterWarmerOnTimerTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":237,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂自動ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂自動ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"SetValueOfOnTimerTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂自動ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"SetValueOfOnTimerRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":115,"description":"浴室暖房乾燥機","name":"BATHROOM_DRYER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"運転設定","fields":[],"identifier":"OperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x10=換気運転,0x20=入浴前予備暖房運転,0x30=入浴中暖房運転,0x40=乾燥運転,0x50=涼風運転,0x00=停止"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気運転設定","fields":[],"identifier":"VentilationOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=風量レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"入浴前予備暖房運転設定","fields":[],"identifier":"BathroomPreWarmerOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=能力レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"入浴中暖房運転設定","fields":[],"identifier":"BathroomHeaterOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=能力レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"乾燥運転設定","fields":[],"identifier":"BathroomDryerOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=能力レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"涼風運転設定","fields":[],"identifier":"CoolAirCirculatorOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":181,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=標準,0x31～0x38=能力レベル"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内相対湿度計測値","fields":[],"identifier":"MeasuredRelativeBathroomHumidity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内温度計測値","fields":[],"identifier":"MeasuredBathroomTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7D(-127～125℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"換気風量設定","fields":[],"identifier":"VentilationAirFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x31～0x38=風量レベル"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"フィルタサイン設定","fields":[],"identifier":"FilterCleaningReminderSignSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":207,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=点灯,0x42=消灯"},{"access":["RULE_GET"],"arrayCount":0,"description":"人体検知状態","fields":[],"identifier":"HumanBodyDetectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=人体検知あり,0x42=人体検知なし"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定１","fields":[],"identifier":"OnTimerBasedReservationSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定２","fields":[],"identifier":"OnTimerBasedReservationSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x10=換気運転予約,0x20=入浴前予備暖房運転予約,0x30=入浴中暖房運転予約,0x40=乾燥運転予約,0x50=涼風運転予約,0x00=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ予約設定","fields":[],"identifier":"OffTimerBasedReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":116,"description":"ホームエレベータ","name":"HOME_ELEVATOR_EOBJ","propertyList":[]},{"classCode":117,"description":"電動間仕切り","name":"ELECTRICALLY_OPERATED_ROOM_DIVIDER_EOBJ","propertyList":[]},{"classCode":118,"description":"水平トランスファ","name":"HORIZONTAL_TRANSFER_EOBJ","propertyList":[]},{"classCode":119,"description":"電動物干し","name":"ELECTRICALLY_OPERATED_CLOTHES_DRYING_POLE_EOBJ","propertyList":[]},{"classCode":120,"description":"浄化槽","name":"SEPTIC_TANK_EOBJ","propertyList":[]},{"classCode":121,"description":"住宅用太陽光発電","name":"HOME_SOLAR_POWER_GENERATION_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"系統連系状態","fields":[],"identifier":"SystemInterconnectionStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時発電電力計測値","fields":[],"identifier":"MeasuredInstantaneousAmountOfElectricityGenerated","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算発電電力量計測値","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricityGenerated","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"積算発電電力量リセット設定","fields":[],"identifier":"ResettingCumulativeAmountOfElectricityGenerated","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算売電電力量計測値","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricitySold","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"積算売電電力量リセット設定","fields":[],"identifier":"ResettingCumulativeAmountOfElectricitySold","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"発電電力制限設定１","fields":[],"identifier":"PowerGenerationOutputLimitSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"発電電力制限設定２","fields":[],"identifier":"PowerGenerationOutputLimitSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"売電電力制限設定","fields":[],"identifier":"LimitSettingForTheAmountOfElectricitySold","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"定格発電電力値（系統連系時）","fields":[],"identifier":"RatedPowerGenerationOutputSystemInterconnected","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"定格発電電力値（独立時）","fields":[],"identifier":"RatedPowerGenerationOutputIndependent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533)"}]},{"classCode":122,"description":"冷温水熱源機","name":"COLD_AND_HOT_WATER_HEAT_SOURCE_EQUIPMENT_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"運転モード設定","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=暖房,0x42=冷房"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水温設定１","fields":[],"identifier":"WaterTemperatureSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃),0x71=AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水温設定２","fields":[],"identifier":"WaterTemperatureSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x21～0x2F=冷房（冷水）(最低レベル～最高レベル),0x31～0x3F=暖房（温水）(最低レベル～最高レベル),0x41=AUTO"},{"access":["RULE_GET"],"arrayCount":0,"description":"往き水温計測値（出口水温）","fields":[],"identifier":"MeasuredTemperatureOfOutwardWaterExitWaterTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"戻り水温計測値（入口水温）","fields":[],"identifier":"MeasuredTemperatureOfInwardWaterEntranceWaterTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"特殊運転設定","fields":[],"identifier":"SpecialOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=通常運転,0x42=ひかえめ運転,0x43=ハイパワー運転"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"デイリータイマー設定","fields":[],"identifier":"DailyTimerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=タイマー切,0x41=タイマー1,0x42=タイマー2"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"デイリータイマー１設定","fields":[{"arrayCount":0,"description":"０時から３時","fields":[],"identifier":"FromZeroToThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]０時０分:1=運転,0=停止\u000d\u000a[1]０時３０分:1=運転,0=停止\u000d\u000a[2]１時０分:1=運転,0=停止\u000d\u000a[3]１時３０分:1=運転,0=停止\u000d\u000a[4]２時０分:1=運転,0=停止\u000d\u000a[5]２時３０分:1=運転,0=停止\u000d\u000a[6]３時０分:1=運転,0=停止\u000d\u000a[7]３時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"４時から７時","fields":[],"identifier":"FromFourToSevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]４時０分:1=運転,0=停止\u000d\u000a[1]４時３０分:1=運転,0=停止\u000d\u000a[2]５時０分:1=運転,0=停止\u000d\u000a[3]５時３０分:1=運転,0=停止\u000d\u000a[4]６時０分:1=運転,0=停止\u000d\u000a[5]６時３０分:1=運転,0=停止\u000d\u000a[6]７時０分:1=運転,0=停止\u000d\u000a[7]７時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"８時から１１時","fields":[],"identifier":"FromEightToElevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]８時０分:1=運転,0=停止\u000d\u000a[1]８時３０分:1=運転,0=停止\u000d\u000a[2]９時０分:1=運転,0=停止\u000d\u000a[3]９時３０分:1=運転,0=停止\u000d\u000a[4]１０時０分:1=運転,0=停止\u000d\u000a[5]１０時３０分:1=運転,0=停止\u000d\u000a[6]１１時０分:1=運転,0=停止\u000d\u000a[7]１１時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"１２時から１５時","fields":[],"identifier":"FromTwelveToFifteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]１２時０分:1=運転,0=停止\u000d\u000a[1]１２時３０分:1=運転,0=停止\u000d\u000a[2]１３時０分:1=運転,0=停止\u000d\u000a[3]１３時３０分:1=運転,0=停止\u000d\u000a[4]１４時０分:1=運転,0=停止\u000d\u000a[5]１４時３０分:1=運転,0=停止\u000d\u000a[6]１５時０分:1=運転,0=停止\u000d\u000a[7]１５時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"１６時から１９時","fields":[],"identifier":"FromSixteenToNineteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]１６時０分:1=運転,0=停止\u000d\u000a[1]１６時３０分:1=運転,0=停止\u000d\u000a[2]１７時０分:1=運転,0=停止\u000d\u000a[3]１７時３０分:1=運転,0=停止\u000d\u000a[4]１８時０分:1=運転,0=停止\u000d\u000a[5]１８時３０分:1=運転,0=停止\u000d\u000a[6]１９時０分:1=運転,0=停止\u000d\u000a[7]１９時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"２０時から２３時","fields":[],"identifier":"FromTwentyToTwentyThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]２０時０分:1=運転,0=停止\u000d\u000a[1]２０時３０分:1=運転,0=停止\u000d\u000a[2]２１時０分:1=運転,0=停止\u000d\u000a[3]２１時３０分:1=運転,0=停止\u000d\u000a[4]２２時０分:1=運転,0=停止\u000d\u000a[5]２２時３０分:1=運転,0=停止\u000d\u000a[6]２３時０分:1=運転,0=停止\u000d\u000a[7]２３時３０分:1=運転,0=停止"}],"identifier":"DailyTimerSetting1","initialValue":null,"isArray":false,"primitive":false,"propertyCode":231,"required":["NONE"],"size":6,"type":"daily_timer_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"デイリータイマー２設定","fields":[{"arrayCount":0,"description":"０時から３時","fields":[],"identifier":"FromZeroToThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]０時０分:1=運転,0=停止\u000d\u000a[1]０時３０分:1=運転,0=停止\u000d\u000a[2]１時０分:1=運転,0=停止\u000d\u000a[3]１時３０分:1=運転,0=停止\u000d\u000a[4]２時０分:1=運転,0=停止\u000d\u000a[5]２時３０分:1=運転,0=停止\u000d\u000a[6]３時０分:1=運転,0=停止\u000d\u000a[7]３時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"４時から７時","fields":[],"identifier":"FromFourToSevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]４時０分:1=運転,0=停止\u000d\u000a[1]４時３０分:1=運転,0=停止\u000d\u000a[2]５時０分:1=運転,0=停止\u000d\u000a[3]５時３０分:1=運転,0=停止\u000d\u000a[4]６時０分:1=運転,0=停止\u000d\u000a[5]６時３０分:1=運転,0=停止\u000d\u000a[6]７時０分:1=運転,0=停止\u000d\u000a[7]７時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"８時から１１時","fields":[],"identifier":"FromEightToElevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]８時０分:1=運転,0=停止\u000d\u000a[1]８時３０分:1=運転,0=停止\u000d\u000a[2]９時０分:1=運転,0=停止\u000d\u000a[3]９時３０分:1=運転,0=停止\u000d\u000a[4]１０時０分:1=運転,0=停止\u000d\u000a[5]１０時３０分:1=運転,0=停止\u000d\u000a[6]１１時０分:1=運転,0=停止\u000d\u000a[7]１１時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"１２時から１５時","fields":[],"identifier":"FromTwelveToFifteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]１２時０分:1=運転,0=停止\u000d\u000a[1]１２時３０分:1=運転,0=停止\u000d\u000a[2]１３時０分:1=運転,0=停止\u000d\u000a[3]１３時３０分:1=運転,0=停止\u000d\u000a[4]１４時０分:1=運転,0=停止\u000d\u000a[5]１４時３０分:1=運転,0=停止\u000d\u000a[6]１５時０分:1=運転,0=停止\u000d\u000a[7]１５時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"１６時から１９時","fields":[],"identifier":"FromSixteenToNineteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]１６時０分:1=運転,0=停止\u000d\u000a[1]１６時３０分:1=運転,0=停止\u000d\u000a[2]１７時０分:1=運転,0=停止\u000d\u000a[3]１７時３０分:1=運転,0=停止\u000d\u000a[4]１８時０分:1=運転,0=停止\u000d\u000a[5]１８時３０分:1=運転,0=停止\u000d\u000a[6]１９時０分:1=運転,0=停止\u000d\u000a[7]１９時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"２０時から２３時","fields":[],"identifier":"FromTwentyToTwentyThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]２０時０分:1=運転,0=停止\u000d\u000a[1]２０時３０分:1=運転,0=停止\u000d\u000a[2]２１時０分:1=運転,0=停止\u000d\u000a[3]２１時３０分:1=運転,0=停止\u000d\u000a[4]２２時０分:1=運転,0=停止\u000d\u000a[5]２２時３０分:1=運転,0=停止\u000d\u000a[6]２３時０分:1=運転,0=停止\u000d\u000a[7]２３時３０分:1=運転,0=停止"}],"identifier":"DailyTimerSetting2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":6,"type":"daily_timer_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RelativeOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ予約設定","fields":[],"identifier":"OffTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TimeSetByOffTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RelativeOffTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":123,"description":"床暖房","name":"FLOOR_HEATER2_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"温度設定１","fields":[],"identifier":"TemperatureSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x32(0～50℃),0x41=AUTO"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"温度設定２","fields":[],"identifier":"TemperatureSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x3F(最低～最高レベル),0x41=AUTO"},{"access":["RULE_GET"],"arrayCount":0,"description":"室内温度計測値","fields":[],"identifier":"MeasuredRoomTeemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7D(-127～125℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"床温度計測値","fields":[],"identifier":"MeasuredFloorTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7D(-127～125℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ゾーン切替え設定","fields":[],"identifier":"ZoneChangeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ゾーン0:1=制御有り,0=制御無し\u000d\u000a[1]ゾーン1:1=制御有り,0=制御無し\u000d\u000a[2]ゾーン2:1=制御有り,0=制御無し\u000d\u000a[3]ゾーン3:1=制御有り,0=制御無し\u000d\u000a[4]ゾーン4:1=制御有り,0=制御無し\u000d\u000a[5]ゾーン5:1=制御有り,0=制御無し\u000d\u000a[6]ゾーン6:1=制御有り,0=制御無し\u000d\u000a[7]ゾーン7:1=制御有り,0=制御無し"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"特殊運転設定","fields":[],"identifier":"SpecialOperationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=通常運転,0x42=ひかえめ運転,0x43=ハイパワー運転"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"デイリータイマー設定","fields":[],"identifier":"DailyTimerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=タイマー切,0x41=タイマー1,0x42=タイマー2"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"デイリータイマー１設定","fields":[{"arrayCount":0,"description":"０時から３時","fields":[],"identifier":"FromZeroToThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]０時０分:1=運転,0=停止\u000d\u000a[1]０時３０分:1=運転,0=停止\u000d\u000a[2]１時０分:1=運転,0=停止\u000d\u000a[3]１時３０分:1=運転,0=停止\u000d\u000a[4]２時０分:1=運転,0=停止\u000d\u000a[5]２時３０分:1=運転,0=停止\u000d\u000a[6]３時０分:1=運転,0=停止\u000d\u000a[7]３時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"４時から７時","fields":[],"identifier":"FromFourToSevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]４時０分:1=運転,0=停止\u000d\u000a[1]４時３０分:1=運転,0=停止\u000d\u000a[2]５時０分:1=運転,0=停止\u000d\u000a[3]５時３０分:1=運転,0=停止\u000d\u000a[4]６時０分:1=運転,0=停止\u000d\u000a[5]６時３０分:1=運転,0=停止\u000d\u000a[6]７時０分:1=運転,0=停止\u000d\u000a[7]７時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"８時から１１時","fields":[],"identifier":"FromEightToElevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]８時０分:1=運転,0=停止\u000d\u000a[1]８時３０分:1=運転,0=停止\u000d\u000a[2]９時０分:1=運転,0=停止\u000d\u000a[3]９時３０分:1=運転,0=停止\u000d\u000a[4]１０時０分:1=運転,0=停止\u000d\u000a[5]１０時３０分:1=運転,0=停止\u000d\u000a[6]１１時０分:1=運転,0=停止\u000d\u000a[7]１１時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"１２時から１５時","fields":[],"identifier":"FromTwelveToFifteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]１２時０分:1=運転,0=停止\u000d\u000a[1]１２時３０分:1=運転,0=停止\u000d\u000a[2]１３時０分:1=運転,0=停止\u000d\u000a[3]１３時３０分:1=運転,0=停止\u000d\u000a[4]１４時０分:1=運転,0=停止\u000d\u000a[5]１４時３０分:1=運転,0=停止\u000d\u000a[6]１５時０分:1=運転,0=停止\u000d\u000a[7]１５時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"１６時から１９時","fields":[],"identifier":"FromSixteenToNineteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]１６時０分:1=運転,0=停止\u000d\u000a[1]１６時３０分:1=運転,0=停止\u000d\u000a[2]１７時０分:1=運転,0=停止\u000d\u000a[3]１７時３０分:1=運転,0=停止\u000d\u000a[4]１８時０分:1=運転,0=停止\u000d\u000a[5]１８時３０分:1=運転,0=停止\u000d\u000a[6]１９時０分:1=運転,0=停止\u000d\u000a[7]１９時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"２０時から２３時","fields":[],"identifier":"FromTwentyToTwentyThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]２０時０分:1=運転,0=停止\u000d\u000a[1]２０時３０分:1=運転,0=停止\u000d\u000a[2]２１時０分:1=運転,0=停止\u000d\u000a[3]２１時３０分:1=運転,0=停止\u000d\u000a[4]２２時０分:1=運転,0=停止\u000d\u000a[5]２２時３０分:1=運転,0=停止\u000d\u000a[6]２３時０分:1=運転,0=停止\u000d\u000a[7]２３時３０分:1=運転,0=停止"}],"identifier":"DailyTimerSetting1","initialValue":null,"isArray":false,"primitive":false,"propertyCode":231,"required":["NONE"],"size":6,"type":"daily_timer_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"デイリータイマー２設定","fields":[{"arrayCount":0,"description":"０時から３時","fields":[],"identifier":"FromZeroToThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]０時０分:1=運転,0=停止\u000d\u000a[1]０時３０分:1=運転,0=停止\u000d\u000a[2]１時０分:1=運転,0=停止\u000d\u000a[3]１時３０分:1=運転,0=停止\u000d\u000a[4]２時０分:1=運転,0=停止\u000d\u000a[5]２時３０分:1=運転,0=停止\u000d\u000a[6]３時０分:1=運転,0=停止\u000d\u000a[7]３時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"４時から７時","fields":[],"identifier":"FromFourToSevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]４時０分:1=運転,0=停止\u000d\u000a[1]４時３０分:1=運転,0=停止\u000d\u000a[2]５時０分:1=運転,0=停止\u000d\u000a[3]５時３０分:1=運転,0=停止\u000d\u000a[4]６時０分:1=運転,0=停止\u000d\u000a[5]６時３０分:1=運転,0=停止\u000d\u000a[6]７時０分:1=運転,0=停止\u000d\u000a[7]７時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"８時から１１時","fields":[],"identifier":"FromEightToElevenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]８時０分:1=運転,0=停止\u000d\u000a[1]８時３０分:1=運転,0=停止\u000d\u000a[2]９時０分:1=運転,0=停止\u000d\u000a[3]９時３０分:1=運転,0=停止\u000d\u000a[4]１０時０分:1=運転,0=停止\u000d\u000a[5]１０時３０分:1=運転,0=停止\u000d\u000a[6]１１時０分:1=運転,0=停止\u000d\u000a[7]１１時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"１２時から１５時","fields":[],"identifier":"FromTwelveToFifteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]１２時０分:1=運転,0=停止\u000d\u000a[1]１２時３０分:1=運転,0=停止\u000d\u000a[2]１３時０分:1=運転,0=停止\u000d\u000a[3]１３時３０分:1=運転,0=停止\u000d\u000a[4]１４時０分:1=運転,0=停止\u000d\u000a[5]１４時３０分:1=運転,0=停止\u000d\u000a[6]１５時０分:1=運転,0=停止\u000d\u000a[7]１５時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"１６時から１９時","fields":[],"identifier":"FromSixteenToNineteenOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]１６時０分:1=運転,0=停止\u000d\u000a[1]１６時３０分:1=運転,0=停止\u000d\u000a[2]１７時０分:1=運転,0=停止\u000d\u000a[3]１７時３０分:1=運転,0=停止\u000d\u000a[4]１８時０分:1=運転,0=停止\u000d\u000a[5]１８時３０分:1=運転,0=停止\u000d\u000a[6]１９時０分:1=運転,0=停止\u000d\u000a[7]１９時３０分:1=運転,0=停止"},{"arrayCount":0,"description":"２０時から２３時","fields":[],"identifier":"FromTwentyToTwentyThreeOClock","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]２０時０分:1=運転,0=停止\u000d\u000a[1]２０時３０分:1=運転,0=停止\u000d\u000a[2]２１時０分:1=運転,0=停止\u000d\u000a[3]２１時３０分:1=運転,0=停止\u000d\u000a[4]２２時０分:1=運転,0=停止\u000d\u000a[5]２２時３０分:1=運転,0=停止\u000d\u000a[6]２３時０分:1=運転,0=停止\u000d\u000a[7]２３時３０分:1=運転,0=停止"}],"identifier":"DailyTimerSetting2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":6,"type":"daily_timer_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TimeSetByOnTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RelativeOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ予約設定","fields":[],"identifier":"OffTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TimeSetByOffTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RelativeOffTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":150,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":124,"description":"燃料電池","name":"FUEL_CELL_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"温水器湯温計測値","fields":[],"identifier":"MeasuredTemperatureOfWaterInWaterHeater","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"定格発電量","fields":[],"identifier":"RatedPowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"貯湯槽熱量","fields":[],"identifier":"HeatingValueOfHotWaterStorageTank","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"MJ","valueDescription":"0x0000～0xFFFD(0～65,533MJ)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時発電電力計測値","fields":[],"identifier":"MeasuredInstantaneousPowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算発電電力量計測値","fields":[],"identifier":"MeasuredCumulativePowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"積算発電電力量リセット設定","fields":[],"identifier":"CumulativePowerGenerationOutputResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時ガス消費量計測値","fields":[],"identifier":"MeasuredInstantaneousGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":199,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.001㎥\/h","valueDescription":"0x0000～0xFFFD(0～65.533㎥\/h)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算ガス消費量計測値","fields":[],"identifier":"MeasuredCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":200,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"},{"access":["RULE_SET"],"arrayCount":0,"description":"積算ガス消費量リセット設定","fields":[],"identifier":"CumulativeGasConsumptionResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":201,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_SET"],"arrayCount":0,"description":"発電動作設定","fields":[],"identifier":"PowerGenerationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":202,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=発電動作,0x42=発電停止"},{"access":["RULE_GET"],"arrayCount":0,"description":"発電動作状態","fields":[],"identifier":"PowerGenerationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":203,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=発電中,0x42=停止中,0x43=起動中,0x44=停止動作中,0x45=アイドル中"},{"access":["RULE_GET"],"arrayCount":0,"description":"宅内瞬時消費電力計測値","fields":[],"identifier":"MeasuredInHouseInstantaneousPowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":204,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"宅内積算消費電力量計測値","fields":[],"identifier":"MeasuredInHouseCumulativePowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":205,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"宅内積算消費電力量リセット設定","fields":[],"identifier":"InHouseCumulativePowerConsumptionReset","initialValue":null,"isArray":false,"primitive":true,"propertyCode":206,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_GET"],"arrayCount":0,"description":"系統連系状態","fields":[],"identifier":"SystemInterconnectedType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"},{"access":["RULE_GET"],"arrayCount":0,"description":"残湯量計測値","fields":[],"identifier":"MeasuredRemainingHotWaterAmount","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"㍑","valueDescription":"0x0000～0xFFFD(0～65,533㍑)"},{"access":["RULE_GET"],"arrayCount":0,"description":"タンク容量値","fields":[],"identifier":"TankCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"㍑","valueDescription":"0x0000～0xFFFD(0～65,533㍑)"}]},{"classCode":125,"description":"蓄電池","name":"STORAGE_BATTERY_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大充電電力値","fields":[{"arrayCount":0,"description":"最小充電電力値","fields":[],"identifier":"MinimumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"arrayCount":0,"description":"最大充電電力値","fields":[],"identifier":"MaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"}],"identifier":"MinimumMaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":false,"propertyCode":200,"required":["NONE"],"size":8,"type":"minimum_maximum_charging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大放電電力値","fields":[{"arrayCount":0,"description":"最小放電電力値","fields":[],"identifier":"MinimumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"arrayCount":0,"description":"最大放電電力値","fields":[],"identifier":"MaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"}],"identifier":"MinimumMaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":false,"propertyCode":201,"required":["NONE"],"size":8,"type":"minimum_maximum_discharging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大充電電流値","fields":[{"arrayCount":0,"description":"最小充電電流値","fields":[],"identifier":"MinimumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"},{"arrayCount":0,"description":"最大充電電流値","fields":[],"identifier":"MaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"}],"identifier":"MinimumMaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":202,"required":["NONE"],"size":4,"type":"minimum_maximum_charging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大放電電流値","fields":[{"arrayCount":0,"description":"最小放電電流値","fields":[],"identifier":"MinimumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"},{"arrayCount":0,"description":"最大放電電流値","fields":[],"identifier":"MaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"}],"identifier":"MinimumMaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":203,"required":["NONE"],"size":4,"type":"minimum_maximum_discharging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"定格電力量","fields":[],"identifier":"RatedElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"定格容量","fields":[],"identifier":"RatedCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"定格電圧","fields":[],"identifier":"RatedVoltage","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000～0x7FFE(0～32,766V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時充放電電力計測値","fields":[],"identifier":"MeasuredInstantaneousChargeDischargElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0x00000001～0x3B9AC9FF=充電時（プラス値）(1～999,999,999W),0xFFFFFFFF～0xC4653601=放電時（マイナス値）(-1～-999,999,999W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時充放電電流計測値","fields":[],"identifier":"MeasuredInstantaneousChargeDischargCurrent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x0001～0x7FFE=充電時（プラス値）(0.1～3,276.6A),0xFFFF～0x8001=放電時（マイナス値）(-0.1～-3,276.7A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時充放電電圧計測値","fields":[],"identifier":"MeasuredInstantaneousChargeDischargVoltage","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"V","valueDescription":"0x0001～0x7FFE=充電時（プラス値）(1～32,766V),0xFFFF～0x8001=放電時（マイナス値）(-1～-32,767V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算放電電力量計測値","fields":[],"identifier":"MeasuredCumulativeDischargeElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":214,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"積算放電電力量リセット設定","fields":[],"identifier":"MeasuredCumulativeDischargeElectricEnergyResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算充電電力量計測値","fields":[],"identifier":"MeasuredCumulativeChargeElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":216,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"積算充電電力量リセット設定","fields":[],"identifier":"MeasuredCumulativeChargeElectricEnergyResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":217,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"運転モード設定","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":218,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=急速充電,0x42=充電,0x43=放電,0x44=待機,0x45=テスト,0x40=その他"},{"access":["RULE_GET"],"arrayCount":0,"description":"系統連系状態","fields":[],"identifier":"SystemInterconnectedType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大充電電力値（独立時）","fields":[{"arrayCount":0,"description":"最小充電電力値","fields":[],"identifier":"MinimumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"arrayCount":0,"description":"最大充電電力値","fields":[],"identifier":"MaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"}],"identifier":"MinimumMaximumChargingPowerIndependent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":220,"required":["NONE"],"size":8,"type":"minimum_maximum_charging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大放電電力値（独立時）","fields":[{"arrayCount":0,"description":"最小放電電力値","fields":[],"identifier":"MinimumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"arrayCount":0,"description":"最大放電電力値","fields":[],"identifier":"MaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"}],"identifier":"MinimumMaximumDischargingPowerIndependent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":221,"required":["NONE"],"size":8,"type":"minimum_maximum_discharging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大充電電流値（独立時）","fields":[{"arrayCount":0,"description":"最小充電電流値","fields":[],"identifier":"MinimumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"},{"arrayCount":0,"description":"最大充電電流値","fields":[],"identifier":"MaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"}],"identifier":"MinimumMaximumChargingCurrentIndependent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":222,"required":["NONE"],"size":4,"type":"minimum_maximum_charging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大放電電流値（独立時）","fields":[{"arrayCount":0,"description":"最小放電電流値","fields":[],"identifier":"MinimumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"},{"arrayCount":0,"description":"最大放電電流値","fields":[],"identifier":"MaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"}],"identifier":"MinimumMaximumDischargingCurrentIndependent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":223,"required":["NONE"],"size":4,"type":"minimum_maximum_discharging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充放電量設定値１","fields":[],"identifier":"ChargingDischaRgingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"Wh","valueDescription":"0x00000001～0x3B9AC9FF=充電時（プラス値）(1～999,999,999Wh),0xFFFFFFFF～0xC4653601=放電時（マイナス値）(-1～-999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充放電量設定値２","fields":[],"identifier":"ChargingDischaRgingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1Ah","valueDescription":"0x0001～0x7FFE=充電時（プラス値）(0.1～3,276.6Ah),0xFFFF～0x8001=放電時（マイナス値）(-0.1～-3,276.7Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"蓄電残量１","fields":[],"identifier":"RemainingStoredElectricity1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"蓄電残量２","fields":[],"identifier":"RemainingStoredElectricity2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"蓄電残量３","fields":[],"identifier":"RemainingStoredElectricity3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"劣化状態","fields":[],"identifier":"BatteryStateOfHealth","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"蓄電池タイプ","fields":[],"identifier":"BatteryType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF=タイプ"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充電量設定値１","fields":[],"identifier":"ChargingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"放電量設定値１","fields":[],"identifier":"DischargingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充電量設定値２","fields":[],"identifier":"ChargingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"放電量設定値２","fields":[],"identifier":"DischargingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充電電力設定値","fields":[],"identifier":"ChargingElectricEnergySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"放電電力設定値","fields":[],"identifier":"DischargingElectricEnergySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充電電流設定値","fields":[],"identifier":"ChargingCurrentSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":237,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0xFFFD(0～6,553.3A)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"放電電流設定値","fields":[],"identifier":"DischargingCurrentSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0xFFFD(0～6,553.3A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"定格電圧（独立時）","fields":[],"identifier":"RatedVoltageIndependent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":239,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000～0x7FFE(0～32,766V)"}]},{"classCode":126,"description":"電気自動車充放電システム","name":"ELECTRIC_VEHICLE_CHARGER_DISCHARGER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"Ｖ２Ｈ使用可能容量値１","fields":[],"identifier":"DischargeableCapacityOfVehicleMountedBattery1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"Ｖ２Ｈ使用可能容量値２","fields":[],"identifier":"DischargeableCapacityOfVehicleMountedBattery2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"Ｖ２Ｈ使用可能残容量１","fields":[],"identifier":"RemainingDischargeableCapacityOfVehicleMountedBattery1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"Ｖ２Ｈ使用可能残容量２","fields":[],"identifier":"RemainingDischargeableCapacityOfVehicleMountedBattery2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"Ｖ２Ｈ使用可能残容量３","fields":[],"identifier":"RemainingDischargeableCapacityOfVehicleMountedBattery3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"定格充電能力","fields":[],"identifier":"RatedChargeCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"定格放電能力","fields":[],"identifier":"RatedDischargeCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"充放電可否状態","fields":[],"identifier":"VehicleConnectionAndChargeableDischarge","initialValue":null,"isArray":false,"primitive":true,"propertyCode":199,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=充電不可・放電不可,0x41=充電可・放電不可,0x42=充電不可・放電可,0x043=充電可・放電可"},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大充電電力値","fields":[{"arrayCount":0,"description":"最小充電電力値","fields":[],"identifier":"MinimumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"arrayCount":0,"description":"最大充電電力値","fields":[],"identifier":"MaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"}],"identifier":"MinimumMaximumChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":false,"propertyCode":200,"required":["NONE"],"size":8,"type":"minimum_maximum_charging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大放電電力値","fields":[{"arrayCount":0,"description":"最小放電電力値","fields":[],"identifier":"MinimumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"arrayCount":0,"description":"最大放電電力値","fields":[],"identifier":"MaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"}],"identifier":"MinimumMaximumDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":false,"propertyCode":201,"required":["NONE"],"size":8,"type":"minimum_maximum_discharging_electric_energy_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大充電電流値","fields":[{"arrayCount":0,"description":"最小充電電流値","fields":[],"identifier":"MinimumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"},{"arrayCount":0,"description":"最大充電電流値","fields":[],"identifier":"MaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"}],"identifier":"MinimumMaximumChargingCurrent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":202,"required":["NONE"],"size":4,"type":"minimum_maximum_charging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"最小最大放電電流値","fields":[{"arrayCount":0,"description":"最小放電電流値","fields":[],"identifier":"MinimumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"},{"arrayCount":0,"description":"最大放電電流値","fields":[],"identifier":"MaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0x7FFE(0～3,276.6A)"}],"identifier":"MinimumMaximumDischargingCurrent","initialValue":null,"isArray":false,"primitive":false,"propertyCode":203,"required":["NONE"],"size":4,"type":"minimum_maximum_discharging_current_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"使用容量値１","fields":[],"identifier":"UsedCapacityOfVehicleMountedBattery1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"使用容量値２","fields":[],"identifier":"UsedCapacityOfVehicleMountedBattery2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"定格電圧","fields":[],"identifier":"RatedVoltage","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"V","valueDescription":"0x0000～0x7FFE(0～32,766V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時充放電電力計測値","fields":[],"identifier":"MeasuredInstantaneousChargingDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0x00000001～0x3B9AC9FF=充電時（プラス値）(1～999,999,999W),0xFFFFFFFF～0xC4653601=放電時（マイナス値）(-1～-999,999,999W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時充放電電流計測値","fields":[],"identifier":"MeasuredInstantaneousChargingDischargingCurrent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x0001～0x7FFE=充電時（プラス値）(0.1～3,276.6A),0xFFFF～0x8001=放電時（マイナス値）(-0.1～-3,276.7A)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時充放電電圧計測値","fields":[],"identifier":"MeasuredInstantaneousChargingDischargingVoltage","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"V","valueDescription":"0x0001～0x7FFE=充電時（プラス値）(1～32,766V),0xFFFF～0x8001=放電時（マイナス値）(-1～-32,767V)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算放電電力量計測値","fields":[],"identifier":"MeasuredIntegralDischargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":214,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"積算放電電力量リセット設定","fields":[],"identifier":"IntegralDischargingElectricEnergyResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算充電電力量計測値","fields":[],"identifier":"MeasuredIntegralChargingElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":216,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"積算充電電力量リセット設定","fields":[],"identifier":"IntegralChargingElectricEnergyResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":217,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_SET","RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"運転モード設定","fields":[],"identifier":"OperationModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":218,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=急速充電,0x42=充電,0x43=放電,0x44=待機,0x45=テスト,0x40=その他"},{"access":["RULE_GET"],"arrayCount":0,"description":"系統連系状態","fields":[],"identifier":"SystemInterconnectedType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":219,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"},{"access":["RULE_GET"],"arrayCount":0,"description":"電池残容量１","fields":[],"identifier":"RemainingStoredElectricityOfVehicleMountedBattery1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_GET"],"arrayCount":0,"description":"電池残容量２","fields":[],"identifier":"RemainingStoredElectricityOfVehicleMountedBattery2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_GET"],"arrayCount":0,"description":"電池残容量３","fields":[],"identifier":"RemainingStoredElectricityOfVehicleMountedBattery3","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_GET"],"arrayCount":0,"description":"劣化状態","fields":[],"identifier":"BatteryStateOfHealth","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充電量設定値１","fields":[],"identifier":"ChargingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"放電量設定値１","fields":[],"identifier":"DischargingAmountSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"Wh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999Wh)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充電量設定値２","fields":[],"identifier":"ChargingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"放電量設定値２","fields":[],"identifier":"DischargingAmountSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1Ah","valueDescription":"0x0000～0x7FFE(0～3,276.6Ah)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充電電力設定値","fields":[],"identifier":"ChargingElectricEnergySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"放電電力設定値","fields":[],"identifier":"DischargingElectricEnergySetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"W","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"充電電流設定値","fields":[],"identifier":"ChargingCurrentSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":237,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0xFFFD(0～6,553.3A)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"放電電流設定値","fields":[],"identifier":"DischargingCurrentSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x0000～0xFFFD(0～6,553.3A)"}]},{"classCode":127,"description":"エンジンコージェネレーション","name":"ENGINE_COGENERATION_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"温水器湯温計測値","fields":[],"identifier":"MeasuredTemperatureOfWaterInWaterHeater","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"定格発電量","fields":[],"identifier":"RatedPowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":194,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"貯湯槽熱量","fields":[],"identifier":"HeatingValueOfHotWaterStorageTank","initialValue":null,"isArray":false,"primitive":true,"propertyCode":195,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"MJ","valueDescription":"0x0000～0xFFFD(0～65,533MJ)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時発電電力計測値","fields":[],"identifier":"MeasuredInstantaneousPowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":196,"required":["RULE_GET"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算発電電力量計測値","fields":[],"identifier":"MeasuredCumulativePowerGenerationOutput","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"積算発電電力量リセット設定","fields":[],"identifier":"CumulativePowerGenerationOutputResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時ガス消費量計測値","fields":[],"identifier":"MeasuredInstantaneousGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":199,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.001㎥\/h","valueDescription":"0x0000～0xFFFD(0～65.533㎥\/h)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算ガス消費量計測値","fields":[],"identifier":"MeasuredCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":200,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"},{"access":["RULE_SET"],"arrayCount":0,"description":"積算ガス消費量リセット設定","fields":[],"identifier":"CumulativeGasConsumptionResetSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":201,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_SET"],"arrayCount":0,"description":"発電動作設定","fields":[],"identifier":"PowerGenerationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":202,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=発電動作,0x42=発電停止"},{"access":["RULE_GET"],"arrayCount":0,"description":"発電動作状態","fields":[],"identifier":"PowerGenerationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":203,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=発電中,0x42=停止中,0x45=アイドル中"},{"access":["RULE_GET"],"arrayCount":0,"description":"宅内瞬時消費電力計測値","fields":[],"identifier":"MeasuredInHouseInstantaneousPowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":204,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65,533W)"},{"access":["RULE_GET"],"arrayCount":0,"description":"宅内積算消費電力量計測値","fields":[],"identifier":"MeasuredInHouseCumulativePowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":205,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001kWh","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999kWh)"},{"access":["RULE_SET"],"arrayCount":0,"description":"宅内積算消費電力量リセット設定","fields":[],"identifier":"InHouseCumulativePowerConsumptionReset","initialValue":null,"isArray":false,"primitive":true,"propertyCode":206,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=リセット"},{"access":["RULE_GET"],"arrayCount":0,"description":"系統連系状態","fields":[],"identifier":"SystemInterconnectedType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=系統連系（逆潮流可）,0x01=独立,0x02=系統連系（逆潮流不可）"},{"access":["RULE_GET"],"arrayCount":0,"description":"残湯量計測値","fields":[],"identifier":"MeasuredRemainingHotWaterAmount","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"㍑","valueDescription":"0x0000～0xFFFD(0～65,533㍑)"},{"access":["RULE_GET"],"arrayCount":0,"description":"タンク容量値","fields":[],"identifier":"TankCapacity","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"㍑","valueDescription":"0x0000～0xFFFD(0～65,533㍑)"}]},{"classCode":128,"description":"電力量メータ","name":"ELECTRIC_ENERGY_METER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値","fields":[],"identifier":"IntegralElectricEnergyMeasurementValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.1kWh|0.01kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量単位","fields":[],"identifier":"IntegralElectricEnergyUnit","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01=0.1kWh,0x02=0.01kWh"},{"access":["RULE_GET"],"arrayCount":48,"description":"積算電力量計測値履歴１","fields":[],"identifier":"IntegralElectricEnergyMeasurementLog1","initialValue":null,"isArray":true,"primitive":true,"propertyCode":227,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.1kWh|0.01kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"access":["NONE"],"arrayCount":2160,"description":"積算電力量計測値履歴２","fields":[],"identifier":"IntegralElectricEnergyMeasurementLog2","initialValue":null,"isArray":true,"primitive":true,"propertyCode":228,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.1kWh|0.01kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"}]},{"classCode":129,"description":"水流量メータ","name":"WATER_FLOW_METER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水流区分","fields":[],"identifier":"FlowingWaterClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=上水,0x31=中水,0x32=温水,0x33=その他"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"所有者区分","fields":[],"identifier":"OwnerClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=指定なし,0x31=事業体,0x32=民間会社,0x33=個人"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算水流量計測値","fields":[],"identifier":"MeasuredCumulativeAmountOfFlowingWater","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算水流量計測値単位","fields":[],"identifier":"UnitForMeasuredCumulativeAmountsOfFlowingWater","initialValue":"0x04","isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=1㎥,0x01=0.1㎥,0x02=0.01㎥,0x03=0.001㎥,0x04=0.0001㎥,0x05=0.00001㎥,0x06=0.000001㎥"},{"access":["RULE_GET"],"arrayCount":48,"description":"積算水流量計測値履歴","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfFlowingWater","initialValue":null,"isArray":true,"primitive":true,"propertyCode":226,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"},{"access":["RULE_GET"],"arrayCount":0,"description":"検針データ異常検知状態","fields":[],"identifier":"DetectionOfAbnormalValueInMeteringData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=異常検知有,0x42=異常検知無"},{"access":["RULE_GET"],"arrayCount":0,"description":"セキュリティデータ情報","fields":[],"identifier":"SecurityDataInformation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000～0xFFFFFFFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＩＤ番号設定","fields":[],"identifier":"IdNumberSetting","initialValue":"'000000'","isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ASCIIコードで指定。"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"検定満期情報","fields":[],"identifier":"VerificationExpirationInformation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ASCIIコードで指定。xxxx年xx月"}]},{"classCode":130,"description":"ガスメータ","name":"GAS_METER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"積算ガス消費量計測値","fields":[],"identifier":"IntegralGasConsumptionMeasurementValue","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"},{"access":["RULE_GET"],"arrayCount":48,"description":"積算ガス消費量計測値履歴","fields":[],"identifier":"IntegralGasConsumptionMeasurementLog","initialValue":null,"isArray":true,"primitive":true,"propertyCode":226,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"}]},{"classCode":131,"description":"ＬＰガスメータ","name":"LP_GAS_METERS_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"検針データ積算ガス消費量計測値１","fields":[],"identifier":"IntegralGasConsumptionOfMeteringData1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.0001㎥","valueDescription":"0x00000000～0x005F5E0FF(0～9,999.9999㎥)"},{"access":["RULE_GET"],"arrayCount":0,"description":"検針データ積算ガス消費量計測値２","fields":[],"identifier":"IntegralGasConsumptionOfMeteringData2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x005F5E0FF(0～99,999.999㎥)"},{"access":["RULE_GET"],"arrayCount":0,"description":"検針データ異常検知状態","fields":[],"identifier":"ErrorDetectionStatusofMeteringData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=異常検知有,0x42=異常検知無"},{"access":["RULE_GET"],"arrayCount":0,"description":"セキュリティデータ情報１","fields":[],"identifier":"SecurityData1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000～0xFFFFFFFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"セキュリティデータ情報２","fields":[],"identifier":"SecurityData2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000～0xFFFFFFFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"センター弁遮断状態","fields":[],"identifier":"CenterValveShutOffStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=センター弁遮断有り,0x42=センター弁遮断無し"},{"access":["RULE_GET"],"arrayCount":0,"description":"センター弁遮断復帰許可状態","fields":[],"identifier":"CenterValveShutOffRecoveryPermissionSettingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=センター弁遮断復帰許可,0x42=センター弁遮断復帰非許可"},{"access":["RULE_GET"],"arrayCount":0,"description":"緊急弁遮断状態","fields":[],"identifier":"EmergencyValveShutOffStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=緊急弁遮断有り,0x42=緊急弁遮断無し"},{"access":["RULE_GET"],"arrayCount":0,"description":"遮断弁開閉状態","fields":[],"identifier":"ShutOffValveOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=遮断弁開状態,0x42=遮断弁閉状態"},{"access":["RULE_GET"],"arrayCount":0,"description":"残量管理警告レベル","fields":[],"identifier":"ResidualVolumeControlWarning","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31=残量管理警告レベル1,0x32=残量管理警告レベル2,0x33=残量管理警告レベル3,0x42=残量管理警告無し"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"残量管理警告レベル設定値１","fields":[],"identifier":"SetValueOfResidualVolumeControlWarningLevel1","initialValue":null,"isArray":true,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"㍑","valueDescription":"0x000000～0xFFFFFF(0～16,777,215)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"残量管理警告レベル設定値２","fields":[],"identifier":"SetValueOfResidualVolumeControlWarningLevel2","initialValue":null,"isArray":true,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"㍑","valueDescription":"0x000000～0xFFFFFF(0～16,777,215)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"残量管理警告レベル設定値３","fields":[],"identifier":"SetValueOfResidualVolumeControlWarningLevel3","initialValue":null,"isArray":true,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"㍑","valueDescription":"0x000000～0xFFFFFF(0～16,777,215)"},{"access":["RULE_GET"],"arrayCount":0,"description":"微少漏洩タイマ値（ガス流量継続）","fields":[],"identifier":"SlightLeakTimerValueGasFlowRateContinuation","initialValue":null,"isArray":false,"primitive":true,"propertyCode":237,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x00～0xFD(0～253日)"},{"access":["RULE_GET"],"arrayCount":0,"description":"微少漏洩タイマ値（圧力上昇無し）","fields":[],"identifier":"SlightLeakTimerValueWithoutPressureIncrease","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x00～0xFD(0～253日)"},{"access":["RULE_GET"],"arrayCount":3,"description":"遮断理由履歴情報","fields":[],"identifier":"ShutOffReasonLog","initialValue":null,"isArray":true,"primitive":true,"propertyCode":239,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0xFF:0xFF:0xFF"},{"access":["RULE_GET"],"arrayCount":0,"description":"供給圧力データ最大値","fields":[],"identifier":"MaximumValueOfSupplyPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000～0xFFFD(0～655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"供給圧力データ最小値","fields":[],"identifier":"MinimumValueOfSupplyPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000～0xFFFD(0～655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"供給圧力データ現在値","fields":[],"identifier":"CurrentValueOfSupplyPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000～0xFFFD(0～655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"閉塞圧力データ最大値","fields":[],"identifier":"MaximumValueOfBlockPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000～0xFFFD(0～655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"閉塞圧力データ最小値","fields":[],"identifier":"MinimumValueOfBlockPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000～0xFFFD(0～655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"閉塞圧力データ現在値","fields":[],"identifier":"CurrentValueOfBlockPressureData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.01kPa","valueDescription":"0x0000～0xFFFD(0～655.33kPa)"},{"access":["RULE_GET"],"arrayCount":0,"description":"閉塞圧力・供給圧力異常日回数情報","fields":[{"arrayCount":0,"description":"閉塞圧力異常日数","fields":[],"identifier":"NumberOfBlockPressureErrorDays","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF(0～255日)"},{"arrayCount":0,"description":"供給圧力異常日数","fields":[],"identifier":"NumberOfSupplyPressureErrorDays","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF(0～255日)"},{"arrayCount":0,"description":"閉塞圧力異常回数","fields":[],"identifier":"NumberOfBlockPressureErrorTimes","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF(0～255回)"},{"arrayCount":0,"description":"供給圧力異常回数","fields":[],"identifier":"NumberOfSupplyPressureErrorTimes","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF(0～255回)"}],"identifier":"NumberOfBlockPressureSupplyPressureErrorDaysTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":214,"required":["NONE"],"size":4,"type":"number_of_block_pressure_supply_pressure_error_days_time_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"テスト発呼設定","fields":[],"identifier":"TestCallSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=テスト発呼動作あり,0x42=テスト発呼動作なし"}]},{"classCode":132,"description":"時計","name":"CLOCK_EOBJ","propertyList":[]},{"classCode":133,"description":"自動ドア","name":"AUTOMATIC_DOOR_EOBJ","propertyList":[]},{"classCode":134,"description":"業務用エレベータ","name":"COMMERCIAL_ELEVATOR_EOBJ","propertyList":[]},{"classCode":135,"description":"分電盤メータリング","name":"DISTRIBUTION_PANEL_METERING_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値（正方向）","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricEnergyNormalDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":192,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値（逆方向）","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricEnergyReverseDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":193,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量単位","fields":[],"identifier":"UnitForCumulativeAmountsOfElectricEnergy","initialValue":"0x03","isArray":false,"primitive":true,"propertyCode":194,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=1kWh,0x01=0.1kWh,0x02=0.01kWh,0x03=0.001kWh,0x04=0.0001kWh,0x0A=10kWh,0x0B=100kWh,0x0C=1000kWh,0x0D=10000kWh"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値履歴（正方向）","fields":[{"arrayCount":0,"description":"積算履歴収集日","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"日","valueDescription":"0x0000～0x0063(0～99)"},{"arrayCount":48,"description":"積算電力量","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"}],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyNormalDirectioHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyNormalDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":195,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t","unitDescription":"kWh","valueDescription":"0x0000～0x0063:0x00000000～0x05F5E0FF(0～99):(0～99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値履歴（逆方向）","fields":[{"arrayCount":0,"description":"積算履歴収集日","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"日","valueDescription":"0x0000～0x0063(0～99)"},{"arrayCount":48,"description":"積算電力量","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"}],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyReverseDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":196,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t","unitDescription":"kWh","valueDescription":"0x0000～0x0063:0x00000000～0x05F5E0FF(0～99):(0～99,999,999)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"積算履歴収集日","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyIsToBeRetrieved","initialValue":null,"isArray":false,"primitive":true,"propertyCode":197,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x00=当日,0x01～0x63=前日の日数(0～99)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時電力計測値","fields":[],"identifier":"MeasuredInstantaneoUsAmountOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":198,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0x80000001～0x7FFFFFFD(-2,147,483,647～2,147,483,645)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時電流計測値","fields":[{"arrayCount":0,"description":"R相","fields":[],"identifier":"RPhase","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"T相","fields":[],"identifier":"TPhase","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasuredInstantaneousCurrents","initialValue":null,"isArray":false,"primitive":false,"propertyCode":199,"required":["NONE"],"size":4,"type":"measured_instantaneous_currents_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時電圧計測値","fields":[{"arrayCount":0,"description":"R-S(N)間","fields":[],"identifier":"BetweenRAndSN","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1V","valueDescription":"0x0000～0xFFFD(0～6,553.3)"},{"arrayCount":0,"description":"S(N)-T間","fields":[],"identifier":"BetweenSNAndT","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1V","valueDescription":"0x0000～0xFFFD(0～6,553.3)"}],"identifier":"MeasuredInstantaneousVoltages","initialValue":null,"isArray":false,"primitive":false,"propertyCode":200,"required":["NONE"],"size":4,"type":"measured_instantaneous_voltages_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel1","initialValue":null,"isArray":false,"primitive":false,"propertyCode":208,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel2","initialValue":null,"isArray":false,"primitive":false,"propertyCode":209,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル３","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel3","initialValue":null,"isArray":false,"primitive":false,"propertyCode":210,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル４","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel4","initialValue":null,"isArray":false,"primitive":false,"propertyCode":211,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル５","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel5","initialValue":null,"isArray":false,"primitive":false,"propertyCode":212,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル６","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel6","initialValue":null,"isArray":false,"primitive":false,"propertyCode":213,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル７","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel7","initialValue":null,"isArray":false,"primitive":false,"propertyCode":214,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル８","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel8","initialValue":null,"isArray":false,"primitive":false,"propertyCode":215,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル９","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel9","initialValue":null,"isArray":false,"primitive":false,"propertyCode":216,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１０","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel10","initialValue":null,"isArray":false,"primitive":false,"propertyCode":217,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１１","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel11","initialValue":null,"isArray":false,"primitive":false,"propertyCode":218,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１２","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel12","initialValue":null,"isArray":false,"primitive":false,"propertyCode":219,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１３","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel13","initialValue":null,"isArray":false,"primitive":false,"propertyCode":220,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１４","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel14","initialValue":null,"isArray":false,"primitive":false,"propertyCode":221,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１５","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel15","initialValue":null,"isArray":false,"primitive":false,"propertyCode":222,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１６","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel16","initialValue":null,"isArray":false,"primitive":false,"propertyCode":223,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１７","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel17","initialValue":null,"isArray":false,"primitive":false,"propertyCode":224,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１８","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel18","initialValue":null,"isArray":false,"primitive":false,"propertyCode":225,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル１９","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel19","initialValue":null,"isArray":false,"primitive":false,"propertyCode":226,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２０","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel20","initialValue":null,"isArray":false,"primitive":false,"propertyCode":227,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２１","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel21","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２２","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel22","initialValue":null,"isArray":false,"primitive":false,"propertyCode":229,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２３","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel23","initialValue":null,"isArray":false,"primitive":false,"propertyCode":230,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２４","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel24","initialValue":null,"isArray":false,"primitive":false,"propertyCode":231,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２５","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel25","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２６","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel26","initialValue":null,"isArray":false,"primitive":false,"propertyCode":233,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２７","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel27","initialValue":null,"isArray":false,"primitive":false,"propertyCode":234,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２８","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel28","initialValue":null,"isArray":false,"primitive":false,"propertyCode":235,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル２９","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel29","initialValue":null,"isArray":false,"primitive":false,"propertyCode":236,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル３０","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel30","initialValue":null,"isArray":false,"primitive":false,"propertyCode":237,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル３１","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel31","initialValue":null,"isArray":false,"primitive":false,"propertyCode":238,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"計測チャンネル３２","fields":[{"arrayCount":0,"description":"電力量","fields":[],"identifier":"ElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"arrayCount":0,"description":"実効電流値R相","fields":[],"identifier":"EffectiveInstantaneousRPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"実効電流値T相","fields":[],"identifier":"EffectiveInstantaneousTPhaseCurrents","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasurementChannel32","initialValue":null,"isArray":false,"primitive":false,"propertyCode":239,"required":["NONE"],"size":8,"type":"measurement_data_t","unitDescription":null,"valueDescription":""}]},{"classCode":136,"description":"スマート電力量メータ","name":"SMART_ELECTRIC_ENERGY_METER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"電力区分","fields":[],"identifier":"ElectricEnergyMeterClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=電力会社,0x31=太陽光,0x32=燃料電池,0x33=蓄電池,0x34=EV,0x35=その他"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"所有者区分","fields":[],"identifier":"OwnerClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=指定なし,0x31=電力会社,0x32=電力会社以外,0x33=個人"},{"access":["RULE_GET"],"arrayCount":0,"description":"相線式設定状態","fields":[],"identifier":"ConfigurationInformationOfPhasesAndWiresOfTheSystems","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=単相2線,0x31=単相3線,0x32=三相3線,0x33=三相4線"},{"access":["RULE_GET"],"arrayCount":0,"description":"合成変成比","fields":[],"identifier":"CompositeTransformationRatio","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"0x00000000～0x000F423F(000000～999999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"合成変成比の倍率","fields":[],"identifier":"MultiplyingFactorForCompositeTransformationRatio","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=×1,0x01=×0.1,0x02=×0.01,0x03=×0.001"},{"access":["RULE_GET"],"arrayCount":10,"description":"計器認定番号","fields":[],"identifier":"MeterTypeCertificationNumberTypeApprovalNumberInJapan","initialValue":null,"isArray":true,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"(型式認定計器番号記載方法に従う)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":6,"description":"検定満了年月","fields":[],"identifier":"VerificationExpirationDate","initialValue":null,"isArray":true,"primitive":true,"propertyCode":214,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"YYYYMM:YYYY(西暦),MM(月)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量有効桁数","fields":[],"identifier":"NumberOfEffectiveDigitsForCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":"桁","valueDescription":"0x01～0x08(1～8)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値（正方向計測値）","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricEnergyNormalDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量単位（正方向、逆方向計測値）","fields":[],"identifier":"UnitForCumulativeAmountsOfElectricEnergyNormalAndReverseDirections","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=1kWh,0x01=0.1kWh,0x02=0.01kWh,0x03=0.001kWh,0x04=0.0001kWh,0x0A=10kWh,0x0B=100kWh,0x0C=1000kWh,0x0D=10000kWh"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値履歴（正方向計測値）","fields":[{"arrayCount":0,"description":"積算履歴収集日","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"日","valueDescription":"0x0000～0x0063(0～99)"},{"arrayCount":48,"description":"積算電力量","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"}],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyNormalDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":226,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t","unitDescription":"kWh","valueDescription":"0x0000～0x0063:0x00000000～0x05F5E0FF(0～99):(0～99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値（逆方向計測値）","fields":[],"identifier":"MeasuredCumulativeAmountOfElectricEnergyReverseDirection","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算電力量計測値履歴（逆方向計測値）","fields":[{"arrayCount":0,"description":"積算履歴収集日","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"日","valueDescription":"0x0000～0x0063(0～99)"},{"arrayCount":48,"description":"積算電力量","fields":[],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergy","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"}],"identifier":"HistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyReverseDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_amounts_of_electric_energy_t","unitDescription":"kWh","valueDescription":"0x0000～0x0063:0x00000000～0x05F5E0FF(0～99):(0～99,999,999)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"積算履歴収集日","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeAmountsOfElectricEnergyIsToBeRetrieved","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=当日,0x01～0x63=前日の日数(0～99)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時電力計測値","fields":[],"identifier":"MeasuredInstantaneousAmountOfElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":4,"type":"int32_t","unitDescription":"W","valueDescription":"0x80000001～0x7FFFFFFD(-2,147,483,647～2,147,483,645)"},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時電流計測値","fields":[{"arrayCount":0,"description":"R相","fields":[],"identifier":"RPhase","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"},{"arrayCount":0,"description":"T相","fields":[],"identifier":"TPhase","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"int16_t","unitDescription":"0.1A","valueDescription":"0x8001～0x7FFD(-3,276.7～3,276.5)"}],"identifier":"MeasuredInstantaneousCurrents","initialValue":null,"isArray":false,"primitive":false,"propertyCode":232,"required":["NONE"],"size":4,"type":"measured_instantaneous_currents_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"瞬時電圧計測値","fields":[{"arrayCount":0,"description":"R-S(N)間","fields":[],"identifier":"BetweenRAndSN","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1V","valueDescription":"0x0000～0xFFFD(0～6,553.3)"},{"arrayCount":0,"description":"S(N)-T間","fields":[],"identifier":"BetweenSNAndT","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"0.1V","valueDescription":"0x0000～0xFFFD(0～6,553.3)"}],"identifier":"MeasuredInstantaneousVoltages","initialValue":null,"isArray":false,"primitive":false,"propertyCode":233,"required":["NONE"],"size":4,"type":"measured_instantaneous_voltages_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"定時積算電力量計測値（正方向計測値）","fields":[{"arrayCount":0,"description":"計測年月日","fields":[{"arrayCount":0,"description":"年","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"年","valueDescription":"0x0001～0x270F(1～9999)"},{"arrayCount":0,"description":"月","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"月","valueDescription":"0x01～0x0C(1～12)"},{"arrayCount":0,"description":"日","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x01～0x1F(1～31)"}],"identifier":"DateOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"計測時刻","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TimeOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"積算電力量","fields":[],"identifier":"CumulativeElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"}],"identifier":"CumulativeAmountsOfElectricEnergyMeasuredAtFixedTimeNormalDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":234,"required":["RULE_GET"],"size":11,"type":"cumulative_amounts_of_electric_energy_measured_at_fixed_time_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"定時積算電力量計測値（逆方向計測値）","fields":[{"arrayCount":0,"description":"計測年月日","fields":[{"arrayCount":0,"description":"年","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"年","valueDescription":"0x0001～0x270F(1～9999)"},{"arrayCount":0,"description":"月","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"月","valueDescription":"0x01～0x0C(1～12)"},{"arrayCount":0,"description":"日","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x01～0x1F(1～31)"}],"identifier":"DateOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"計測時刻","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TimeOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"積算電力量","fields":[],"identifier":"CumulativeElectricEnergy","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"kWh","valueDescription":"0x00000000～0x05F5E0FF(0～99,999,999)"}],"identifier":"CumulativeAmountsOfElectricEnergyMeasuredAtFixedTimeReverseDirection","initialValue":null,"isArray":false,"primitive":false,"propertyCode":235,"required":["NONE"],"size":11,"type":"cumulative_amounts_of_electric_energy_measured_at_fixed_time_t","unitDescription":null,"valueDescription":""}]},{"classCode":137,"description":"スマートガスメータ","name":"SMART_GAS_METER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ガス区分設定","fields":[],"identifier":"GasMeterClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=都市ガス,0x31=LPガス,0x32=天然,0x33=その他"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"所有者区分設定","fields":[],"identifier":"OwnerClassification","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=指定なし,0x31=都市ガス,0x32=LPガス,0x33=民間会社,0x34=個人"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算ガス消費量計測値","fields":[],"identifier":"MeasuredCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["RULE_GET"],"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999.999㎥)"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算ガス消費量計測値単位","fields":[],"identifier":"UnitForMeasuredCumulativeGasConsumptions","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=1㎥,0x01=0.1㎥,0x02=0.01㎥,0x03=0.001㎥,0x04=0.0001㎥,0x05=0.00001㎥,0x06=0.000001㎥"},{"access":["RULE_GET"],"arrayCount":0,"description":"積算ガス消費量履歴情報","fields":[{"arrayCount":0,"description":"積算履歴収集日","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"日","valueDescription":"0x0000～0x0063(0～99)"},{"arrayCount":48,"description":"積算ガス消費量","fields":[],"identifier":"CumulativeGasConsumption","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999㎥)"}],"identifier":"HistoricalDataOfMeasuredCumulativeGasConsumptions","initialValue":null,"isArray":false,"primitive":false,"propertyCode":228,"required":["NONE"],"size":194,"type":"historical_data_of_measured_cumulative_gas_consumptions_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"積算ガス消費量履歴収集日設定","fields":[],"identifier":"DayForWhichTheHistoricalDataOfMeasuredCumulativeGasConsumptionsIsToBeRetrieved","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=当日,0x01～0x63=前日の日数(0～99)"},{"access":["RULE_GET"],"arrayCount":0,"description":"検針データ異常検知状態","fields":[],"identifier":"DetectionOfAbnormalValueInMeteringData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=異常検知有,0x42=異常検知無"},{"access":["RULE_GET"],"arrayCount":10,"description":"セキュリティデータ情報","fields":[],"identifier":"SecurityDataInformation","initialValue":null,"isArray":true,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"詳細は説明(9)参照"},{"access":["RULE_GET"],"arrayCount":0,"description":"センター弁遮断状態","fields":[],"identifier":"ValveClosureByTheCenter","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=センター弁遮断有り,0x42=センター弁遮断無し"},{"access":["RULE_GET"],"arrayCount":0,"description":"センター弁遮断復帰許可状態","fields":[],"identifier":"PermissionFromTheCenterToReopenTheValveClosedByTheCenter","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=センター弁遮断復帰許可,0x42=センター弁遮断復帰非許可"},{"access":["RULE_GET"],"arrayCount":0,"description":"緊急弁遮断状態","fields":[],"identifier":"EmergencyClosureOfShutoffValve","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=緊急弁遮断有り,0x42=緊急弁遮断無し"},{"access":["RULE_GET"],"arrayCount":0,"description":"遮断弁開閉状態","fields":[],"identifier":"ShutoffValveStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=遮断弁開状態,0x42=遮断弁閉状態"},{"access":["RULE_GET"],"arrayCount":3,"description":"遮断理由履歴情報","fields":[],"identifier":"HistoricalDataOfShutoffReasons","initialValue":null,"isArray":true,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0xFF:0xFF:0xFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":6,"description":"ＩＤ番号設定","fields":[],"identifier":"IdNumberSetting","initialValue":"'000000'","isArray":true,"primitive":true,"propertyCode":237,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"'000000'～'FFFFFF'"},{"access":["RULE_SET","RULE_GET"],"arrayCount":6,"description":"検定満期設定","fields":[],"identifier":"VerificationExpirationInformation","initialValue":null,"isArray":true,"primitive":true,"propertyCode":238,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"YYYYMM:YYYY(西暦),MM(月)"},{"access":["RULE_GET"],"arrayCount":0,"description":"日時付積算ガス消費量計測値情報","fields":[{"arrayCount":0,"description":"計測年月日","fields":[{"arrayCount":0,"description":"年","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"年","valueDescription":"0x0001～0x270F(1～9999)"},{"arrayCount":0,"description":"月","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"月","valueDescription":"0x01～0x0C(1～12)"},{"arrayCount":0,"description":"日","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x01～0x1F(1～31)"}],"identifier":"DateOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"計測時刻","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TimeOfMeasurement","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"積算ガス消費量","fields":[],"identifier":"CumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999㎥)"}],"identifier":"MeasuredCumulativeGasConsumptionInformationWithDateAndTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":208,"required":["RULE_GET"],"size":11,"type":"measured_cumulative_gas_consumption_information_with_date_and_time_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"ガス消費量履歴情報","fields":[{"arrayCount":0,"description":"履歴スタート年月日","fields":[{"arrayCount":0,"description":"年","fields":[],"identifier":"Year","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"年","valueDescription":"0x0001～0x270F(1～9999)"},{"arrayCount":0,"description":"月","fields":[],"identifier":"Mounth","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"月","valueDescription":"0x01～0x0C(1～12)"},{"arrayCount":0,"description":"日","fields":[],"identifier":"Day","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"日","valueDescription":"0x01～0x1F(1～31)"}],"identifier":"Date","initialValue":null,"isArray":false,"primitive":false,"size":4,"type":"year_mounth_day_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"履歴スタート時刻","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"Time","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":24,"description":"ガス消費量履歴データ","fields":[],"identifier":"HistoricalInformationOfGasConsumption","initialValue":null,"isArray":true,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x0001869F(0～99.999㎥)"},{"arrayCount":0,"description":"履歴スタート時積算ガス消費量","fields":[],"identifier":"CumulativeGasConsumptionAtHistoryStart","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":"0.001㎥","valueDescription":"0x00000000～0x3B9AC9FF(0～999,999,999㎥)"},{"arrayCount":0,"description":"積算時間間隔","fields":[],"identifier":"CumulativeTimeInterval","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"分","valueDescription":"0x0001～0xFFFF(1～65535)"}],"identifier":"HistoricalInformationOfCumulativeGasConsumption","initialValue":null,"isArray":false,"primitive":false,"propertyCode":209,"required":["NONE"],"size":109,"type":"historical_information_of_cumulative_gas_consumption_t","unitDescription":null,"valueDescription":""}]},{"classCode":144,"description":"一般照明","name":"GENERAL_LIGHTING_CLASS_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"照度レベル設定","fields":[],"identifier":"IlluminanceLevel","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"光色設定","fields":[],"identifier":"LightColorSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=電球色,0x42=白色,0x43=昼白色,0x44=昼光色,0x40=その他"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"照度レベル段数設定","fields":[],"identifier":"IlluminanceLevelStepSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能照度レベル最大値(暗～明)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"光色レベル段数設定","fields":[],"identifier":"LightColorStepSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能光色レベル最大値(電球色～白色)"},{"access":["RULE_GET"],"arrayCount":0,"description":"設定可能レベル最大値","fields":[{"arrayCount":0,"description":"照度","fields":[],"identifier":"Illuminance","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=機能を搭載していない"},{"arrayCount":0,"description":"光色","fields":[],"identifier":"LightColor","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=機能を搭載していない"}],"identifier":"MaximumSpecifiableValues","initialValue":null,"isArray":false,"primitive":false,"propertyCode":180,"required":["NONE"],"size":2,"type":"maximum_specifiable_values_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"常夜灯設定可能レベル最大値","fields":[{"arrayCount":0,"description":"照度","fields":[],"identifier":"Illuminance","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=機能を搭載していない"},{"arrayCount":0,"description":"光色","fields":[],"identifier":"LightColor","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=機能を搭載していない"}],"identifier":"MaximumValueOfSettableLevelForNightLighting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":181,"required":["NONE"],"size":2,"type":"maximum_specifiable_values_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"点灯モード設定","fields":[],"identifier":"LightingModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":182,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=通常灯,0x43=常夜灯,0x45=カラー灯"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"通常灯モード時照度レベル設定","fields":[],"identifier":"IlluminanceLevelSettingForMainLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":183,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"通常灯モード時照度レベル段数設定","fields":[],"identifier":"IlluminanceLevelStepSettingForMainLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":184,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能照度レベル最大値(暗～明)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"常夜灯モード時照度レベル設定","fields":[],"identifier":"IlluminanceLevelSettingForNightLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":185,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"％","valueDescription":"0x00～0x64(0～100%)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"常夜灯モード時照度レベル段数設定","fields":[],"identifier":"IlluminanceLevelStepSettingForNightLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":186,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能照度レベル最大値(暗～明)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"通常灯モード時光色設定","fields":[],"identifier":"LightColorSettingForMainLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":187,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=電球色,0x42=白色,0x43=昼白色,0x44=昼光色,0x40=その他"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"通常灯モード時光色レベル段数設定","fields":[],"identifier":"LightColorLevelStepSettingForMainLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":188,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能光色レベル最大値(電球色～白色)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"常夜灯モード時光色設定","fields":[],"identifier":"LightColorSettingForNightLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":189,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=電球色,0x42=白色,0x43=昼白色,0x44=昼光色,0x40=その他"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"常夜灯モード時光色レベル段数設定","fields":[],"identifier":"LightColorLevelStepSettingForNightLighting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":190,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能光色レベル最大値(電球色～白色)"},{"access":["RULE_GET"],"arrayCount":0,"description":"自動モード時点灯モード状態","fields":[],"identifier":"LightingModeStatusInAutoMode","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x42=通常灯,0x43=常夜灯,0x44=消灯,0x45=カラー灯"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"カラー灯モード時ＲＧＢ設定","fields":[{"arrayCount":0,"description":"Ｒ","fields":[],"identifier":"Ｒ","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF(最低輝度～最高輝度)"},{"arrayCount":0,"description":"Ｇ","fields":[],"identifier":"Ｇ","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF(最低輝度～最高輝度)"},{"arrayCount":0,"description":"Ｂ","fields":[],"identifier":"Ｂ","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFF(最低輝度～最高輝度)"}],"identifier":"RGBSettingForColorLighting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":192,"required":["NONE"],"size":3,"type":"rgbsetting_for_color_lighting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ予約設定","fields":[],"identifier":"OffTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":148,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＦＦタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OffTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":149,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":153,"description":"非常照明","name":"EMERGENCY_LIGHTING_EOBJ","propertyList":[]},{"classCode":157,"description":"設備照明","name":"EQUIPMENT_LIGHT_EOBJ","propertyList":[]},{"classCode":160,"description":"ブザー","name":"BUZZER_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"音発生設定","fields":[],"identifier":"SoundGenerationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=音発生有,0x42=音発生無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ブザー音種別設定","fields":[],"identifier":"BuzzerSoundType","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x38"}]}]},{"classGroupCode":3,"description":"調理・家事関連機器","define":"X1_HOUSEWORK","classList":[{"classCode":176,"description":"コーヒーメーカ","name":"COFFEE_MACHINE_EOBJ","propertyList":[]},{"classCode":177,"description":"コーヒーミル","name":"COFFEE_MILL_EOBJ","propertyList":[]},{"classCode":178,"description":"電気ポット","name":"ELECTRIC_HOT_WATER_POT_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"蓋開閉状態","fields":[],"identifier":"CoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=蓋開,0x42=蓋閉"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"湯切れ警告状態","fields":[],"identifier":"NoWaterWarning","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=湯切れ有り,0x40=湯切れなし"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"沸騰設定","fields":[],"identifier":"BoilUpSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=沸騰開始,0x42=沸騰停止\/保温"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"沸騰／保温モード設定","fields":[],"identifier":"BoilUpWarmerModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=クエン酸洗浄,0x42=通常保温,0x43=省エネ保温"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"保温温度設定値","fields":[],"identifier":"SetValueOfWarmerTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100)"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"出湯状態","fields":[],"identifier":"HotWaterDischargeStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=出湯有,0x42=出湯無"},{"access":["RULE_GET"],"arrayCount":0,"description":"ロック状態","fields":[],"identifier":"LockStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ロック有,0x42=ロック無"}]},{"classCode":179,"description":"電気こんろ","name":"ELECTRIC_STOVE_EOBJ","propertyList":[]},{"classCode":180,"description":"トースタ","name":"TOASTER_EOBJ","propertyList":[]},{"classCode":181,"description":"ジューサ・ミキサ","name":"JUICER_FOOD_MIXER_EOBJ","propertyList":[]},{"classCode":182,"description":"フードプロセッサ","name":"FOOD_PROCESSOR_EOBJ","propertyList":[]},{"classCode":183,"description":"冷凍冷蔵庫","name":"REFRIGERATOR_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ドア開閉状態","fields":[],"identifier":"DoorOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ドア開,0x42=ドア閉"},{"access":["RULE_GET"],"arrayCount":0,"description":"ドア開放警告状態","fields":[],"identifier":"DoorOpenWarning","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ドア開放警告有,0x42=ドア開放警告無"},{"access":["RULE_GET"],"arrayCount":0,"description":"冷蔵室ドア開閉状態","fields":[],"identifier":"RefrigeratorCompartmentDoorStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ドア開,0x42=ドア閉"},{"access":["RULE_GET"],"arrayCount":0,"description":"冷凍室ドア開閉状態","fields":[],"identifier":"FreezerCompartmentDoorStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ドア開,0x42=ドア閉"},{"access":["RULE_GET"],"arrayCount":0,"description":"氷温室ドア開閉状態","fields":[],"identifier":"IceCompartmentDoorStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ドア開,0x42=ドア閉"},{"access":["RULE_GET"],"arrayCount":0,"description":"野菜室ドア開閉状態","fields":[],"identifier":"VegetableCompartmentDoorStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":181,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ドア開,0x42=ドア閉"},{"access":["RULE_GET"],"arrayCount":0,"description":"切換室ドア開閉状態","fields":[],"identifier":"MultiRefrigeratingModeCompartmentDoor","initialValue":null,"isArray":false,"primitive":true,"propertyCode":182,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ドア開,0x42=ドア閉"},{"access":["RULE_GET"],"arrayCount":0,"description":"設定可能温度レベル最大値","fields":[{"arrayCount":0,"description":"冷蔵室","fields":[],"identifier":"RefrigeratorCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"},{"arrayCount":0,"description":"冷凍室","fields":[],"identifier":"FreezerCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"},{"arrayCount":0,"description":"氷温室","fields":[],"identifier":"SubzeroFreshCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"},{"arrayCount":0,"description":"野菜室","fields":[],"identifier":"VegetableCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"},{"arrayCount":0,"description":"切換室","fields":[],"identifier":"MultiRefrigeratingModeCompartment","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"},{"arrayCount":0,"description":"for future reserved 1","fields":[],"identifier":"Reserved6","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"},{"arrayCount":0,"description":"for future reserved 2","fields":[],"identifier":"Reserved7","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"},{"arrayCount":0,"description":"for future reserved 3","fields":[],"identifier":"Reserved8","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255段階),0x00=室を搭載していない"}],"identifier":"MaximumAllowableTemperatureSettingLevel","initialValue":null,"isArray":false,"primitive":false,"propertyCode":224,"required":["NONE"],"size":8,"type":"maximum_allowable_temperature_setting_level_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"冷蔵室温度設定値","fields":[],"identifier":"RefrigeratorCompartmentTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"冷凍室温度設定値","fields":[],"identifier":"FreezerCompartmentTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"氷温室温度設定値","fields":[],"identifier":"IceTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"野菜室温度設定値","fields":[],"identifier":"VegetableCompartmentTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"切換室温度設定値","fields":[],"identifier":"MultiRefrigeratingModeCompartmentTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"冷蔵室温度レベル設定","fields":[],"identifier":"RefrigeratorCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"冷凍室温度レベル設定","fields":[],"identifier":"FreezerCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"氷温室温度レベル設定","fields":[],"identifier":"IceCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"野菜室温度レベル設定","fields":[],"identifier":"VegetableCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"切換室温度レベル設定","fields":[],"identifier":"MultiRefrigeratingModeCompartmentTemperatureLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":237,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～設定可能温度レベル最大値(弱～強)"},{"access":["RULE_GET"],"arrayCount":0,"description":"冷蔵室温度計測値","fields":[],"identifier":"MeasuredRefrigeratorCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"冷凍室温度計測値","fields":[],"identifier":"MeasuredFreezerCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"氷温室温度計測値","fields":[],"identifier":"MeasuredSubzeroFreshCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":211,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"野菜室温度計測値","fields":[],"identifier":"MeasuredVegetableCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"切換室温度計測値","fields":[],"identifier":"MeasuredMultiRefrigeratingModeCompartmentTemperature","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"int8_t","unitDescription":"℃","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"圧縮機回転数レベル","fields":[{"arrayCount":0,"description":"最大回転数レベル","fields":[],"identifier":"MaximumRotationSpeedLevel","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01～0xFF(1～255)"},{"arrayCount":0,"description":"回転数レベル","fields":[],"identifier":"RotationSpeedLevel","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00=停止,0x01～0xFF(弱～強)"}],"identifier":"CompressorRotationSpeed","initialValue":null,"isArray":false,"primitive":false,"propertyCode":216,"required":["NONE"],"size":2,"type":"compressor_rotation_speed_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"消費電流計測値","fields":[],"identifier":"MeasuredElectricCurrentConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":218,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1A","valueDescription":"0x81～0x7E(-127～126℃)"},{"access":["RULE_GET"],"arrayCount":0,"description":"定格消費電力値","fields":[],"identifier":"RatedPowerConsumption","initialValue":null,"isArray":false,"primitive":true,"propertyCode":220,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"急速冷凍動作設定","fields":[],"identifier":"QuickFreezeFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":160,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=通常冷凍,0x42=急速冷凍,0x43=急速冷凍待機"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"急速冷蔵動作設定","fields":[],"identifier":"QuickRefrigerationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":161,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=通常冷蔵,0x42=急速冷蔵,0x43=急速冷蔵待機"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"製氷許可設定","fields":[],"identifier":"IcemakerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":164,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=製氷許可,0x42=製氷禁止,0x43=製氷一定時間禁止"},{"access":["RULE_GET"],"arrayCount":0,"description":"製氷動作状態","fields":[],"identifier":"IcemakerOperationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":165,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=運転中,0x42=停止中"},{"access":["RULE_GET"],"arrayCount":0,"description":"製氷用給水タンク状態","fields":[],"identifier":"IcemakerTankStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":166,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=タンク水あり,0x42=タンクなしor水なし"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"冷蔵室加湿動作設定","fields":[],"identifier":"RefrigeratorCompartmentHumidificationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":168,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=加湿ON,0x42=加湿OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"野菜室加湿動作設定","fields":[],"identifier":"VegetableCompartmentHumidificationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":169,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=加湿ON,0x42=加湿OFF"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"脱臭動作設定","fields":[],"identifier":"DeodorizationFunctionSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":173,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=脱臭ON,0x42=脱臭OFF"}]},{"classCode":184,"description":"オーブンレンジ","name":"COMBINATION_MICROWAVE_OVEN_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"ドア開閉状態","fields":[],"identifier":"DoorOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ドア開,0x42=ドア閉"},{"access":["RULE_GET"],"arrayCount":0,"description":"加熱状態","fields":[],"identifier":"HeatingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=初期状態,0x41=運転中,0x42=一時停止中,0x43=完了報知中,0x44=設定中,0x45=予熱中,0x46=予熱完了保温中,0x47=加熱途中報知一時停止中"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"加熱設定","fields":[],"identifier":"HeatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=加熱開始・再開,0x42=加熱一時停止,0x43=加熱停止"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"加熱モード設定","fields":[],"identifier":"HeatingModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=電子レンジ加熱,0x42=解凍,0x43=オーブン,0x44=グリル,0x45=トースト,0x46=発酵,0x47=煮込み,0x48=スチーム加熱,0x51=電子レンジ2段加熱,0xFF=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"自動加熱設定","fields":[],"identifier":"AutomaticHeatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=自動,0x42=マニュアル,0xFF=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"自動加熱レベル設定","fields":[],"identifier":"AutomaticHeatingLevelSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x31～0x35(弱～強),0xFF=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"自動メニューコース設定","fields":[],"identifier":"AutomaticHeatingMenuSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xFE=自動メニューコースコードプロパティの詳細説明に、定義されたコードを示す。,0xFF=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"オーブンモード設定","fields":[],"identifier":"OvenModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=自動選択モード,0x41=対流オーブンモード,0x42=熱風オーブンモード,0x43=複合オーブンモード,0xFF=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"オーブン予熱設定","fields":[],"identifier":"OvenPreheatingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予熱あり,0x42=予熱なし,0xFF=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"発酵モード設定","fields":[],"identifier":"FermentingModeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":214,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=自動選択モード,0x41=対流発酵モード,0x42=熱風発酵モード,0x43=複合発酵モード,0x51=電子レンジ発酵モード,0xFF=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"庫内温度設定値","fields":[],"identifier":"ChamberTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"℃","valueDescription":"0xF554～0x7FFE(-273.2～3276.6℃),0x8001=自動設定,0x8002=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"仕上がり温度設定値","fields":[],"identifier":"FoodTemperatureSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":2,"type":"int16_t","unitDescription":"℃","valueDescription":"0xF554～0x7FFE(-273.2～3276.6℃),0x8002=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"加熱時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"HeatingTimeSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":229,"required":["NONE"],"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"加熱残時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RemainingHeatingTimeSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":230,"required":["NONE"],"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"電子レンジ加熱出力設定値","fields":[],"identifier":"MicrowaveHeatingPowerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":231,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":4,"description":"途中報知パターン設定","fields":[],"identifier":"PromptMessageSetting","initialValue":null,"isArray":true,"primitive":false,"propertyCode":232,"required":["NONE"],"size":0,"type":"prompt_message_setting_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"付属品設定","fields":[],"identifier":"AccessoriesToCombinationMicrowaveOvenSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":233,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"使用する付属品の組み合わせを2バイトのビットマップで示す。使用する付属品に対応するビットパターンを1とする。プロパティの詳細説明に各付属品に対応するビットマップパターンを示す。"},{"access":["RULE_SET"],"arrayCount":20,"description":"表示文字列設定","fields":[],"identifier":"DisplayCharacterStringSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":234,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"ShiftJISコード×20"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"電子レンジ２段加熱時間設定値","fields":[{"arrayCount":0,"description":"1段目の加熱時間","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"DurationOfFirstMicrowaveHeatingCycle","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"arrayCount":0,"description":"2段目の加熱時間","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"DurationOfSecondMicrowaveHeatingCycle","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""}],"identifier":"TwoStageMicrowaveHeatingSettingDuration","initialValue":null,"isArray":false,"primitive":false,"propertyCode":235,"required":["NONE"],"size":6,"type":"two_stage_microwave_heating_setting_duration_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"電子レンジ２段加熱出力設定値","fields":[{"arrayCount":0,"description":"1段目の加熱出力","fields":[],"identifier":"HeatingPowerForFirstMicrowaveHeatingCycle","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"},{"arrayCount":0,"description":"2段目の加熱出力","fields":[],"identifier":"HeatingPowerForSecondMicrowaveHeatingCycle","initialValue":null,"isArray":false,"primitive":true,"size":2,"type":"uint16_t","unitDescription":"W","valueDescription":"0x0000～0xFFFD(0～65533W)"}],"identifier":"TwoStageMicrowaveHeatingSettingHeatingPower","initialValue":null,"isArray":false,"primitive":false,"propertyCode":236,"required":["NONE"],"size":4,"type":"two_stage_microwave_heating_setting_heating_power_t","unitDescription":null,"valueDescription":""}]},{"classCode":185,"description":"クッキングヒータ","name":"COOKING_HEATER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":4,"description":"加熱状態","fields":[],"identifier":"HeatingStatus","initialValue":null,"isArray":true,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=待機中,0x41=運転中,0x42=一時停止中,0x50=加熱禁止状態,0xFF=不明"},{"access":["RULE_SET","RULE_GET"],"arrayCount":4,"description":"加熱設定","fields":[],"identifier":"HeatingSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=加熱停止,0x41=加熱開始・再開,0x42=加熱一時停止,0xFF=設定なし"},{"access":["RULE_SET"],"arrayCount":0,"description":"一括停止設定","fields":[],"identifier":"AllStopSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":179,"required":["RULE_SET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=一括加熱停止"},{"access":["RULE_SET","RULE_GET"],"arrayCount":4,"description":"加熱出力設定","fields":[],"identifier":"HeatingPowerSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":231,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"W|段階|－","valueDescription":"0x0000～0x2710=出力設定形式(0～10000W),0x3000～0x3010=レベル設定形式（17段階）,0x4002=とろ火,0x4004=弱火,0x4006=中火,0x4008=強火,0x400A=ハイパワー,0xFFFF=未設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"加熱温度設定値","fields":[],"identifier":"HeatingTemperatureSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x32～0xFA=設定温度(50～250℃),0xFF=設定なし"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"コンロ加熱モード設定","fields":[],"identifier":"HeatingModesOfStovesSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=加熱出力制御モード,0x42=天ぷら（揚げ物）,0x43=湯沸し,0x44=炊飯,0x45=炒め物,0xFF=設定なし"},{"access":["RULE_SET","RULE_GET"],"arrayCount":3,"description":"切タイマ相対時間設定値","fields":[],"identifier":"RelativeTimeSettingsOfOffTimers","initialValue":null,"isArray":true,"primitive":false,"propertyCode":150,"required":["NONE"],"size":0,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":"0xFFFFFF=設定なし"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"チャイルドロック設定","fields":[],"identifier":"ChildLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":161,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=チャイルドロックOFF,0x41=チャイルドロックON"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ラジエントヒータロック設定","fields":[],"identifier":"RadiantHeaterLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":162,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=ラジエントヒータロックOFF,0x41=ラジエントヒータロックON"}]},{"classCode":186,"description":"オーブン","name":"OVEN_EOBJ","propertyList":[]},{"classCode":187,"description":"炊飯器","name":"RICE_COOKER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"蓋開閉状態","fields":[],"identifier":"CoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=蓋開,0x42=蓋閉"},{"access":["RULE_GET"],"arrayCount":0,"description":"炊飯状態","fields":[],"identifier":"RiceCookingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=停止,0x42=予熱,0x43=炊飯,0x44=蒸らし,0x45=炊飯完了"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"炊飯制御設定","fields":[],"identifier":"RiceCookingControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=炊飯開始・炊飯再開,0x42=炊飯一時停止"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"保温設定","fields":[],"identifier":"WarmerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=保温有,0x42=保温無"},{"access":["RULE_GET"],"arrayCount":0,"description":"内なべ取り外し状態","fields":[],"identifier":"InnerPotRemovalStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=取り外し有,0x42=取り外し無"},{"access":["RULE_GET"],"arrayCount":0,"description":"蓋取り外し状態","fields":[],"identifier":"CoverRemovalStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=取り外し有,0x42=取り外し無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"炊飯予約設定","fields":[],"identifier":"RiceCookingReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約有,0x42=予約無"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"炊飯予約設定時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"SetValueOfRiceCookingReservationSettingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"炊飯予約設定相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"SetValueOfRiceCookingReservationSettingRelativeTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":188,"description":"電子ジャー","name":"ELECTRONIC_JAR_EOBJ","propertyList":[]},{"classCode":189,"description":"食器洗い機","name":"DISH_WASHER_EOBJ","propertyList":[]},{"classCode":190,"description":"食器乾燥機","name":"DISH_DRYER_EOBJ","propertyList":[]},{"classCode":191,"description":"電気もちつき機","name":"ELECTRIC_RICE_CARD_COOKER_EOBJ","propertyList":[]},{"classCode":192,"description":"保温機","name":"KEEP_WARM_MACHINE_EOBJ","propertyList":[]},{"classCode":193,"description":"精米機","name":"RICE_MILL_EOBJ","propertyList":[]},{"classCode":194,"description":"自動製パン機","name":"AUTOMATIC_BREAD_COOKER_EOBJ","propertyList":[]},{"classCode":195,"description":"スロークッカー","name":"SLOW_COOKER_EOBJ","propertyList":[]},{"classCode":196,"description":"電気漬物機","name":"ELECTRIC_PICKLES_COOKER_EOBJ","propertyList":[]},{"classCode":197,"description":"洗濯機","name":"WASHING_MACHINE_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"扉・蓋開閉状態","fields":[],"identifier":"DoorCoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=扉・蓋開,0x42=扉・蓋閉"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"洗濯設定","fields":[],"identifier":"WashingMachineSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=洗濯開始・再開,0x42=洗濯一時停止,0x43=洗濯停止"},{"access":["RULE_GET"],"arrayCount":0,"description":"洗濯遷移状態","fields":[],"identifier":"CurrentStageOfWashingCycle","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=洗い,0x42=すすぎ,0x43=脱水,0x44=一時停止,0x45=洗濯完了・停止"},{"access":["RULE_GET"],"arrayCount":0,"description":"洗濯残り時間","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TimeRemainingToCompleteWashingCycle","initialValue":null,"isArray":false,"primitive":false,"propertyCode":230,"required":["NONE"],"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RelativeTimeBasedOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":198,"description":"衣類乾燥機","name":"CLOTHES_DRYER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"扉・蓋開閉状態","fields":[],"identifier":"DoorCoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=扉・蓋開,0x42=扉・蓋閉"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"乾燥設定","fields":[],"identifier":"DryingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=乾燥開始・再開,0x42=乾燥一時停止,0x43=乾燥停止"},{"access":["RULE_GET"],"arrayCount":0,"description":"乾燥遷移状態","fields":[],"identifier":"DryingStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=乾燥,0x42=一時停止,0x43=乾燥完了・停止"},{"access":["RULE_GET"],"arrayCount":0,"description":"乾燥残り時間","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"},{"arrayCount":0,"description":"秒","fields":[],"identifier":"Second","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"秒","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RemainingDryingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":230,"required":["NONE"],"size":3,"type":"hour_minute_second_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RelativeTimeBasedOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""}]},{"classCode":199,"description":"電気アイロン","name":"ELECTRIC_IRON_EOBJ","propertyList":[]},{"classCode":200,"description":"ズボンプレッサ","name":"TROUSER_PRESS_EOBJ","propertyList":[]},{"classCode":201,"description":"ふとん乾燥機","name":"FUTON_DRYER_EOBJ","propertyList":[]},{"classCode":202,"description":"小物・くつ乾燥機","name":"SMALL_ARTICLE_SHOES_DRYER_EOBJ","propertyList":[]},{"classCode":203,"description":"電気掃除機（セントラルクリーナ含む）","name":"ELECTRIC_VACUUM_CLEANER_EOBJ","propertyList":[]},{"classCode":204,"description":"ディスポーザ","name":"DISPOSER_EOBJ","propertyList":[]},{"classCode":205,"description":"電気蚊取り機","name":"ELECTRIC_MOSQUITO_CATCHER_EOBJ","propertyList":[]},{"classCode":206,"description":"業務用ショーケース","name":"COMMERCIAL_SHOW_CASE_EOBJ","propertyList":[]},{"classCode":207,"description":"業務用冷蔵庫","name":"COMMERCIAL_REFRIGERATOR_EOBJ","propertyList":[]},{"classCode":208,"description":"業務用ホットケース","name":"COMMERCIAL_HOT_CASE_EOBJ","propertyList":[]},{"classCode":209,"description":"業務用フライヤー","name":"COMMERCIAL_FRYER_EOBJ","propertyList":[]},{"classCode":210,"description":"業務用電子レンジ","name":"COMMERCIAL_MICROWAVE_OVEN_EOBJ","propertyList":[]},{"classCode":211,"description":"洗濯乾燥機","name":"WASHER_AND_DRYER_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"扉・蓋開閉状態","fields":[],"identifier":"DoorCoverOpenCloseStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=扉・蓋開,0x42=扉・蓋閉"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"洗濯・乾燥設定","fields":[],"identifier":"WasherAndDryerSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":178,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=洗濯乾燥開始・再開\/洗濯乾燥運転中,0x42=洗濯乾燥一時停止,0x43=洗濯乾燥停止"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"洗濯乾燥コース設定１","fields":[],"identifier":"WasherAndDryerCycleSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":208,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"<洗濯乾燥コース>\u000d\u000a0x21=標準,0x22=静音,0x23=汚れ大,0x24=しつこい汚れ,0x25=つけおき,0x26=毛布,0x27=ソフト,0x28=ドライ,0x29=清潔すすぎ,0x2A=アイロン\/Yシャツ,0x2B=吊り干し,0x2C=厚物,0x2D=除菌,0x2E=油汚れ,0x2F=メモリー,0x30=省洗剤,0x31=汚れ少,0x32=少量短時間,0x40～0x4F=洗濯乾燥コース\/メーカオリジナルコース\u000d\u000a<洗濯コース>\u000d\u000a0x61=標準,0x62=静音,0x63=汚れ大,0x64=しつこい汚れ,0x65=つけおき,0x66=毛布,0x67=ソフト,0x68=ドライ,0x69=清潔すすぎ,0x6A=除菌,0x6B=油汚れ,0x6C=メモリ,0x6D=省洗剤,0x6E=汚れ少,0x6F=少量短時間,0x7F=槽洗浄,0x80～0x8F=洗濯コース\/メーカオリジナルコース\u000d\u000a<乾燥コース>\u000d\u000a0xA1=標準,0xA2=毛布,0xA3=ソフト,0xA4=ドライ,0xA5=アイロン\/Yシャツ,0xA6=吊り干し,0xA7=厚物,0xA8=除菌,0xA9=縮み低減,0xAA=仕上げ,0xAB=静止乾燥,0xAC=時間指定,0xAD=衣類あたため,0xBF=槽乾燥,0xC0～0xCF=乾燥コース\/メーカオリジナルコース"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"洗濯乾燥コース設定２","fields":[],"identifier":"WasherAndDryerCycleSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":209,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x20=洗濯なし,0x21=標準,0x22=静音,0x23=汚れ大,0x24=しつこい汚れ,0x25=つけおき,0x26=毛布,0x27=ソフト,0x28=ドライ,0x29=清潔すすぎ,0x2D=除菌,0x2E=油汚れ,0x2F=メモリー,0x30=省洗剤,0x31=汚れ少,0x32=少量短時間,0x3F=槽洗浄,0xE0～0xEF=メーカオリジナルコース"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"乾燥方法設定","fields":[],"identifier":"DryingCycleSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":210,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0xA0=乾燥なし,0xA1=標準,0xA2=毛布,0xA3=ソフト,0xA4=ドライ,0xA5=アイロン\/Yシャツ,0xA6=吊り干し,0xA7=厚物,0xA8=除菌,0xA9=縮み低減,0xAA=仕上げ,0xAB=静止乾燥,0xAC=時間指定,0xAD=衣類あたため,0xAE=ヒータ入力制限,0xBF=槽乾燥,0xE0～0xEF=メーカオリジナルコース"},{"access":["RULE_GET"],"arrayCount":12,"description":"設定可能コース情報１","fields":[],"identifier":"WasherAndDryerCycleOptionList1","initialValue":null,"isArray":true,"primitive":true,"propertyCode":211,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ビットが1の場合、対応するコースの設定が可能なことを、0の場合は不可能なことを示す。ビットとコースの関係は詳細を参照のこと。"},{"access":["RULE_GET"],"arrayCount":4,"description":"設定可能コース情報２","fields":[],"identifier":"WasherAndDryerCycleOptionList2","initialValue":null,"isArray":true,"primitive":true,"propertyCode":212,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ビットが1の場合、対応するコースの設定が可能なことを、0の場合は不可能なことを示す。ビットとコースの関係は詳細を参照のこと。"},{"access":["RULE_GET"],"arrayCount":4,"description":"設定可能コース情報３","fields":[],"identifier":"WasherAndDryerCycleOptionList3","initialValue":null,"isArray":true,"primitive":true,"propertyCode":213,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ビットが1の場合、対応するコースの設定が可能なことを、0の場合は不可能なことを示す。ビットとコースの関係は詳細を参照のこと。"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水流設定","fields":[],"identifier":"WaterFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":214,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"<絶対値指定>\u000d\u000a0x31～0x40(最も弱い水流～最も強い水流)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xA7=プラス相対指定(1～8段階),0xC0～0xC7=マイナス相対指定(1～8段階)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"段階脱水回転数設定値","fields":[],"identifier":"RotationSpeedForSpinDryingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":215,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"<絶対値指定>\u000d\u000a0x0000～0x0FFF(0～4095 r\/min)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFFFF=自動設定,0xA000～0xA7FF=プラス相対指定(1～2048r\/min),0xC000～0xC7FF=マイナス相対指定(1～2048r\/min)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"乾燥度設定","fields":[],"identifier":"DegreeOfDryingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":216,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"<絶対値指定>\u000d\u000a0x31～0x40(最も低い乾燥度～最も高い乾燥度)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xA7=プラス相対指定(1～8段階),0xC0～0xC7=マイナス相対指定(1～8段階)"},{"access":["RULE_GET"],"arrayCount":0,"description":"洗濯残り時間","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時間","valueDescription":"0x00～0xFE(0～254)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RemainingWashingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":219,"required":["NONE"],"size":2,"type":"hours_minutes_t","unitDescription":null,"valueDescription":"0xFFFF=残り時間不明"},{"access":["RULE_GET"],"arrayCount":0,"description":"乾燥残り時間","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時間","valueDescription":"0x00～0xFE(0～254)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RemainingDryingTime","initialValue":null,"isArray":false,"primitive":false,"propertyCode":220,"required":["NONE"],"size":2,"type":"hours_minutes_t","unitDescription":null,"valueDescription":"0xFFFF=残り時間不明"},{"access":["RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ経過時間","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時間","valueDescription":"0x00～0xFF(0～255)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"ElapsedTimeOnTheOnTimer","initialValue":null,"isArray":false,"primitive":false,"propertyCode":223,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":2,"description":"つけおき行程時間設定値","fields":[],"identifier":"PresoakingTimeSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":225,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"時間分","valueDescription":"<絶対値指定>\u000d\u000a0x00～0x17:0x00～0x3B(0～23):(0～59)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFFFF=自動設定,0xA000～0xA03B=プラス相対指定(1～60分),0xC000～0xC03B=マイナス相対指定(1～60分)"},{"access":["RULE_GET"],"arrayCount":0,"description":"洗濯乾燥遷移状態","fields":[],"identifier":"CurrentStageOfWasherAndDryerCycle","initialValue":null,"isArray":false,"primitive":true,"propertyCode":226,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=洗い,0x42=すすぎ,0x43=脱水,0x44=一時停止,0x45=洗濯完了,0x51=洗濯\/乾燥（ソフトキープなし）完了,0x52=乾燥,0x53=ソフトキープ,0x54=乾燥（ソフトキープあり）完了,0x61=運転前待機中,0x71=第1すすぎ,0x72=第2すすぎ,0x73=第3すすぎ,0x74=第4すすぎ,0x75=第5すすぎ,0x76=第6すすぎ,0x77=第7すすぎ,0x78=第8すすぎ,0x81=第1脱水,0x82=第2脱水,0x83=第3脱水,0x84=第4脱水,0x85=第5脱水,0x86=第6脱水,0x87=第7脱水,0x88=第8脱水,0x91=プリヒート脱水,0xE0～0xEF=メーカオリジナルコード"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水量設定１","fields":[],"identifier":"WaterVolumeSetting1","initialValue":null,"isArray":false,"primitive":true,"propertyCode":227,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"㍑","valueDescription":"<絶対値指定>\u000d\u000a0x00～0x7F(0～127㍑)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xBF=プラス相対指定(1～32㍑),0xC0～0xDF=マイナス相対指定(1～32㍑)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"水量設定２","fields":[],"identifier":"WaterVolumeSetting2","initialValue":null,"isArray":false,"primitive":true,"propertyCode":228,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"<絶対値指定>\u000d\u000a0x31～0x40(最も低い水位～最も高い水位)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xA7=プラス相対指定(1～8段階),0xC0～0xC7=マイナス相対指定(1～8段階)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":2,"description":"洗い時間設定値","fields":[],"identifier":"WashingTimeSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":229,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"時間分","valueDescription":"<絶対値指定>\u000d\u000a0x00～0x17:0x00～0x3B(0～23):(0～59)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA000～0xA03B=プラス相対指定(1～60分),0xC000～0xC03B=マイナス相対指定(1～60分)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"すすぎ回数設定値","fields":[],"identifier":"NumberOfTimesOfRinsingSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":230,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0x08(0～8回),0xFF=自動"},{"access":["RULE_SET","RULE_GET"],"arrayCount":4,"description":"すすぎモード設定","fields":[],"identifier":"RinsingProcessSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":231,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0000=モード自動設定,0001=溜めすすぎ,0010=流水すすぎ,0011=シャワーすすぎ"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"脱水時間設定値","fields":[],"identifier":"SpinDryingTimeSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":232,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"<絶対値指定>\u000d\u000a0x00～0x3B(0～59分)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFF=自動設定,0xA0～0xBF=プラス相対指定(1～32分),0xC0～0xDF=マイナス相対指定(1～32分)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":2,"description":"乾燥時間設定値","fields":[],"identifier":"DryingTimeSetting","initialValue":null,"isArray":true,"primitive":true,"propertyCode":233,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"時間分","valueDescription":"<絶対値指定>\u000d\u000a0x00～0x17:0x00～0x3B(0～23):(0～59)\u000d\u000a<自動からの相対指定>\u000d\u000a0xFFFF=自動設定,0xA000～0xA03B=プラス相対指定(1～60分),0xC000～0xC03B=マイナス相対指定(1～60分)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"洗い温水設定値","fields":[],"identifier":"WarmWaterSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":234,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":"℃","valueDescription":"0x00～0x64(0～100℃),0xFE=温水不使用,0xFF=温度自動設定"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"風呂水設定","fields":[],"identifier":"BathtubWaterRecycleSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":235,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x40=風呂水給水なし,0x41=洗いのみ,0x42=すすぎのみ（除く最終すすぎ）,0x43=全すすぎ,0x44=洗い＋すすぎ（除く最終すすぎ）,0x45=洗い＋全すすぎ"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ソフトキープ設定","fields":[],"identifier":"WrinklingMinimizationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":236,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ソフトキープ入り,0x42=ソフトキープ切り"},{"access":["RULE_GET"],"arrayCount":0,"description":"洗濯乾燥残り時間","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時間","valueDescription":"0x00～0xFE(0～254)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"TimeRemainingToCompleteWasherAndDryerCycle","initialValue":null,"isArray":false,"primitive":false,"propertyCode":237,"required":["NONE"],"size":2,"type":"hours_minutes_t","unitDescription":null,"valueDescription":"0xFFFF=残り時間不明"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"運転中扉・蓋ロック設定","fields":[],"identifier":"DoorCoverLockSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":238,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=ロック,0x42=アンロック"},{"access":["RULE_GET"],"arrayCount":0,"description":"洗濯乾燥行程情報","fields":[{"arrayCount":2,"description":"有効な表示項目","fields":[],"identifier":"AvailableItems","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"有効な表示項目をビットマップで示す。"},{"arrayCount":0,"description":"つけおき行程","fields":[],"identifier":"Presoaking","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=つけおき行程あり,0x42=つけおき行程なし"},{"arrayCount":2,"description":"洗い時間","fields":[],"identifier":"WashingTime","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は洗い時間設定値を参照"},{"arrayCount":0,"description":"すすぎ回数","fields":[],"identifier":"NumberOfTimesOfRinsing","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値はすすぎ回数設定値を参照"},{"arrayCount":0,"description":"すすぎモード","fields":[],"identifier":"RinsingProcess","initialValue":null,"isArray":false,"primitive":true,"size":4,"type":"uint32_t","unitDescription":null,"valueDescription":"値はすすぎモード設定を参照"},{"arrayCount":0,"description":"脱水時間","fields":[],"identifier":"SpinDryingTime","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は脱水時間設定値を参照"},{"arrayCount":2,"description":"乾燥時間","fields":[],"identifier":"DryingTime","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は乾燥時間設定値を参照"},{"arrayCount":0,"description":"温水設定","fields":[],"identifier":"WarmWaterSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は温水設定を参照"},{"arrayCount":0,"description":"水量設定1","fields":[],"identifier":"WaterVolumeSetting1","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は水量設定1を参照"},{"arrayCount":0,"description":"水量設定2","fields":[],"identifier":"WaterVolumeSetting2","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は水量設定2を参照"},{"arrayCount":0,"description":"風呂水設定","fields":[],"identifier":"BathtubWaterRecycleSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は風呂水設定を参照"},{"arrayCount":0,"description":"水流設定","fields":[],"identifier":"WaterFlowRateSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は水流設定を参照"},{"arrayCount":2,"description":"脱水回転数設定","fields":[],"identifier":"RotationSpeedForSpinDryingSetting","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は脱水回転数設定値を参照"},{"arrayCount":0,"description":"乾燥度設定","fields":[],"identifier":"DegreeOfDryingSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値は乾燥度設定を参照"},{"arrayCount":2,"description":"つけおき行程時間設定","fields":[],"identifier":"PresoakingTimeSetting","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値はつけおき行程時間設定を参照"},{"arrayCount":0,"description":"ソフトキープ設定","fields":[],"identifier":"WrinklingMinimizationSetting","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"値はソフトキープ設定を参照"}],"identifier":"WasherAndDryerCycle","initialValue":null,"isArray":false,"primitive":false,"propertyCode":239,"required":["NONE"],"size":24,"type":"washer_and_dryer_cycle_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ予約設定","fields":[],"identifier":"OnTimerReservationSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":144,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x41=予約入,0x42=予約切"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ時刻設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時","valueDescription":"0x00～0x17(0～23)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"OnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":145,"required":["NONE"],"size":2,"type":"hour_minute_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"ＯＮタイマ相対時間設定値","fields":[{"arrayCount":0,"description":"時","fields":[],"identifier":"Hour","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"時間","valueDescription":"0x00～0xFF(0～255)"},{"arrayCount":0,"description":"分","fields":[],"identifier":"Minute","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":"分","valueDescription":"0x00～0x3B(0～59)"}],"identifier":"RelativeTimeBasedOnTimerSetting","initialValue":null,"isArray":false,"primitive":false,"propertyCode":146,"required":["NONE"],"size":2,"type":"hours_minutes_2type_t","unitDescription":null,"valueDescription":""}]}]},{"classGroupCode":4,"description":"健康関連機器","define":"X1_WELLNESS","classList":[{"classCode":1,"description":"体重計","name":"WEIGHING_MACHINE_EOBJ","propertyList":[{"access":["RULE_GET"],"arrayCount":0,"description":"体重計測値","fields":[],"identifier":"MeasuredValueOfBodyWeight","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.1kg","valueDescription":"0x0000～0xFFFD(0～6553.3kg)"},{"access":["RULE_GET"],"arrayCount":0,"description":"体脂肪計測値","fields":[],"identifier":"MeasuredValueOfBodyFat","initialValue":null,"isArray":false,"primitive":true,"propertyCode":225,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":"0.10％","valueDescription":"0x0000～0x03E8(0～100.0%)"}]},{"classCode":2,"description":"体温計","name":"CLINICAL_THERMOMETER_EOBJ","propertyList":[]},{"classCode":3,"description":"血圧計","name":"BLOOD_PRESSURE_METER_EOBJ","propertyList":[]},{"classCode":4,"description":"血糖値計","name":"BLOOD_SUGAR_METER_EOBJ","propertyList":[]},{"classCode":5,"description":"体脂肪計","name":"BODY_FAT_METER_EOBJ","propertyList":[]}]},{"classGroupCode":5,"description":"管理・操作関連機器","define":"X1_CONTROLLER","classList":[{"classCode":252,"description":"セキュア通信用共有鍵設定ノード","name":"SECURE_COMMUNICATION_SHARED_KEY_SETUP_NODE_EOBJ","propertyList":[]},{"classCode":253,"description":"スイッチ（JEMA/HA端子対応）","name":"SWITCH_EOBJ","propertyList":[{"access":["RULE_SET"],"arrayCount":0,"description":"接続機器","fields":[],"identifier":"ConnectedDevice","initialValue":null,"isArray":false,"primitive":true,"propertyCode":224,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"機器の形名を保持する"}]},{"classCode":254,"description":"携帯端末","name":"PORTABLE_TERMINAL_EOBJ","propertyList":[]},{"classCode":255,"description":"コントローラ","name":"CONTROLLER_EOBJ","propertyList":[]}]},{"classGroupCode":6,"description":"AV関連機器","define":"X1_AUDIO_VISUAL","classList":[{"classCode":1,"description":"ディスプレー","name":"DISPLAY_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"表示制御設定","fields":[],"identifier":"DisplayControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=表示,0x31=非表示"},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"文字列設定受付可能状態","fields":[],"identifier":"CharacterStringSettingAcceptanceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=レディ,0x31=ビジー"},{"access":["RULE_GET"],"arrayCount":2,"description":"表示可能文字コード","fields":[],"identifier":"SupportedCharacterCodes","initialValue":null,"isArray":true,"primitive":true,"propertyCode":178,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"[0]ANSI X3.4:1=搭載,0=非搭載\u000d\u000a[1]Shift-JIS:1=搭載,0=非搭載\u000d\u000a[2]JIS:1=搭載,0=非搭載\u000d\u000a[3]日本語EUC:1=搭載,0=非搭載\u000d\u000a[4]UCS-4:1=搭載,0=非搭載\u000d\u000a[5]UCS-2:1=搭載,0=非搭載\u000d\u000a[6]Latin-1:1=搭載,0=非搭載\u000d\u000a[7]UTF-8:1=搭載,0=非搭載\u000d\u000a[8～15]for future reserved:0"},{"access":["RULE_SET","RULE_GET","VARIABLE"],"arrayCount":0,"description":"伝達文字列設定","fields":[{"arrayCount":0,"description":"伝達文字バイトコード列データ長","fields":[],"identifier":"ByteCodeSequenceDataLength","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"伝達文字バイトコード列データ長の16進換算値"},{"arrayCount":0,"description":"使用文字コード","fields":[],"identifier":"CharacterCodeToUse","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x01=ANSI X3.4,0x02=Shift-JIS,0x03=JIS,0x04=日本語EUC,0x05=UCS-4,0x06=UCS-2,0x07=Latin-1,0x08=UTF-8,0x09～=for future reserved"},{"arrayCount":0,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"arrayCount":244,"description":"伝達文字列バイトコード列","fields":[],"identifier":"ByteCodeSequenceOfTheCharacterStringToPresentToTheUser","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"CharacterStringToPresentToTheUser","initialValue":null,"isArray":false,"primitive":false,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":247,"type":"character_string_to_present_to_the_user_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"受付け伝達文字列長","fields":[{"arrayCount":0,"description":"for future reserved","fields":[],"identifier":"TotalNumberOfBytesOfTheNewestCharacterString","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00～0xF4"},{"arrayCount":0,"description":"for future reserved","fields":[],"identifier":"Reserved","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x00"}],"identifier":"LengthOfCharacterStringAccepted","initialValue":null,"isArray":false,"primitive":false,"propertyCode":180,"required":["RULE_GET"],"size":2,"type":"length_of_character_string_accepted_t","unitDescription":null,"valueDescription":""}]},{"classCode":2,"description":"テレビ","name":"TELEVISION_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"表示制御設定","fields":[],"identifier":"DisplayControlSetting","initialValue":null,"isArray":false,"primitive":true,"propertyCode":176,"required":["NONE"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"文字列設定受付可能状態","fields":[],"identifier":"CharacterStringSettingAcceptanceStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":177,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":2,"description":"表示可能文字コード","fields":[],"identifier":"SupportedCharacterCodes","initialValue":null,"isArray":true,"primitive":true,"propertyCode":178,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_SET","RULE_GET","VARIABLE"],"arrayCount":247,"description":"伝達文字列設定","fields":[],"identifier":"CharacterStringToPresentToTheUser","initialValue":null,"isArray":true,"primitive":true,"propertyCode":179,"required":["RULE_SET","RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET","ANNOUNCE"],"arrayCount":0,"description":"受付け伝達文字列長","fields":[],"identifier":"LengthOfCharacterStringAccepted","initialValue":null,"isArray":false,"primitive":true,"propertyCode":180,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}]}]},{"classGroupCode":14,"description":"プロファイル","define":"X1_PROFILE","classList":[{"classCode":240,"description":"ノードプロファイルオブジェクト","name":"NODE_PROFILE_EOBJ","propertyList":[{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"動作状態","fields":[],"identifier":"OperationStatus","initialValue":null,"isArray":false,"primitive":true,"propertyCode":128,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0x30=起動中,0x31=未起動中"},{"access":["RULE_GET"],"arrayCount":0,"description":"Ｖｅｒｓｉｏｎ情報","fields":[{"arrayCount":0,"description":"メジャーバージョン(小数点以上)","fields":[],"identifier":"MajorVersionNumber","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"Binary"},{"arrayCount":0,"description":"マイナーバージョン(小数点以下)","fields":[],"identifier":"MinorVersionNumber","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"Binary"},{"arrayCount":2,"description":"電文タイプ","fields":[],"identifier":"MessageType","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"Bitmap"}],"identifier":"VersionInformation","initialValue":null,"isArray":false,"primitive":false,"propertyCode":130,"required":["RULE_GET"],"size":4,"type":"version_information_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"識別番号","fields":[{"arrayCount":0,"description":"下位通信層IDフィールド","fields":[],"identifier":"LowerCommunicationIdField","initialValue":null,"isArray":false,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"0xFE=2から17バイトをメーカ規定形式により設定,その他=future reserved"},{"arrayCount":0,"description":"メーカーコード","fields":[{"arrayCount":3,"description":"メーカーコード","fields":[],"identifier":"ManufacturerCode","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"ECHONETコンソーシアムで規定。"}],"identifier":"ManufacturerCode","initialValue":null,"isArray":false,"primitive":false,"size":3,"type":"manufacturer_code_t","unitDescription":null,"valueDescription":""},{"arrayCount":13,"description":"ユニークID部(メーカー独自)","fields":[],"identifier":"UniqueIdSection","initialValue":null,"isArray":true,"primitive":true,"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":""}],"identifier":"IdentificationNumber","initialValue":null,"isArray":false,"primitive":false,"propertyCode":131,"required":["RULE_GET"],"size":17,"type":"node_identification_number_t","unitDescription":null,"valueDescription":""},{"access":["RULE_GET"],"arrayCount":0,"description":"異常内容","fields":[],"identifier":"FaultContent","initialValue":null,"isArray":false,"primitive":true,"propertyCode":137,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"0x0000～0x03EC(0～1004)"},{"access":["RULE_SET","RULE_GET"],"arrayCount":0,"description":"個体識別情報","fields":[],"identifier":"UniqueIdentifierData","initialValue":null,"isArray":false,"primitive":true,"propertyCode":191,"required":["NONE"],"size":2,"type":"uint16_t","unitDescription":null,"valueDescription":"下記(3)参照。"},{"access":["RULE_GET"],"arrayCount":3,"description":"自ノードインスタンス数","fields":[],"identifier":"NumberOfSelfNodeInstances","initialValue":null,"isArray":true,"primitive":true,"propertyCode":211,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1～3バイト目：インスタンス総数"},{"access":["RULE_GET"],"arrayCount":2,"description":"自ノードクラス数","fields":[],"identifier":"NumberOfSelfNodeClasses","initialValue":null,"isArray":true,"primitive":true,"propertyCode":212,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1～2バイト目：クラス総数"},{"access":["RULE_ANNO","VARIABLE"],"arrayCount":253,"description":"インスタンスリスト通知","fields":[],"identifier":"InstanceListNotification","initialValue":null,"isArray":true,"primitive":true,"propertyCode":213,"required":["RULE_ANNO"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1バイト目：通報インスタンス数\u000d\u000a2～253バイト目：ECHONETオブジェクトコード(EOJ3バイト)を列挙。"},{"access":["RULE_GET","VARIABLE"],"arrayCount":253,"description":"自ノードインスタンスリストＳ","fields":[],"identifier":"SelfNodeInstanceListS","initialValue":null,"isArray":true,"primitive":true,"propertyCode":214,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1バイト目：インスタンス総数\u000d\u000a2～253バイト目：ECHONETオブジェクトコード(EOJ3バイト)を列挙。"},{"access":["RULE_GET","VARIABLE"],"arrayCount":17,"description":"自ノードクラスリストＳ","fields":[],"identifier":"SelfNodeClassListS","initialValue":null,"isArray":true,"primitive":true,"propertyCode":215,"required":["RULE_GET"],"size":1,"type":"uint8_t","unitDescription":null,"valueDescription":"1バイト目：クラス総数\u000d\u000a2～17バイト目：クラスコード(EOJの上位2バイト)を列挙。"}]}]},{"classGroupCode":15,"description":"ユーザー定義","define":"X1_USER_DEFINED","classList":[]}]}
Index: EcnlProtoTool/trunk/webapp/webmrbc/img/core-s.svg
===================================================================
--- EcnlProtoTool/trunk/webapp/webmrbc/img/core-s.svg	(revision 299)
+++ EcnlProtoTool/trunk/webapp/webmrbc/img/core-s.svg	(revision 321)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
-<!-- Microsoft Visio 11.0ãSVG Export v1.0 ã«ããçæ core-s_.svg Page-1 -->
+<!-- Microsoft Visio 11.0、SVG Export v1.0 により生成 core-s_.svg Page-1 -->
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
 		xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="0.678893in" height="0.19685in"
@@ -19,7 +19,7 @@
 				v:shadowOffsetY="-8.50394"/>
 		<g id="group2-1" v:mID="2" v:groupContext="group">
-			<title>ã·ã¼ã.2</title>
+			<title>シート.2</title>
 			<g id="shape9-2" v:mID="9" v:groupContext="shape" transform="translate(-2.9976E-015,-0.475439)">
-				<title>ã·ã¼ã.9</title>
+				<title>シート.9</title>
 				<path d="M11.65 1.94 L10.74 6.54 L10.01 6.53 C10.02 6.3 10.01 6.01 10.01 5.65 C10.01 3.38 8.52 2.29 7.2 2.29 C4.07
 							 2.29 2.69 7 2.69 9.89 C2.69 10.29 2.75 13.21 5.81 13.21 C7.93 13.21 8.93 11.56 9.53 10.04 L10.27 10.41
@@ -28,5 +28,5 @@
 			</g>
 			<g id="shape10-4" v:mID="10" v:groupContext="shape" transform="translate(11.6161,-0.616786)">
-				<title>ã·ã¼ã.10</title>
+				<title>シート.10</title>
 				<path d="M4.82 5.8 C6.17 5.8 8.44 6.82 8.44 9.33 C8.44 11.58 6.84 14.17 3.6 14.17 C0.77 14.17 0 12.12 0 10.74 C-0
 							 6.44 3.92 5.8 4.82 5.8 ZM4.82 6.53 C3.03 6.53 2.18 11 2.18 11.8 C2.18 13.07 2.89 13.59 3.53 13.59 C4.95
@@ -34,5 +34,5 @@
 			</g>
 			<g id="shape11-6" v:mID="11" v:groupContext="shape" transform="translate(21.7674,-0.770983)">
-				<title>ã·ã¼ã.11</title>
+				<title>シート.11</title>
 				<path d="M0.55 6.44 L3.66 6.28 L2.96 9.69 C3.5 8.49 4.39 6.12 6.33 6.12 C7.68 6.12 8.03 7.03 8.03 7.52 C8.03 8.26
 							 7.62 8.84 6.87 8.84 C6.63 8.84 5.85 8.62 5.85 7.98 C5.85 7.65 5.99 7.66 5.99 7.26 C5.99 7.12 5.72 7.12
@@ -41,5 +41,5 @@
 			</g>
 			<g id="shape12-8" v:mID="12" v:groupContext="shape" transform="translate(30.184,-0.668185)">
-				<title>ã·ã¼ã.12</title>
+				<title>シート.12</title>
 				<path d="M2.42 10.96 C2.42 11.56 2.2 13.3 3.94 13.3 C5.11 13.3 5.94 12.5 6.49 11.92 L7.04 12.28 C5.91 13.45 4.92
 							 14.17 3.35 14.17 C2.08 14.17 -0 13.61 0 11.18 C-0 7.84 2.69 5.81 5.29 5.81 C7.07 5.81 7.54 6.9 7.54
@@ -48,5 +48,5 @@
 			</g>
 			<g id="shape13-10" v:mID="13" v:groupContext="shape" transform="translate(37.1485,2.84217E-014)">
-				<title>ã·ã¼ã.13</title>
+				<title>シート.13</title>
 				<path d="M1.26 11.38 C1.26 13.42 4.12 13.51 4.38 13.51 C7.5 13.48 8.28 11.68 8.28 10.61 C8.28 9.53 7.79 8.98 6.24
 							 8.46 C5.5 8.2 4.25 7.94 4.25 7.12 C4.25 6.18 5.67 5.76 6.08 5.76 C6.72 5.76 7.08 5.9 7.08 6.22 C7.08
Index: EcnlProtoTool/trunk/webapp/webmrbc/information.json
===================================================================
--- EcnlProtoTool/trunk/webapp/webmrbc/information.json	(revision 299)
+++ EcnlProtoTool/trunk/webapp/webmrbc/information.json	(revision 321)
@@ -2,6 +2,6 @@
 	{
 		"title": "TOPPERS/ECNL for mruby Prototyping Tool",
-		"version": "1.A.0 Î±ç",
-		"note": "APPENDIX ECHONETæ©å¨ãªãã¸ã§ã¯ãè©³ç´°è¦å® Release C"
+		"version": "1.A.0 α版",
+		"note": "APPENDIX ECHONET機器オブジェクト詳細規定 Release C"
 	},
 	{
@@ -9,5 +9,5 @@
 		"version": "3.1.0",
 		"link": "https://www.toppers.jp/asp3-kernel.html",
-		"note": "åççæç GR-PEACHåãã¿ã¼ã²ããä¾å­é¨"
+		"note": "動的生成版 GR-PEACH向けターゲット依存部"
 	},
 	{
@@ -15,5 +15,5 @@
 		"version": "3.10",
 		"link": "https://developer.mbed.org/platforms/Renesas-GR-PEACH/",
-		"note": "GR-PEACHåãã¿ã¼ã²ããä¾å­é¨"
+		"note": "GR-PEACH向けターゲット依存部"
 	},
 	{
@@ -61,5 +61,5 @@
 		"version": "(2016/10/12 master)",
 		"link": "https://github.com/wakayamarb/wrbb-v2lib-firm",
-		"note": "RubyçArduino APIãä½¿ç¨"
+		"note": "Ruby版Arduino APIを使用"
 	},
 	{
@@ -82,5 +82,5 @@
 		"version": "2.6.27",
 		"link": "https://www.busybox.net/",
-		"note": "ãã­ã¹ãã¨ãã£ã¿ã®viãä½¿ç¨"
+		"note": "テキストエディタのviを使用"
 	},
 	{
@@ -93,5 +93,5 @@
 		"version": "(2013/1/13 master)",
 		"link": "https://github.com/nori0428/mod_websocket",
-		"note": "base64,sha1ãä½¿ç¨"
+		"note": "base64,sha1を使用"
 	},
 	{
@@ -99,5 +99,5 @@
 		"version": "1.0",
 		"link": "https://github.com/adamdunkels/uip",
-		"note": "httpdããã¼ã¹ã«ä½¿ç¨"
+		"note": "httpdをベースに使用"
 	},
 	{
@@ -145,5 +145,5 @@
 		"version": "1.1.0",
 		"link": "https://www.cs.rit.edu/~ats/projects/lp/doc/jay/package-summary.html",
-		"note": "mrubyã®parser.yã®C#ç§»æ¤çã§ä½¿ç¨"
+		"note": "mrubyのparser.yのC#移植版で使用"
 	},
 	{
@@ -151,5 +151,5 @@
 		"version": "0.4.3",
 		"link": "https://github.com/smalruby/smalruby-editor",
-		"note": "UIããã¼ã¹ã«ä½¿ç¨"
+		"note": "UIをベースに使用"
 	}
 ]
Index: EcnlProtoTool/trunk/webapp/webmrbc/js/blockly_compressed.js
===================================================================
--- EcnlProtoTool/trunk/webapp/webmrbc/js/blockly_compressed.js	(revision 299)
+++ EcnlProtoTool/trunk/webapp/webmrbc/js/blockly_compressed.js	(revision 321)
@@ -1,7 +1,7 @@
-"use strict";var COMPILED=!0,goog=goog||{};goog.global=this,goog.isDef=function(e){return void 0!==e},goog.exportPath_=function(e,o,t){e=e.split("."),t=t||goog.global,e[0]in t||!t.execScript||t.execScript("var "+e[0]);for(var n;e.length&&(n=e.shift());)!e.length&&goog.isDef(o)?t[n]=o:t=t[n]?t[n]:t[n]={}},goog.define=function(e,o){var t=o;COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,e)?t=goog.global.CLOSURE_UNCOMPILED_DEFINES[e]:goog.global.CLOSURE_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,e)&&(t=goog.global.CLOSURE_DEFINES[e])),goog.exportPath_(e,t)},goog.DEBUG=!1,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(e){if(goog.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");if(!COMPILED&&goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');goog.constructNamespace_(e)},goog.constructNamespace_=function(e,o){if(!COMPILED){delete goog.implicitNamespaces_[e];for(var t=e;(t=t.substring(0,t.lastIndexOf(".")))&&!goog.getObjectByName(t);)goog.implicitNamespaces_[t]=!0}goog.exportPath_(e,o)},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(e){if(!goog.isString(e)||!e||-1==e.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+e+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");if(goog.moduleLoaderState_.moduleName=e,!COMPILED){if(goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');delete goog.implicitNamespaces_[e]}},goog.module.get=function(e){return goog.module.getInternal_(e)},goog.module.getInternal_=function(e){return COMPILED?void 0:goog.isProvided_(e)?e in goog.loadedModules_?goog.loadedModules_[e]:goog.getObjectByName(e):null},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_},goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.setTestOnly=function(e){if(goog.DISALLOW_TEST_ONLY_CODE)throw e=e||"",Error("Importing test-only code into non-debug environment"+(e?": "+e:"."))},goog.forwardDeclare=function(e){},COMPILED||(goog.isProvided_=function(e){return e in goog.loadedModules_||!goog.implicitNamespaces_[e]&&goog.isDefAndNotNull(goog.getObjectByName(e))},goog.implicitNamespaces_={"goog.module":!0}),goog.getObjectByName=function(e,o){for(var t,n=e.split("."),r=o||goog.global;t=n.shift();){if(!goog.isDefAndNotNull(r[t]))return null;r=r[t]}return r},goog.globalize=function(e,o){var t,n=o||goog.global;for(t in e)n[t]=e[t]},goog.addDependency=function(e,o,t,n){if(goog.DEPENDENCIES_ENABLED){var r;e=e.replace(/\\/g,"/");var i=goog.dependencies_;n&&"boolean"!=typeof n||(n=n?{module:"goog"}:{});for(var s=0;r=o[s];s++)i.nameToPath[r]=e,i.loadFlags[e]=n;for(n=0;o=t[n];n++)e in i.requires||(i.requires[e]={}),i.requires[e][o]=!0}},goog.ENABLE_DEBUG_LOADER=!0,goog.logToConsole_=function(e){goog.global.console&&goog.global.console.error(e)},goog.require=function(e){if(!COMPILED){if(goog.ENABLE_DEBUG_LOADER&&goog.IS_OLD_IE_&&goog.maybeProcessDeferredDep_(e),goog.isProvided_(e)){if(goog.isInModuleLoader_())return goog.module.getInternal_(e)}else if(goog.ENABLE_DEBUG_LOADER){var o=goog.getPathFromDeps_(e);if(!o)throw e="goog.require could not find: "+e,goog.logToConsole_(e),Error(e);goog.writeScripts_(o)}return null}},goog.basePath="",goog.nullFunction=function(){},goog.abstractMethod=function(){throw Error("unimplemented abstract method")},goog.addSingletonGetter=function(e){e.getInstance=function(){return e.instance_?e.instance_:(goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=e),e.instance_=new e)}},goog.instantiatedSingletons_=[],goog.LOAD_MODULE_USING_EVAL=!0,goog.SEAL_MODULE_EXPORTS=goog.DEBUG,goog.loadedModules_={},goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER,goog.TRANSPILE="detect",goog.TRANSPILER="transpile.js",goog.DEPENDENCIES_ENABLED&&(goog.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}},goog.inHtmlDocument_=function(){var e=goog.global.document;return null!=e&&"write"in e},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var e=goog.global.document.getElementsByTagName("SCRIPT"),o=e.length-1;o>=0;--o){var t=e[o].src,n=t.lastIndexOf("?"),n=-1==n?t.length:n;if("base.js"==t.substr(n-7,7)){goog.basePath=t.substr(0,n-7);break}}},goog.importScript_=function(e,o){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_)(e,o)&&(goog.dependencies_.written[e]=!0)},goog.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.importProcessedScript_=function(e,o,t){goog.importScript_("",'goog.retrieveAndExec_("'+e+'", '+o+", "+t+");")},goog.queuedModules_=[],goog.wrapModule_=function(e,o){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(o+"\n//# sourceURL="+e+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+o+"\n;return exports});\n//# sourceURL="+e+"\n"},goog.loadQueuedModules_=function(){var e=goog.queuedModules_.length;if(e>0){var o=goog.queuedModules_;goog.queuedModules_=[];for(var t=0;e>t;t++)goog.maybeProcessDeferredPath_(o[t])}},goog.maybeProcessDeferredDep_=function(e){goog.isDeferredModule_(e)&&goog.allDepsAreAvailable_(e)&&(e=goog.getPathFromDeps_(e),goog.maybeProcessDeferredPath_(goog.basePath+e))},goog.isDeferredModule_=function(e){var o=(e=goog.getPathFromDeps_(e))&&goog.dependencies_.loadFlags[e]||{},t=o.lang||"es3";return e&&("goog"==o.module||goog.needsTranspile_(t))?goog.basePath+e in goog.dependencies_.deferred:!1},goog.allDepsAreAvailable_=function(e){if((e=goog.getPathFromDeps_(e))&&e in goog.dependencies_.requires)for(var o in goog.dependencies_.requires[e])if(!goog.isProvided_(o)&&!goog.isDeferredModule_(o))return!1;return!0},goog.maybeProcessDeferredPath_=function(e){if(e in goog.dependencies_.deferred){var o=goog.dependencies_.deferred[e];delete goog.dependencies_.deferred[e],goog.globalEval(o)}},goog.loadModuleFromUrl=function(e){goog.retrieveAndExec_(e,!0,!1)},goog.writeScriptSrcNode_=function(e){goog.global.document.write('<script type="text/javascript" src="'+e+'"></script>')},goog.appendScriptSrcNode_=function(e){var o=goog.global.document,t=o.createElement("script");t.type="text/javascript",t.src=e,t.defer=!1,t.async=!1,o.head.appendChild(t)},goog.writeScriptTag_=function(e,o){if(goog.inHtmlDocument_()){var t=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==t.readyState){if(/\bdeps.js$/.test(e))return!1;throw Error('Cannot write "'+e+'" after document load')}if(void 0===o)if(goog.IS_OLD_IE_){var n=" onreadystatechange='goog.onScriptLoad_(this, "+ ++goog.lastNonModuleScriptIndex_+")' ";t.write('<script type="text/javascript" src="'+e+'"'+n+"></script>")}else goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?goog.appendScriptSrcNode_(e):goog.writeScriptSrcNode_(e);else t.write('<script type="text/javascript">'+o+"</script>");return!0}return!1},goog.needsTranspile_=function(e){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(goog.requiresTranspilation_||(goog.requiresTranspilation_=goog.createRequiresTranspilation_()),e in goog.requiresTranspilation_)return goog.requiresTranspilation_[e];throw Error("Unknown language mode: "+e)},goog.requiresTranspilation_=null,goog.lastNonModuleScriptIndex_=0,goog.onScriptLoad_=function(e,o){return"complete"==e.readyState&&goog.lastNonModuleScriptIndex_==o&&goog.loadQueuedModules_(),!0},goog.writeScripts_=function(e){function o(e){if(!(e in r.written||e in r.visited)){if(r.visited[e]=!0,e in r.requires)for(var i in r.requires[e])if(!goog.isProvided_(i)){if(!(i in r.nameToPath))throw Error("Undefined nameToPath for "+i);o(r.nameToPath[i])}e in n||(n[e]=!0,t.push(e))}}var t=[],n={},r=goog.dependencies_;for(o(e),e=0;e<t.length;e++){var i=t[e];goog.dependencies_.written[i]=!0}var s=goog.moduleLoaderState_;for(goog.moduleLoaderState_=null,e=0;e<t.length;e++){if(!(i=t[e]))throw goog.moduleLoaderState_=s,Error("Undefined script input");var l=r.loadFlags[i]||{},g=goog.needsTranspile_(l.lang||"es3");"goog"==l.module||g?goog.importProcessedScript_(goog.basePath+i,"goog"==l.module,g):goog.importScript_(goog.basePath+i)}goog.moduleLoaderState_=s},goog.getPathFromDeps_=function(e){return e in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[e]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js")),goog.loadModule=function(e){var o=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:void 0,declareLegacyNamespace:!1};var t;if(goog.isFunction(e))t=e.call(void 0,{});else{if(!goog.isString(e))throw Error("Invalid module definition");t=goog.loadModuleFromSource_.call(void 0,e)}var n=goog.moduleLoaderState_.moduleName;if(!goog.isString(n)||!n)throw Error('Invalid module name "'+n+'"');goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(n,t):goog.SEAL_MODULE_EXPORTS&&Object.seal&&goog.isObject(t)&&Object.seal(t),goog.loadedModules_[n]=t}finally{goog.moduleLoaderState_=o}},goog.loadModuleFromSource_=function(a){return eval(a),{}},goog.normalizePath_=function(e){e=e.split("/");for(var o=0;o<e.length;)"."==e[o]?e.splice(o,1):o&&".."==e[o]&&e[o-1]&&".."!=e[o-1]?e.splice(--o,2):o++;return e.join("/")},goog.loadFileSync_=function(e){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(e);try{var o=new goog.global.XMLHttpRequest;return o.open("get",e,!1),o.send(),0==o.status||200==o.status?o.responseText:null}catch(t){return null}},goog.retrieveAndExec_=function(e,o,t){if(!COMPILED){var n=e;e=goog.normalizePath_(e);var r=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_,i=goog.loadFileSync_(e);if(null==i)throw Error('Load of "'+e+'" failed');t&&(i=goog.transpile_.call(goog.global,i,e)),i=o?goog.wrapModule_(e,i):i+("\n//# sourceURL="+e),goog.IS_OLD_IE_?(goog.dependencies_.deferred[n]=i,goog.queuedModules_.push(n)):r(e,i)}},goog.transpile_=function(a,b){var c=goog.global.$jscomp;c||(goog.global.$jscomp=c={});var d=c.transpile;if(!d){var e=goog.basePath+goog.TRANSPILER,f=goog.loadFileSync_(e);if(f){if(eval(f+"\n//# sourceURL="+e),goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile,c=goog.global.$jscomp,d=c.transpile}}return d||(d=c.transpile=function(e,o){return goog.logToConsole_(o+" requires transpilation but no transpiler was found."),e}),d(a,b)},goog.typeOf=function(e){var o=typeof e;if("object"==o){if(!e)return"null";if(e instanceof Array)return"array";if(e instanceof Object)return o;var t=Object.prototype.toString.call(e);if("[object Window]"==t)return"object";if("[object Array]"==t||"number"==typeof e.length&&"undefined"!=typeof e.splice&&"undefined"!=typeof e.propertyIsEnumerable&&!e.propertyIsEnumerable("splice"))return"array";if("[object Function]"==t||"undefined"!=typeof e.call&&"undefined"!=typeof e.propertyIsEnumerable&&!e.propertyIsEnumerable("call"))return"function"}else if("function"==o&&"undefined"==typeof e.call)return"object";return o},goog.isNull=function(e){return null===e},goog.isDefAndNotNull=function(e){return null!=e},goog.isArray=function(e){return"array"==goog.typeOf(e)},goog.isArrayLike=function(e){var o=goog.typeOf(e);return"array"==o||"object"==o&&"number"==typeof e.length},goog.isDateLike=function(e){return goog.isObject(e)&&"function"==typeof e.getFullYear},goog.isString=function(e){return"string"==typeof e},goog.isBoolean=function(e){return"boolean"==typeof e},goog.isNumber=function(e){return"number"==typeof e},goog.isFunction=function(e){return"function"==goog.typeOf(e)},goog.isObject=function(e){var o=typeof e;return"object"==o&&null!=e||"function"==o},goog.getUid=function(e){return e[goog.UID_PROPERTY_]||(e[goog.UID_PROPERTY_]=++goog.uidCounter_)},goog.hasUid=function(e){return!!e[goog.UID_PROPERTY_]},goog.removeUid=function(e){null!==e&&"removeAttribute"in e&&e.removeAttribute(goog.UID_PROPERTY_);try{delete e[goog.UID_PROPERTY_]}catch(o){}},goog.UID_PROPERTY_="closure_uid_"+(1e9*Math.random()>>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){var o=goog.typeOf(e);if("object"==o||"array"==o){if(e.clone)return e.clone();var t,o="array"==o?[]:{};for(t in e)o[t]=goog.cloneObject(e[t]);return o}return e},goog.bindNative_=function(e,o,t){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,o,t){if(!e)throw Error();if(2<arguments.length){var n=Array.prototype.slice.call(arguments,2);return function(){var t=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(t,n),e.apply(o,t)}}return function(){return e.apply(o,arguments)}},goog.bind=function(e,o,t){return Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_,goog.bind.apply(null,arguments)},goog.partial=function(e,o){var t=Array.prototype.slice.call(arguments,1);return function(){var o=t.slice();return o.push.apply(o,arguments),e.apply(this,o)}},goog.mixin=function(e,o){for(var t in o)e[t]=o[t]},goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date},goog.globalEval=function(e){if(goog.global.execScript)goog.global.execScript(e,"JavaScript");else{if(!goog.global.eval)throw Error("goog.globalEval not available");if(null==goog.evalWorksForGlobals_)if(goog.global.eval("var _evalTest_ = 1;"),"undefined"!=typeof goog.global._evalTest_){try{delete goog.global._evalTest_}catch(o){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1;if(goog.evalWorksForGlobals_)goog.global.eval(e);else{var t=goog.global.document,n=t.createElement("SCRIPT");n.type="text/javascript",n.defer=!1,n.appendChild(t.createTextNode(e)),t.body.appendChild(n),t.body.removeChild(n)}}},goog.evalWorksForGlobals_=null,goog.getCssName=function(e,o){if("."==String(e).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+e);var t=function(e){return goog.cssNameMapping_[e]||e},n=function(e){e=e.split("-");for(var o=[],n=0;n<e.length;n++)o.push(t(e[n]));return o.join("-")},n=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?t:n:function(e){return e},n=o?e+"-"+n(o):n(e);return goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(n):n},goog.setCssNameMapping=function(e,o){goog.cssNameMapping_=e,goog.cssNameMappingStyle_=o},!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING),goog.getMsg=function(e,o){return o&&(e=e.replace(/\{\$([^}]+)}/g,function(e,t){return null!=o&&t in o?o[t]:e})),e},goog.getMsgWithFallback=function(e,o){return e},goog.exportSymbol=function(e,o,t){goog.exportPath_(e,o,t)},goog.exportProperty=function(e,o,t){e[o]=t},goog.inherits=function(e,o){function t(){}t.prototype=o.prototype,e.superClass_=o.prototype,e.prototype=new t,e.prototype.constructor=e,e.base=function(e,t,n){for(var r=Array(arguments.length-2),i=2;i<arguments.length;i++)r[i-2]=arguments[i];return o.prototype[t].apply(e,r)}},goog.base=function(e,o,t){var n=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!n)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(n.superClass_){for(var r=Array(arguments.length-1),i=1;i<arguments.length;i++)r[i-1]=arguments[i];return n.superClass_.constructor.apply(e,r)}for(r=Array(arguments.length-2),i=2;i<arguments.length;i++)r[i-2]=arguments[i];for(var i=!1,s=e.constructor;s;s=s.superClass_&&s.superClass_.constructor)if(s.prototype[o]===n)i=!0;else if(i)return s.prototype[o].apply(e,r);if(e[o]===n)return e.constructor.prototype[o].apply(e,r);throw Error("goog.base called from a method of one name to a method of a different name")},goog.scope=function(e){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");e.call(goog.global)},COMPILED||(goog.global.COMPILED=COMPILED),goog.defineClass=function(e,o){var t=o.constructor,n=o.statics;return t&&t!=Object.prototype.constructor||(t=function(){throw Error("cannot instantiate an interface (no constructor defined).")}),t=goog.defineClass.createSealingConstructor_(t,e),e&&goog.inherits(t,e),delete o.constructor,delete o.statics,goog.defineClass.applyProperties_(t.prototype,o),null!=n&&(n instanceof Function?n(t):goog.defineClass.applyProperties_(t,n)),t},goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG,goog.defineClass.createSealingConstructor_=function(e,o){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return e;var t=!goog.defineClass.isUnsealable_(o),n=function(){var o=e.apply(this,arguments)||this;return o[goog.UID_PROPERTY_]=o[goog.UID_PROPERTY_],this.constructor===n&&t&&Object.seal instanceof Function&&Object.seal(o),o};return n},goog.defineClass.isUnsealable_=function(e){return e&&e.prototype&&e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]},goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.defineClass.applyProperties_=function(e,o){for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t]);for(var n=0;n<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;n++)t=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[n],Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])},goog.tagUnsealableClass=function(e){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)},goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable",goog.createRequiresTranspilation_=function(){function a(e,o){d?c[e]=!0:o()?c[e]=!1:d=c[e]=!0}function b(a){try{return!!eval(a)}catch(f){return!1}}var c={es3:!1},d=!1;return a("es5",function(){return b("[1,].length==1")}),a("es6",function(){return b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')}),a("es6-impl",function(){return!0}),a("es7",function(){return b("2 ** 2 == 4")}),a("es8",function(){return b("async () => 1, true")}),c},goog.debug={},goog.debug.Error=function(e){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var o=Error().stack;o&&(this.stack=o)}e&&(this.message=String(e)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.string={},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:"Â "},goog.string.startsWith=function(e,o){return 0==e.lastIndexOf(o,0)},goog.string.endsWith=function(e,o){var t=e.length-o.length;return t>=0&&e.indexOf(o,t)==t},goog.string.caseInsensitiveStartsWith=function(e,o){return 0==goog.string.caseInsensitiveCompare(o,e.substr(0,o.length))},goog.string.caseInsensitiveEndsWith=function(e,o){return 0==goog.string.caseInsensitiveCompare(o,e.substr(e.length-o.length,o.length))},goog.string.caseInsensitiveEquals=function(e,o){return e.toLowerCase()==o.toLowerCase()},goog.string.subs=function(e,o){for(var t=e.split("%s"),n="",r=Array.prototype.slice.call(arguments,1);r.length&&1<t.length;)n+=t.shift()+r.shift();return n+t.join("%s")},goog.string.collapseWhitespace=function(e){return e.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},goog.string.isEmptyOrWhitespace=function(e){return/^[\s\xa0]*$/.test(e)},goog.string.isEmptyString=function(e){return 0==e.length},goog.string.isEmpty=goog.string.isEmptyOrWhitespace,goog.string.isEmptyOrWhitespaceSafe=function(e){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(e))},goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe,goog.string.isBreakingWhitespace=function(e){return!/[^\t\n\r ]/.test(e)},goog.string.isAlpha=function(e){return!/[^a-zA-Z]/.test(e)},goog.string.isNumeric=function(e){return!/[^0-9]/.test(e)},goog.string.isAlphaNumeric=function(e){return!/[^a-zA-Z0-9]/.test(e)},goog.string.isSpace=function(e){return" "==e},goog.string.isUnicodeChar=function(e){return 1==e.length&&e>=" "&&"~">=e||e>="Â"&&"ï¿½">=e},goog.string.stripNewlines=function(e){return e.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(e){return e.replace(/(\r\n|\r|\n)/g,"\n")},goog.string.normalizeWhitespace=function(e){return e.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(e){return e.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(e){return e.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(e){return e.trim()}:function(e){return e.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},goog.string.trimLeft=function(e){return e.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(e){return e.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=function(e,o){var t=String(e).toLowerCase(),n=String(o).toLowerCase();return n>t?-1:t==n?0:1},goog.string.numberAwareCompare_=function(e,o,t){if(e==o)return 0;if(!e)return-1;if(!o)return 1;for(var n=e.toLowerCase().match(t),r=o.toLowerCase().match(t),i=Math.min(n.length,r.length),s=0;i>s;s++){t=n[s];var l=r[s];if(t!=l)return e=parseInt(t,10),!isNaN(e)&&(o=parseInt(l,10),!isNaN(o)&&e-o)?e-o:l>t?-1:1}return n.length!=r.length?n.length-r.length:o>e?-1:1},goog.string.intAwareCompare=function(e,o){return goog.string.numberAwareCompare_(e,o,/\d+|\D+/g)},goog.string.floatAwareCompare=function(e,o){return goog.string.numberAwareCompare_(e,o,/\d+|\.\d+|\D+/g)},goog.string.numerateCompare=goog.string.floatAwareCompare,goog.string.urlEncode=function(e){return encodeURIComponent(String(e))},goog.string.urlDecode=function(e){return decodeURIComponent(e.replace(/\+/g," "))},goog.string.newLineToBr=function(e,o){return e.replace(/(\r\n|\r|\n)/g,o?"<br />":"<br>")},goog.string.htmlEscape=function(e,o){if(o)e=e.replace(goog.string.AMP_RE_,"&amp;").replace(goog.string.LT_RE_,"&lt;").replace(goog.string.GT_RE_,"&gt;").replace(goog.string.QUOT_RE_,"&quot;").replace(goog.string.SINGLE_QUOTE_RE_,"&#39;").replace(goog.string.NULL_RE_,"&#0;"),goog.string.DETECT_DOUBLE_ESCAPING&&(e=e.replace(goog.string.E_RE_,"&#101;"));else{if(!goog.string.ALL_RE_.test(e))return e;-1!=e.indexOf("&")&&(e=e.replace(goog.string.AMP_RE_,"&amp;")),-1!=e.indexOf("<")&&(e=e.replace(goog.string.LT_RE_,"&lt;")),-1!=e.indexOf(">")&&(e=e.replace(goog.string.GT_RE_,"&gt;")),-1!=e.indexOf('"')&&(e=e.replace(goog.string.QUOT_RE_,"&quot;")),-1!=e.indexOf("'")&&(e=e.replace(goog.string.SINGLE_QUOTE_RE_,"&#39;")),-1!=e.indexOf("\x00")&&(e=e.replace(goog.string.NULL_RE_,"&#0;")),goog.string.DETECT_DOUBLE_ESCAPING&&-1!=e.indexOf("e")&&(e=e.replace(goog.string.E_RE_,"&#101;"))}return e},goog.string.AMP_RE_=/&/g,goog.string.LT_RE_=/</g,goog.string.GT_RE_=/>/g,goog.string.QUOT_RE_=/"/g,goog.string.SINGLE_QUOTE_RE_=/'/g,goog.string.NULL_RE_=/\x00/g,goog.string.E_RE_=/e/g,goog.string.ALL_RE_=goog.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/,goog.string.unescapeEntities=function(e){return goog.string.contains(e,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(e):goog.string.unescapePureXmlEntities_(e):e},goog.string.unescapeEntitiesWithDocument=function(e,o){return goog.string.contains(e,"&")?goog.string.unescapeEntitiesUsingDom_(e,o):e},goog.string.unescapeEntitiesUsingDom_=function(e,o){var t,n={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};return t=o?o.createElement("div"):goog.global.document.createElement("div"),e.replace(goog.string.HTML_ENTITY_PATTERN_,function(e,o){var r=n[e];if(r)return r;if("#"==o.charAt(0)){var i=Number("0"+o.substr(1));isNaN(i)||(r=String.fromCharCode(i))}return r||(t.innerHTML=e+" ",r=t.firstChild.nodeValue.slice(0,-1)),n[e]=r})},goog.string.unescapePureXmlEntities_=function(e){return e.replace(/&([^;]+);/g,function(e,o){switch(o){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:if("#"==o.charAt(0)){var t=Number("0"+o.substr(1));if(!isNaN(t))return String.fromCharCode(t)}return e}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(e,o){return goog.string.newLineToBr(e.replace(/  /g," &#160;"),o)},goog.string.preserveSpaces=function(e){return e.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(e,o){for(var t=o.length,n=0;t>n;n++){var r=1==t?o:o.charAt(n);if(e.charAt(0)==r&&e.charAt(e.length-1)==r)return e.substring(1,e.length-1)}return e},goog.string.truncate=function(e,o,t){return t&&(e=goog.string.unescapeEntities(e)),e.length>o&&(e=e.substring(0,o-3)+"..."),t&&(e=goog.string.htmlEscape(e)),e},goog.string.truncateMiddle=function(e,o,t,n){if(t&&(e=goog.string.unescapeEntities(e)),n&&e.length>o){n>o&&(n=o);var r=e.length-n;e=e.substring(0,o-n)+"..."+e.substring(r)}else e.length>o&&(n=Math.floor(o/2),r=e.length-n,e=e.substring(0,n+o%2)+"..."+e.substring(r));return t&&(e=goog.string.htmlEscape(e)),e},goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","	":"\\t","
+"use strict";var COMPILED=!0,goog=goog||{};goog.global=this,goog.isDef=function(e){return void 0!==e},goog.exportPath_=function(e,o,t){e=e.split("."),t=t||goog.global,e[0]in t||!t.execScript||t.execScript("var "+e[0]);for(var n;e.length&&(n=e.shift());)!e.length&&goog.isDef(o)?t[n]=o:t=t[n]?t[n]:t[n]={}},goog.define=function(e,o){var t=o;COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,e)?t=goog.global.CLOSURE_UNCOMPILED_DEFINES[e]:goog.global.CLOSURE_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,e)&&(t=goog.global.CLOSURE_DEFINES[e])),goog.exportPath_(e,t)},goog.DEBUG=!1,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(e){if(goog.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");if(!COMPILED&&goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');goog.constructNamespace_(e)},goog.constructNamespace_=function(e,o){if(!COMPILED){delete goog.implicitNamespaces_[e];for(var t=e;(t=t.substring(0,t.lastIndexOf(".")))&&!goog.getObjectByName(t);)goog.implicitNamespaces_[t]=!0}goog.exportPath_(e,o)},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(e){if(!goog.isString(e)||!e||-1==e.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+e+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");if(goog.moduleLoaderState_.moduleName=e,!COMPILED){if(goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');delete goog.implicitNamespaces_[e]}},goog.module.get=function(e){return goog.module.getInternal_(e)},goog.module.getInternal_=function(e){return COMPILED?void 0:goog.isProvided_(e)?e in goog.loadedModules_?goog.loadedModules_[e]:goog.getObjectByName(e):null},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_},goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.setTestOnly=function(e){if(goog.DISALLOW_TEST_ONLY_CODE)throw e=e||"",Error("Importing test-only code into non-debug environment"+(e?": "+e:"."))},goog.forwardDeclare=function(e){},COMPILED||(goog.isProvided_=function(e){return e in goog.loadedModules_||!goog.implicitNamespaces_[e]&&goog.isDefAndNotNull(goog.getObjectByName(e))},goog.implicitNamespaces_={"goog.module":!0}),goog.getObjectByName=function(e,o){for(var t,n=e.split("."),r=o||goog.global;t=n.shift();){if(!goog.isDefAndNotNull(r[t]))return null;r=r[t]}return r},goog.globalize=function(e,o){var t,n=o||goog.global;for(t in e)n[t]=e[t]},goog.addDependency=function(e,o,t,n){if(goog.DEPENDENCIES_ENABLED){var r;e=e.replace(/\\/g,"/");var i=goog.dependencies_;n&&"boolean"!=typeof n||(n=n?{module:"goog"}:{});for(var s=0;r=o[s];s++)i.nameToPath[r]=e,i.loadFlags[e]=n;for(n=0;o=t[n];n++)e in i.requires||(i.requires[e]={}),i.requires[e][o]=!0}},goog.ENABLE_DEBUG_LOADER=!0,goog.logToConsole_=function(e){goog.global.console&&goog.global.console.error(e)},goog.require=function(e){if(!COMPILED){if(goog.ENABLE_DEBUG_LOADER&&goog.IS_OLD_IE_&&goog.maybeProcessDeferredDep_(e),goog.isProvided_(e)){if(goog.isInModuleLoader_())return goog.module.getInternal_(e)}else if(goog.ENABLE_DEBUG_LOADER){var o=goog.getPathFromDeps_(e);if(!o)throw e="goog.require could not find: "+e,goog.logToConsole_(e),Error(e);goog.writeScripts_(o)}return null}},goog.basePath="",goog.nullFunction=function(){},goog.abstractMethod=function(){throw Error("unimplemented abstract method")},goog.addSingletonGetter=function(e){e.getInstance=function(){return e.instance_?e.instance_:(goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=e),e.instance_=new e)}},goog.instantiatedSingletons_=[],goog.LOAD_MODULE_USING_EVAL=!0,goog.SEAL_MODULE_EXPORTS=goog.DEBUG,goog.loadedModules_={},goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER,goog.TRANSPILE="detect",goog.TRANSPILER="transpile.js",goog.DEPENDENCIES_ENABLED&&(goog.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}},goog.inHtmlDocument_=function(){var e=goog.global.document;return null!=e&&"write"in e},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var e=goog.global.document.getElementsByTagName("SCRIPT"),o=e.length-1;o>=0;--o){var t=e[o].src,n=t.lastIndexOf("?"),n=-1==n?t.length:n;if("base.js"==t.substr(n-7,7)){goog.basePath=t.substr(0,n-7);break}}},goog.importScript_=function(e,o){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_)(e,o)&&(goog.dependencies_.written[e]=!0)},goog.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.importProcessedScript_=function(e,o,t){goog.importScript_("",'goog.retrieveAndExec_("'+e+'", '+o+", "+t+");")},goog.queuedModules_=[],goog.wrapModule_=function(e,o){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(o+"\n//# sourceURL="+e+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+o+"\n;return exports});\n//# sourceURL="+e+"\n"},goog.loadQueuedModules_=function(){var e=goog.queuedModules_.length;if(e>0){var o=goog.queuedModules_;goog.queuedModules_=[];for(var t=0;e>t;t++)goog.maybeProcessDeferredPath_(o[t])}},goog.maybeProcessDeferredDep_=function(e){goog.isDeferredModule_(e)&&goog.allDepsAreAvailable_(e)&&(e=goog.getPathFromDeps_(e),goog.maybeProcessDeferredPath_(goog.basePath+e))},goog.isDeferredModule_=function(e){var o=(e=goog.getPathFromDeps_(e))&&goog.dependencies_.loadFlags[e]||{},t=o.lang||"es3";return e&&("goog"==o.module||goog.needsTranspile_(t))?goog.basePath+e in goog.dependencies_.deferred:!1},goog.allDepsAreAvailable_=function(e){if((e=goog.getPathFromDeps_(e))&&e in goog.dependencies_.requires)for(var o in goog.dependencies_.requires[e])if(!goog.isProvided_(o)&&!goog.isDeferredModule_(o))return!1;return!0},goog.maybeProcessDeferredPath_=function(e){if(e in goog.dependencies_.deferred){var o=goog.dependencies_.deferred[e];delete goog.dependencies_.deferred[e],goog.globalEval(o)}},goog.loadModuleFromUrl=function(e){goog.retrieveAndExec_(e,!0,!1)},goog.writeScriptSrcNode_=function(e){goog.global.document.write('<script type="text/javascript" src="'+e+'"></script>')},goog.appendScriptSrcNode_=function(e){var o=goog.global.document,t=o.createElement("script");t.type="text/javascript",t.src=e,t.defer=!1,t.async=!1,o.head.appendChild(t)},goog.writeScriptTag_=function(e,o){if(goog.inHtmlDocument_()){var t=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==t.readyState){if(/\bdeps.js$/.test(e))return!1;throw Error('Cannot write "'+e+'" after document load')}if(void 0===o)if(goog.IS_OLD_IE_){var n=" onreadystatechange='goog.onScriptLoad_(this, "+ ++goog.lastNonModuleScriptIndex_+")' ";t.write('<script type="text/javascript" src="'+e+'"'+n+"></script>")}else goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?goog.appendScriptSrcNode_(e):goog.writeScriptSrcNode_(e);else t.write('<script type="text/javascript">'+o+"</script>");return!0}return!1},goog.needsTranspile_=function(e){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(goog.requiresTranspilation_||(goog.requiresTranspilation_=goog.createRequiresTranspilation_()),e in goog.requiresTranspilation_)return goog.requiresTranspilation_[e];throw Error("Unknown language mode: "+e)},goog.requiresTranspilation_=null,goog.lastNonModuleScriptIndex_=0,goog.onScriptLoad_=function(e,o){return"complete"==e.readyState&&goog.lastNonModuleScriptIndex_==o&&goog.loadQueuedModules_(),!0},goog.writeScripts_=function(e){function o(e){if(!(e in r.written||e in r.visited)){if(r.visited[e]=!0,e in r.requires)for(var i in r.requires[e])if(!goog.isProvided_(i)){if(!(i in r.nameToPath))throw Error("Undefined nameToPath for "+i);o(r.nameToPath[i])}e in n||(n[e]=!0,t.push(e))}}var t=[],n={},r=goog.dependencies_;for(o(e),e=0;e<t.length;e++){var i=t[e];goog.dependencies_.written[i]=!0}var s=goog.moduleLoaderState_;for(goog.moduleLoaderState_=null,e=0;e<t.length;e++){if(!(i=t[e]))throw goog.moduleLoaderState_=s,Error("Undefined script input");var l=r.loadFlags[i]||{},g=goog.needsTranspile_(l.lang||"es3");"goog"==l.module||g?goog.importProcessedScript_(goog.basePath+i,"goog"==l.module,g):goog.importScript_(goog.basePath+i)}goog.moduleLoaderState_=s},goog.getPathFromDeps_=function(e){return e in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[e]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js")),goog.loadModule=function(e){var o=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:void 0,declareLegacyNamespace:!1};var t;if(goog.isFunction(e))t=e.call(void 0,{});else{if(!goog.isString(e))throw Error("Invalid module definition");t=goog.loadModuleFromSource_.call(void 0,e)}var n=goog.moduleLoaderState_.moduleName;if(!goog.isString(n)||!n)throw Error('Invalid module name "'+n+'"');goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(n,t):goog.SEAL_MODULE_EXPORTS&&Object.seal&&goog.isObject(t)&&Object.seal(t),goog.loadedModules_[n]=t}finally{goog.moduleLoaderState_=o}},goog.loadModuleFromSource_=function(a){return eval(a),{}},goog.normalizePath_=function(e){e=e.split("/");for(var o=0;o<e.length;)"."==e[o]?e.splice(o,1):o&&".."==e[o]&&e[o-1]&&".."!=e[o-1]?e.splice(--o,2):o++;return e.join("/")},goog.loadFileSync_=function(e){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(e);try{var o=new goog.global.XMLHttpRequest;return o.open("get",e,!1),o.send(),0==o.status||200==o.status?o.responseText:null}catch(t){return null}},goog.retrieveAndExec_=function(e,o,t){if(!COMPILED){var n=e;e=goog.normalizePath_(e);var r=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_,i=goog.loadFileSync_(e);if(null==i)throw Error('Load of "'+e+'" failed');t&&(i=goog.transpile_.call(goog.global,i,e)),i=o?goog.wrapModule_(e,i):i+("\n//# sourceURL="+e),goog.IS_OLD_IE_?(goog.dependencies_.deferred[n]=i,goog.queuedModules_.push(n)):r(e,i)}},goog.transpile_=function(a,b){var c=goog.global.$jscomp;c||(goog.global.$jscomp=c={});var d=c.transpile;if(!d){var e=goog.basePath+goog.TRANSPILER,f=goog.loadFileSync_(e);if(f){if(eval(f+"\n//# sourceURL="+e),goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile,c=goog.global.$jscomp,d=c.transpile}}return d||(d=c.transpile=function(e,o){return goog.logToConsole_(o+" requires transpilation but no transpiler was found."),e}),d(a,b)},goog.typeOf=function(e){var o=typeof e;if("object"==o){if(!e)return"null";if(e instanceof Array)return"array";if(e instanceof Object)return o;var t=Object.prototype.toString.call(e);if("[object Window]"==t)return"object";if("[object Array]"==t||"number"==typeof e.length&&"undefined"!=typeof e.splice&&"undefined"!=typeof e.propertyIsEnumerable&&!e.propertyIsEnumerable("splice"))return"array";if("[object Function]"==t||"undefined"!=typeof e.call&&"undefined"!=typeof e.propertyIsEnumerable&&!e.propertyIsEnumerable("call"))return"function"}else if("function"==o&&"undefined"==typeof e.call)return"object";return o},goog.isNull=function(e){return null===e},goog.isDefAndNotNull=function(e){return null!=e},goog.isArray=function(e){return"array"==goog.typeOf(e)},goog.isArrayLike=function(e){var o=goog.typeOf(e);return"array"==o||"object"==o&&"number"==typeof e.length},goog.isDateLike=function(e){return goog.isObject(e)&&"function"==typeof e.getFullYear},goog.isString=function(e){return"string"==typeof e},goog.isBoolean=function(e){return"boolean"==typeof e},goog.isNumber=function(e){return"number"==typeof e},goog.isFunction=function(e){return"function"==goog.typeOf(e)},goog.isObject=function(e){var o=typeof e;return"object"==o&&null!=e||"function"==o},goog.getUid=function(e){return e[goog.UID_PROPERTY_]||(e[goog.UID_PROPERTY_]=++goog.uidCounter_)},goog.hasUid=function(e){return!!e[goog.UID_PROPERTY_]},goog.removeUid=function(e){null!==e&&"removeAttribute"in e&&e.removeAttribute(goog.UID_PROPERTY_);try{delete e[goog.UID_PROPERTY_]}catch(o){}},goog.UID_PROPERTY_="closure_uid_"+(1e9*Math.random()>>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){var o=goog.typeOf(e);if("object"==o||"array"==o){if(e.clone)return e.clone();var t,o="array"==o?[]:{};for(t in e)o[t]=goog.cloneObject(e[t]);return o}return e},goog.bindNative_=function(e,o,t){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,o,t){if(!e)throw Error();if(2<arguments.length){var n=Array.prototype.slice.call(arguments,2);return function(){var t=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(t,n),e.apply(o,t)}}return function(){return e.apply(o,arguments)}},goog.bind=function(e,o,t){return Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_,goog.bind.apply(null,arguments)},goog.partial=function(e,o){var t=Array.prototype.slice.call(arguments,1);return function(){var o=t.slice();return o.push.apply(o,arguments),e.apply(this,o)}},goog.mixin=function(e,o){for(var t in o)e[t]=o[t]},goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date},goog.globalEval=function(e){if(goog.global.execScript)goog.global.execScript(e,"JavaScript");else{if(!goog.global.eval)throw Error("goog.globalEval not available");if(null==goog.evalWorksForGlobals_)if(goog.global.eval("var _evalTest_ = 1;"),"undefined"!=typeof goog.global._evalTest_){try{delete goog.global._evalTest_}catch(o){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1;if(goog.evalWorksForGlobals_)goog.global.eval(e);else{var t=goog.global.document,n=t.createElement("SCRIPT");n.type="text/javascript",n.defer=!1,n.appendChild(t.createTextNode(e)),t.body.appendChild(n),t.body.removeChild(n)}}},goog.evalWorksForGlobals_=null,goog.getCssName=function(e,o){if("."==String(e).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+e);var t=function(e){return goog.cssNameMapping_[e]||e},n=function(e){e=e.split("-");for(var o=[],n=0;n<e.length;n++)o.push(t(e[n]));return o.join("-")},n=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?t:n:function(e){return e},n=o?e+"-"+n(o):n(e);return goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(n):n},goog.setCssNameMapping=function(e,o){goog.cssNameMapping_=e,goog.cssNameMappingStyle_=o},!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING),goog.getMsg=function(e,o){return o&&(e=e.replace(/\{\$([^}]+)}/g,function(e,t){return null!=o&&t in o?o[t]:e})),e},goog.getMsgWithFallback=function(e,o){return e},goog.exportSymbol=function(e,o,t){goog.exportPath_(e,o,t)},goog.exportProperty=function(e,o,t){e[o]=t},goog.inherits=function(e,o){function t(){}t.prototype=o.prototype,e.superClass_=o.prototype,e.prototype=new t,e.prototype.constructor=e,e.base=function(e,t,n){for(var r=Array(arguments.length-2),i=2;i<arguments.length;i++)r[i-2]=arguments[i];return o.prototype[t].apply(e,r)}},goog.base=function(e,o,t){var n=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!n)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(n.superClass_){for(var r=Array(arguments.length-1),i=1;i<arguments.length;i++)r[i-1]=arguments[i];return n.superClass_.constructor.apply(e,r)}for(r=Array(arguments.length-2),i=2;i<arguments.length;i++)r[i-2]=arguments[i];for(var i=!1,s=e.constructor;s;s=s.superClass_&&s.superClass_.constructor)if(s.prototype[o]===n)i=!0;else if(i)return s.prototype[o].apply(e,r);if(e[o]===n)return e.constructor.prototype[o].apply(e,r);throw Error("goog.base called from a method of one name to a method of a different name")},goog.scope=function(e){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");e.call(goog.global)},COMPILED||(goog.global.COMPILED=COMPILED),goog.defineClass=function(e,o){var t=o.constructor,n=o.statics;return t&&t!=Object.prototype.constructor||(t=function(){throw Error("cannot instantiate an interface (no constructor defined).")}),t=goog.defineClass.createSealingConstructor_(t,e),e&&goog.inherits(t,e),delete o.constructor,delete o.statics,goog.defineClass.applyProperties_(t.prototype,o),null!=n&&(n instanceof Function?n(t):goog.defineClass.applyProperties_(t,n)),t},goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG,goog.defineClass.createSealingConstructor_=function(e,o){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return e;var t=!goog.defineClass.isUnsealable_(o),n=function(){var o=e.apply(this,arguments)||this;return o[goog.UID_PROPERTY_]=o[goog.UID_PROPERTY_],this.constructor===n&&t&&Object.seal instanceof Function&&Object.seal(o),o};return n},goog.defineClass.isUnsealable_=function(e){return e&&e.prototype&&e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]},goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.defineClass.applyProperties_=function(e,o){for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t]);for(var n=0;n<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;n++)t=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[n],Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])},goog.tagUnsealableClass=function(e){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)},goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable",goog.createRequiresTranspilation_=function(){function a(e,o){d?c[e]=!0:o()?c[e]=!1:d=c[e]=!0}function b(a){try{return!!eval(a)}catch(f){return!1}}var c={es3:!1},d=!1;return a("es5",function(){return b("[1,].length==1")}),a("es6",function(){return b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')}),a("es6-impl",function(){return!0}),a("es7",function(){return b("2 ** 2 == 4")}),a("es8",function(){return b("async () => 1, true")}),c},goog.debug={},goog.debug.Error=function(e){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var o=Error().stack;o&&(this.stack=o)}e&&(this.message=String(e)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.string={},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=function(e,o){return 0==e.lastIndexOf(o,0)},goog.string.endsWith=function(e,o){var t=e.length-o.length;return t>=0&&e.indexOf(o,t)==t},goog.string.caseInsensitiveStartsWith=function(e,o){return 0==goog.string.caseInsensitiveCompare(o,e.substr(0,o.length))},goog.string.caseInsensitiveEndsWith=function(e,o){return 0==goog.string.caseInsensitiveCompare(o,e.substr(e.length-o.length,o.length))},goog.string.caseInsensitiveEquals=function(e,o){return e.toLowerCase()==o.toLowerCase()},goog.string.subs=function(e,o){for(var t=e.split("%s"),n="",r=Array.prototype.slice.call(arguments,1);r.length&&1<t.length;)n+=t.shift()+r.shift();return n+t.join("%s")},goog.string.collapseWhitespace=function(e){return e.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},goog.string.isEmptyOrWhitespace=function(e){return/^[\s\xa0]*$/.test(e)},goog.string.isEmptyString=function(e){return 0==e.length},goog.string.isEmpty=goog.string.isEmptyOrWhitespace,goog.string.isEmptyOrWhitespaceSafe=function(e){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(e))},goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe,goog.string.isBreakingWhitespace=function(e){return!/[^\t\n\r ]/.test(e)},goog.string.isAlpha=function(e){return!/[^a-zA-Z]/.test(e)},goog.string.isNumeric=function(e){return!/[^0-9]/.test(e)},goog.string.isAlphaNumeric=function(e){return!/[^a-zA-Z0-9]/.test(e)},goog.string.isSpace=function(e){return" "==e},goog.string.isUnicodeChar=function(e){return 1==e.length&&e>=" "&&"~">=e||e>=""&&"�">=e},goog.string.stripNewlines=function(e){return e.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(e){return e.replace(/(\r\n|\r|\n)/g,"\n")},goog.string.normalizeWhitespace=function(e){return e.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(e){return e.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(e){return e.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(e){return e.trim()}:function(e){return e.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},goog.string.trimLeft=function(e){return e.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(e){return e.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=function(e,o){var t=String(e).toLowerCase(),n=String(o).toLowerCase();return n>t?-1:t==n?0:1},goog.string.numberAwareCompare_=function(e,o,t){if(e==o)return 0;if(!e)return-1;if(!o)return 1;for(var n=e.toLowerCase().match(t),r=o.toLowerCase().match(t),i=Math.min(n.length,r.length),s=0;i>s;s++){t=n[s];var l=r[s];if(t!=l)return e=parseInt(t,10),!isNaN(e)&&(o=parseInt(l,10),!isNaN(o)&&e-o)?e-o:l>t?-1:1}return n.length!=r.length?n.length-r.length:o>e?-1:1},goog.string.intAwareCompare=function(e,o){return goog.string.numberAwareCompare_(e,o,/\d+|\D+/g)},goog.string.floatAwareCompare=function(e,o){return goog.string.numberAwareCompare_(e,o,/\d+|\.\d+|\D+/g)},goog.string.numerateCompare=goog.string.floatAwareCompare,goog.string.urlEncode=function(e){return encodeURIComponent(String(e))},goog.string.urlDecode=function(e){return decodeURIComponent(e.replace(/\+/g," "))},goog.string.newLineToBr=function(e,o){return e.replace(/(\r\n|\r|\n)/g,o?"<br />":"<br>")},goog.string.htmlEscape=function(e,o){if(o)e=e.replace(goog.string.AMP_RE_,"&amp;").replace(goog.string.LT_RE_,"&lt;").replace(goog.string.GT_RE_,"&gt;").replace(goog.string.QUOT_RE_,"&quot;").replace(goog.string.SINGLE_QUOTE_RE_,"&#39;").replace(goog.string.NULL_RE_,"&#0;"),goog.string.DETECT_DOUBLE_ESCAPING&&(e=e.replace(goog.string.E_RE_,"&#101;"));else{if(!goog.string.ALL_RE_.test(e))return e;-1!=e.indexOf("&")&&(e=e.replace(goog.string.AMP_RE_,"&amp;")),-1!=e.indexOf("<")&&(e=e.replace(goog.string.LT_RE_,"&lt;")),-1!=e.indexOf(">")&&(e=e.replace(goog.string.GT_RE_,"&gt;")),-1!=e.indexOf('"')&&(e=e.replace(goog.string.QUOT_RE_,"&quot;")),-1!=e.indexOf("'")&&(e=e.replace(goog.string.SINGLE_QUOTE_RE_,"&#39;")),-1!=e.indexOf("\x00")&&(e=e.replace(goog.string.NULL_RE_,"&#0;")),goog.string.DETECT_DOUBLE_ESCAPING&&-1!=e.indexOf("e")&&(e=e.replace(goog.string.E_RE_,"&#101;"))}return e},goog.string.AMP_RE_=/&/g,goog.string.LT_RE_=/</g,goog.string.GT_RE_=/>/g,goog.string.QUOT_RE_=/"/g,goog.string.SINGLE_QUOTE_RE_=/'/g,goog.string.NULL_RE_=/\x00/g,goog.string.E_RE_=/e/g,goog.string.ALL_RE_=goog.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/,goog.string.unescapeEntities=function(e){return goog.string.contains(e,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(e):goog.string.unescapePureXmlEntities_(e):e},goog.string.unescapeEntitiesWithDocument=function(e,o){return goog.string.contains(e,"&")?goog.string.unescapeEntitiesUsingDom_(e,o):e},goog.string.unescapeEntitiesUsingDom_=function(e,o){var t,n={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};return t=o?o.createElement("div"):goog.global.document.createElement("div"),e.replace(goog.string.HTML_ENTITY_PATTERN_,function(e,o){var r=n[e];if(r)return r;if("#"==o.charAt(0)){var i=Number("0"+o.substr(1));isNaN(i)||(r=String.fromCharCode(i))}return r||(t.innerHTML=e+" ",r=t.firstChild.nodeValue.slice(0,-1)),n[e]=r})},goog.string.unescapePureXmlEntities_=function(e){return e.replace(/&([^;]+);/g,function(e,o){switch(o){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:if("#"==o.charAt(0)){var t=Number("0"+o.substr(1));if(!isNaN(t))return String.fromCharCode(t)}return e}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(e,o){return goog.string.newLineToBr(e.replace(/  /g," &#160;"),o)},goog.string.preserveSpaces=function(e){return e.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(e,o){for(var t=o.length,n=0;t>n;n++){var r=1==t?o:o.charAt(n);if(e.charAt(0)==r&&e.charAt(e.length-1)==r)return e.substring(1,e.length-1)}return e},goog.string.truncate=function(e,o,t){return t&&(e=goog.string.unescapeEntities(e)),e.length>o&&(e=e.substring(0,o-3)+"..."),t&&(e=goog.string.htmlEscape(e)),e},goog.string.truncateMiddle=function(e,o,t,n){if(t&&(e=goog.string.unescapeEntities(e)),n&&e.length>o){n>o&&(n=o);var r=e.length-n;e=e.substring(0,o-n)+"..."+e.substring(r)}else e.length>o&&(n=Math.floor(o/2),r=e.length-n,e=e.substring(0,n+o%2)+"..."+e.substring(r));return t&&(e=goog.string.htmlEscape(e)),e},goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","	":"\\t","
 ":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(e){e=String(e);for(var o=['"'],t=0;t<e.length;t++){var n=e.charAt(t),r=n.charCodeAt(0);o[t+1]=goog.string.specialEscapeChars_[n]||(r>31&&127>r?n:goog.string.escapeChar(n))}return o.push('"'),o.join("")},goog.string.escapeString=function(e){for(var o=[],t=0;t<e.length;t++)o[t]=goog.string.escapeChar(e.charAt(t));return o.join("")},goog.string.escapeChar=function(e){if(e in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[e];if(e in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[e]=goog.string.specialEscapeChars_[e];var o,t=e.charCodeAt(0);return t>31&&127>t?o=e:(256>t?(o="\\x",(16>t||t>256)&&(o+="0")):(o="\\u",4096>t&&(o+="0")),o+=t.toString(16).toUpperCase()),goog.string.jsEscapeCache_[e]=o},goog.string.contains=function(e,o){return-1!=e.indexOf(o)},goog.string.caseInsensitiveContains=function(e,o){return goog.string.contains(e.toLowerCase(),o.toLowerCase())},goog.string.countOf=function(e,o){return e&&o?e.split(o).length-1:0},goog.string.removeAt=function(e,o,t){var n=e;return o>=0&&o<e.length&&t>0&&(n=e.substr(0,o)+e.substr(o+t,e.length-o-t)),n},goog.string.remove=function(e,o){return e.replace(o,"")},goog.string.removeAll=function(e,o){var t=new RegExp(goog.string.regExpEscape(o),"g");return e.replace(t,"")},goog.string.replaceAll=function(e,o,t){return o=new RegExp(goog.string.regExpEscape(o),"g"),e.replace(o,t.replace(/\$/g,"$$$$"))},goog.string.regExpEscape=function(e){return String(e).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},goog.string.repeat=String.prototype.repeat?function(e,o){return e.repeat(o)}:function(e,o){return Array(o+1).join(e)},goog.string.padNumber=function(e,o,t){return e=goog.isDef(t)?e.toFixed(t):String(e),t=e.indexOf("."),-1==t&&(t=e.length),goog.string.repeat("0",Math.max(0,o-t))+e},goog.string.makeSafe=function(e){return null==e?"":String(e)},goog.string.buildString=function(e){return Array.prototype.join.call(arguments,"")},goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)},goog.string.compareVersions=function(e,o){for(var t=0,n=goog.string.trim(String(e)).split("."),r=goog.string.trim(String(o)).split("."),i=Math.max(n.length,r.length),s=0;0==t&&i>s;s++){var l=n[s]||"",g=r[s]||"";do{if(l=/(\d*)(\D*)(.*)/.exec(l)||["","","",""],g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""],0==l[0].length&&0==g[0].length)break;var t=0==l[1].length?0:parseInt(l[1],10),a=0==g[1].length?0:parseInt(g[1],10),t=goog.string.compareElements_(t,a)||goog.string.compareElements_(0==l[2].length,0==g[2].length)||goog.string.compareElements_(l[2],g[2]),l=l[3],g=g[3]}while(0==t)}return t},goog.string.compareElements_=function(e,o){return o>e?-1:e>o?1:0},goog.string.hashCode=function(e){for(var o=0,t=0;t<e.length;++t)o=31*o+e.charCodeAt(t)>>>0;return o},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(e){var o=Number(e);return 0==o&&goog.string.isEmptyOrWhitespace(e)?NaN:o},goog.string.isLowerCamelCase=function(e){return/^[a-z]+([A-Z][a-z]*)*$/.test(e)},goog.string.isUpperCamelCase=function(e){return/^([A-Z][a-z]*)+$/.test(e)},goog.string.toCamelCase=function(e){return String(e).replace(/\-([a-z])/g,function(e,o){return o.toUpperCase()})},goog.string.toSelectorCase=function(e){return String(e).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(e,o){var t=goog.isString(o)?goog.string.regExpEscape(o):"\\s";return e.replace(new RegExp("(^"+(t?"|["+t+"]+":"")+")([a-z])","g"),function(e,o,t){return o+t.toUpperCase()})},goog.string.capitalize=function(e){return String(e.charAt(0)).toUpperCase()+String(e.substr(1)).toLowerCase()},goog.string.parseInt=function(e){return isFinite(e)&&(e=String(e)),goog.isString(e)?/^\s*-?0x/i.test(e)?parseInt(e,16):parseInt(e,10):NaN},goog.string.splitLimit=function(e,o,t){e=e.split(o);for(var n=[];t>0&&e.length;)n.push(e.shift()),t--;return e.length&&n.push(e.join(o)),n},goog.string.lastComponent=function(e,o){if(!o)return e;"string"==typeof o&&(o=[o]);for(var t=-1,n=0;n<o.length;n++)if(""!=o[n]){var r=e.lastIndexOf(o[n]);r>t&&(t=r)}return-1==t?e:e.slice(t+1)},goog.string.editDistance=function(e,o){var t=[],n=[];if(e==o)return 0;if(!e.length||!o.length)return Math.max(e.length,o.length);for(var r=0;r<o.length+1;r++)t[r]=r;for(r=0;r<e.length;r++){n[0]=r+1;for(var i=0;i<o.length;i++)n[i+1]=Math.min(n[i]+1,t[i+1]+1,t[i]+Number(e[r]!=o[i]));for(i=0;i<t.length;i++)t[i]=n[i]}return n[o.length]},goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(e,o){o.unshift(e),goog.debug.Error.call(this,goog.string.subs.apply(null,o)),o.shift(),this.messagePattern=e},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(e){throw e},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.doAssertFailure_=function(e,o,t,n){var r="Assertion failed";if(t)var r=r+(": "+t),i=n;else e&&(r+=": "+e,i=o);e=new goog.asserts.AssertionError(""+r,i||[]),goog.asserts.errorHandler_(e);
 },goog.asserts.setErrorHandler=function(e){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=e)},goog.asserts.assert=function(e,o,t){return goog.asserts.ENABLE_ASSERTS&&!e&&goog.asserts.doAssertFailure_("",null,o,Array.prototype.slice.call(arguments,2)),e},goog.asserts.fail=function(e,o){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(e?": "+e:""),Array.prototype.slice.call(arguments,1)))},goog.asserts.assertNumber=function(e,o,t){return goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(e)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(e),e],o,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertString=function(e,o,t){return goog.asserts.ENABLE_ASSERTS&&!goog.isString(e)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(e),e],o,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertFunction=function(e,o,t){return goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(e)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(e),e],o,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObject=function(e,o,t){return goog.asserts.ENABLE_ASSERTS&&!goog.isObject(e)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(e),e],o,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertArray=function(e,o,t){return goog.asserts.ENABLE_ASSERTS&&!goog.isArray(e)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(e),e],o,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertBoolean=function(e,o,t){return goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(e)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(e),e],o,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertElement=function(e,o,t){return!goog.asserts.ENABLE_ASSERTS||goog.isObject(e)&&e.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(e),e],o,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertInstanceof=function(e,o,t,n){return!goog.asserts.ENABLE_ASSERTS||e instanceof o||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(o),goog.asserts.getType_(e)],t,Array.prototype.slice.call(arguments,3)),e},goog.asserts.assertObjectPrototypeIsIntact=function(){for(var e in Object.prototype)goog.asserts.fail(e+" should not be enumerable in Object.prototype.")},goog.asserts.getType_=function(e){return e instanceof Function?e.displayName||e.name||"unknown type name":e instanceof Object?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):null===e?"null":typeof e},goog.debug.entryPointRegistry={},goog.debug.EntryPointMonitor=function(){},goog.debug.entryPointRegistry.refList_=[],goog.debug.entryPointRegistry.monitors_=[],goog.debug.entryPointRegistry.monitorsMayExist_=!1,goog.debug.entryPointRegistry.register=function(e){if(goog.debug.entryPointRegistry.refList_[goog.debug.entryPointRegistry.refList_.length]=e,goog.debug.entryPointRegistry.monitorsMayExist_)for(var o=goog.debug.entryPointRegistry.monitors_,t=0;t<o.length;t++)e(goog.bind(o[t].wrap,o[t]))},goog.debug.entryPointRegistry.monitorAll=function(e){goog.debug.entryPointRegistry.monitorsMayExist_=!0;for(var o=goog.bind(e.wrap,e),t=0;t<goog.debug.entryPointRegistry.refList_.length;t++)goog.debug.entryPointRegistry.refList_[t](o);goog.debug.entryPointRegistry.monitors_.push(e)},goog.debug.entryPointRegistry.unmonitorAllIfPossible=function(e){var o=goog.debug.entryPointRegistry.monitors_;goog.asserts.assert(e==o[o.length-1],"Only the most recent monitor can be unwrapped."),e=goog.bind(e.unwrap,e);for(var t=0;t<goog.debug.entryPointRegistry.refList_.length;t++)goog.debug.entryPointRegistry.refList_[t](e);o.length--},goog.array={},goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE,goog.array.ASSUME_NATIVE_FUNCTIONS=!1,goog.array.peek=function(e){return e[e.length-1]},goog.array.last=goog.array.peek,goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(e,o,t){return goog.asserts.assert(null!=e.length),Array.prototype.indexOf.call(e,o,t)}:function(e,o,t){if(t=null==t?0:0>t?Math.max(0,e.length+t):t,goog.isString(e))return goog.isString(o)&&1==o.length?e.indexOf(o,t):-1;for(;t<e.length;t++)if(t in e&&e[t]===o)return t;return-1},goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(e,o,t){return goog.asserts.assert(null!=e.length),Array.prototype.lastIndexOf.call(e,o,null==t?e.length-1:t)}:function(e,o,t){if(t=null==t?e.length-1:t,0>t&&(t=Math.max(0,e.length+t)),goog.isString(e))return goog.isString(o)&&1==o.length?e.lastIndexOf(o,t):-1;for(;t>=0;t--)if(t in e&&e[t]===o)return t;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(e,o,t){goog.asserts.assert(null!=e.length),Array.prototype.forEach.call(e,o,t)}:function(e,o,t){for(var n=e.length,r=goog.isString(e)?e.split(""):e,i=0;n>i;i++)i in r&&o.call(t,r[i],i,e)},goog.array.forEachRight=function(e,o,t){for(var n=e.length,r=goog.isString(e)?e.split(""):e,n=n-1;n>=0;--n)n in r&&o.call(t,r[n],n,e)},goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(e,o,t){return goog.asserts.assert(null!=e.length),Array.prototype.filter.call(e,o,t)}:function(e,o,t){for(var n=e.length,r=[],i=0,s=goog.isString(e)?e.split(""):e,l=0;n>l;l++)if(l in s){var g=s[l];o.call(t,g,l,e)&&(r[i++]=g)}return r},goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(e,o,t){return goog.asserts.assert(null!=e.length),Array.prototype.map.call(e,o,t)}:function(e,o,t){for(var n=e.length,r=Array(n),i=goog.isString(e)?e.split(""):e,s=0;n>s;s++)s in i&&(r[s]=o.call(t,i[s],s,e));return r},goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(e,o,t,n){return goog.asserts.assert(null!=e.length),n&&(o=goog.bind(o,n)),Array.prototype.reduce.call(e,o,t)}:function(e,o,t,n){var r=t;return goog.array.forEach(e,function(t,i){r=o.call(n,r,t,i,e)}),r},goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(e,o,t,n){return goog.asserts.assert(null!=e.length),goog.asserts.assert(null!=o),n&&(o=goog.bind(o,n)),Array.prototype.reduceRight.call(e,o,t)}:function(e,o,t,n){var r=t;return goog.array.forEachRight(e,function(t,i){r=o.call(n,r,t,i,e)}),r},goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(e,o,t){return goog.asserts.assert(null!=e.length),Array.prototype.some.call(e,o,t)}:function(e,o,t){for(var n=e.length,r=goog.isString(e)?e.split(""):e,i=0;n>i;i++)if(i in r&&o.call(t,r[i],i,e))return!0;return!1},goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(e,o,t){return goog.asserts.assert(null!=e.length),Array.prototype.every.call(e,o,t)}:function(e,o,t){for(var n=e.length,r=goog.isString(e)?e.split(""):e,i=0;n>i;i++)if(i in r&&!o.call(t,r[i],i,e))return!1;return!0},goog.array.count=function(e,o,t){var n=0;return goog.array.forEach(e,function(e,r,i){o.call(t,e,r,i)&&++n},t),n},goog.array.find=function(e,o,t){return o=goog.array.findIndex(e,o,t),0>o?null:goog.isString(e)?e.charAt(o):e[o]},goog.array.findIndex=function(e,o,t){for(var n=e.length,r=goog.isString(e)?e.split(""):e,i=0;n>i;i++)if(i in r&&o.call(t,r[i],i,e))return i;return-1},goog.array.findRight=function(e,o,t){return o=goog.array.findIndexRight(e,o,t),0>o?null:goog.isString(e)?e.charAt(o):e[o]},goog.array.findIndexRight=function(e,o,t){for(var n=e.length,r=goog.isString(e)?e.split(""):e,n=n-1;n>=0;n--)if(n in r&&o.call(t,r[n],n,e))return n;return-1},goog.array.contains=function(e,o){return 0<=goog.array.indexOf(e,o)},goog.array.isEmpty=function(e){return 0==e.length},goog.array.clear=function(e){if(!goog.isArray(e))for(var o=e.length-1;o>=0;o--)delete e[o];e.length=0},goog.array.insert=function(e,o){goog.array.contains(e,o)||e.push(o)},goog.array.insertAt=function(e,o,t){goog.array.splice(e,t,0,o)},goog.array.insertArrayAt=function(e,o,t){goog.partial(goog.array.splice,e,t,0).apply(null,o)},goog.array.insertBefore=function(e,o,t){var n;2==arguments.length||0>(n=goog.array.indexOf(e,t))?e.push(o):goog.array.insertAt(e,o,n)},goog.array.remove=function(e,o){var t,n=goog.array.indexOf(e,o);return(t=n>=0)&&goog.array.removeAt(e,n),t},goog.array.removeLast=function(e,o){var t=goog.array.lastIndexOf(e,o);return t>=0?(goog.array.removeAt(e,t),!0):!1},goog.array.removeAt=function(e,o){return goog.asserts.assert(null!=e.length),1==Array.prototype.splice.call(e,o,1).length},goog.array.removeIf=function(e,o,t){return o=goog.array.findIndex(e,o,t),o>=0?(goog.array.removeAt(e,o),!0):!1},goog.array.removeAllIf=function(e,o,t){var n=0;return goog.array.forEachRight(e,function(r,i){o.call(t,r,i,e)&&goog.array.removeAt(e,i)&&n++}),n},goog.array.concat=function(e){return Array.prototype.concat.apply(Array.prototype,arguments)},goog.array.join=function(e){return Array.prototype.concat.apply(Array.prototype,arguments)},goog.array.toArray=function(e){var o=e.length;if(o>0){for(var t=Array(o),n=0;o>n;n++)t[n]=e[n];return t}return[]},goog.array.clone=goog.array.toArray,goog.array.extend=function(e,o){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(goog.isArrayLike(n)){var r=e.length||0,i=n.length||0;e.length=r+i;for(var s=0;i>s;s++)e[r+s]=n[s]}else e.push(n)}},goog.array.splice=function(e,o,t,n){return goog.asserts.assert(null!=e.length),Array.prototype.splice.apply(e,goog.array.slice(arguments,1))},goog.array.slice=function(e,o,t){return goog.asserts.assert(null!=e.length),2>=arguments.length?Array.prototype.slice.call(e,o):Array.prototype.slice.call(e,o,t)},goog.array.removeDuplicates=function(e,o,t){o=o||e;var n=function(e){return goog.isObject(e)?"o"+goog.getUid(e):(typeof e).charAt(0)+e};t=t||n;for(var n={},r=0,i=0;i<e.length;){var s=e[i++],l=t(s);Object.prototype.hasOwnProperty.call(n,l)||(n[l]=!0,o[r++]=s)}o.length=r},goog.array.binarySearch=function(e,o,t){return goog.array.binarySearch_(e,t||goog.array.defaultCompare,!1,o)},goog.array.binarySelect=function(e,o,t){return goog.array.binarySearch_(e,o,!0,void 0,t)},goog.array.binarySearch_=function(e,o,t,n,r){for(var i,s=0,l=e.length;l>s;){var g,a=s+l>>1;g=t?o.call(r,e[a],a,e):o(n,e[a]),g>0?s=a+1:(l=a,i=!g)}return i?s:~s},goog.array.sort=function(e,o){e.sort(o||goog.array.defaultCompare)},goog.array.stableSort=function(e,o){for(var t=Array(e.length),n=0;n<e.length;n++)t[n]={index:n,value:e[n]};var r=o||goog.array.defaultCompare;for(goog.array.sort(t,function(e,o){return r(e.value,o.value)||e.index-o.index}),n=0;n<e.length;n++)e[n]=t[n].value},goog.array.sortByKey=function(e,o,t){var n=t||goog.array.defaultCompare;goog.array.sort(e,function(e,t){return n(o(e),o(t))})},goog.array.sortObjectsByKey=function(e,o,t){goog.array.sortByKey(e,function(e){return e[o]},t)},goog.array.isSorted=function(e,o,t){o=o||goog.array.defaultCompare;for(var n=1;n<e.length;n++){var r=o(e[n-1],e[n]);if(r>0||0==r&&t)return!1}return!0},goog.array.equals=function(e,o,t){if(!goog.isArrayLike(e)||!goog.isArrayLike(o)||e.length!=o.length)return!1;var n=e.length;t=t||goog.array.defaultCompareEquality;for(var r=0;n>r;r++)if(!t(e[r],o[r]))return!1;return!0},goog.array.compare3=function(e,o,t){t=t||goog.array.defaultCompare;for(var n=Math.min(e.length,o.length),r=0;n>r;r++){var i=t(e[r],o[r]);if(0!=i)return i}return goog.array.defaultCompare(e.length,o.length)},goog.array.defaultCompare=function(e,o){return e>o?1:o>e?-1:0},goog.array.inverseDefaultCompare=function(e,o){return-goog.array.defaultCompare(e,o)},goog.array.defaultCompareEquality=function(e,o){return e===o},goog.array.binaryInsert=function(e,o,t){return t=goog.array.binarySearch(e,o,t),0>t?(goog.array.insertAt(e,o,-(t+1)),!0):!1},goog.array.binaryRemove=function(e,o,t){return o=goog.array.binarySearch(e,o,t),o>=0?goog.array.removeAt(e,o):!1},goog.array.bucket=function(e,o,t){for(var n={},r=0;r<e.length;r++){var i=e[r],s=o.call(t,i,r,e);goog.isDef(s)&&(n[s]||(n[s]=[])).push(i)}return n},goog.array.toObject=function(e,o,t){var n={};return goog.array.forEach(e,function(r,i){n[o.call(t,r,i,e)]=r}),n},goog.array.range=function(e,o,t){var n=[],r=0,i=e;if(t=t||1,void 0!==o&&(r=e,i=o),0>t*(i-r))return[];if(t>0)for(e=r;i>e;e+=t)n.push(e);else for(e=r;e>i;e+=t)n.push(e);return n},goog.array.repeat=function(e,o){for(var t=[],n=0;o>n;n++)t[n]=e;return t},goog.array.flatten=function(e){for(var o=[],t=0;t<arguments.length;t++){var n=arguments[t];if(goog.isArray(n))for(var r=0;r<n.length;r+=8192)for(var i=goog.array.slice(n,r,r+8192),i=goog.array.flatten.apply(null,i),s=0;s<i.length;s++)o.push(i[s]);else o.push(n)}return o},goog.array.rotate=function(e,o){return goog.asserts.assert(null!=e.length),e.length&&(o%=e.length,o>0?Array.prototype.unshift.apply(e,e.splice(-o,o)):0>o&&Array.prototype.push.apply(e,e.splice(0,-o))),e},goog.array.moveItem=function(e,o,t){goog.asserts.assert(o>=0&&o<e.length),goog.asserts.assert(t>=0&&t<e.length),o=Array.prototype.splice.call(e,o,1),Array.prototype.splice.call(e,t,0,o[0])},goog.array.zip=function(e){if(!arguments.length)return[];for(var o=[],t=arguments[0].length,n=1;n<arguments.length;n++)arguments[n].length<t&&(t=arguments[n].length);for(n=0;t>n;n++){for(var r=[],i=0;i<arguments.length;i++)r.push(arguments[i][n]);o.push(r)}return o},goog.array.shuffle=function(e,o){for(var t=o||Math.random,n=e.length-1;n>0;n--){var r=Math.floor(t()*(n+1)),i=e[n];e[n]=e[r],e[r]=i}},goog.array.copyByIndex=function(e,o){var t=[];return goog.array.forEach(o,function(o){t.push(e[o])}),t},goog.array.concatMap=function(e,o,t){return goog.array.concat.apply([],goog.array.map(e,o,t))},goog.labs={},goog.labs.userAgent={},goog.labs.userAgent.util={},goog.labs.userAgent.util.getNativeUserAgentString_=function(){var e=goog.labs.userAgent.util.getNavigator_();return e&&(e=e.userAgent)?e:""},goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator},goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_(),goog.labs.userAgent.util.setUserAgent=function(e){goog.labs.userAgent.util.userAgent_=e||goog.labs.userAgent.util.getNativeUserAgentString_()},goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_},goog.labs.userAgent.util.matchUserAgent=function(e){var o=goog.labs.userAgent.util.getUserAgent();return goog.string.contains(o,e)},goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(e){var o=goog.labs.userAgent.util.getUserAgent();return goog.string.caseInsensitiveContains(o,e)},goog.labs.userAgent.util.extractVersionTuples=function(e){for(var o,t=RegExp("(\\w[\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?","g"),n=[];o=t.exec(e);)n.push([o[1],o[2],o[3]||void 0]);return n},goog.object={},goog.object.is=function(e,o){return e===o?0!==e||1/e===1/o:e!==e&&o!==o},goog.object.forEach=function(e,o,t){for(var n in e)o.call(t,e[n],n,e)},goog.object.filter=function(e,o,t){var n,r={};for(n in e)o.call(t,e[n],n,e)&&(r[n]=e[n]);return r},goog.object.map=function(e,o,t){var n,r={};for(n in e)r[n]=o.call(t,e[n],n,e);return r},goog.object.some=function(e,o,t){for(var n in e)if(o.call(t,e[n],n,e))return!0;return!1},goog.object.every=function(e,o,t){for(var n in e)if(!o.call(t,e[n],n,e))return!1;return!0},goog.object.getCount=function(e){var o,t=0;for(o in e)t++;return t},goog.object.getAnyKey=function(e){for(var o in e)return o},goog.object.getAnyValue=function(e){for(var o in e)return e[o]},goog.object.contains=function(e,o){return goog.object.containsValue(e,o)},goog.object.getValues=function(e){var o,t=[],n=0;for(o in e)t[n++]=e[o];return t},goog.object.getKeys=function(e){var o,t=[],n=0;for(o in e)t[n++]=o;return t},goog.object.getValueByKeys=function(e,o){for(var t=goog.isArrayLike(o),n=t?o:arguments,t=t?0:1;t<n.length&&(e=e[n[t]],goog.isDef(e));t++);return e},goog.object.containsKey=function(e,o){return null!==e&&o in e},goog.object.containsValue=function(e,o){for(var t in e)if(e[t]==o)return!0;return!1},goog.object.findKey=function(e,o,t){for(var n in e)if(o.call(t,e[n],n,e))return n},goog.object.findValue=function(e,o,t){return(o=goog.object.findKey(e,o,t))&&e[o]},goog.object.isEmpty=function(e){for(var o in e)return!1;return!0},goog.object.clear=function(e){for(var o in e)delete e[o]},goog.object.remove=function(e,o){var t;return(t=o in e)&&delete e[o],t},goog.object.add=function(e,o,t){if(null!==e&&o in e)throw Error('The object already contains the key "'+o+'"');goog.object.set(e,o,t)},goog.object.get=function(e,o,t){return null!==e&&o in e?e[o]:t},goog.object.set=function(e,o,t){e[o]=t},goog.object.setIfUndefined=function(e,o,t){return o in e?e[o]:e[o]=t},goog.object.setWithReturnValueIfNotSet=function(e,o,t){return o in e?e[o]:(t=t(),e[o]=t)},goog.object.equals=function(e,o){for(var t in e)if(!(t in o)||e[t]!==o[t])return!1;for(t in o)if(!(t in e))return!1;return!0},goog.object.clone=function(e){var o,t={};for(o in e)t[o]=e[o];return t},goog.object.unsafeClone=function(e){var o=goog.typeOf(e);if("object"==o||"array"==o){if(goog.isFunction(e.clone))return e.clone();var t,o="array"==o?[]:{};for(t in e)o[t]=goog.object.unsafeClone(e[t]);return o}return e},goog.object.transpose=function(e){var o,t={};for(o in e)t[e[o]]=o;return t},goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.object.extend=function(e,o){for(var t,n,r=1;r<arguments.length;r++){n=arguments[r];for(t in n)e[t]=n[t];for(var i=0;i<goog.object.PROTOTYPE_FIELDS_.length;i++)t=goog.object.PROTOTYPE_FIELDS_[i],Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}},goog.object.create=function(e){var o=arguments.length;if(1==o&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(o%2)throw Error("Uneven number of arguments");for(var t={},n=0;o>n;n+=2)t[arguments[n]]=arguments[n+1];return t},goog.object.createSet=function(e){var o=arguments.length;if(1==o&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var t={},n=0;o>n;n++)t[arguments[n]]=!0;return t},goog.object.createImmutableView=function(e){var o=e;return Object.isFrozen&&!Object.isFrozen(e)&&(o=Object.create(e),Object.freeze(o)),o},goog.object.isImmutableView=function(e){return!!Object.isFrozen&&Object.isFrozen(e)},goog.labs.userAgent.browser={},goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")},goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.browser.matchEdge_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")},goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdge_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))},goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")},goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")},goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdge_()},goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())},goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_,goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_,goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdge_,goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_,goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_,goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_,goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_,goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_,goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_,goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")},goog.labs.userAgent.browser.getVersion=function(){function e(e){return e=goog.array.find(e,n),t[e]||""}var o=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(o);var o=goog.labs.userAgent.util.extractVersionTuples(o),t={};goog.array.forEach(o,function(e){t[e[0]]=e[1]});var n=goog.partial(goog.object.containsKey,t);return goog.labs.userAgent.browser.isOpera()?e(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?e(["Edge"]):goog.labs.userAgent.browser.isChrome()?e(["Chrome","CriOS"]):(o=o[2])&&o[1]||""},goog.labs.userAgent.browser.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.browser.getVersion(),e)},goog.labs.userAgent.browser.getIEVersion_=function(e){var o=/rv: *([\d\.]*)/.exec(e);if(o&&o[1])return o[1];var o="",t=/MSIE +([\d\.]+)/.exec(e);if(t&&t[1])if(e=/Trident\/(\d.\d)/.exec(e),"7.0"==t[1])if(e&&e[1])switch(e[1]){case"4.0":o="8.0";break;case"5.0":o="9.0";break;case"6.0":o="10.0";break;case"7.0":o="11.0"}else o="7.0";else o=t[1];return o},goog.labs.userAgent.engine={},goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")},goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent();if(e){var e=goog.labs.userAgent.util.extractVersionTuples(e),o=goog.labs.userAgent.engine.getEngineTuple_(e);if(o)return"Gecko"==o[0]?goog.labs.userAgent.engine.getVersionForKey_(e,"Firefox"):o[1];var t,e=e[0];if(e&&(t=e[2])&&(t=/Trident\/([^\s;]+)/.exec(t)))return t[1]}return""},goog.labs.userAgent.engine.getEngineTuple_=function(e){if(!goog.labs.userAgent.engine.isEdge())return e[1];for(var o=0;o<e.length;o++){var t=e[o];if("Edge"==t[0])return t}},goog.labs.userAgent.engine.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),e)},goog.labs.userAgent.engine.getVersionForKey_=function(e,o){var t=goog.array.find(e,function(e){return o==e[0]});return t&&t[1]||""},goog.labs.userAgent.platform={},goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent("Android")},goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent("iPod")},goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent("iPhone")&&!goog.labs.userAgent.util.matchUserAgent("iPod")&&!goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()},goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent("Macintosh")},goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent("Linux")},goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent("Windows")},goog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent("CrOS")},goog.labs.userAgent.platform.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent(),o="";return goog.labs.userAgent.platform.isWindows()?(o=/Windows (?:NT|Phone) ([0-9.]+)/,o=(e=o.exec(e))?e[1]:"0.0"):goog.labs.userAgent.platform.isIos()?(o=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,o=(e=o.exec(e))&&e[1].replace(/_/g,".")):goog.labs.userAgent.platform.isMacintosh()?(o=/Mac OS X ([0-9_.]+)/,o=(e=o.exec(e))?e[1].replace(/_/g,"."):"10"):goog.labs.userAgent.platform.isAndroid()?(o=/Android\s+([^\);]+)(\)|;)/,o=(e=o.exec(e))&&e[1]):goog.labs.userAgent.platform.isChromeOS()&&(o=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,o=(e=o.exec(e))&&e[1]),o||""},goog.labs.userAgent.platform.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),e)},goog.reflect={},goog.reflect.object=function(e,o){return o},goog.reflect.objectProperty=function(e,o){return e},goog.reflect.sinkValue=function(e){return goog.reflect.sinkValue[" "](e),e},goog.reflect.sinkValue[" "]=goog.nullFunction,goog.reflect.canAccessProperty=function(e,o){try{return goog.reflect.sinkValue(e[o]),!0}catch(t){}return!1},goog.reflect.cache=function(e,o,t,n){return n=n?n(o):o,Object.prototype.hasOwnProperty.call(e,n)?e[n]:e[n]=t(o)},goog.userAgent={},goog.userAgent.ASSUME_IE=!1,goog.userAgent.ASSUME_EDGE=!1,goog.userAgent.ASSUME_GECKO=!1,goog.userAgent.ASSUME_WEBKIT=!1,goog.userAgent.ASSUME_MOBILE_WEBKIT=!1,goog.userAgent.ASSUME_OPERA=!1,goog.userAgent.ASSUME_ANY_VERSION=!1,goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA,goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()},goog.userAgent.getNavigator=function(){return goog.global.navigator||null},goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera(),goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE(),goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge(),goog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE,goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko(),goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit(),goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent("Mobile")},goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_(),goog.userAgent.SAFARI=goog.userAgent.WEBKIT,goog.userAgent.determinePlatform_=function(){var e=goog.userAgent.getNavigator();return e&&e.platform||""},goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_(),goog.userAgent.ASSUME_MAC=!1,goog.userAgent.ASSUME_WINDOWS=!1,goog.userAgent.ASSUME_LINUX=!1,goog.userAgent.ASSUME_X11=!1,goog.userAgent.ASSUME_ANDROID=!1,goog.userAgent.ASSUME_IPHONE=!1,goog.userAgent.ASSUME_IPAD=!1,goog.userAgent.ASSUME_IPOD=!1,goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD,goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh(),goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows(),goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()},goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_(),goog.userAgent.isX11_=function(){var e=goog.userAgent.getNavigator();return!!e&&goog.string.contains(e.appVersion||"","X11")},goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_(),goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid(),goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone(),goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod(),goog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos(),goog.userAgent.determineVersion_=function(){var e="",o=goog.userAgent.getVersionRegexResult_();return o&&(e=o?o[1]:""),goog.userAgent.IE&&(o=goog.userAgent.getDocumentMode_(),null!=o&&o>parseFloat(e))?String(o):e},goog.userAgent.getVersionRegexResult_=function(){var e=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv\:([^\);]+)(\)|;)/.exec(e):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(e):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(e):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(e):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(e):void 0},goog.userAgent.getDocumentMode_=function(){var e=goog.global.document;return e?e.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(e,o){return goog.string.compareVersions(e,o)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(e){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,e,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,e)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(e){return Number(goog.userAgent.DOCUMENT_MODE)>=e},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){var e=goog.global.document,o=goog.userAgent.getDocumentMode_();return e&&goog.userAgent.IE?o||("CSS1Compat"==e.compatMode?parseInt(goog.userAgent.VERSION,10):5):void 0}(),goog.events={},goog.events.BrowserFeature={HAS_W3C_BUTTON:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),HAS_W3C_EVENT_SUPPORT:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!goog.userAgent.WEBKIT||goog.userAgent.isVersionOrHigher("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:goog.userAgent.GECKO&&goog.userAgent.isVersionOrHigher("1.9b")||goog.userAgent.IE&&goog.userAgent.isVersionOrHigher("8")||goog.userAgent.OPERA&&goog.userAgent.isVersionOrHigher("9.5")||goog.userAgent.WEBKIT&&goog.userAgent.isVersionOrHigher("528"),
 HTML5_NETWORK_EVENTS_FIRE_ON_BODY:goog.userAgent.GECKO&&!goog.userAgent.isVersionOrHigher("8")||goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),TOUCH_ENABLED:"ontouchstart"in goog.global||!!(goog.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!goog.global.navigator||!goog.global.navigator.msMaxTouchPoints)},goog.disposable={},goog.disposable.IDisposable=function(){},goog.disposable.IDisposable.prototype.dispose=goog.abstractMethod,goog.disposable.IDisposable.prototype.isDisposed=goog.abstractMethod,goog.Disposable=function(){goog.Disposable.MONITORING_MODE!=goog.Disposable.MonitoringMode.OFF&&(goog.Disposable.INCLUDE_STACK_ON_CREATION&&(this.creationStack=Error().stack),goog.Disposable.instances_[goog.getUid(this)]=this),this.disposed_=this.disposed_,this.onDisposeCallbacks_=this.onDisposeCallbacks_},goog.Disposable.MonitoringMode={OFF:0,PERMANENT:1,INTERACTIVE:2},goog.Disposable.MONITORING_MODE=0,goog.Disposable.INCLUDE_STACK_ON_CREATION=!0,goog.Disposable.instances_={},goog.Disposable.getUndisposedObjects=function(){var e,o=[];for(e in goog.Disposable.instances_)goog.Disposable.instances_.hasOwnProperty(e)&&o.push(goog.Disposable.instances_[Number(e)]);return o},goog.Disposable.clearUndisposedObjects=function(){goog.Disposable.instances_={}},goog.Disposable.prototype.disposed_=!1,goog.Disposable.prototype.isDisposed=function(){return this.disposed_},goog.Disposable.prototype.getDisposed=goog.Disposable.prototype.isDisposed,goog.Disposable.prototype.dispose=function(){if(!this.disposed_&&(this.disposed_=!0,this.disposeInternal(),goog.Disposable.MONITORING_MODE!=goog.Disposable.MonitoringMode.OFF)){var e=goog.getUid(this);if(goog.Disposable.MONITORING_MODE==goog.Disposable.MonitoringMode.PERMANENT&&!goog.Disposable.instances_.hasOwnProperty(e))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");delete goog.Disposable.instances_[e]}},goog.Disposable.prototype.registerDisposable=function(e){this.addOnDisposeCallback(goog.partial(goog.dispose,e))},goog.Disposable.prototype.addOnDisposeCallback=function(e,o){this.disposed_?goog.isDef(o)?e.call(o):e():(this.onDisposeCallbacks_||(this.onDisposeCallbacks_=[]),this.onDisposeCallbacks_.push(goog.isDef(o)?goog.bind(e,o):e))},goog.Disposable.prototype.disposeInternal=function(){if(this.onDisposeCallbacks_)for(;this.onDisposeCallbacks_.length;)this.onDisposeCallbacks_.shift()()},goog.Disposable.isDisposed=function(e){return e&&"function"==typeof e.isDisposed?e.isDisposed():!1},goog.dispose=function(e){e&&"function"==typeof e.dispose&&e.dispose()},goog.disposeAll=function(e){for(var o=0,t=arguments.length;t>o;++o){var n=arguments[o];goog.isArrayLike(n)?goog.disposeAll.apply(null,n):goog.dispose(n)}},goog.events.EventId=function(e){this.id=e},goog.events.EventId.prototype.toString=function(){return this.id},goog.events.Event=function(e,o){this.type=e instanceof goog.events.EventId?String(e):e,this.currentTarget=this.target=o,this.defaultPrevented=this.propagationStopped_=!1,this.returnValue_=!0},goog.events.Event.prototype.stopPropagation=function(){this.propagationStopped_=!0},goog.events.Event.prototype.preventDefault=function(){this.defaultPrevented=!0,this.returnValue_=!1},goog.events.Event.stopPropagation=function(e){e.stopPropagation()},goog.events.Event.preventDefault=function(e){e.preventDefault()},goog.events.getVendorPrefixedName_=function(e){return goog.userAgent.WEBKIT?"webkit"+e:goog.userAgent.OPERA?"o"+e.toLowerCase():e.toLowerCase()},goog.events.EventType={CLICK:"click",RIGHTCLICK:"rightclick",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",SELECTIONCHANGE:"selectionchange",SELECTSTART:"selectstart",WHEEL:"wheel",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:goog.userAgent.IE?"focusin":"DOMFocusIn",FOCUSOUT:goog.userAgent.IE?"focusout":"DOMFocusOut",CHANGE:"change",RESET:"reset",SELECT:"select",SUBMIT:"submit",INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart",DRAG:"drag",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",DRAGEND:"dragend",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",BEFOREUNLOAD:"beforeunload",CONSOLEMESSAGE:"consolemessage",CONTEXTMENU:"contextmenu",DEVICEORIENTATION:"deviceorientation",DOMCONTENTLOADED:"DOMContentLoaded",ERROR:"error",HELP:"help",LOAD:"load",LOSECAPTURE:"losecapture",ORIENTATIONCHANGE:"orientationchange",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",CANPLAY:"canplay",CANPLAYTHROUGH:"canplaythrough",DURATIONCHANGE:"durationchange",EMPTIED:"emptied",ENDED:"ended",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",PAUSE:"pause",PLAY:"play",PLAYING:"playing",RATECHANGE:"ratechange",SEEKED:"seeked",SEEKING:"seeking",STALLED:"stalled",SUSPEND:"suspend",TIMEUPDATE:"timeupdate",VOLUMECHANGE:"volumechange",WAITING:"waiting",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide",PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",ANIMATIONSTART:goog.events.getVendorPrefixedName_("AnimationStart"),ANIMATIONEND:goog.events.getVendorPrefixedName_("AnimationEnd"),ANIMATIONITERATION:goog.events.getVendorPrefixedName_("AnimationIteration"),TRANSITIONEND:goog.events.getVendorPrefixedName_("TransitionEnd"),POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTERCANCEL:"pointercancel",POINTERMOVE:"pointermove",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",GOTPOINTERCAPTURE:"gotpointercapture",LOSTPOINTERCAPTURE:"lostpointercapture",MSGESTURECHANGE:"MSGestureChange",MSGESTUREEND:"MSGestureEnd",MSGESTUREHOLD:"MSGestureHold",MSGESTURESTART:"MSGestureStart",MSGESTURETAP:"MSGestureTap",MSGOTPOINTERCAPTURE:"MSGotPointerCapture",MSINERTIASTART:"MSInertiaStart",MSLOSTPOINTERCAPTURE:"MSLostPointerCapture",MSPOINTERCANCEL:"MSPointerCancel",MSPOINTERDOWN:"MSPointerDown",MSPOINTERENTER:"MSPointerEnter",MSPOINTERHOVER:"MSPointerHover",MSPOINTERLEAVE:"MSPointerLeave",MSPOINTERMOVE:"MSPointerMove",MSPOINTEROUT:"MSPointerOut",MSPOINTEROVER:"MSPointerOver",MSPOINTERUP:"MSPointerUp",TEXT:"text",TEXTINPUT:"textInput",COMPOSITIONSTART:"compositionstart",COMPOSITIONUPDATE:"compositionupdate",COMPOSITIONEND:"compositionend",EXIT:"exit",LOADABORT:"loadabort",LOADCOMMIT:"loadcommit",LOADREDIRECT:"loadredirect",LOADSTART:"loadstart",LOADSTOP:"loadstop",RESPONSIVE:"responsive",SIZECHANGED:"sizechanged",UNRESPONSIVE:"unresponsive",VISIBILITYCHANGE:"visibilitychange",STORAGE:"storage",DOMSUBTREEMODIFIED:"DOMSubtreeModified",DOMNODEINSERTED:"DOMNodeInserted",DOMNODEREMOVED:"DOMNodeRemoved",DOMNODEREMOVEDFROMDOCUMENT:"DOMNodeRemovedFromDocument",DOMNODEINSERTEDINTODOCUMENT:"DOMNodeInsertedIntoDocument",DOMATTRMODIFIED:"DOMAttrModified",DOMCHARACTERDATAMODIFIED:"DOMCharacterDataModified",BEFOREPRINT:"beforeprint",AFTERPRINT:"afterprint"},goog.events.BrowserEvent=function(e,o){goog.events.Event.call(this,e?e.type:""),this.relatedTarget=this.currentTarget=this.target=null,this.charCode=this.keyCode=this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0,this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.platformModifierKey=!1,this.event_=null,e&&this.init(e,o)},goog.inherits(goog.events.BrowserEvent,goog.events.Event),goog.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2},goog.events.BrowserEvent.IEButtonMap=[1,4,2],goog.events.BrowserEvent.prototype.init=function(e,o){var t=this.type=e.type,n=e.changedTouches?e.changedTouches[0]:null;this.target=e.target||e.srcElement,this.currentTarget=o;var r=e.relatedTarget;r?goog.userAgent.GECKO&&(goog.reflect.canAccessProperty(r,"nodeName")||(r=null)):t==goog.events.EventType.MOUSEOVER?r=e.fromElement:t==goog.events.EventType.MOUSEOUT&&(r=e.toElement),this.relatedTarget=r,goog.isNull(n)?(this.offsetX=goog.userAgent.WEBKIT||void 0!==e.offsetX?e.offsetX:e.layerX,this.offsetY=goog.userAgent.WEBKIT||void 0!==e.offsetY?e.offsetY:e.layerY,this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0):(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0),this.button=e.button,this.keyCode=e.keyCode||0,this.charCode=e.charCode||("keypress"==t?e.keyCode:0),this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.platformModifierKey=goog.userAgent.MAC?e.metaKey:e.ctrlKey,this.state=e.state,this.event_=e,e.defaultPrevented&&this.preventDefault()},goog.events.BrowserEvent.prototype.isButton=function(e){return goog.events.BrowserFeature.HAS_W3C_BUTTON?this.event_.button==e:"click"==this.type?e==goog.events.BrowserEvent.MouseButton.LEFT:!!(this.event_.button&goog.events.BrowserEvent.IEButtonMap[e])},goog.events.BrowserEvent.prototype.isMouseActionButton=function(){return this.isButton(goog.events.BrowserEvent.MouseButton.LEFT)&&!(goog.userAgent.WEBKIT&&goog.userAgent.MAC&&this.ctrlKey)},goog.events.BrowserEvent.prototype.stopPropagation=function(){goog.events.BrowserEvent.superClass_.stopPropagation.call(this),this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0},goog.events.BrowserEvent.prototype.preventDefault=function(){goog.events.BrowserEvent.superClass_.preventDefault.call(this);var e=this.event_;if(e.preventDefault)e.preventDefault();else if(e.returnValue=!1,goog.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{(e.ctrlKey||112<=e.keyCode&&123>=e.keyCode)&&(e.keyCode=-1)}catch(o){}},goog.events.BrowserEvent.prototype.getBrowserEvent=function(){return this.event_},goog.events.Listenable=function(){},goog.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1e6*Math.random()|0),goog.events.Listenable.addImplementation=function(e){e.prototype[goog.events.Listenable.IMPLEMENTED_BY_PROP]=!0},goog.events.Listenable.isImplementedBy=function(e){return!(!e||!e[goog.events.Listenable.IMPLEMENTED_BY_PROP])},goog.events.ListenableKey=function(){},goog.events.ListenableKey.counter_=0,goog.events.ListenableKey.reserveKey=function(){return++goog.events.ListenableKey.counter_},goog.events.Listener=function(e,o,t,n,r,i){goog.events.Listener.ENABLE_MONITORING&&(this.creationStack=Error().stack),this.listener=e,this.proxy=o,this.src=t,this.type=n,this.capture=!!r,this.handler=i,this.key=goog.events.ListenableKey.reserveKey(),this.removed=this.callOnce=!1},goog.events.Listener.ENABLE_MONITORING=!1,goog.events.Listener.prototype.markAsRemoved=function(){this.removed=!0,this.handler=this.src=this.proxy=this.listener=null},goog.events.ListenerMap=function(e){this.src=e,this.listeners={},this.typeCount_=0},goog.events.ListenerMap.prototype.getTypeCount=function(){return this.typeCount_},goog.events.ListenerMap.prototype.getListenerCount=function(){var e,o=0;for(e in this.listeners)o+=this.listeners[e].length;return o},goog.events.ListenerMap.prototype.add=function(e,o,t,n,r){var i=e.toString();e=this.listeners[i],e||(e=this.listeners[i]=[],this.typeCount_++);var s=goog.events.ListenerMap.findListenerIndex_(e,o,n,r);return s>-1?(o=e[s],t||(o.callOnce=!1)):(o=new goog.events.Listener(o,null,this.src,i,!!n,r),o.callOnce=t,e.push(o)),o},goog.events.ListenerMap.prototype.remove=function(e,o,t,n){if(e=e.toString(),!(e in this.listeners))return!1;var r=this.listeners[e];return o=goog.events.ListenerMap.findListenerIndex_(r,o,t,n),o>-1?(r[o].markAsRemoved(),goog.array.removeAt(r,o),0==r.length&&(delete this.listeners[e],this.typeCount_--),!0):!1},goog.events.ListenerMap.prototype.removeByKey=function(e){var o=e.type;if(!(o in this.listeners))return!1;var t=goog.array.remove(this.listeners[o],e);return t&&(e.markAsRemoved(),0==this.listeners[o].length&&(delete this.listeners[o],this.typeCount_--)),t},goog.events.ListenerMap.prototype.removeAll=function(e){e=e&&e.toString();var o,t=0;for(o in this.listeners)if(!e||o==e){for(var n=this.listeners[o],r=0;r<n.length;r++)++t,n[r].markAsRemoved();delete this.listeners[o],this.typeCount_--}return t},goog.events.ListenerMap.prototype.getListeners=function(e,o){var t=this.listeners[e.toString()],n=[];if(t)for(var r=0;r<t.length;++r){var i=t[r];i.capture==o&&n.push(i)}return n},goog.events.ListenerMap.prototype.getListener=function(e,o,t,n){e=this.listeners[e.toString()];var r=-1;return e&&(r=goog.events.ListenerMap.findListenerIndex_(e,o,t,n)),r>-1?e[r]:null},goog.events.ListenerMap.prototype.hasListener=function(e,o){var t=goog.isDef(e),n=t?e.toString():"",r=goog.isDef(o);return goog.object.some(this.listeners,function(e,i){for(var s=0;s<e.length;++s)if(!(t&&e[s].type!=n||r&&e[s].capture!=o))return!0;return!1})},goog.events.ListenerMap.findListenerIndex_=function(e,o,t,n){for(var r=0;r<e.length;++r){var i=e[r];if(!i.removed&&i.listener==o&&i.capture==!!t&&i.handler==n)return r}return-1},goog.events.LISTENER_MAP_PROP_="closure_lm_"+(1e6*Math.random()|0),goog.events.onString_="on",goog.events.onStringMap_={},goog.events.CaptureSimulationMode={OFF_AND_FAIL:0,OFF_AND_SILENT:1,ON:2},goog.events.CAPTURE_SIMULATION_MODE=2,goog.events.listenerCountEstimate_=0,goog.events.listen=function(e,o,t,n,r){if(goog.isArray(o)){for(var i=0;i<o.length;i++)goog.events.listen(e,o[i],t,n,r);return null}return t=goog.events.wrapListener(t),goog.events.Listenable.isImplementedBy(e)?e.listen(o,t,n,r):goog.events.listen_(e,o,t,!1,n,r)},goog.events.listen_=function(e,o,t,n,r,i){if(!o)throw Error("Invalid event type");var s=!!r;if(s&&!goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){if(goog.events.CAPTURE_SIMULATION_MODE==goog.events.CaptureSimulationMode.OFF_AND_FAIL)return goog.asserts.fail("Can not register capture listener in IE8-."),null;if(goog.events.CAPTURE_SIMULATION_MODE==goog.events.CaptureSimulationMode.OFF_AND_SILENT)return null}var l=goog.events.getListenerMap_(e);if(l||(e[goog.events.LISTENER_MAP_PROP_]=l=new goog.events.ListenerMap(e)),t=l.add(o,t,n,r,i),t.proxy)return t;if(n=goog.events.getProxy(),t.proxy=n,n.src=e,n.listener=t,e.addEventListener)e.addEventListener(o.toString(),n,s);else{if(!e.attachEvent)throw Error("addEventListener and attachEvent are unavailable.");e.attachEvent(goog.events.getOnString_(o.toString()),n)}return goog.events.listenerCountEstimate_++,t},goog.events.getProxy=function(){var e=goog.events.handleBrowserEvent_,o=goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT?function(t){return e.call(o.src,o.listener,t)}:function(t){return t=e.call(o.src,o.listener,t),t?void 0:t};return o},goog.events.listenOnce=function(e,o,t,n,r){if(goog.isArray(o)){for(var i=0;i<o.length;i++)goog.events.listenOnce(e,o[i],t,n,r);return null}return t=goog.events.wrapListener(t),goog.events.Listenable.isImplementedBy(e)?e.listenOnce(o,t,n,r):goog.events.listen_(e,o,t,!0,n,r)},goog.events.listenWithWrapper=function(e,o,t,n,r){o.listen(e,t,n,r)},goog.events.unlisten=function(e,o,t,n,r){if(goog.isArray(o)){for(var i=0;i<o.length;i++)goog.events.unlisten(e,o[i],t,n,r);return null}return t=goog.events.wrapListener(t),goog.events.Listenable.isImplementedBy(e)?e.unlisten(o,t,n,r):e?(n=!!n,(e=goog.events.getListenerMap_(e))&&(o=e.getListener(o,t,n,r))?goog.events.unlistenByKey(o):!1):!1},goog.events.unlistenByKey=function(e){if(goog.isNumber(e)||!e||e.removed)return!1;var o=e.src;if(goog.events.Listenable.isImplementedBy(o))return o.unlistenByKey(e);var t=e.type,n=e.proxy;return o.removeEventListener?o.removeEventListener(t,n,e.capture):o.detachEvent&&o.detachEvent(goog.events.getOnString_(t),n),goog.events.listenerCountEstimate_--,(t=goog.events.getListenerMap_(o))?(t.removeByKey(e),0==t.getTypeCount()&&(t.src=null,o[goog.events.LISTENER_MAP_PROP_]=null)):e.markAsRemoved(),!0},goog.events.unlistenWithWrapper=function(e,o,t,n,r){o.unlisten(e,t,n,r)},goog.events.removeAll=function(e,o){if(!e)return 0;if(goog.events.Listenable.isImplementedBy(e))return e.removeAllListeners(o);var t=goog.events.getListenerMap_(e);if(!t)return 0;var n,r=0,i=o&&o.toString();for(n in t.listeners)if(!i||n==i)for(var s=t.listeners[n].concat(),l=0;l<s.length;++l)goog.events.unlistenByKey(s[l])&&++r;return r},goog.events.getListeners=function(e,o,t){return goog.events.Listenable.isImplementedBy(e)?e.getListeners(o,t):e&&(e=goog.events.getListenerMap_(e))?e.getListeners(o,t):[]},goog.events.getListener=function(e,o,t,n,r){return t=goog.events.wrapListener(t),n=!!n,goog.events.Listenable.isImplementedBy(e)?e.getListener(o,t,n,r):e&&(e=goog.events.getListenerMap_(e))?e.getListener(o,t,n,r):null},goog.events.hasListener=function(e,o,t){return goog.events.Listenable.isImplementedBy(e)?e.hasListener(o,t):(e=goog.events.getListenerMap_(e),!!e&&e.hasListener(o,t))},goog.events.expose=function(e){var o,t=[];for(o in e)e[o]&&e[o].id?t.push(o+" = "+e[o]+" ("+e[o].id+")"):t.push(o+" = "+e[o]);return t.join("\n")},goog.events.getOnString_=function(e){return e in goog.events.onStringMap_?goog.events.onStringMap_[e]:goog.events.onStringMap_[e]=goog.events.onString_+e},goog.events.fireListeners=function(e,o,t,n){return goog.events.Listenable.isImplementedBy(e)?e.fireListeners(o,t,n):goog.events.fireListeners_(e,o,t,n)},goog.events.fireListeners_=function(e,o,t,n){var r=!0;if((e=goog.events.getListenerMap_(e))&&(o=e.listeners[o.toString()]))for(o=o.concat(),e=0;e<o.length;e++){var i=o[e];i&&i.capture==t&&!i.removed&&(i=goog.events.fireListener(i,n),r=r&&!1!==i)}return r},goog.events.fireListener=function(e,o){var t=e.listener,n=e.handler||e.src;return e.callOnce&&goog.events.unlistenByKey(e),t.call(n,o)},goog.events.getTotalListenerCount=function(){return goog.events.listenerCountEstimate_},goog.events.dispatchEvent=function(e,o){return goog.asserts.assert(goog.events.Listenable.isImplementedBy(e),"Can not use goog.events.dispatchEvent with non-goog.events.Listenable instance."),e.dispatchEvent(o)},goog.events.protectBrowserEventEntryPoint=function(e){goog.events.handleBrowserEvent_=e.protectEntryPoint(goog.events.handleBrowserEvent_)},goog.events.handleBrowserEvent_=function(e,o){if(e.removed)return!0;if(!goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){var t=o||goog.getObjectByName("window.event"),n=new goog.events.BrowserEvent(t,this),r=!0;if(goog.events.CAPTURE_SIMULATION_MODE==goog.events.CaptureSimulationMode.ON){if(!goog.events.isMarkedIeEvent_(t)){goog.events.markIeEvent_(t);for(var t=[],i=n.currentTarget;i;i=i.parentNode)t.push(i);for(var i=e.type,s=t.length-1;!n.propagationStopped_&&s>=0;s--){n.currentTarget=t[s];var l=goog.events.fireListeners_(t[s],i,!0,n),r=r&&l}for(s=0;!n.propagationStopped_&&s<t.length;s++)n.currentTarget=t[s],l=goog.events.fireListeners_(t[s],i,!1,n),r=r&&l}}else r=goog.events.fireListener(e,n);return r}return goog.events.fireListener(e,new goog.events.BrowserEvent(o,this))},goog.events.markIeEvent_=function(e){var o=!1;if(0==e.keyCode)try{return void(e.keyCode=-1)}catch(t){o=!0}(o||void 0==e.returnValue)&&(e.returnValue=!0)},goog.events.isMarkedIeEvent_=function(e){return 0>e.keyCode||void 0!=e.returnValue},goog.events.uniqueIdCounter_=0,goog.events.getUniqueId=function(e){return e+"_"+goog.events.uniqueIdCounter_++},goog.events.getListenerMap_=function(e){return e=e[goog.events.LISTENER_MAP_PROP_],e instanceof goog.events.ListenerMap?e:null},goog.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1e9*Math.random()>>>0),goog.events.wrapListener=function(e){return goog.asserts.assert(e,"Listener can not be null."),goog.isFunction(e)?e:(goog.asserts.assert(e.handleEvent,"An object listener must have handleEvent method."),e[goog.events.LISTENER_WRAPPER_PROP_]||(e[goog.events.LISTENER_WRAPPER_PROP_]=function(o){return e.handleEvent(o)}),e[goog.events.LISTENER_WRAPPER_PROP_])},goog.debug.entryPointRegistry.register(function(e){goog.events.handleBrowserEvent_=e(goog.events.handleBrowserEvent_)}),goog.math={},goog.math.randomInt=function(e){return Math.floor(Math.random()*e)},goog.math.uniformRandom=function(e,o){return e+Math.random()*(o-e)},goog.math.clamp=function(e,o,t){return Math.min(Math.max(e,o),t)},goog.math.modulo=function(e,o){var t=e%o;return 0>t*o?t+o:t},goog.math.lerp=function(e,o,t){return e+t*(o-e)},goog.math.nearlyEquals=function(e,o,t){return Math.abs(e-o)<=(t||1e-6)},goog.math.standardAngle=function(e){return goog.math.modulo(e,360)},goog.math.standardAngleInRadians=function(e){return goog.math.modulo(e,2*Math.PI)},goog.math.toRadians=function(e){return e*Math.PI/180},goog.math.toDegrees=function(e){return 180*e/Math.PI},goog.math.angleDx=function(e,o){return o*Math.cos(goog.math.toRadians(e))},goog.math.angleDy=function(e,o){return o*Math.sin(goog.math.toRadians(e))},goog.math.angle=function(e,o,t,n){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(n-o,t-e)))},goog.math.angleDifference=function(e,o){var t=goog.math.standardAngle(o)-goog.math.standardAngle(e);return t>180?t-=360:-180>=t&&(t=360+t),t},goog.math.sign=function(e){return e>0?1:0>e?-1:e},goog.math.longestCommonSubsequence=function(e,o,t,n){t=t||function(e,o){return e==o},n=n||function(o,t){return e[o]};for(var r=e.length,i=o.length,s=[],l=0;r+1>l;l++)s[l]=[],s[l][0]=0;for(var g=0;i+1>g;g++)s[0][g]=0;for(l=1;r>=l;l++)for(g=1;i>=g;g++)t(e[l-1],o[g-1])?s[l][g]=s[l-1][g-1]+1:s[l][g]=Math.max(s[l-1][g],s[l][g-1]);for(var a=[],l=r,g=i;l>0&&g>0;)t(e[l-1],o[g-1])?(a.unshift(n(l-1,g-1)),l--,g--):s[l-1][g]>s[l][g-1]?l--:g--;return a},goog.math.sum=function(e){return goog.array.reduce(arguments,function(e,o){return e+o},0)},goog.math.average=function(e){return goog.math.sum.apply(null,arguments)/arguments.length},goog.math.sampleVariance=function(e){var o=arguments.length;if(2>o)return 0;var t=goog.math.average.apply(null,arguments);return goog.math.sum.apply(null,goog.array.map(arguments,function(e){return Math.pow(e-t,2)}))/(o-1)},goog.math.standardDeviation=function(e){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))},goog.math.isInt=function(e){return isFinite(e)&&0==e%1},goog.math.isFiniteNumber=function(e){return isFinite(e)&&!isNaN(e)},goog.math.isNegativeZero=function(e){return 0==e&&0>1/e},goog.math.log10Floor=function(e){if(e>0){var o=Math.round(Math.log(e)*Math.LOG10E);return o-(parseFloat("1e"+o)>e?1:0)}return 0==e?-(1/0):NaN},goog.math.safeFloor=function(e,o){return goog.asserts.assert(!goog.isDef(o)||o>0),Math.floor(e+(o||2e-15))},goog.math.safeCeil=function(e,o){return goog.asserts.assert(!goog.isDef(o)||o>0),Math.ceil(e-(o||2e-15))},goog.dom.BrowserFeature={CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO&&!goog.userAgent.IE||goog.userAgent.IE&&goog.userAgent.isDocumentModeOrHigher(9)||goog.userAgent.GECKO&&goog.userAgent.isVersionOrHigher("1.9.1"),CAN_USE_INNER_TEXT:goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),CAN_USE_PARENT_ELEMENT_PROPERTY:goog.userAgent.IE||goog.userAgent.OPERA||goog.userAgent.WEBKIT,INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE,LEGACY_IE_RANGES:goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(9)},goog.dom.TagName=function(e){this.tagName_=e},goog.dom.TagName.prototype.toString=function(){return this.tagName_},goog.dom.TagName.A=new goog.dom.TagName("A"),goog.dom.TagName.ABBR=new goog.dom.TagName("ABBR"),goog.dom.TagName.ACRONYM=new goog.dom.TagName("ACRONYM"),goog.dom.TagName.ADDRESS=new goog.dom.TagName("ADDRESS"),goog.dom.TagName.APPLET=new goog.dom.TagName("APPLET"),goog.dom.TagName.AREA=new goog.dom.TagName("AREA"),goog.dom.TagName.ARTICLE=new goog.dom.TagName("ARTICLE"),goog.dom.TagName.ASIDE=new goog.dom.TagName("ASIDE"),goog.dom.TagName.AUDIO=new goog.dom.TagName("AUDIO"),goog.dom.TagName.B=new goog.dom.TagName("B"),goog.dom.TagName.BASE=new goog.dom.TagName("BASE"),goog.dom.TagName.BASEFONT=new goog.dom.TagName("BASEFONT"),goog.dom.TagName.BDI=new goog.dom.TagName("BDI"),goog.dom.TagName.BDO=new goog.dom.TagName("BDO"),goog.dom.TagName.BIG=new goog.dom.TagName("BIG"),goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName("BLOCKQUOTE"),goog.dom.TagName.BODY=new goog.dom.TagName("BODY"),goog.dom.TagName.BR=new goog.dom.TagName("BR"),goog.dom.TagName.BUTTON=new goog.dom.TagName("BUTTON"),goog.dom.TagName.CANVAS=new goog.dom.TagName("CANVAS"),goog.dom.TagName.CAPTION=new goog.dom.TagName("CAPTION"),goog.dom.TagName.CENTER=new goog.dom.TagName("CENTER"),goog.dom.TagName.CITE=new goog.dom.TagName("CITE"),goog.dom.TagName.CODE=new goog.dom.TagName("CODE"),goog.dom.TagName.COL=new goog.dom.TagName("COL"),goog.dom.TagName.COLGROUP=new goog.dom.TagName("COLGROUP"),goog.dom.TagName.COMMAND=new goog.dom.TagName("COMMAND"),goog.dom.TagName.DATA=new goog.dom.TagName("DATA"),goog.dom.TagName.DATALIST=new goog.dom.TagName("DATALIST"),goog.dom.TagName.DD=new goog.dom.TagName("DD"),goog.dom.TagName.DEL=new goog.dom.TagName("DEL"),goog.dom.TagName.DETAILS=new goog.dom.TagName("DETAILS"),goog.dom.TagName.DFN=new goog.dom.TagName("DFN"),goog.dom.TagName.DIALOG=new goog.dom.TagName("DIALOG"),goog.dom.TagName.DIR=new goog.dom.TagName("DIR"),goog.dom.TagName.DIV=new goog.dom.TagName("DIV"),goog.dom.TagName.DL=new goog.dom.TagName("DL"),goog.dom.TagName.DT=new goog.dom.TagName("DT"),goog.dom.TagName.EM=new goog.dom.TagName("EM"),goog.dom.TagName.EMBED=new goog.dom.TagName("EMBED"),goog.dom.TagName.FIELDSET=new goog.dom.TagName("FIELDSET"),goog.dom.TagName.FIGCAPTION=new goog.dom.TagName("FIGCAPTION"),goog.dom.TagName.FIGURE=new goog.dom.TagName("FIGURE"),goog.dom.TagName.FONT=new goog.dom.TagName("FONT"),goog.dom.TagName.FOOTER=new goog.dom.TagName("FOOTER"),goog.dom.TagName.FORM=new goog.dom.TagName("FORM"),goog.dom.TagName.FRAME=new goog.dom.TagName("FRAME"),goog.dom.TagName.FRAMESET=new goog.dom.TagName("FRAMESET"),goog.dom.TagName.H1=new goog.dom.TagName("H1"),goog.dom.TagName.H2=new goog.dom.TagName("H2"),goog.dom.TagName.H3=new goog.dom.TagName("H3"),goog.dom.TagName.H4=new goog.dom.TagName("H4"),goog.dom.TagName.H5=new goog.dom.TagName("H5"),goog.dom.TagName.H6=new goog.dom.TagName("H6"),goog.dom.TagName.HEAD=new goog.dom.TagName("HEAD"),goog.dom.TagName.HEADER=new goog.dom.TagName("HEADER"),goog.dom.TagName.HGROUP=new goog.dom.TagName("HGROUP"),goog.dom.TagName.HR=new goog.dom.TagName("HR"),goog.dom.TagName.HTML=new goog.dom.TagName("HTML"),goog.dom.TagName.I=new goog.dom.TagName("I"),goog.dom.TagName.IFRAME=new goog.dom.TagName("IFRAME"),goog.dom.TagName.IMG=new goog.dom.TagName("IMG"),goog.dom.TagName.INPUT=new goog.dom.TagName("INPUT"),goog.dom.TagName.INS=new goog.dom.TagName("INS"),goog.dom.TagName.ISINDEX=new goog.dom.TagName("ISINDEX"),goog.dom.TagName.KBD=new goog.dom.TagName("KBD"),goog.dom.TagName.KEYGEN=new goog.dom.TagName("KEYGEN"),goog.dom.TagName.LABEL=new goog.dom.TagName("LABEL"),goog.dom.TagName.LEGEND=new goog.dom.TagName("LEGEND"),goog.dom.TagName.LI=new goog.dom.TagName("LI"),goog.dom.TagName.LINK=new goog.dom.TagName("LINK"),goog.dom.TagName.MAP=new goog.dom.TagName("MAP"),goog.dom.TagName.MARK=new goog.dom.TagName("MARK"),goog.dom.TagName.MATH=new goog.dom.TagName("MATH"),goog.dom.TagName.MENU=new goog.dom.TagName("MENU"),goog.dom.TagName.META=new goog.dom.TagName("META"),goog.dom.TagName.METER=new goog.dom.TagName("METER"),goog.dom.TagName.NAV=new goog.dom.TagName("NAV"),goog.dom.TagName.NOFRAMES=new goog.dom.TagName("NOFRAMES"),goog.dom.TagName.NOSCRIPT=new goog.dom.TagName("NOSCRIPT"),goog.dom.TagName.OBJECT=new goog.dom.TagName("OBJECT"),goog.dom.TagName.OL=new goog.dom.TagName("OL"),goog.dom.TagName.OPTGROUP=new goog.dom.TagName("OPTGROUP"),goog.dom.TagName.OPTION=new goog.dom.TagName("OPTION"),goog.dom.TagName.OUTPUT=new goog.dom.TagName("OUTPUT"),goog.dom.TagName.P=new goog.dom.TagName("P"),goog.dom.TagName.PARAM=new goog.dom.TagName("PARAM"),goog.dom.TagName.PRE=new goog.dom.TagName("PRE"),goog.dom.TagName.PROGRESS=new goog.dom.TagName("PROGRESS"),goog.dom.TagName.Q=new goog.dom.TagName("Q"),goog.dom.TagName.RP=new goog.dom.TagName("RP"),goog.dom.TagName.RT=new goog.dom.TagName("RT"),goog.dom.TagName.RUBY=new goog.dom.TagName("RUBY"),goog.dom.TagName.S=new goog.dom.TagName("S"),goog.dom.TagName.SAMP=new goog.dom.TagName("SAMP"),goog.dom.TagName.SCRIPT=new goog.dom.TagName("SCRIPT"),goog.dom.TagName.SECTION=new goog.dom.TagName("SECTION"),goog.dom.TagName.SELECT=new goog.dom.TagName("SELECT"),goog.dom.TagName.SMALL=new goog.dom.TagName("SMALL"),goog.dom.TagName.SOURCE=new goog.dom.TagName("SOURCE"),goog.dom.TagName.SPAN=new goog.dom.TagName("SPAN"),goog.dom.TagName.STRIKE=new goog.dom.TagName("STRIKE"),goog.dom.TagName.STRONG=new goog.dom.TagName("STRONG"),goog.dom.TagName.STYLE=new goog.dom.TagName("STYLE"),goog.dom.TagName.SUB=new goog.dom.TagName("SUB"),goog.dom.TagName.SUMMARY=new goog.dom.TagName("SUMMARY"),goog.dom.TagName.SUP=new goog.dom.TagName("SUP"),goog.dom.TagName.SVG=new goog.dom.TagName("SVG"),goog.dom.TagName.TABLE=new goog.dom.TagName("TABLE"),goog.dom.TagName.TBODY=new goog.dom.TagName("TBODY"),goog.dom.TagName.TD=new goog.dom.TagName("TD"),goog.dom.TagName.TEMPLATE=new goog.dom.TagName("TEMPLATE"),goog.dom.TagName.TEXTAREA=new goog.dom.TagName("TEXTAREA"),goog.dom.TagName.TFOOT=new goog.dom.TagName("TFOOT"),goog.dom.TagName.TH=new goog.dom.TagName("TH"),goog.dom.TagName.THEAD=new goog.dom.TagName("THEAD"),goog.dom.TagName.TIME=new goog.dom.TagName("TIME"),goog.dom.TagName.TITLE=new goog.dom.TagName("TITLE"),goog.dom.TagName.TR=new goog.dom.TagName("TR"),goog.dom.TagName.TRACK=new goog.dom.TagName("TRACK"),goog.dom.TagName.TT=new goog.dom.TagName("TT"),goog.dom.TagName.U=new goog.dom.TagName("U"),goog.dom.TagName.UL=new goog.dom.TagName("UL"),goog.dom.TagName.VAR=new goog.dom.TagName("VAR"),goog.dom.TagName.VIDEO=new goog.dom.TagName("VIDEO"),goog.dom.TagName.WBR=new goog.dom.TagName("WBR"),goog.dom.tags={},goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},goog.dom.tags.isVoidTag=function(e){return!0===goog.dom.tags.VOID_TAGS_[e]},goog.string.TypedString=function(){},goog.string.Const=function(){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_="",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"},goog.string.Const.unwrap=function(e){return e instanceof goog.string.Const&&e.constructor===goog.string.Const&&e.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?e.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got '"+e+"'"),"type_error:Const")},goog.string.Const.from=function(e){return goog.string.Const.create__googStringSecurityPrivate_(e)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.create__googStringSecurityPrivate_=function(e){var o=new goog.string.Const;return o.stringConstValueWithSecurityContract__googStringSecurityPrivate_=e,o},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.html={},goog.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="",this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyle.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyle.fromConstant=function(e){
-return e=goog.string.Const.unwrap(e),0===e.length?goog.html.SafeStyle.EMPTY:(goog.html.SafeStyle.checkStyle_(e),goog.asserts.assert(goog.string.endsWith(e,";"),"Last character of style string is not ';': "+e),goog.asserts.assert(goog.string.contains(e,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+e),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyle.checkStyle_=function(e){goog.asserts.assert(!/[<>]/.test(e),"Forbidden characters in style string: "+e)},goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_},goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"}),goog.html.SafeStyle.unwrap=function(e){return e instanceof goog.html.SafeStyle&&e.constructor===goog.html.SafeStyle&&e.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleWrappedValue_:(goog.asserts.fail("expected object of type SafeStyle, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyle")},goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_=e,this},goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(""),goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez",goog.html.SafeStyle.create=function(e){var o,t="";for(o in e){if(!/^[-_a-zA-Z0-9]+$/.test(o))throw Error("Name allows only [-_a-zA-Z0-9], got: "+o);var n=e[o];null!=n&&(n instanceof goog.string.Const?(n=goog.string.Const.unwrap(n),goog.asserts.assert(!/[{;}]/.test(n),"Value does not allow [{;}].")):goog.html.SafeStyle.VALUE_RE_.test(n)?goog.html.SafeStyle.hasBalancedQuotes_(n)||(goog.asserts.fail("String value requires balanced quotes, got: "+n),n=goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value allows only [-,.\"'%_!# a-zA-Z0-9], rgb() and rgba(), got: "+n),n=goog.html.SafeStyle.INNOCUOUS_STRING),t+=o+":"+n+";")}return t?(goog.html.SafeStyle.checkStyle_(t),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t)):goog.html.SafeStyle.EMPTY},goog.html.SafeStyle.hasBalancedQuotes_=function(e){for(var o=!0,t=!0,n=0;n<e.length;n++){var r=e.charAt(n);"'"==r&&t?o=!o:'"'==r&&o&&(t=!t)}return o&&t},goog.html.SafeStyle.VALUE_RE_=/^([-,."'%_!# a-zA-Z0-9]+|(?:rgb|hsl)a?\([0-9.%, ]+\))$/,goog.html.SafeStyle.concat=function(e){var o="",t=function(e){goog.isArray(e)?goog.array.forEach(e,t):o+=goog.html.SafeStyle.unwrap(e)};return goog.array.forEach(arguments,t),o?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(o):goog.html.SafeStyle.EMPTY},goog.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="",this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyleSheet.concat=function(e){var o="",t=function(e){goog.isArray(e)?goog.array.forEach(e,t):o+=goog.html.SafeStyleSheet.unwrap(e)};return goog.array.forEach(arguments,t),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(o)},goog.html.SafeStyleSheet.fromConstant=function(e){return e=goog.string.Const.unwrap(e),0===e.length?goog.html.SafeStyleSheet.EMPTY:(goog.asserts.assert(!goog.string.contains(e,"<"),"Forbidden '<' character in style sheet string: "+e),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_},goog.DEBUG&&(goog.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"}),goog.html.SafeStyleSheet.unwrap=function(e){return e instanceof goog.html.SafeStyleSheet&&e.constructor===goog.html.SafeStyleSheet&&e.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_:(goog.asserts.fail("expected object of type SafeStyleSheet, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyleSheet")},goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=e,this},goog.html.SafeStyleSheet.EMPTY=goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(e){return goog.fs.url.getUrlObject_().createObjectURL(e)},goog.fs.url.revokeObjectUrl=function(e){goog.fs.url.getUrlObject_().revokeObjectURL(e)},goog.fs.url.getUrlObject_=function(){var e=goog.fs.url.findUrlObject_();if(null!=e)return e;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()},goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4)),goog.i18n.bidi.Format={LRE:"âª",RLE:"â«",PDF:"â¬",LRM:"â",RLM:"â"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(e,o){return"number"==typeof e?e>0?goog.i18n.bidi.Dir.LTR:0>e?goog.i18n.bidi.Dir.RTL:o?null:goog.i18n.bidi.Dir.NEUTRAL:null==e?null:e?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÃ-ÃÃ-Ã¶Ã¸-Ê¸Ì-Öà -á¿¿ââ°-ï¬ï¸-ï¹¯ï»½-ï¿¿",goog.i18n.bidi.rtlChars_="Ö-Û¯Ûº-ß¿âï¬-ï·¿ï¹°-ï»¼",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(e,o){return o?e.replace(goog.i18n.bidi.htmlSkipReg_,""):e},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(e,o){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(e,o){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(e){return goog.i18n.bidi.rtlRe_.test(e)},goog.i18n.bidi.isLtrChar=function(e){return goog.i18n.bidi.ltrRe_.test(e)},goog.i18n.bidi.isNeutralChar=function(e){return!goog.i18n.bidi.isLtrChar(e)&&!goog.i18n.bidi.isRtlChar(e)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(e,o){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(e,o){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(e,o){return e=goog.i18n.bidi.stripHtmlIfNeeded_(e,o),goog.i18n.bidi.isRequiredLtrRe_.test(e)||!goog.i18n.bidi.hasAnyLtr(e)&&!goog.i18n.bidi.hasAnyRtl(e)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(e,o){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(e,o){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(e){return goog.i18n.bidi.rtlLocalesRe_.test(e)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(e,o){var t=(void 0===o?goog.i18n.bidi.hasAnyRtl(e):o)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM;return e.replace(goog.i18n.bidi.bracketGuardTextRe_,t+"$&"+t)},goog.i18n.bidi.enforceRtlInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+e+"</span>"},goog.i18n.bidi.enforceRtlInText=function(e){return goog.i18n.bidi.Format.RLE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+e+"</span>"},goog.i18n.bidi.enforceLtrInText=function(e){return goog.i18n.bidi.Format.LRE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(e){return e.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(e){return e.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1×´").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1×³")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(e,o){for(var t=0,n=0,r=!1,i=goog.i18n.bidi.stripHtmlIfNeeded_(e,o).split(goog.i18n.bidi.wordSeparatorRe_),s=0;s<i.length;s++){var l=i[s];goog.i18n.bidi.startsWithRtl(l)?(t++,n++):goog.i18n.bidi.isRequiredLtrRe_.test(l)?r=!0:goog.i18n.bidi.hasAnyLtr(l)?n++:goog.i18n.bidi.hasNumeralsRe_.test(l)&&(r=!0)}return 0==n?r?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:t/n>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(e,o){return goog.i18n.bidi.estimateDirection(e,o)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(e,o){e&&(o=goog.i18n.bidi.toDir(o))&&(e.style.textAlign=o==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,e.dir=o==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(e,o){switch(goog.i18n.bidi.estimateDirection(o)){case goog.i18n.bidi.Dir.LTR:e.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:e.dir="rtl";break;default:e.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(e){return e instanceof goog.html.SafeUrl&&e.constructor===goog.html.SafeUrl&&e.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeHtmlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm))$/i,goog.html.SafeUrl.fromBlob=function(e){return e=goog.html.SAFE_MIME_TYPE_PATTERN_.test(e.type)?goog.fs.url.createObjectUrl(e):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.DATA_URL_PATTERN_=/^data:([^;,]*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(e){var o=e.match(goog.html.DATA_URL_PATTERN_),o=o&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(o[1]);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o?e:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(e){return goog.string.caseInsensitiveStartsWith(e,"tel:")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^&:\/?#]*(?:[\/?#]|$))/i,goog.html.SafeUrl.sanitize=function(e){return e instanceof goog.html.SafeUrl?e:(e=e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SAFE_URL_PATTERN_.test(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(e){var o=new goog.html.SafeUrl;return o.privateDoNotAccessOrElseSafeHtmlWrappedValue_=e,o},goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank"),goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="",this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(e){return e instanceof goog.html.TrustedResourceUrl&&e.constructor===goog.html.TrustedResourceUrl&&e.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.format=function(e,o){var t=goog.string.Const.unwrap(e);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(t))throw Error("Invalid TrustedResourceUrl format: "+t);var n=t.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(e,n){if(!Object.prototype.hasOwnProperty.call(o,n))throw Error('Found marker, "'+n+'", in format string, "'+t+'", but no valid label mapping found in args: '+JSON.stringify(o));var r=o[n];return r instanceof goog.string.Const?goog.string.Const.unwrap(r):encodeURIComponent(String(r))});return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(n)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.SCHEME_AND_ORIGIN_="(?:(?:https:)?//[0-9a-z.:[\\]-]+)?",goog.html.TrustedResourceUrl.BASE_ABSOLUTE_PATH_="(?:/[0-9a-z_~-]+(?:[/#?]|$))",goog.html.TrustedResourceUrl.BASE_URL_=new RegExp("^"+goog.html.TrustedResourceUrl.SCHEME_AND_ORIGIN_+goog.html.TrustedResourceUrl.BASE_ABSOLUTE_PATH_,"i"),goog.html.TrustedResourceUrl.fromConstant=function(e){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.TrustedResourceUrl.fromConstants=function(e){for(var o="",t=0;t<e.length;t++)o+=goog.string.Const.unwrap(e[t]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(o)},goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(e){var o=new goog.html.TrustedResourceUrl;return o.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=e,o},goog.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="",this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_,this.dir_=null},goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_},goog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0,goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_},goog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"}),goog.html.SafeHtml.unwrap=function(e){return e instanceof goog.html.SafeHtml&&e.constructor===goog.html.SafeHtml&&e.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeHtmlWrappedValue_:(goog.asserts.fail("expected object of type SafeHtml, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeHtml")},goog.html.SafeHtml.htmlEscape=function(e){if(e instanceof goog.html.SafeHtml)return e;var o=null;return e.implementsGoogI18nBidiDirectionalString&&(o=e.getDirection()),e=e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.htmlEscape(e),o)},goog.html.SafeHtml.htmlEscapePreservingNewlines=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.newLineToBr(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.whitespaceEscape(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape,goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/,goog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0},goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.html.SafeHtml.create=function(e,o,t){return goog.html.SafeHtml.verifyTagName(String(e)),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(e),o,t)},goog.html.SafeHtml.verifyTagName=function(e){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error("Invalid tag name <"+e+">.");if(e.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+e+"> is not allowed for SafeHtml.")},goog.html.SafeHtml.createIframe=function(e,o,t,n){e&&goog.html.TrustedResourceUrl.unwrap(e);var r={};return r.src=e||null,r.srcdoc=o&&goog.html.SafeHtml.unwrap(o),e=goog.html.SafeHtml.combineAttributes(r,{sandbox:""},t),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,n)},goog.html.SafeHtml.createSandboxIframe=function(e,o,t,n){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var r={};return r.src=e?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e)):null,r.srcdoc=o||null,r.sandbox="",e=goog.html.SafeHtml.combineAttributes(r,{},t),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,n)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(e,o){goog.html.TrustedResourceUrl.unwrap(e);var t=goog.html.SafeHtml.combineAttributes({src:e},{},o);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",t)},goog.html.SafeHtml.createStyle=function(e,o){var t=goog.html.SafeHtml.combineAttributes({type:"text/css"},{},o),n="";e=goog.array.concat(e);for(var r=0;r<e.length;r++)n+=goog.html.SafeStyleSheet.unwrap(e[r]);return n=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",t,n)},goog.html.SafeHtml.createMetaRefresh=function(e,o){var t=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e));return(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.contains(t,";")&&(t="'"+t.replace(/'/g,"%27")+"'"),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(o||0)+"; url="+t})},goog.html.SafeHtml.getAttrNameAndValue_=function(e,o,t){if(t instanceof goog.string.Const)t=goog.string.Const.unwrap(t);else if("style"==o.toLowerCase())t=goog.html.SafeHtml.getStyleValue_(t);else{if(/^on/i.test(o))throw Error('Attribute "'+o+'" requires goog.string.Const value, "'+t+'" given.');if(o.toLowerCase()in goog.html.SafeHtml.URL_ATTRIBUTES_)if(t instanceof goog.html.TrustedResourceUrl)t=goog.html.TrustedResourceUrl.unwrap(t);else if(t instanceof goog.html.SafeUrl)t=goog.html.SafeUrl.unwrap(t);else{if(!goog.isString(t))throw Error('Attribute "'+o+'" on tag "'+e+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+t+'" given.');t=goog.html.SafeUrl.sanitize(t).getTypedStringValue()}}return t.implementsGoogStringTypedString&&(t=t.getTypedStringValue()),goog.asserts.assert(goog.isString(t)||goog.isNumber(t),"String or number value expected, got "+typeof t+" with value: "+t),o+'="'+goog.string.htmlEscape(String(t))+'"'},goog.html.SafeHtml.getStyleValue_=function(e){if(!goog.isObject(e))throw Error('The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof e+" given: "+e);return e instanceof goog.html.SafeStyle||(e=goog.html.SafeStyle.create(e)),goog.html.SafeStyle.unwrap(e)},goog.html.SafeHtml.createWithDir=function(e,o,t,n){return o=goog.html.SafeHtml.create(o,t,n),o.dir_=e,o},goog.html.SafeHtml.concat=function(e){var o=goog.i18n.bidi.Dir.NEUTRAL,t="",n=function(e){goog.isArray(e)?goog.array.forEach(e,n):(e=goog.html.SafeHtml.htmlEscape(e),t+=goog.html.SafeHtml.unwrap(e),e=e.getDirection(),o==goog.i18n.bidi.Dir.NEUTRAL?o=e:e!=goog.i18n.bidi.Dir.NEUTRAL&&o!=e&&(o=null))};return goog.array.forEach(arguments,n),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(t,o)},goog.html.SafeHtml.concatWithDir=function(e,o){var t=goog.html.SafeHtml.concat(goog.array.slice(arguments,1));return t.dir_=e,t},goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(e,o){return(new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(e,o)},goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e,o){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=e,this.dir_=o,this},goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(e,o,t){var n,r=null;return n="<"+e+goog.html.SafeHtml.stringifyAttributes(e,o),goog.isDefAndNotNull(t)?goog.isArray(t)||(t=[t]):t=[],goog.dom.tags.isVoidTag(e.toLowerCase())?(goog.asserts.assert(!t.length,"Void tag <"+e+"> does not allow content."),n+=">"):(r=goog.html.SafeHtml.concat(t),n+=">"+goog.html.SafeHtml.unwrap(r)+"</"+e+">",r=r.getDirection()),(e=o&&o.dir)&&(r=/^(ltr|rtl|auto)$/i.test(e)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n,r)},goog.html.SafeHtml.stringifyAttributes=function(e,o){var t="";if(o)for(var n in o){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(n))throw Error('Invalid attribute name "'+n+'".');var r=o[n];goog.isDefAndNotNull(r)&&(t+=" "+goog.html.SafeHtml.getAttrNameAndValue_(e,n,r))}return t},goog.html.SafeHtml.combineAttributes=function(e,o,t){var n,r={};for(n in e)goog.asserts.assert(n.toLowerCase()==n,"Must be lower case"),r[n]=e[n];for(n in o)goog.asserts.assert(n.toLowerCase()==n,"Must be lower case"),r[n]=o[n];for(n in t){var i=n.toLowerCase();if(i in e)throw Error('Cannot override "'+i+'" attribute, got "'+n+'" with value "'+t[n]+'"');i in o&&delete r[i],r[n]=t[n]}return r},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",goog.i18n.bidi.Dir.NEUTRAL),goog.dom.safe={},goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"},goog.dom.safe.insertAdjacentHtml=function(e,o,t){e.insertAdjacentHTML(o,goog.html.SafeHtml.unwrap(t))},goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.dom.safe.setInnerHtml=function(e,o){if(goog.asserts.ENABLE_ASSERTS){var t=e.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[t])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+e.tagName+".")}e.innerHTML=goog.html.SafeHtml.unwrap(o)},goog.dom.safe.setOuterHtml=function(e,o){e.outerHTML=goog.html.SafeHtml.unwrap(o)},goog.dom.safe.setStyle=function(e,o){e.style.cssText=goog.html.SafeStyle.unwrap(o)},goog.dom.safe.documentWrite=function(e,o){e.write(goog.html.SafeHtml.unwrap(o))},goog.dom.safe.setAnchorHref=function(e,o){goog.dom.safe.assertIsHTMLAnchorElement_(e);var t;t=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitize(o),e.href=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setImageSrc=function(e,o){goog.dom.safe.assertIsHTMLImageElement_(e);var t;t=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitize(o),e.src=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setEmbedSrc=function(e,o){goog.dom.safe.assertIsHTMLEmbedElement_(e),e.src=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setFrameSrc=function(e,o){goog.dom.safe.assertIsHTMLFrameElement_(e),e.src=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setIframeSrc=function(e,o){goog.dom.safe.assertIsHTMLIFrameElement_(e),e.src=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setLinkHrefAndRel=function(e,o,t){goog.dom.safe.assertIsHTMLLinkElement_(e),e.rel=t,goog.string.caseInsensitiveContains(t,"stylesheet")?(goog.asserts.assert(o instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),e.href=goog.html.TrustedResourceUrl.unwrap(o)):e.href=o instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrap(o):o instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(o):goog.html.SafeUrl.sanitize(o).getTypedStringValue()},goog.dom.safe.setObjectData=function(e,o){goog.dom.safe.assertIsHTMLObjectElement_(e),e.data=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setScriptSrc=function(e,o){goog.dom.safe.assertIsHTMLScriptElement_(e),e.src=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setLocationHref=function(e,o){goog.dom.safe.assertIsLocation_(e);var t;t=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitize(o),e.href=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.openInWindow=function(e,o,t,n,r){return e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitize(e),(o||window).open(goog.html.SafeUrl.unwrap(e),t?goog.string.Const.unwrap(t):"",n,r)},goog.dom.safe.assertIsLocation_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof Location||!(e instanceof Element)),"Argument is not a Location (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLAnchorElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLAnchorElement&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLAnchorElement||!(e instanceof Location||e instanceof Element)),"Argument is not a HTMLAnchorElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLLinkElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLLinkElement&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLLinkElement||!(e instanceof Location||e instanceof Element)),"Argument is not a HTMLLinkElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLImageElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLImageElement&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLImageElement||!(e instanceof Element)),"Argument is not a HTMLImageElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLEmbedElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLEmbedElement&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLEmbedElement||!(e instanceof Element)),"Argument is not a HTMLEmbedElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLFrameElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLFrameElement&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLFrameElement||!(e instanceof Element)),"Argument is not a HTMLFrameElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLIFrameElement_=function(e){
+return e=goog.string.Const.unwrap(e),0===e.length?goog.html.SafeStyle.EMPTY:(goog.html.SafeStyle.checkStyle_(e),goog.asserts.assert(goog.string.endsWith(e,";"),"Last character of style string is not ';': "+e),goog.asserts.assert(goog.string.contains(e,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+e),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyle.checkStyle_=function(e){goog.asserts.assert(!/[<>]/.test(e),"Forbidden characters in style string: "+e)},goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_},goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"}),goog.html.SafeStyle.unwrap=function(e){return e instanceof goog.html.SafeStyle&&e.constructor===goog.html.SafeStyle&&e.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleWrappedValue_:(goog.asserts.fail("expected object of type SafeStyle, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyle")},goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_=e,this},goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(""),goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez",goog.html.SafeStyle.create=function(e){var o,t="";for(o in e){if(!/^[-_a-zA-Z0-9]+$/.test(o))throw Error("Name allows only [-_a-zA-Z0-9], got: "+o);var n=e[o];null!=n&&(n instanceof goog.string.Const?(n=goog.string.Const.unwrap(n),goog.asserts.assert(!/[{;}]/.test(n),"Value does not allow [{;}].")):goog.html.SafeStyle.VALUE_RE_.test(n)?goog.html.SafeStyle.hasBalancedQuotes_(n)||(goog.asserts.fail("String value requires balanced quotes, got: "+n),n=goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value allows only [-,.\"'%_!# a-zA-Z0-9], rgb() and rgba(), got: "+n),n=goog.html.SafeStyle.INNOCUOUS_STRING),t+=o+":"+n+";")}return t?(goog.html.SafeStyle.checkStyle_(t),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t)):goog.html.SafeStyle.EMPTY},goog.html.SafeStyle.hasBalancedQuotes_=function(e){for(var o=!0,t=!0,n=0;n<e.length;n++){var r=e.charAt(n);"'"==r&&t?o=!o:'"'==r&&o&&(t=!t)}return o&&t},goog.html.SafeStyle.VALUE_RE_=/^([-,."'%_!# a-zA-Z0-9]+|(?:rgb|hsl)a?\([0-9.%, ]+\))$/,goog.html.SafeStyle.concat=function(e){var o="",t=function(e){goog.isArray(e)?goog.array.forEach(e,t):o+=goog.html.SafeStyle.unwrap(e)};return goog.array.forEach(arguments,t),o?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(o):goog.html.SafeStyle.EMPTY},goog.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="",this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyleSheet.concat=function(e){var o="",t=function(e){goog.isArray(e)?goog.array.forEach(e,t):o+=goog.html.SafeStyleSheet.unwrap(e)};return goog.array.forEach(arguments,t),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(o)},goog.html.SafeStyleSheet.fromConstant=function(e){return e=goog.string.Const.unwrap(e),0===e.length?goog.html.SafeStyleSheet.EMPTY:(goog.asserts.assert(!goog.string.contains(e,"<"),"Forbidden '<' character in style sheet string: "+e),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_},goog.DEBUG&&(goog.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"}),goog.html.SafeStyleSheet.unwrap=function(e){return e instanceof goog.html.SafeStyleSheet&&e.constructor===goog.html.SafeStyleSheet&&e.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_:(goog.asserts.fail("expected object of type SafeStyleSheet, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyleSheet")},goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=e,this},goog.html.SafeStyleSheet.EMPTY=goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(e){return goog.fs.url.getUrlObject_().createObjectURL(e)},goog.fs.url.revokeObjectUrl=function(e){goog.fs.url.getUrlObject_().revokeObjectURL(e)},goog.fs.url.getUrlObject_=function(){var e=goog.fs.url.findUrlObject_();if(null!=e)return e;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()},goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4)),goog.i18n.bidi.Format={LRE:"‪",RLE:"‫",PDF:"‬",LRM:"‎",RLM:"‏"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(e,o){return"number"==typeof e?e>0?goog.i18n.bidi.Dir.LTR:0>e?goog.i18n.bidi.Dir.RTL:o?null:goog.i18n.bidi.Dir.NEUTRAL:null==e?null:e?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ࠀ-῿‎Ⰰ-﬜︀-﹯﻽-",goog.i18n.bidi.rtlChars_="֑-ۯۺ-߿‏יִ-﷿ﹰ-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(e,o){return o?e.replace(goog.i18n.bidi.htmlSkipReg_,""):e},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(e,o){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(e,o){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(e){return goog.i18n.bidi.rtlRe_.test(e)},goog.i18n.bidi.isLtrChar=function(e){return goog.i18n.bidi.ltrRe_.test(e)},goog.i18n.bidi.isNeutralChar=function(e){return!goog.i18n.bidi.isLtrChar(e)&&!goog.i18n.bidi.isRtlChar(e)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(e,o){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(e,o){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(e,o){return e=goog.i18n.bidi.stripHtmlIfNeeded_(e,o),goog.i18n.bidi.isRequiredLtrRe_.test(e)||!goog.i18n.bidi.hasAnyLtr(e)&&!goog.i18n.bidi.hasAnyRtl(e)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(e,o){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(e,o){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,o))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(e){return goog.i18n.bidi.rtlLocalesRe_.test(e)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(e,o){var t=(void 0===o?goog.i18n.bidi.hasAnyRtl(e):o)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM;return e.replace(goog.i18n.bidi.bracketGuardTextRe_,t+"$&"+t)},goog.i18n.bidi.enforceRtlInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+e+"</span>"},goog.i18n.bidi.enforceRtlInText=function(e){return goog.i18n.bidi.Format.RLE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+e+"</span>"},goog.i18n.bidi.enforceLtrInText=function(e){return goog.i18n.bidi.Format.LRE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(e){return e.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(e){return e.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(e,o){for(var t=0,n=0,r=!1,i=goog.i18n.bidi.stripHtmlIfNeeded_(e,o).split(goog.i18n.bidi.wordSeparatorRe_),s=0;s<i.length;s++){var l=i[s];goog.i18n.bidi.startsWithRtl(l)?(t++,n++):goog.i18n.bidi.isRequiredLtrRe_.test(l)?r=!0:goog.i18n.bidi.hasAnyLtr(l)?n++:goog.i18n.bidi.hasNumeralsRe_.test(l)&&(r=!0)}return 0==n?r?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:t/n>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(e,o){return goog.i18n.bidi.estimateDirection(e,o)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(e,o){e&&(o=goog.i18n.bidi.toDir(o))&&(e.style.textAlign=o==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,e.dir=o==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(e,o){switch(goog.i18n.bidi.estimateDirection(o)){case goog.i18n.bidi.Dir.LTR:e.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:e.dir="rtl";break;default:e.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(e){return e instanceof goog.html.SafeUrl&&e.constructor===goog.html.SafeUrl&&e.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeHtmlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm))$/i,goog.html.SafeUrl.fromBlob=function(e){return e=goog.html.SAFE_MIME_TYPE_PATTERN_.test(e.type)?goog.fs.url.createObjectUrl(e):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.DATA_URL_PATTERN_=/^data:([^;,]*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(e){var o=e.match(goog.html.DATA_URL_PATTERN_),o=o&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(o[1]);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o?e:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(e){return goog.string.caseInsensitiveStartsWith(e,"tel:")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^&:\/?#]*(?:[\/?#]|$))/i,goog.html.SafeUrl.sanitize=function(e){return e instanceof goog.html.SafeUrl?e:(e=e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SAFE_URL_PATTERN_.test(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(e){var o=new goog.html.SafeUrl;return o.privateDoNotAccessOrElseSafeHtmlWrappedValue_=e,o},goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank"),goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="",this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(e){return e instanceof goog.html.TrustedResourceUrl&&e.constructor===goog.html.TrustedResourceUrl&&e.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.format=function(e,o){var t=goog.string.Const.unwrap(e);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(t))throw Error("Invalid TrustedResourceUrl format: "+t);var n=t.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(e,n){if(!Object.prototype.hasOwnProperty.call(o,n))throw Error('Found marker, "'+n+'", in format string, "'+t+'", but no valid label mapping found in args: '+JSON.stringify(o));var r=o[n];return r instanceof goog.string.Const?goog.string.Const.unwrap(r):encodeURIComponent(String(r))});return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(n)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.SCHEME_AND_ORIGIN_="(?:(?:https:)?//[0-9a-z.:[\\]-]+)?",goog.html.TrustedResourceUrl.BASE_ABSOLUTE_PATH_="(?:/[0-9a-z_~-]+(?:[/#?]|$))",goog.html.TrustedResourceUrl.BASE_URL_=new RegExp("^"+goog.html.TrustedResourceUrl.SCHEME_AND_ORIGIN_+goog.html.TrustedResourceUrl.BASE_ABSOLUTE_PATH_,"i"),goog.html.TrustedResourceUrl.fromConstant=function(e){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.TrustedResourceUrl.fromConstants=function(e){for(var o="",t=0;t<e.length;t++)o+=goog.string.Const.unwrap(e[t]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(o)},goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(e){var o=new goog.html.TrustedResourceUrl;return o.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=e,o},goog.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="",this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_,this.dir_=null},goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_},goog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0,goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_},goog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"}),goog.html.SafeHtml.unwrap=function(e){return e instanceof goog.html.SafeHtml&&e.constructor===goog.html.SafeHtml&&e.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeHtmlWrappedValue_:(goog.asserts.fail("expected object of type SafeHtml, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeHtml")},goog.html.SafeHtml.htmlEscape=function(e){if(e instanceof goog.html.SafeHtml)return e;var o=null;return e.implementsGoogI18nBidiDirectionalString&&(o=e.getDirection()),e=e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.htmlEscape(e),o)},goog.html.SafeHtml.htmlEscapePreservingNewlines=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.newLineToBr(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.whitespaceEscape(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape,goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/,goog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0},goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.html.SafeHtml.create=function(e,o,t){return goog.html.SafeHtml.verifyTagName(String(e)),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(e),o,t)},goog.html.SafeHtml.verifyTagName=function(e){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error("Invalid tag name <"+e+">.");if(e.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+e+"> is not allowed for SafeHtml.")},goog.html.SafeHtml.createIframe=function(e,o,t,n){e&&goog.html.TrustedResourceUrl.unwrap(e);var r={};return r.src=e||null,r.srcdoc=o&&goog.html.SafeHtml.unwrap(o),e=goog.html.SafeHtml.combineAttributes(r,{sandbox:""},t),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,n)},goog.html.SafeHtml.createSandboxIframe=function(e,o,t,n){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var r={};return r.src=e?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e)):null,r.srcdoc=o||null,r.sandbox="",e=goog.html.SafeHtml.combineAttributes(r,{},t),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,n)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(e,o){goog.html.TrustedResourceUrl.unwrap(e);var t=goog.html.SafeHtml.combineAttributes({src:e},{},o);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",t)},goog.html.SafeHtml.createStyle=function(e,o){var t=goog.html.SafeHtml.combineAttributes({type:"text/css"},{},o),n="";e=goog.array.concat(e);for(var r=0;r<e.length;r++)n+=goog.html.SafeStyleSheet.unwrap(e[r]);return n=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",t,n)},goog.html.SafeHtml.createMetaRefresh=function(e,o){var t=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e));return(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.contains(t,";")&&(t="'"+t.replace(/'/g,"%27")+"'"),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(o||0)+"; url="+t})},goog.html.SafeHtml.getAttrNameAndValue_=function(e,o,t){if(t instanceof goog.string.Const)t=goog.string.Const.unwrap(t);else if("style"==o.toLowerCase())t=goog.html.SafeHtml.getStyleValue_(t);else{if(/^on/i.test(o))throw Error('Attribute "'+o+'" requires goog.string.Const value, "'+t+'" given.');if(o.toLowerCase()in goog.html.SafeHtml.URL_ATTRIBUTES_)if(t instanceof goog.html.TrustedResourceUrl)t=goog.html.TrustedResourceUrl.unwrap(t);else if(t instanceof goog.html.SafeUrl)t=goog.html.SafeUrl.unwrap(t);else{if(!goog.isString(t))throw Error('Attribute "'+o+'" on tag "'+e+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+t+'" given.');t=goog.html.SafeUrl.sanitize(t).getTypedStringValue()}}return t.implementsGoogStringTypedString&&(t=t.getTypedStringValue()),goog.asserts.assert(goog.isString(t)||goog.isNumber(t),"String or number value expected, got "+typeof t+" with value: "+t),o+'="'+goog.string.htmlEscape(String(t))+'"'},goog.html.SafeHtml.getStyleValue_=function(e){if(!goog.isObject(e))throw Error('The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof e+" given: "+e);return e instanceof goog.html.SafeStyle||(e=goog.html.SafeStyle.create(e)),goog.html.SafeStyle.unwrap(e)},goog.html.SafeHtml.createWithDir=function(e,o,t,n){return o=goog.html.SafeHtml.create(o,t,n),o.dir_=e,o},goog.html.SafeHtml.concat=function(e){var o=goog.i18n.bidi.Dir.NEUTRAL,t="",n=function(e){goog.isArray(e)?goog.array.forEach(e,n):(e=goog.html.SafeHtml.htmlEscape(e),t+=goog.html.SafeHtml.unwrap(e),e=e.getDirection(),o==goog.i18n.bidi.Dir.NEUTRAL?o=e:e!=goog.i18n.bidi.Dir.NEUTRAL&&o!=e&&(o=null))};return goog.array.forEach(arguments,n),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(t,o)},goog.html.SafeHtml.concatWithDir=function(e,o){var t=goog.html.SafeHtml.concat(goog.array.slice(arguments,1));return t.dir_=e,t},goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(e,o){return(new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(e,o)},goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e,o){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=e,this.dir_=o,this},goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(e,o,t){var n,r=null;return n="<"+e+goog.html.SafeHtml.stringifyAttributes(e,o),goog.isDefAndNotNull(t)?goog.isArray(t)||(t=[t]):t=[],goog.dom.tags.isVoidTag(e.toLowerCase())?(goog.asserts.assert(!t.length,"Void tag <"+e+"> does not allow content."),n+=">"):(r=goog.html.SafeHtml.concat(t),n+=">"+goog.html.SafeHtml.unwrap(r)+"</"+e+">",r=r.getDirection()),(e=o&&o.dir)&&(r=/^(ltr|rtl|auto)$/i.test(e)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n,r)},goog.html.SafeHtml.stringifyAttributes=function(e,o){var t="";if(o)for(var n in o){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(n))throw Error('Invalid attribute name "'+n+'".');var r=o[n];goog.isDefAndNotNull(r)&&(t+=" "+goog.html.SafeHtml.getAttrNameAndValue_(e,n,r))}return t},goog.html.SafeHtml.combineAttributes=function(e,o,t){var n,r={};for(n in e)goog.asserts.assert(n.toLowerCase()==n,"Must be lower case"),r[n]=e[n];for(n in o)goog.asserts.assert(n.toLowerCase()==n,"Must be lower case"),r[n]=o[n];for(n in t){var i=n.toLowerCase();if(i in e)throw Error('Cannot override "'+i+'" attribute, got "'+n+'" with value "'+t[n]+'"');i in o&&delete r[i],r[n]=t[n]}return r},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",goog.i18n.bidi.Dir.NEUTRAL),goog.dom.safe={},goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"},goog.dom.safe.insertAdjacentHtml=function(e,o,t){e.insertAdjacentHTML(o,goog.html.SafeHtml.unwrap(t))},goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.dom.safe.setInnerHtml=function(e,o){if(goog.asserts.ENABLE_ASSERTS){var t=e.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[t])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+e.tagName+".")}e.innerHTML=goog.html.SafeHtml.unwrap(o)},goog.dom.safe.setOuterHtml=function(e,o){e.outerHTML=goog.html.SafeHtml.unwrap(o)},goog.dom.safe.setStyle=function(e,o){e.style.cssText=goog.html.SafeStyle.unwrap(o)},goog.dom.safe.documentWrite=function(e,o){e.write(goog.html.SafeHtml.unwrap(o))},goog.dom.safe.setAnchorHref=function(e,o){goog.dom.safe.assertIsHTMLAnchorElement_(e);var t;t=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitize(o),e.href=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setImageSrc=function(e,o){goog.dom.safe.assertIsHTMLImageElement_(e);var t;t=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitize(o),e.src=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setEmbedSrc=function(e,o){goog.dom.safe.assertIsHTMLEmbedElement_(e),e.src=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setFrameSrc=function(e,o){goog.dom.safe.assertIsHTMLFrameElement_(e),e.src=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setIframeSrc=function(e,o){goog.dom.safe.assertIsHTMLIFrameElement_(e),e.src=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setLinkHrefAndRel=function(e,o,t){goog.dom.safe.assertIsHTMLLinkElement_(e),e.rel=t,goog.string.caseInsensitiveContains(t,"stylesheet")?(goog.asserts.assert(o instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),e.href=goog.html.TrustedResourceUrl.unwrap(o)):e.href=o instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrap(o):o instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(o):goog.html.SafeUrl.sanitize(o).getTypedStringValue()},goog.dom.safe.setObjectData=function(e,o){goog.dom.safe.assertIsHTMLObjectElement_(e),e.data=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setScriptSrc=function(e,o){goog.dom.safe.assertIsHTMLScriptElement_(e),e.src=goog.html.TrustedResourceUrl.unwrap(o)},goog.dom.safe.setLocationHref=function(e,o){goog.dom.safe.assertIsLocation_(e);var t;t=o instanceof goog.html.SafeUrl?o:goog.html.SafeUrl.sanitize(o),e.href=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.openInWindow=function(e,o,t,n,r){return e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitize(e),(o||window).open(goog.html.SafeUrl.unwrap(e),t?goog.string.Const.unwrap(t):"",n,r)},goog.dom.safe.assertIsLocation_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof Location||!(e instanceof Element)),"Argument is not a Location (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLAnchorElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLAnchorElement&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLAnchorElement||!(e instanceof Location||e instanceof Element)),"Argument is not a HTMLAnchorElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLLinkElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLLinkElement&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLLinkElement||!(e instanceof Location||e instanceof Element)),"Argument is not a HTMLLinkElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLImageElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLImageElement&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLImageElement||!(e instanceof Element)),"Argument is not a HTMLImageElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLEmbedElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLEmbedElement&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLEmbedElement||!(e instanceof Element)),"Argument is not a HTMLEmbedElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLFrameElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLFrameElement&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLFrameElement||!(e instanceof Element)),"Argument is not a HTMLFrameElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLIFrameElement_=function(e){
 return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLIFrameElement&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLIFrameElement||!(e instanceof Element)),"Argument is not a HTMLIFrameElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLObjectElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLObjectElement&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLObjectElement||!(e instanceof Element)),"Argument is not a HTMLObjectElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.assertIsHTMLScriptElement_=function(e){return goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLScriptElement&&"undefined"!=typeof Element&&goog.asserts.assert(e&&(e instanceof HTMLScriptElement||!(e instanceof Element)),"Argument is not a HTMLScriptElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(e)),e},goog.dom.safe.debugStringForType_=function(e){return goog.isObject(e)?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):void 0===e?"undefined":null===e?"null":typeof e},goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="",this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0,goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeScript.fromConstant=function(e){return e=goog.string.Const.unwrap(e),0===e.length?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_},goog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"}),goog.html.SafeScript.unwrap=function(e){return e instanceof goog.html.SafeScript&&e.constructor===goog.html.SafeScript&&e.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeScriptWrappedValue_:(goog.asserts.fail("expected object of type SafeScript, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeScript")},goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_=e,this},goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(""),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(e,o,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o,t||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(e,o){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.isEmpty(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(e,o){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(e,o){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(e,o){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(o)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(e,o){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(o)},goog.math.Coordinate=function(e,o){this.x=goog.isDef(e)?e:0,this.y=goog.isDef(o)?o:0},goog.math.Coordinate.prototype.clone=function(){return new goog.math.Coordinate(this.x,this.y)},goog.DEBUG&&(goog.math.Coordinate.prototype.toString=function(){return"("+this.x+", "+this.y+")"}),goog.math.Coordinate.prototype.equals=function(e){return e instanceof goog.math.Coordinate&&goog.math.Coordinate.equals(this,e)},goog.math.Coordinate.equals=function(e,o){return e==o?!0:e&&o?e.x==o.x&&e.y==o.y:!1},goog.math.Coordinate.distance=function(e,o){var t=e.x-o.x,n=e.y-o.y;return Math.sqrt(t*t+n*n)},goog.math.Coordinate.magnitude=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},goog.math.Coordinate.azimuth=function(e){return goog.math.angle(0,0,e.x,e.y)},goog.math.Coordinate.squaredDistance=function(e,o){var t=e.x-o.x,n=e.y-o.y;return t*t+n*n},goog.math.Coordinate.difference=function(e,o){return new goog.math.Coordinate(e.x-o.x,e.y-o.y)},goog.math.Coordinate.sum=function(e,o){return new goog.math.Coordinate(e.x+o.x,e.y+o.y)},goog.math.Coordinate.prototype.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},goog.math.Coordinate.prototype.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},goog.math.Coordinate.prototype.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},goog.math.Coordinate.prototype.translate=function(e,o){return e instanceof goog.math.Coordinate?(this.x+=e.x,this.y+=e.y):(this.x+=Number(e),goog.isNumber(o)&&(this.y+=o)),this},goog.math.Coordinate.prototype.scale=function(e,o){var t=goog.isNumber(o)?o:e;return this.x*=e,this.y*=t,this},goog.math.Coordinate.prototype.rotateRadians=function(e,o){var t=o||new goog.math.Coordinate(0,0),n=this.x,r=this.y,i=Math.cos(e),s=Math.sin(e);this.x=(n-t.x)*i-(r-t.y)*s+t.x,this.y=(n-t.x)*s+(r-t.y)*i+t.y},goog.math.Coordinate.prototype.rotateDegrees=function(e,o){this.rotateRadians(goog.math.toRadians(e),o)},goog.math.Size=function(e,o){this.width=e,this.height=o},goog.math.Size.equals=function(e,o){return e==o?!0:e&&o?e.width==o.width&&e.height==o.height:!1},goog.math.Size.prototype.clone=function(){return new goog.math.Size(this.width,this.height)},goog.DEBUG&&(goog.math.Size.prototype.toString=function(){return"("+this.width+" x "+this.height+")"}),goog.math.Size.prototype.getLongest=function(){return Math.max(this.width,this.height)},goog.math.Size.prototype.getShortest=function(){return Math.min(this.width,this.height)},goog.math.Size.prototype.area=function(){return this.width*this.height},goog.math.Size.prototype.perimeter=function(){return 2*(this.width+this.height)},goog.math.Size.prototype.aspectRatio=function(){return this.width/this.height},goog.math.Size.prototype.isEmpty=function(){return!this.area()},goog.math.Size.prototype.ceil=function(){return this.width=Math.ceil(this.width),this.height=Math.ceil(this.height),this},goog.math.Size.prototype.fitsInside=function(e){return this.width<=e.width&&this.height<=e.height},goog.math.Size.prototype.floor=function(){return this.width=Math.floor(this.width),this.height=Math.floor(this.height),this},goog.math.Size.prototype.round=function(){return this.width=Math.round(this.width),this.height=Math.round(this.height),this},goog.math.Size.prototype.scale=function(e,o){var t=goog.isNumber(o)?o:e;return this.width*=e,this.height*=t,this},goog.math.Size.prototype.scaleToCover=function(e){return e=this.aspectRatio()<=e.aspectRatio()?e.width/this.width:e.height/this.height,this.scale(e)},goog.math.Size.prototype.scaleToFit=function(e){return e=this.aspectRatio()>e.aspectRatio()?e.width/this.width:e.height/this.height,this.scale(e)},goog.dom.ASSUME_QUIRKS_MODE=!1,goog.dom.ASSUME_STANDARDS_MODE=!1,goog.dom.COMPAT_MODE_KNOWN_=goog.dom.ASSUME_QUIRKS_MODE||goog.dom.ASSUME_STANDARDS_MODE,goog.dom.getDomHelper=function(e){return e?new goog.dom.DomHelper(goog.dom.getOwnerDocument(e)):goog.dom.defaultDomHelper_||(goog.dom.defaultDomHelper_=new goog.dom.DomHelper)},goog.dom.getDocument=function(){return document},goog.dom.getElement=function(e){return goog.dom.getElementHelper_(document,e)},goog.dom.getElementHelper_=function(e,o){return goog.isString(o)?e.getElementById(o):o},goog.dom.getRequiredElement=function(e){return goog.dom.getRequiredElementHelper_(document,e)},goog.dom.getRequiredElementHelper_=function(e,o){goog.asserts.assertString(o);var t=goog.dom.getElementHelper_(e,o);return t=goog.asserts.assertElement(t,"No element found with id: "+o)},goog.dom.$=goog.dom.getElement,goog.dom.getElementsByTagName=function(e,o){return(o||document).getElementsByTagName(String(e))},goog.dom.getElementsByTagNameAndClass=function(e,o,t){return goog.dom.getElementsByTagNameAndClass_(document,e,o,t)},goog.dom.getElementsByClass=function(e,o){var t=o||document;return goog.dom.canUseQuerySelector_(t)?t.querySelectorAll("."+e):goog.dom.getElementsByTagNameAndClass_(document,"*",e,o)},goog.dom.getElementByClass=function(e,o){var t=o||document;return(t.getElementsByClassName?t.getElementsByClassName(e)[0]:goog.dom.canUseQuerySelector_(t)?t.querySelector("."+e):goog.dom.getElementsByTagNameAndClass_(document,"*",e,o)[0])||null},goog.dom.getRequiredElementByClass=function(e,o){var t=goog.dom.getElementByClass(e,o);return goog.asserts.assert(t,"No element found with className: "+e)},goog.dom.canUseQuerySelector_=function(e){return!(!e.querySelectorAll||!e.querySelector)},goog.dom.getElementsByTagNameAndClass_=function(e,o,t,n){if(e=n||e,o=o&&"*"!=o?String(o).toUpperCase():"",goog.dom.canUseQuerySelector_(e)&&(o||t))return e.querySelectorAll(o+(t?"."+t:""));if(t&&e.getElementsByClassName){if(e=e.getElementsByClassName(t),o){n={};for(var r,i=0,s=0;r=e[s];s++)o==r.nodeName&&(n[i++]=r);return n.length=i,n}return e}if(e=e.getElementsByTagName(o||"*"),t){for(n={},s=i=0;r=e[s];s++)o=r.className,"function"==typeof o.split&&goog.array.contains(o.split(/\s+/),t)&&(n[i++]=r);return n.length=i,n}return e},goog.dom.$$=goog.dom.getElementsByTagNameAndClass,goog.dom.setProperties=function(e,o){goog.object.forEach(o,function(o,t){"style"==t?e.style.cssText=o:"class"==t?e.className=o:"for"==t?e.htmlFor=o:goog.dom.DIRECT_ATTRIBUTE_MAP_.hasOwnProperty(t)?e.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[t],o):goog.string.startsWith(t,"aria-")||goog.string.startsWith(t,"data-")?e.setAttribute(t,o):e[t]=o})},goog.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"},goog.dom.getViewportSize=function(e){return goog.dom.getViewportSize_(e||window)},goog.dom.getViewportSize_=function(e){return e=e.document,e=goog.dom.isCss1CompatMode_(e)?e.documentElement:e.body,new goog.math.Size(e.clientWidth,e.clientHeight)},goog.dom.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(window)},goog.dom.getDocumentHeightForWindow=function(e){return goog.dom.getDocumentHeight_(e)},goog.dom.getDocumentHeight_=function(e){var o=e.document,t=0;if(o){var t=o.body,n=o.documentElement;if(!n||!t)return 0;if(e=goog.dom.getViewportSize_(e).height,goog.dom.isCss1CompatMode_(o)&&n.scrollHeight)t=n.scrollHeight!=e?n.scrollHeight:n.offsetHeight;else{var o=n.scrollHeight,r=n.offsetHeight;n.clientHeight!=r&&(o=t.scrollHeight,r=t.offsetHeight),t=o>e?o>r?o:r:r>o?o:r}}return t},goog.dom.getPageScroll=function(e){return goog.dom.getDomHelper((e||goog.global||window).document).getDocumentScroll()},goog.dom.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(document)},goog.dom.getDocumentScroll_=function(e){var o=goog.dom.getDocumentScrollElement_(e);return e=goog.dom.getWindow_(e),goog.userAgent.IE&&goog.userAgent.isVersionOrHigher("10")&&e.pageYOffset!=o.scrollTop?new goog.math.Coordinate(o.scrollLeft,o.scrollTop):new goog.math.Coordinate(e.pageXOffset||o.scrollLeft,e.pageYOffset||o.scrollTop)},goog.dom.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(document)},goog.dom.getDocumentScrollElement_=function(e){return e.scrollingElement?e.scrollingElement:!goog.userAgent.WEBKIT&&goog.dom.isCss1CompatMode_(e)?e.documentElement:e.body||e.documentElement},goog.dom.getWindow=function(e){return e?goog.dom.getWindow_(e):window},goog.dom.getWindow_=function(e){return e.parentWindow||e.defaultView},goog.dom.createDom=function(e,o,t){return goog.dom.createDom_(document,arguments)},goog.dom.createDom_=function(e,o){var t=String(o[0]),n=o[1];if(!goog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES&&n&&(n.name||n.type)){if(t=["<",t],n.name&&t.push(' name="',goog.string.htmlEscape(n.name),'"'),n.type){t.push(' type="',goog.string.htmlEscape(n.type),'"');var r={};goog.object.extend(r,n),delete r.type,n=r}t.push(">"),t=t.join("")}return t=e.createElement(t),n&&(goog.isString(n)?t.className=n:goog.isArray(n)?t.className=n.join(" "):goog.dom.setProperties(t,n)),2<o.length&&goog.dom.append_(e,t,o,2),t},goog.dom.append_=function(e,o,t,n){function r(t){t&&o.appendChild(goog.isString(t)?e.createTextNode(t):t)}for(;n<t.length;n++){var i=t[n];goog.isArrayLike(i)&&!goog.dom.isNodeLike(i)?goog.array.forEach(goog.dom.isNodeList(i)?goog.array.toArray(i):i,r):r(i)}},goog.dom.$dom=goog.dom.createDom,goog.dom.createElement=function(e){return goog.dom.createElement_(document,e)},goog.dom.createElement_=function(e,o){return e.createElement(String(o))},goog.dom.createTextNode=function(e){return document.createTextNode(String(e))},goog.dom.createTable=function(e,o,t){return goog.dom.createTable_(document,e,o,!!t)},goog.dom.createTable_=function(e,o,t,n){for(var r=goog.dom.createElement_(e,"TABLE"),i=r.appendChild(goog.dom.createElement_(e,"TBODY")),s=0;o>s;s++){for(var l=goog.dom.createElement_(e,"TR"),g=0;t>g;g++){var a=goog.dom.createElement_(e,"TD");n&&goog.dom.setTextContent(a,goog.string.Unicode.NBSP),l.appendChild(a)}i.appendChild(l)}return r},goog.dom.constHtmlToNode=function(e){var o=goog.array.map(arguments,goog.string.Const.unwrap),o=goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Constant HTML string, that gets turned into a Node later, so it will be automatically balanced."),o.join(""));return goog.dom.safeHtmlToNode(o)},goog.dom.safeHtmlToNode=function(e){return goog.dom.safeHtmlToNode_(document,e)},goog.dom.safeHtmlToNode_=function(e,o){var t=goog.dom.createElement_(e,"DIV");return goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT?(goog.dom.safe.setInnerHtml(t,goog.html.SafeHtml.concat(goog.html.SafeHtml.BR,o)),t.removeChild(t.firstChild)):goog.dom.safe.setInnerHtml(t,o),goog.dom.childrenToNode_(e,t)},goog.dom.childrenToNode_=function(e,o){if(1==o.childNodes.length)return o.removeChild(o.firstChild);for(var t=e.createDocumentFragment();o.firstChild;)t.appendChild(o.firstChild);return t},goog.dom.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(document)},goog.dom.isCss1CompatMode_=function(e){return goog.dom.COMPAT_MODE_KNOWN_?goog.dom.ASSUME_STANDARDS_MODE:"CSS1Compat"==e.compatMode},goog.dom.canHaveChildren=function(e){if(e.nodeType!=goog.dom.NodeType.ELEMENT)return!1;switch(e.tagName){case"APPLET":case"AREA":case"BASE":case"BR":case"COL":case"COMMAND":case"EMBED":case"FRAME":case"HR":case"IMG":case"INPUT":case"IFRAME":case"ISINDEX":case"KEYGEN":case"LINK":case"NOFRAMES":case"NOSCRIPT":case"META":case"OBJECT":case"PARAM":case"SCRIPT":case"SOURCE":case"STYLE":case"TRACK":case"WBR":return!1}return!0},goog.dom.appendChild=function(e,o){e.appendChild(o)},goog.dom.append=function(e,o){goog.dom.append_(goog.dom.getOwnerDocument(e),e,arguments,1)},goog.dom.removeChildren=function(e){for(var o;o=e.firstChild;)e.removeChild(o)},goog.dom.insertSiblingBefore=function(e,o){o.parentNode&&o.parentNode.insertBefore(e,o)},goog.dom.insertSiblingAfter=function(e,o){o.parentNode&&o.parentNode.insertBefore(e,o.nextSibling)},goog.dom.insertChildAt=function(e,o,t){e.insertBefore(o,e.childNodes[t]||null)},goog.dom.removeNode=function(e){return e&&e.parentNode?e.parentNode.removeChild(e):null},goog.dom.replaceNode=function(e,o){var t=o.parentNode;t&&t.replaceChild(e,o)},goog.dom.flattenElement=function(e){var o,t=e.parentNode;if(t&&t.nodeType!=goog.dom.NodeType.DOCUMENT_FRAGMENT){if(e.removeNode)return e.removeNode(!1);for(;o=e.firstChild;)t.insertBefore(o,e);return goog.dom.removeNode(e)}},goog.dom.getChildren=function(e){return goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE&&void 0!=e.children?e.children:goog.array.filter(e.childNodes,function(e){return e.nodeType==goog.dom.NodeType.ELEMENT})},goog.dom.getFirstElementChild=function(e){return goog.isDef(e.firstElementChild)?e.firstElementChild:goog.dom.getNextElementNode_(e.firstChild,!0)},goog.dom.getLastElementChild=function(e){return goog.isDef(e.lastElementChild)?e.lastElementChild:goog.dom.getNextElementNode_(e.lastChild,!1)},goog.dom.getNextElementSibling=function(e){return goog.isDef(e.nextElementSibling)?e.nextElementSibling:goog.dom.getNextElementNode_(e.nextSibling,!0)},goog.dom.getPreviousElementSibling=function(e){return goog.isDef(e.previousElementSibling)?e.previousElementSibling:goog.dom.getNextElementNode_(e.previousSibling,!1)},goog.dom.getNextElementNode_=function(e,o){for(;e&&e.nodeType!=goog.dom.NodeType.ELEMENT;)e=o?e.nextSibling:e.previousSibling;return e},goog.dom.getNextNode=function(e){if(!e)return null;if(e.firstChild)return e.firstChild;for(;e&&!e.nextSibling;)e=e.parentNode;return e?e.nextSibling:null},goog.dom.getPreviousNode=function(e){if(!e)return null;if(!e.previousSibling)return e.parentNode;for(e=e.previousSibling;e&&e.lastChild;)e=e.lastChild;return e},goog.dom.isNodeLike=function(e){return goog.isObject(e)&&0<e.nodeType},goog.dom.isElement=function(e){return goog.isObject(e)&&e.nodeType==goog.dom.NodeType.ELEMENT},goog.dom.isWindow=function(e){return goog.isObject(e)&&e.window==e},goog.dom.getParentElement=function(e){var o;return!goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY||goog.userAgent.IE&&goog.userAgent.isVersionOrHigher("9")&&!goog.userAgent.isVersionOrHigher("10")&&goog.global.SVGElement&&e instanceof goog.global.SVGElement||!(o=e.parentElement)?(o=e.parentNode,goog.dom.isElement(o)?o:null):o},goog.dom.contains=function(e,o){if(!e||!o)return!1;if(e.contains&&o.nodeType==goog.dom.NodeType.ELEMENT)return e==o||e.contains(o);if("undefined"!=typeof e.compareDocumentPosition)return e==o||!!(16&e.compareDocumentPosition(o));for(;o&&e!=o;)o=o.parentNode;return o==e},goog.dom.compareNodeOrder=function(e,o){if(e==o)return 0;if(e.compareDocumentPosition)return 2&e.compareDocumentPosition(o)?1:-1;if(goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(9)){if(e.nodeType==goog.dom.NodeType.DOCUMENT)return-1;if(o.nodeType==goog.dom.NodeType.DOCUMENT)return 1}if("sourceIndex"in e||e.parentNode&&"sourceIndex"in e.parentNode){var t=e.nodeType==goog.dom.NodeType.ELEMENT,n=o.nodeType==goog.dom.NodeType.ELEMENT;if(t&&n)return e.sourceIndex-o.sourceIndex;var r=e.parentNode,i=o.parentNode;return r==i?goog.dom.compareSiblingOrder_(e,o):!t&&goog.dom.contains(r,o)?-1*goog.dom.compareParentsDescendantNodeIe_(e,o):!n&&goog.dom.contains(i,e)?goog.dom.compareParentsDescendantNodeIe_(o,e):(t?e.sourceIndex:r.sourceIndex)-(n?o.sourceIndex:i.sourceIndex)}return n=goog.dom.getOwnerDocument(e),t=n.createRange(),t.selectNode(e),t.collapse(!0),n=n.createRange(),n.selectNode(o),n.collapse(!0),t.compareBoundaryPoints(goog.global.Range.START_TO_END,n)},goog.dom.compareParentsDescendantNodeIe_=function(e,o){var t=e.parentNode;if(t==o)return-1;for(var n=o;n.parentNode!=t;)n=n.parentNode;return goog.dom.compareSiblingOrder_(n,e)},goog.dom.compareSiblingOrder_=function(e,o){for(var t=o;t=t.previousSibling;)if(t==e)return-1;return 1},goog.dom.findCommonAncestor=function(e){var o,t=arguments.length;if(!t)return null;if(1==t)return arguments[0];var n=[],r=1/0;for(o=0;t>o;o++){for(var i=[],s=arguments[o];s;)i.unshift(s),s=s.parentNode;n.push(i),r=Math.min(r,i.length)}for(i=null,o=0;r>o;o++){for(var s=n[0][o],l=1;t>l;l++)if(s!=n[l][o])return i;i=s}return i},goog.dom.getOwnerDocument=function(e){return goog.asserts.assert(e,"Node cannot be null or undefined."),e.nodeType==goog.dom.NodeType.DOCUMENT?e:e.ownerDocument||e.document},goog.dom.getFrameContentDocument=function(e){return e.contentDocument||e.contentWindow.document},goog.dom.getFrameContentWindow=function(e){try{return e.contentWindow||(e.contentDocument?goog.dom.getWindow(e.contentDocument):null)}catch(o){}return null},goog.dom.setTextContent=function(e,o){if(goog.asserts.assert(null!=e,"goog.dom.setTextContent expects a non-null value for node"),"textContent"in e)e.textContent=o;else if(e.nodeType==goog.dom.NodeType.TEXT)e.data=o;else if(e.firstChild&&e.firstChild.nodeType==goog.dom.NodeType.TEXT){for(;e.lastChild!=e.firstChild;)e.removeChild(e.lastChild);e.firstChild.data=o}else{goog.dom.removeChildren(e);var t=goog.dom.getOwnerDocument(e);e.appendChild(t.createTextNode(String(o)))}},goog.dom.getOuterHtml=function(e){if(goog.asserts.assert(null!==e,"goog.dom.getOuterHtml expects a non-null value for element"),"outerHTML"in e)return e.outerHTML;var o=goog.dom.getOwnerDocument(e),o=goog.dom.createElement_(o,"DIV");return o.appendChild(e.cloneNode(!0)),o.innerHTML},goog.dom.findNode=function(e,o){var t=[];return goog.dom.findNodes_(e,o,t,!0)?t[0]:void 0},goog.dom.findNodes=function(e,o){var t=[];return goog.dom.findNodes_(e,o,t,!1),t},goog.dom.findNodes_=function(e,o,t,n){if(null!=e)for(e=e.firstChild;e;){if(o(e)&&(t.push(e),n)||goog.dom.findNodes_(e,o,t,n))return!0;e=e.nextSibling}return!1},goog.dom.TAGS_TO_IGNORE_={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},goog.dom.PREDEFINED_TAG_VALUES_={IMG:" ",BR:"\n"},goog.dom.isFocusableTabIndex=function(e){return goog.dom.hasSpecifiedTabIndex_(e)&&goog.dom.isTabIndexFocusable_(e)},goog.dom.setFocusableTabIndex=function(e,o){o?e.tabIndex=0:(e.tabIndex=-1,e.removeAttribute("tabIndex"))},goog.dom.isFocusable=function(e){var o;return(o=goog.dom.nativelySupportsFocus_(e)?!e.disabled&&(!goog.dom.hasSpecifiedTabIndex_(e)||goog.dom.isTabIndexFocusable_(e)):goog.dom.isFocusableTabIndex(e))&&goog.userAgent.IE?goog.dom.hasNonZeroBoundingRect_(e):o},goog.dom.hasSpecifiedTabIndex_=function(e){return goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9")?(e=e.getAttributeNode("tabindex"),goog.isDefAndNotNull(e)&&e.specified):e.hasAttribute("tabindex")},goog.dom.isTabIndexFocusable_=function(e){return e=e.tabIndex,goog.isNumber(e)&&e>=0&&32768>e},goog.dom.nativelySupportsFocus_=function(e){return"A"==e.tagName||"INPUT"==e.tagName||"TEXTAREA"==e.tagName||"SELECT"==e.tagName||"BUTTON"==e.tagName},goog.dom.hasNonZeroBoundingRect_=function(e){return e=!goog.isFunction(e.getBoundingClientRect)||goog.userAgent.IE&&null==e.parentElement?{height:e.offsetHeight,width:e.offsetWidth}:e.getBoundingClientRect(),goog.isDefAndNotNull(e)&&0<e.height&&0<e.width},goog.dom.getTextContent=function(e){if(goog.dom.BrowserFeature.CAN_USE_INNER_TEXT&&null!==e&&"innerText"in e)e=goog.string.canonicalizeNewlines(e.innerText);else{var o=[];goog.dom.getTextContent_(e,o,!0),e=o.join("")}return e=e.replace(/ \xAD /g," ").replace(/\xAD/g,""),e=e.replace(/\u200B/g,""),goog.dom.BrowserFeature.CAN_USE_INNER_TEXT||(e=e.replace(/ +/g," "))," "!=e&&(e=e.replace(/^\s*/,"")),e},goog.dom.getRawTextContent=function(e){var o=[];return goog.dom.getTextContent_(e,o,!1),o.join("")},goog.dom.getTextContent_=function(e,o,t){if(!(e.nodeName in goog.dom.TAGS_TO_IGNORE_))if(e.nodeType==goog.dom.NodeType.TEXT)t?o.push(String(e.nodeValue).replace(/(\r\n|\r|\n)/g,"")):o.push(e.nodeValue);else if(e.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)o.push(goog.dom.PREDEFINED_TAG_VALUES_[e.nodeName]);else for(e=e.firstChild;e;)goog.dom.getTextContent_(e,o,t),e=e.nextSibling},goog.dom.getNodeTextLength=function(e){return goog.dom.getTextContent(e).length},goog.dom.getNodeTextOffset=function(e,o){for(var t=o||goog.dom.getOwnerDocument(e).body,n=[];e&&e!=t;){for(var r=e;r=r.previousSibling;)n.unshift(goog.dom.getTextContent(r));e=e.parentNode}return goog.string.trimLeft(n.join("")).replace(/ +/g," ").length},goog.dom.getNodeAtOffset=function(e,o,t){e=[e];for(var n=0,r=null;0<e.length&&o>n;)if(r=e.pop(),!(r.nodeName in goog.dom.TAGS_TO_IGNORE_))if(r.nodeType==goog.dom.NodeType.TEXT)var i=r.nodeValue.replace(/(\r\n|\r|\n)/g,"").replace(/ +/g," "),n=n+i.length;else if(r.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)n+=goog.dom.PREDEFINED_TAG_VALUES_[r.nodeName].length;else for(i=r.childNodes.length-1;i>=0;i--)e.push(r.childNodes[i]);return goog.isObject(t)&&(t.remainder=r?r.nodeValue.length+o-n-1:0,t.node=r),r},goog.dom.isNodeList=function(e){if(e&&"number"==typeof e.length){if(goog.isObject(e))return"function"==typeof e.item||"string"==typeof e.item;if(goog.isFunction(e))return"function"==typeof e.item}return!1},goog.dom.getAncestorByTagNameAndClass=function(e,o,t,n){if(!o&&!t)return null;var r=o?String(o).toUpperCase():null;return goog.dom.getAncestor(e,function(e){return(!r||e.nodeName==r)&&(!t||goog.isString(e.className)&&goog.array.contains(e.className.split(/\s+/),t))},!0,n)},goog.dom.getAncestorByClass=function(e,o,t){return goog.dom.getAncestorByTagNameAndClass(e,null,o,t)},goog.dom.getAncestor=function(e,o,t,n){for(t||(e=e.parentNode),t=0;e&&(null==n||n>=t);){if(goog.asserts.assert("parentNode"!=e.name),o(e))return e;e=e.parentNode,t++}return null},goog.dom.getActiveElement=function(e){try{return e&&e.activeElement}catch(o){}return null},goog.dom.getPixelRatio=function(){var e=goog.dom.getWindow();return goog.isDef(e.devicePixelRatio)?e.devicePixelRatio:e.matchMedia?goog.dom.matchesPixelRatio_(3)||goog.dom.matchesPixelRatio_(2)||goog.dom.matchesPixelRatio_(1.5)||goog.dom.matchesPixelRatio_(1)||.75:1},goog.dom.matchesPixelRatio_=function(e){return goog.dom.getWindow().matchMedia("(min-resolution: "+e+"dppx),(min--moz-device-pixel-ratio: "+e+"),(min-resolution: "+96*e+"dpi)").matches?e:0},goog.dom.getCanvasContext2D=function(e){return e.getContext("2d")},goog.dom.DomHelper=function(e){this.document_=e||goog.global.document||document},goog.dom.DomHelper.prototype.getDomHelper=goog.dom.getDomHelper,goog.dom.DomHelper.prototype.setDocument=function(e){this.document_=e},goog.dom.DomHelper.prototype.getDocument=function(){return this.document_},goog.dom.DomHelper.prototype.getElement=function(e){return goog.dom.getElementHelper_(this.document_,e)},goog.dom.DomHelper.prototype.getRequiredElement=function(e){return goog.dom.getRequiredElementHelper_(this.document_,e)},goog.dom.DomHelper.prototype.$=goog.dom.DomHelper.prototype.getElement,goog.dom.DomHelper.prototype.getElementsByTagName=function(e,o){return(o||this.document_).getElementsByTagName(String(e))},goog.dom.DomHelper.prototype.getElementsByTagNameAndClass=function(e,o,t){return goog.dom.getElementsByTagNameAndClass_(this.document_,e,o,t)},goog.dom.DomHelper.prototype.getElementsByClass=function(e,o){return goog.dom.getElementsByClass(e,o||this.document_)},goog.dom.DomHelper.prototype.getElementByClass=function(e,o){return goog.dom.getElementByClass(e,o||this.document_)},goog.dom.DomHelper.prototype.getRequiredElementByClass=function(e,o){return goog.dom.getRequiredElementByClass(e,o||this.document_)},goog.dom.DomHelper.prototype.$$=goog.dom.DomHelper.prototype.getElementsByTagNameAndClass,goog.dom.DomHelper.prototype.setProperties=goog.dom.setProperties,goog.dom.DomHelper.prototype.getViewportSize=function(e){return goog.dom.getViewportSize(e||this.getWindow())},goog.dom.DomHelper.prototype.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(this.getWindow())},goog.dom.DomHelper.prototype.createDom=function(e,o,t){return goog.dom.createDom_(this.document_,arguments)},goog.dom.DomHelper.prototype.$dom=goog.dom.DomHelper.prototype.createDom,goog.dom.DomHelper.prototype.createElement=function(e){return goog.dom.createElement_(this.document_,e)},goog.dom.DomHelper.prototype.createTextNode=function(e){return this.document_.createTextNode(String(e))},goog.dom.DomHelper.prototype.createTable=function(e,o,t){return goog.dom.createTable_(this.document_,e,o,!!t)},goog.dom.DomHelper.prototype.safeHtmlToNode=function(e){return goog.dom.safeHtmlToNode_(this.document_,e)},goog.dom.DomHelper.prototype.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(this.document_)},goog.dom.DomHelper.prototype.getWindow=function(){return goog.dom.getWindow_(this.document_)},goog.dom.DomHelper.prototype.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(this.document_)},goog.dom.DomHelper.prototype.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(this.document_)},goog.dom.DomHelper.prototype.getActiveElement=function(e){return goog.dom.getActiveElement(e||this.document_)},goog.dom.DomHelper.prototype.appendChild=goog.dom.appendChild,goog.dom.DomHelper.prototype.append=goog.dom.append,goog.dom.DomHelper.prototype.canHaveChildren=goog.dom.canHaveChildren,goog.dom.DomHelper.prototype.removeChildren=goog.dom.removeChildren,goog.dom.DomHelper.prototype.insertSiblingBefore=goog.dom.insertSiblingBefore,goog.dom.DomHelper.prototype.insertSiblingAfter=goog.dom.insertSiblingAfter,goog.dom.DomHelper.prototype.insertChildAt=goog.dom.insertChildAt,goog.dom.DomHelper.prototype.removeNode=goog.dom.removeNode,goog.dom.DomHelper.prototype.replaceNode=goog.dom.replaceNode,goog.dom.DomHelper.prototype.flattenElement=goog.dom.flattenElement,goog.dom.DomHelper.prototype.getChildren=goog.dom.getChildren,goog.dom.DomHelper.prototype.getFirstElementChild=goog.dom.getFirstElementChild,goog.dom.DomHelper.prototype.getLastElementChild=goog.dom.getLastElementChild,goog.dom.DomHelper.prototype.getNextElementSibling=goog.dom.getNextElementSibling,goog.dom.DomHelper.prototype.getPreviousElementSibling=goog.dom.getPreviousElementSibling,goog.dom.DomHelper.prototype.getNextNode=goog.dom.getNextNode,goog.dom.DomHelper.prototype.getPreviousNode=goog.dom.getPreviousNode,goog.dom.DomHelper.prototype.isNodeLike=goog.dom.isNodeLike,goog.dom.DomHelper.prototype.isElement=goog.dom.isElement,goog.dom.DomHelper.prototype.isWindow=goog.dom.isWindow,goog.dom.DomHelper.prototype.getParentElement=goog.dom.getParentElement,goog.dom.DomHelper.prototype.contains=goog.dom.contains,goog.dom.DomHelper.prototype.compareNodeOrder=goog.dom.compareNodeOrder,goog.dom.DomHelper.prototype.findCommonAncestor=goog.dom.findCommonAncestor,goog.dom.DomHelper.prototype.getOwnerDocument=goog.dom.getOwnerDocument,goog.dom.DomHelper.prototype.getFrameContentDocument=goog.dom.getFrameContentDocument,goog.dom.DomHelper.prototype.getFrameContentWindow=goog.dom.getFrameContentWindow,goog.dom.DomHelper.prototype.setTextContent=goog.dom.setTextContent,goog.dom.DomHelper.prototype.getOuterHtml=goog.dom.getOuterHtml,goog.dom.DomHelper.prototype.findNode=goog.dom.findNode,goog.dom.DomHelper.prototype.findNodes=goog.dom.findNodes,
 goog.dom.DomHelper.prototype.isFocusableTabIndex=goog.dom.isFocusableTabIndex,goog.dom.DomHelper.prototype.setFocusableTabIndex=goog.dom.setFocusableTabIndex,goog.dom.DomHelper.prototype.isFocusable=goog.dom.isFocusable,goog.dom.DomHelper.prototype.getTextContent=goog.dom.getTextContent,goog.dom.DomHelper.prototype.getNodeTextLength=goog.dom.getNodeTextLength,goog.dom.DomHelper.prototype.getNodeTextOffset=goog.dom.getNodeTextOffset,goog.dom.DomHelper.prototype.getNodeAtOffset=goog.dom.getNodeAtOffset,goog.dom.DomHelper.prototype.isNodeList=goog.dom.isNodeList,goog.dom.DomHelper.prototype.getAncestorByTagNameAndClass=goog.dom.getAncestorByTagNameAndClass,goog.dom.DomHelper.prototype.getAncestorByClass=goog.dom.getAncestorByClass,goog.dom.DomHelper.prototype.getAncestor=goog.dom.getAncestor,goog.dom.DomHelper.prototype.getCanvasContext2D=goog.dom.getCanvasContext2D,goog.dom.vendor={},goog.dom.vendor.getVendorJsPrefix=function(){return goog.userAgent.WEBKIT?"Webkit":goog.userAgent.GECKO?"Moz":goog.userAgent.IE?"ms":goog.userAgent.OPERA?"O":null},goog.dom.vendor.getVendorPrefix=function(){return goog.userAgent.WEBKIT?"-webkit":goog.userAgent.GECKO?"-moz":goog.userAgent.IE?"-ms":goog.userAgent.OPERA?"-o":null},goog.dom.vendor.getPrefixedPropertyName=function(e,o){if(o&&e in o)return e;var t=goog.dom.vendor.getVendorJsPrefix();return t?(t=t.toLowerCase(),t+=goog.string.toTitleCase(e),!goog.isDef(o)||t in o?t:null):null},goog.dom.vendor.getPrefixedEventType=function(e){return((goog.dom.vendor.getVendorJsPrefix()||"")+e).toLowerCase()},goog.html.legacyconversions={},goog.html.legacyconversions.safeHtmlFromString=function(e){return goog.html.legacyconversions.reportCallback_(),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e,null)},goog.html.legacyconversions.safeStyleFromString=function(e){return goog.html.legacyconversions.reportCallback_(),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(e)},goog.html.legacyconversions.safeStyleSheetFromString=function(e){return goog.html.legacyconversions.reportCallback_(),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e)},goog.html.legacyconversions.safeUrlFromString=function(e){return goog.html.legacyconversions.reportCallback_(),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.legacyconversions.trustedResourceUrlFromString=function(e){return goog.html.legacyconversions.reportCallback_(),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.legacyconversions.reportCallback_=goog.nullFunction,goog.html.legacyconversions.setReportCallback=function(e){goog.html.legacyconversions.reportCallback_=e},goog.math.Box=function(e,o,t,n){this.top=e,this.right=o,this.bottom=t,this.left=n},goog.math.Box.boundingBox=function(e){for(var o=new goog.math.Box(arguments[0].y,arguments[0].x,arguments[0].y,arguments[0].x),t=1;t<arguments.length;t++)o.expandToIncludeCoordinate(arguments[t]);return o},goog.math.Box.prototype.getWidth=function(){return this.right-this.left},goog.math.Box.prototype.getHeight=function(){return this.bottom-this.top},goog.math.Box.prototype.clone=function(){return new goog.math.Box(this.top,this.right,this.bottom,this.left)},goog.DEBUG&&(goog.math.Box.prototype.toString=function(){return"("+this.top+"t, "+this.right+"r, "+this.bottom+"b, "+this.left+"l)"}),goog.math.Box.prototype.contains=function(e){return goog.math.Box.contains(this,e)},goog.math.Box.prototype.expand=function(e,o,t,n){return goog.isObject(e)?(this.top-=e.top,this.right+=e.right,this.bottom+=e.bottom,this.left-=e.left):(this.top-=e,this.right+=Number(o),this.bottom+=Number(t),this.left-=Number(n)),this},goog.math.Box.prototype.expandToInclude=function(e){this.left=Math.min(this.left,e.left),this.top=Math.min(this.top,e.top),this.right=Math.max(this.right,e.right),this.bottom=Math.max(this.bottom,e.bottom)},goog.math.Box.prototype.expandToIncludeCoordinate=function(e){this.top=Math.min(this.top,e.y),this.right=Math.max(this.right,e.x),this.bottom=Math.max(this.bottom,e.y),this.left=Math.min(this.left,e.x)},goog.math.Box.equals=function(e,o){return e==o?!0:e&&o?e.top==o.top&&e.right==o.right&&e.bottom==o.bottom&&e.left==o.left:!1},goog.math.Box.contains=function(e,o){return e&&o?o instanceof goog.math.Box?o.left>=e.left&&o.right<=e.right&&o.top>=e.top&&o.bottom<=e.bottom:o.x>=e.left&&o.x<=e.right&&o.y>=e.top&&o.y<=e.bottom:!1},goog.math.Box.relativePositionX=function(e,o){return o.x<e.left?o.x-e.left:o.x>e.right?o.x-e.right:0},goog.math.Box.relativePositionY=function(e,o){return o.y<e.top?o.y-e.top:o.y>e.bottom?o.y-e.bottom:0},goog.math.Box.distance=function(e,o){var t=goog.math.Box.relativePositionX(e,o),n=goog.math.Box.relativePositionY(e,o);return Math.sqrt(t*t+n*n)},goog.math.Box.intersects=function(e,o){return e.left<=o.right&&o.left<=e.right&&e.top<=o.bottom&&o.top<=e.bottom},goog.math.Box.intersectsWithPadding=function(e,o,t){return e.left<=o.right+t&&o.left<=e.right+t&&e.top<=o.bottom+t&&o.top<=e.bottom+t},goog.math.Box.prototype.ceil=function(){return this.top=Math.ceil(this.top),this.right=Math.ceil(this.right),this.bottom=Math.ceil(this.bottom),this.left=Math.ceil(this.left),this},goog.math.Box.prototype.floor=function(){return this.top=Math.floor(this.top),this.right=Math.floor(this.right),this.bottom=Math.floor(this.bottom),this.left=Math.floor(this.left),this},goog.math.Box.prototype.round=function(){return this.top=Math.round(this.top),this.right=Math.round(this.right),this.bottom=Math.round(this.bottom),this.left=Math.round(this.left),this},goog.math.Box.prototype.translate=function(e,o){return e instanceof goog.math.Coordinate?(this.left+=e.x,this.right+=e.x,this.top+=e.y,this.bottom+=e.y):(goog.asserts.assertNumber(e),this.left+=e,this.right+=e,goog.isNumber(o)&&(this.top+=o,this.bottom+=o)),this},goog.math.Box.prototype.scale=function(e,o){var t=goog.isNumber(o)?o:e;return this.left*=e,this.right*=e,this.top*=t,this.bottom*=t,this},goog.math.IRect=function(){},goog.math.Rect=function(e,o,t,n){this.left=e,this.top=o,this.width=t,this.height=n},goog.math.Rect.prototype.clone=function(){return new goog.math.Rect(this.left,this.top,this.width,this.height)},goog.math.Rect.prototype.toBox=function(){return new goog.math.Box(this.top,this.left+this.width,this.top+this.height,this.left)},goog.math.Rect.createFromPositionAndSize=function(e,o){return new goog.math.Rect(e.x,e.y,o.width,o.height)},goog.math.Rect.createFromBox=function(e){return new goog.math.Rect(e.left,e.top,e.right-e.left,e.bottom-e.top)},goog.DEBUG&&(goog.math.Rect.prototype.toString=function(){return"("+this.left+", "+this.top+" - "+this.width+"w x "+this.height+"h)"}),goog.math.Rect.equals=function(e,o){return e==o?!0:e&&o?e.left==o.left&&e.width==o.width&&e.top==o.top&&e.height==o.height:!1},goog.math.Rect.prototype.intersection=function(e){var o=Math.max(this.left,e.left),t=Math.min(this.left+this.width,e.left+e.width);if(t>=o){var n=Math.max(this.top,e.top);if(e=Math.min(this.top+this.height,e.top+e.height),e>=n)return this.left=o,this.top=n,this.width=t-o,this.height=e-n,!0}return!1},goog.math.Rect.intersection=function(e,o){var t=Math.max(e.left,o.left),n=Math.min(e.left+e.width,o.left+o.width);if(n>=t){var r=Math.max(e.top,o.top),i=Math.min(e.top+e.height,o.top+o.height);if(i>=r)return new goog.math.Rect(t,r,n-t,i-r)}return null},goog.math.Rect.intersects=function(e,o){return e.left<=o.left+o.width&&o.left<=e.left+e.width&&e.top<=o.top+o.height&&o.top<=e.top+e.height},goog.math.Rect.prototype.intersects=function(e){return goog.math.Rect.intersects(this,e)},goog.math.Rect.difference=function(e,o){var t=goog.math.Rect.intersection(e,o);if(!t||!t.height||!t.width)return[e.clone()];var t=[],n=e.top,r=e.height,i=e.left+e.width,s=e.top+e.height,l=o.left+o.width,g=o.top+o.height;return o.top>e.top&&(t.push(new goog.math.Rect(e.left,e.top,e.width,o.top-e.top)),n=o.top,r-=o.top-e.top),s>g&&(t.push(new goog.math.Rect(e.left,g,e.width,s-g)),r=g-n),o.left>e.left&&t.push(new goog.math.Rect(e.left,n,o.left-e.left,r)),i>l&&t.push(new goog.math.Rect(l,n,i-l,r)),t},goog.math.Rect.prototype.difference=function(e){return goog.math.Rect.difference(this,e)},goog.math.Rect.prototype.boundingRect=function(e){var o=Math.max(this.left+this.width,e.left+e.width),t=Math.max(this.top+this.height,e.top+e.height);this.left=Math.min(this.left,e.left),this.top=Math.min(this.top,e.top),this.width=o-this.left,this.height=t-this.top},goog.math.Rect.boundingRect=function(e,o){if(!e||!o)return null;var t=new goog.math.Rect(e.left,e.top,e.width,e.height);return t.boundingRect(o),t},goog.math.Rect.prototype.contains=function(e){return e instanceof goog.math.Coordinate?e.x>=this.left&&e.x<=this.left+this.width&&e.y>=this.top&&e.y<=this.top+this.height:this.left<=e.left&&this.left+this.width>=e.left+e.width&&this.top<=e.top&&this.top+this.height>=e.top+e.height},goog.math.Rect.prototype.squaredDistance=function(e){var o=e.x<this.left?this.left-e.x:Math.max(e.x-(this.left+this.width),0);return e=e.y<this.top?this.top-e.y:Math.max(e.y-(this.top+this.height),0),o*o+e*e},goog.math.Rect.prototype.distance=function(e){return Math.sqrt(this.squaredDistance(e))},goog.math.Rect.prototype.getSize=function(){return new goog.math.Size(this.width,this.height)},goog.math.Rect.prototype.getTopLeft=function(){return new goog.math.Coordinate(this.left,this.top)},goog.math.Rect.prototype.getCenter=function(){return new goog.math.Coordinate(this.left+this.width/2,this.top+this.height/2)},goog.math.Rect.prototype.getBottomRight=function(){return new goog.math.Coordinate(this.left+this.width,this.top+this.height)},goog.math.Rect.prototype.ceil=function(){return this.left=Math.ceil(this.left),this.top=Math.ceil(this.top),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height),this},goog.math.Rect.prototype.floor=function(){return this.left=Math.floor(this.left),this.top=Math.floor(this.top),this.width=Math.floor(this.width),this.height=Math.floor(this.height),this},goog.math.Rect.prototype.round=function(){return this.left=Math.round(this.left),this.top=Math.round(this.top),this.width=Math.round(this.width),this.height=Math.round(this.height),this},goog.math.Rect.prototype.translate=function(e,o){return e instanceof goog.math.Coordinate?(this.left+=e.x,this.top+=e.y):(this.left+=goog.asserts.assertNumber(e),goog.isNumber(o)&&(this.top+=o)),this},goog.math.Rect.prototype.scale=function(e,o){var t=goog.isNumber(o)?o:e;return this.left*=e,this.width*=e,this.top*=t,this.height*=t,this},goog.style={},goog.style.setStyle=function(e,o,t){if(goog.isString(o))goog.style.setStyle_(e,t,o);else for(var n in o)goog.style.setStyle_(e,o[n],n)},goog.style.setStyle_=function(e,o,t){(t=goog.style.getVendorJsStyleName_(e,t))&&(e.style[t]=o)},goog.style.styleNameCache_={},goog.style.getVendorJsStyleName_=function(e,o){var t=goog.style.styleNameCache_[o];if(!t){var n=goog.string.toCamelCase(o),t=n;void 0===e.style[n]&&(n=goog.dom.vendor.getVendorJsPrefix()+goog.string.toTitleCase(n),void 0!==e.style[n]&&(t=n)),goog.style.styleNameCache_[o]=t}return t},goog.style.getVendorStyleName_=function(e,o){var t=goog.string.toCamelCase(o);return void 0===e.style[t]&&(t=goog.dom.vendor.getVendorJsPrefix()+goog.string.toTitleCase(t),void 0!==e.style[t])?goog.dom.vendor.getVendorPrefix()+"-"+o:o},goog.style.getStyle=function(e,o){var t=e.style[goog.string.toCamelCase(o)];return"undefined"!=typeof t?t:e.style[goog.style.getVendorJsStyleName_(e,o)]||""},goog.style.getComputedStyle=function(e,o){var t=goog.dom.getOwnerDocument(e);return t.defaultView&&t.defaultView.getComputedStyle&&(t=t.defaultView.getComputedStyle(e,null))?t[o]||t.getPropertyValue(o)||"":""},goog.style.getCascadedStyle=function(e,o){return e.currentStyle?e.currentStyle[o]:null},goog.style.getStyle_=function(e,o){return goog.style.getComputedStyle(e,o)||goog.style.getCascadedStyle(e,o)||e.style&&e.style[o]},goog.style.getComputedBoxSizing=function(e){return goog.style.getStyle_(e,"boxSizing")||goog.style.getStyle_(e,"MozBoxSizing")||goog.style.getStyle_(e,"WebkitBoxSizing")||null},goog.style.getComputedPosition=function(e){return goog.style.getStyle_(e,"position")},goog.style.getBackgroundColor=function(e){return goog.style.getStyle_(e,"backgroundColor")},goog.style.getComputedOverflowX=function(e){return goog.style.getStyle_(e,"overflowX")},goog.style.getComputedOverflowY=function(e){return goog.style.getStyle_(e,"overflowY")},goog.style.getComputedZIndex=function(e){return goog.style.getStyle_(e,"zIndex")},goog.style.getComputedTextAlign=function(e){return goog.style.getStyle_(e,"textAlign")},goog.style.getComputedCursor=function(e){return goog.style.getStyle_(e,"cursor")},goog.style.getComputedTransform=function(e){var o=goog.style.getVendorStyleName_(e,"transform");return goog.style.getStyle_(e,o)||goog.style.getStyle_(e,"transform")},goog.style.setPosition=function(e,o,t){var n;o instanceof goog.math.Coordinate?(n=o.x,o=o.y):(n=o,o=t),e.style.left=goog.style.getPixelStyleValue_(n,!1),e.style.top=goog.style.getPixelStyleValue_(o,!1)},goog.style.getPosition=function(e){return new goog.math.Coordinate(e.offsetLeft,e.offsetTop)},goog.style.getClientViewportElement=function(e){return e=e?goog.dom.getOwnerDocument(e):goog.dom.getDocument(),!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9)||goog.dom.getDomHelper(e).isCss1CompatMode()?e.documentElement:e.body},goog.style.getViewportPageOffset=function(e){var o=e.body;return e=e.documentElement,new goog.math.Coordinate(o.scrollLeft||e.scrollLeft,o.scrollTop||e.scrollTop)},goog.style.getBoundingClientRect_=function(e){var o;try{o=e.getBoundingClientRect()}catch(t){return{left:0,top:0,right:0,bottom:0}}return goog.userAgent.IE&&e.ownerDocument.body&&(e=e.ownerDocument,o.left-=e.documentElement.clientLeft+e.body.clientLeft,o.top-=e.documentElement.clientTop+e.body.clientTop),o},goog.style.getOffsetParent=function(e){if(goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(8))return goog.asserts.assert(e&&"offsetParent"in e),e.offsetParent;var o=goog.dom.getOwnerDocument(e),t=goog.style.getStyle_(e,"position"),n="fixed"==t||"absolute"==t;for(e=e.parentNode;e&&e!=o;e=e.parentNode)if(e.nodeType==goog.dom.NodeType.DOCUMENT_FRAGMENT&&e.host&&(e=e.host),t=goog.style.getStyle_(e,"position"),n=n&&"static"==t&&e!=o.documentElement&&e!=o.body,!n&&(e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight||"fixed"==t||"absolute"==t||"relative"==t))return e;return null},goog.style.getVisibleRectForElement=function(e){for(var o=new goog.math.Box(0,1/0,1/0,0),t=goog.dom.getDomHelper(e),n=t.getDocument().body,r=t.getDocument().documentElement,i=t.getDocumentScrollElement();e=goog.style.getOffsetParent(e);)if(!(goog.userAgent.IE&&0==e.clientWidth||goog.userAgent.WEBKIT&&0==e.clientHeight&&e==n)&&e!=n&&e!=r&&"visible"!=goog.style.getStyle_(e,"overflow")){var s=goog.style.getPageOffset(e),l=goog.style.getClientLeftTop(e);s.x+=l.x,s.y+=l.y,o.top=Math.max(o.top,s.y),o.right=Math.min(o.right,s.x+e.clientWidth),o.bottom=Math.min(o.bottom,s.y+e.clientHeight),o.left=Math.max(o.left,s.x)}return n=i.scrollLeft,i=i.scrollTop,o.left=Math.max(o.left,n),o.top=Math.max(o.top,i),t=t.getViewportSize(),o.right=Math.min(o.right,n+t.width),o.bottom=Math.min(o.bottom,i+t.height),0<=o.top&&0<=o.left&&o.bottom>o.top&&o.right>o.left?o:null},goog.style.getContainerOffsetToScrollInto=function(e,o,t){var n=o||goog.dom.getDocumentScrollElement(),r=goog.style.getPageOffset(e),i=goog.style.getPageOffset(n),s=goog.style.getBorderBox(n);return n==goog.dom.getDocumentScrollElement()?(o=r.x-n.scrollLeft,r=r.y-n.scrollTop,goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(10)&&(o+=s.left,r+=s.top)):(o=r.x-i.x-s.left,r=r.y-i.y-s.top),s=goog.style.getSizeWithDisplay_(e),e=n.clientWidth-s.width,s=n.clientHeight-s.height,i=n.scrollLeft,n=n.scrollTop,t?(i+=o-e/2,n+=r-s/2):(i+=Math.min(o,Math.max(o-e,0)),n+=Math.min(r,Math.max(r-s,0))),new goog.math.Coordinate(i,n)},goog.style.scrollIntoContainerView=function(e,o,t){o=o||goog.dom.getDocumentScrollElement(),e=goog.style.getContainerOffsetToScrollInto(e,o,t),o.scrollLeft=e.x,o.scrollTop=e.y},goog.style.getClientLeftTop=function(e){return new goog.math.Coordinate(e.clientLeft,e.clientTop)},goog.style.getPageOffset=function(e){var o=goog.dom.getOwnerDocument(e);goog.asserts.assertObject(e,"Parameter is required");var t=new goog.math.Coordinate(0,0),n=goog.style.getClientViewportElement(o);return e==n?t:(e=goog.style.getBoundingClientRect_(e),o=goog.dom.getDomHelper(o).getDocumentScroll(),t.x=e.left+o.x,t.y=e.top+o.y,t)},goog.style.getPageOffsetLeft=function(e){return goog.style.getPageOffset(e).x},goog.style.getPageOffsetTop=function(e){return goog.style.getPageOffset(e).y},goog.style.getFramedPageOffset=function(e,o){var t=new goog.math.Coordinate(0,0),n=goog.dom.getWindow(goog.dom.getOwnerDocument(e));if(!goog.reflect.canAccessProperty(n,"parent"))return t;var r=e;do{var i=n==o?goog.style.getPageOffset(r):goog.style.getClientPositionForElement_(goog.asserts.assert(r));t.x+=i.x,t.y+=i.y}while(n&&n!=o&&n!=n.parent&&(r=n.frameElement)&&(n=n.parent));return t},goog.style.translateRectForAnotherFrame=function(e,o,t){if(o.getDocument()!=t.getDocument()){var n=o.getDocument().body;t=goog.style.getFramedPageOffset(n,t.getWindow()),t=goog.math.Coordinate.difference(t,goog.style.getPageOffset(n)),!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9)||o.isCss1CompatMode()||(t=goog.math.Coordinate.difference(t,o.getDocumentScroll())),e.left+=t.x,e.top+=t.y}},goog.style.getRelativePosition=function(e,o){var t=goog.style.getClientPosition(e),n=goog.style.getClientPosition(o);return new goog.math.Coordinate(t.x-n.x,t.y-n.y)},goog.style.getClientPositionForElement_=function(e){return e=goog.style.getBoundingClientRect_(e),new goog.math.Coordinate(e.left,e.top)},goog.style.getClientPosition=function(e){return goog.asserts.assert(e),e.nodeType==goog.dom.NodeType.ELEMENT?goog.style.getClientPositionForElement_(e):(e=e.changedTouches?e.changedTouches[0]:e,new goog.math.Coordinate(e.clientX,e.clientY))},goog.style.setPageOffset=function(e,o,t){var n=goog.style.getPageOffset(e);o instanceof goog.math.Coordinate&&(t=o.y,o=o.x),o=goog.asserts.assertNumber(o)-n.x,goog.style.setPosition(e,e.offsetLeft+o,e.offsetTop+(Number(t)-n.y))},goog.style.setSize=function(e,o,t){if(o instanceof goog.math.Size)t=o.height,o=o.width;else if(void 0==t)throw Error("missing height argument");goog.style.setWidth(e,o),goog.style.setHeight(e,t)},goog.style.getPixelStyleValue_=function(e,o){return"number"==typeof e&&(e=(o?Math.round(e):e)+"px"),e},goog.style.setHeight=function(e,o){e.style.height=goog.style.getPixelStyleValue_(o,!0)},goog.style.setWidth=function(e,o){e.style.width=goog.style.getPixelStyleValue_(o,!0)},goog.style.getSize=function(e){return goog.style.evaluateWithTemporaryDisplay_(goog.style.getSizeWithDisplay_,e)},goog.style.evaluateWithTemporaryDisplay_=function(e,o){if("none"!=goog.style.getStyle_(o,"display"))return e(o);var t=o.style,n=t.display,r=t.visibility,i=t.position;t.visibility="hidden",t.position="absolute",t.display="inline";var s=e(o);return t.display=n,t.position=i,t.visibility=r,s},goog.style.getSizeWithDisplay_=function(e){var o=e.offsetWidth,t=e.offsetHeight,n=goog.userAgent.WEBKIT&&!o&&!t;return goog.isDef(o)&&!n||!e.getBoundingClientRect?new goog.math.Size(o,t):(e=goog.style.getBoundingClientRect_(e),new goog.math.Size(e.right-e.left,e.bottom-e.top))},goog.style.getTransformedSize=function(e){return e.getBoundingClientRect?(e=goog.style.evaluateWithTemporaryDisplay_(goog.style.getBoundingClientRect_,e),new goog.math.Size(e.right-e.left,e.bottom-e.top)):null},goog.style.getBounds=function(e){var o=goog.style.getPageOffset(e);return e=goog.style.getSize(e),new goog.math.Rect(o.x,o.y,e.width,e.height)},goog.style.toCamelCase=function(e){return goog.string.toCamelCase(String(e))},goog.style.toSelectorCase=function(e){return goog.string.toSelectorCase(e)},goog.style.getOpacity=function(e){goog.asserts.assert(e);var o=e.style;return e="","opacity"in o?e=o.opacity:"MozOpacity"in o?e=o.MozOpacity:"filter"in o&&(o=o.filter.match(/alpha\(opacity=([\d.]+)\)/))&&(e=String(o[1]/100)),""==e?e:Number(e)},goog.style.setOpacity=function(e,o){goog.asserts.assert(e);var t=e.style;"opacity"in t?t.opacity=o:"MozOpacity"in t?t.MozOpacity=o:"filter"in t&&(t.filter=""===o?"":"alpha(opacity="+100*Number(o)+")")},goog.style.setTransparentBackgroundImage=function(e,o){var t=e.style;goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("8")?t.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+o+'", sizingMethod="crop")':(t.backgroundImage="url("+o+")",t.backgroundPosition="top left",t.backgroundRepeat="no-repeat")},goog.style.clearTransparentBackgroundImage=function(e){e=e.style,"filter"in e?e.filter="":e.backgroundImage="none"},goog.style.showElement=function(e,o){goog.style.setElementShown(e,o)},goog.style.setElementShown=function(e,o){e.style.display=o?"":"none"},goog.style.isElementShown=function(e){return"none"!=e.style.display},goog.style.installStyles=function(e,o){return goog.style.installSafeStyleSheet(goog.html.legacyconversions.safeStyleSheetFromString(e),o)},goog.style.installSafeStyleSheet=function(e,o){var t,n=goog.dom.getDomHelper(o),r=n.getDocument();return goog.userAgent.IE&&r.createStyleSheet?(t=r.createStyleSheet(),goog.style.setSafeStyleSheet(t,e)):(r=n.getElementsByTagNameAndClass("HEAD")[0],r||(t=n.getElementsByTagNameAndClass("BODY")[0],r=n.createDom("HEAD"),t.parentNode.insertBefore(r,t)),t=n.createDom("STYLE"),goog.style.setSafeStyleSheet(t,e),n.appendChild(r,t)),t},goog.style.uninstallStyles=function(e){goog.dom.removeNode(e.ownerNode||e.owningElement||e)},goog.style.setStyles=function(e,o){goog.style.setSafeStyleSheet(e,goog.html.legacyconversions.safeStyleSheetFromString(o))},goog.style.setSafeStyleSheet=function(e,o){var t=goog.html.SafeStyleSheet.unwrap(o);goog.userAgent.IE&&goog.isDef(e.cssText)?e.cssText=t:e.innerHTML=t},goog.style.setPreWrap=function(e){e=e.style,goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("8")?(e.whiteSpace="pre",e.wordWrap="break-word"):e.whiteSpace=goog.userAgent.GECKO?"-moz-pre-wrap":"pre-wrap"},goog.style.setInlineBlock=function(e){e=e.style,e.position="relative",goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("8")?(e.zoom="1",e.display="inline"):e.display="inline-block"},goog.style.isRightToLeft=function(e){return"rtl"==goog.style.getStyle_(e,"direction")},goog.style.unselectableStyle_=goog.userAgent.GECKO?"MozUserSelect":goog.userAgent.WEBKIT||goog.userAgent.EDGE?"WebkitUserSelect":null,goog.style.isUnselectable=function(e){return goog.style.unselectableStyle_?"none"==e.style[goog.style.unselectableStyle_].toLowerCase():goog.userAgent.IE||goog.userAgent.OPERA?"on"==e.getAttribute("unselectable"):!1},goog.style.setUnselectable=function(e,o,t){t=t?null:e.getElementsByTagName("*");var n=goog.style.unselectableStyle_;if(n){if(o=o?"none":"",e.style&&(e.style[n]=o),t){e=0;for(var r;r=t[e];e++)r.style&&(r.style[n]=o)}}else if((goog.userAgent.IE||goog.userAgent.OPERA)&&(o=o?"on":"",e.setAttribute("unselectable",o),t))for(e=0;r=t[e];e++)r.setAttribute("unselectable",o)},goog.style.getBorderBoxSize=function(e){return new goog.math.Size(e.offsetWidth,e.offsetHeight)},goog.style.setBorderBoxSize=function(e,o){var t=goog.dom.getOwnerDocument(e),n=goog.dom.getDomHelper(t).isCss1CompatMode();if(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10")||n&&goog.userAgent.isVersionOrHigher("8"))goog.style.setBoxSizingSize_(e,o,"border-box");else if(t=e.style,n){var n=goog.style.getPaddingBox(e),r=goog.style.getBorderBox(e);t.pixelWidth=o.width-r.left-n.left-n.right-r.right,t.pixelHeight=o.height-r.top-n.top-n.bottom-r.bottom}else t.pixelWidth=o.width,t.pixelHeight=o.height},goog.style.getContentBoxSize=function(e){var o=goog.dom.getOwnerDocument(e),t=goog.userAgent.IE&&e.currentStyle;return t&&goog.dom.getDomHelper(o).isCss1CompatMode()&&"auto"!=t.width&&"auto"!=t.height&&!t.boxSizing?(o=goog.style.getIePixelValue_(e,t.width,"width","pixelWidth"),e=goog.style.getIePixelValue_(e,t.height,"height","pixelHeight"),new goog.math.Size(o,e)):(t=goog.style.getBorderBoxSize(e),o=goog.style.getPaddingBox(e),e=goog.style.getBorderBox(e),new goog.math.Size(t.width-e.left-o.left-o.right-e.right,t.height-e.top-o.top-o.bottom-e.bottom))},goog.style.setContentBoxSize=function(e,o){var t=goog.dom.getOwnerDocument(e),n=goog.dom.getDomHelper(t).isCss1CompatMode();if(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10")||n&&goog.userAgent.isVersionOrHigher("8"))goog.style.setBoxSizingSize_(e,o,"content-box");else if(t=e.style,n)t.pixelWidth=o.width,t.pixelHeight=o.height;else{var n=goog.style.getPaddingBox(e),r=goog.style.getBorderBox(e);t.pixelWidth=o.width+r.left+n.left+n.right+r.right,t.pixelHeight=o.height+r.top+n.top+n.bottom+r.bottom}},goog.style.setBoxSizingSize_=function(e,o,t){e=e.style,goog.userAgent.GECKO?e.MozBoxSizing=t:goog.userAgent.WEBKIT?e.WebkitBoxSizing=t:e.boxSizing=t,e.width=Math.max(o.width,0)+"px",e.height=Math.max(o.height,0)+"px"},goog.style.getIePixelValue_=function(e,o,t,n){if(/^\d+px?$/.test(o))return parseInt(o,10);var r=e.style[t],i=e.runtimeStyle[t];return e.runtimeStyle[t]=e.currentStyle[t],e.style[t]=o,o=e.style[n],e.style[t]=r,e.runtimeStyle[t]=i,o},goog.style.getIePixelDistance_=function(e,o){var t=goog.style.getCascadedStyle(e,o);return t?goog.style.getIePixelValue_(e,t,"left","pixelLeft"):0},goog.style.getBox_=function(e,o){if(goog.userAgent.IE){var t=goog.style.getIePixelDistance_(e,o+"Left"),n=goog.style.getIePixelDistance_(e,o+"Right"),r=goog.style.getIePixelDistance_(e,o+"Top"),i=goog.style.getIePixelDistance_(e,o+"Bottom");return new goog.math.Box(r,n,i,t)}return t=goog.style.getComputedStyle(e,o+"Left"),n=goog.style.getComputedStyle(e,o+"Right"),r=goog.style.getComputedStyle(e,o+"Top"),i=goog.style.getComputedStyle(e,o+"Bottom"),new goog.math.Box(parseFloat(r),parseFloat(n),parseFloat(i),parseFloat(t))},goog.style.getPaddingBox=function(e){return goog.style.getBox_(e,"padding")},goog.style.getMarginBox=function(e){return goog.style.getBox_(e,"margin")},goog.style.ieBorderWidthKeywords_={thin:2,medium:4,thick:6},goog.style.getIePixelBorder_=function(e,o){if("none"==goog.style.getCascadedStyle(e,o+"Style"))return 0;var t=goog.style.getCascadedStyle(e,o+"Width");return t in goog.style.ieBorderWidthKeywords_?goog.style.ieBorderWidthKeywords_[t]:goog.style.getIePixelValue_(e,t,"left","pixelLeft")},goog.style.getBorderBox=function(e){if(goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(9)){var o=goog.style.getIePixelBorder_(e,"borderLeft"),t=goog.style.getIePixelBorder_(e,"borderRight"),n=goog.style.getIePixelBorder_(e,"borderTop");return e=goog.style.getIePixelBorder_(e,"borderBottom"),new goog.math.Box(n,t,e,o)}return o=goog.style.getComputedStyle(e,"borderLeftWidth"),t=goog.style.getComputedStyle(e,"borderRightWidth"),n=goog.style.getComputedStyle(e,"borderTopWidth"),e=goog.style.getComputedStyle(e,"borderBottomWidth"),new goog.math.Box(parseFloat(n),parseFloat(t),parseFloat(e),parseFloat(o))},goog.style.getFontFamily=function(e){var o=goog.dom.getOwnerDocument(e),t="";if(o.body.createTextRange&&goog.dom.contains(o,e)){o=o.body.createTextRange(),o.moveToElementText(e);try{t=o.queryCommandValue("FontName")}catch(n){t=""}}return t||(t=goog.style.getStyle_(e,"fontFamily")),e=t.split(","),1<e.length&&(t=e[0]),goog.string.stripQuotes(t,"\"'")},goog.style.lengthUnitRegex_=/[^\d]+$/,goog.style.getLengthUnits=function(e){return(e=e.match(goog.style.lengthUnitRegex_))&&e[0]||null},goog.style.ABSOLUTE_CSS_LENGTH_UNITS_={cm:1,"in":1,mm:1,pc:1,pt:1},goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_={em:1,ex:1},goog.style.getFontSize=function(e){var o=goog.style.getStyle_(e,"fontSize"),t=goog.style.getLengthUnits(o);if(o&&"px"==t)return parseInt(o,10);if(goog.userAgent.IE){if(String(t)in goog.style.ABSOLUTE_CSS_LENGTH_UNITS_)return goog.style.getIePixelValue_(e,o,"left","pixelLeft");if(e.parentNode&&e.parentNode.nodeType==goog.dom.NodeType.ELEMENT&&String(t)in goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_)return e=e.parentNode,t=goog.style.getStyle_(e,"fontSize"),goog.style.getIePixelValue_(e,o==t?"1em":o,"left","pixelLeft")}return t=goog.dom.createDom("SPAN",{style:"visibility:hidden;position:absolute;line-height:0;padding:0;margin:0;border:0;height:1em;"}),goog.dom.appendChild(e,t),o=t.offsetHeight,goog.dom.removeNode(t),o},goog.style.parseStyleAttribute=function(e){var o={};return goog.array.forEach(e.split(/\s*;\s*/),function(e){var t=e.match(/\s*([\w-]+)\s*\:(.+)/);t&&(e=t[1],t=goog.string.trim(t[2]),o[goog.string.toCamelCase(e.toLowerCase())]=t)}),o},goog.style.toStyleAttribute=function(e){var o=[];return goog.object.forEach(e,function(e,t){o.push(goog.string.toSelectorCase(t),":",e,";")}),o.join("")},goog.style.setFloat=function(e,o){e.style[goog.userAgent.IE?"styleFloat":"cssFloat"]=o},goog.style.getFloat=function(e){return e.style[goog.userAgent.IE?"styleFloat":"cssFloat"]||""},goog.style.getScrollbarWidth=function(e){var o=goog.dom.createElement("DIV");return e&&(o.className=e),o.style.cssText="overflow:auto;position:absolute;top:0;width:100px;height:100px",e=goog.dom.createElement("DIV"),goog.style.setSize(e,"200px","200px"),o.appendChild(e),goog.dom.appendChild(goog.dom.getDocument().body,o),e=o.offsetWidth-o.clientWidth,goog.dom.removeNode(o),e},goog.style.MATRIX_TRANSLATION_REGEX_=/matrix\([0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, ([0-9\.\-]+)p?x?, ([0-9\.\-]+)p?x?\)/,goog.style.getCssTranslation=function(e){return e=goog.style.getComputedTransform(e),e&&(e=e.match(goog.style.MATRIX_TRANSLATION_REGEX_))?new goog.math.Coordinate(parseFloat(e[1]),parseFloat(e[2])):new goog.math.Coordinate(0,0)},goog.Thenable=function(){},goog.Thenable.prototype.then=function(e,o,t){},goog.Thenable.IMPLEMENTED_BY_PROP="$goog_Thenable",goog.Thenable.addImplementation=function(e){e.prototype.then=e.prototype.then,COMPILED?e.prototype[goog.Thenable.IMPLEMENTED_BY_PROP]=!0:e.prototype.$goog_Thenable=!0},goog.Thenable.isImplementedBy=function(e){if(!e)return!1;try{return COMPILED?!!e[goog.Thenable.IMPLEMENTED_BY_PROP]:!!e.$goog_Thenable}catch(o){return!1}},goog.async={},goog.async.FreeList=function(e,o,t){this.limit_=t,this.create_=e,this.reset_=o,this.occupants_=0,this.head_=null},goog.async.FreeList.prototype.get=function(){var e;return 0<this.occupants_?(this.occupants_--,e=this.head_,this.head_=e.next,e.next=null):e=this.create_(),e},goog.async.FreeList.prototype.put=function(e){this.reset_(e),this.occupants_<this.limit_&&(this.occupants_++,e.next=this.head_,this.head_=e)},goog.async.FreeList.prototype.occupants=function(){return this.occupants_},goog.async.WorkQueue=function(){this.workTail_=this.workHead_=null},goog.async.WorkQueue.DEFAULT_MAX_UNUSED=100,goog.async.WorkQueue.freelist_=new goog.async.FreeList(function(){return new goog.async.WorkItem},function(e){e.reset()},goog.async.WorkQueue.DEFAULT_MAX_UNUSED),goog.async.WorkQueue.prototype.add=function(e,o){var t=this.getUnusedItem_();t.set(e,o),this.workTail_?this.workTail_.next=t:(goog.asserts.assert(!this.workHead_),this.workHead_=t),this.workTail_=t},goog.async.WorkQueue.prototype.remove=function(){var e=null;return this.workHead_&&(e=this.workHead_,this.workHead_=this.workHead_.next,this.workHead_||(this.workTail_=null),e.next=null),e},goog.async.WorkQueue.prototype.returnUnused=function(e){goog.async.WorkQueue.freelist_.put(e)},goog.async.WorkQueue.prototype.getUnusedItem_=function(){return goog.async.WorkQueue.freelist_.get()},goog.async.WorkItem=function(){this.next=this.scope=this.fn=null},goog.async.WorkItem.prototype.set=function(e,o){this.fn=e,this.scope=o,this.next=null},goog.async.WorkItem.prototype.reset=function(){this.next=this.scope=this.fn=null},goog.functions={},goog.functions.constant=function(e){return function(){return e}},goog.functions.FALSE=goog.functions.constant(!1),goog.functions.TRUE=goog.functions.constant(!0),
@@ -13,10 +13,10 @@
 var r=n.keys_[o++];return e?r:n.map_[r]},r},goog.structs.Map.hasKey_=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},goog.structs.Set=function(e){this.map_=new goog.structs.Map,e&&this.addAll(e)},goog.structs.Set.getKey_=function(e){var o=typeof e;return"object"==o&&e||"function"==o?"o"+goog.getUid(e):o.substr(0,1)+e},goog.structs.Set.prototype.getCount=function(){return this.map_.getCount()},goog.structs.Set.prototype.add=function(e){this.map_.set(goog.structs.Set.getKey_(e),e)},goog.structs.Set.prototype.addAll=function(e){e=goog.structs.getValues(e);for(var o=e.length,t=0;o>t;t++)this.add(e[t])},goog.structs.Set.prototype.removeAll=function(e){e=goog.structs.getValues(e);for(var o=e.length,t=0;o>t;t++)this.remove(e[t])},goog.structs.Set.prototype.remove=function(e){return this.map_.remove(goog.structs.Set.getKey_(e))},goog.structs.Set.prototype.clear=function(){this.map_.clear()},goog.structs.Set.prototype.isEmpty=function(){return this.map_.isEmpty()},goog.structs.Set.prototype.contains=function(e){return this.map_.containsKey(goog.structs.Set.getKey_(e))},goog.structs.Set.prototype.containsAll=function(e){return goog.structs.every(e,this.contains,this)},goog.structs.Set.prototype.intersection=function(e){var o=new goog.structs.Set;e=goog.structs.getValues(e);for(var t=0;t<e.length;t++){var n=e[t];this.contains(n)&&o.add(n)}return o},goog.structs.Set.prototype.difference=function(e){var o=this.clone();return o.removeAll(e),o},goog.structs.Set.prototype.getValues=function(){return this.map_.getValues()},goog.structs.Set.prototype.clone=function(){return new goog.structs.Set(this)},goog.structs.Set.prototype.equals=function(e){return this.getCount()==goog.structs.getCount(e)&&this.isSubsetOf(e)},goog.structs.Set.prototype.isSubsetOf=function(e){var o=goog.structs.getCount(e);return this.getCount()>o?!1:(!(e instanceof goog.structs.Set)&&o>5&&(e=new goog.structs.Set(e)),goog.structs.every(this,function(o){return goog.structs.contains(e,o)}))},goog.structs.Set.prototype.__iterator__=function(e){return this.map_.__iterator__(!1)},goog.debug.LOGGING_ENABLED=goog.DEBUG,goog.debug.FORCE_SLOPPY_STACKS=!1,goog.debug.catchErrors=function(e,o,t){t=t||goog.global;var n=t.onerror,r=!!o;goog.userAgent.WEBKIT&&!goog.userAgent.isVersionOrHigher("535.3")&&(r=!r),t.onerror=function(o,t,i,s,l){return n&&n(o,t,i,s,l),e({message:o,fileName:t,line:i,col:s,error:l}),r}},goog.debug.expose=function(e,o){if("undefined"==typeof e)return"undefined";if(null==e)return"NULL";var t,n=[];for(t in e)if(o||!goog.isFunction(e[t])){var r=t+" = ";try{r+=e[t]}catch(i){r+="*** "+i+" ***"}n.push(r)}return n.join("\n")},goog.debug.deepExpose=function(e,o){var t=[],n=function(e,r,i){var s=r+"  ";i=new goog.structs.Set(i);try{if(goog.isDef(e))if(goog.isNull(e))t.push("NULL");else if(goog.isString(e))t.push('"'+e.replace(/\n/g,"\n"+r)+'"');else if(goog.isFunction(e))t.push(String(e).replace(/\n/g,"\n"+r));else if(goog.isObject(e))if(i.contains(e))t.push("*** reference loop detected ***");else{i.add(e),t.push("{");for(var l in e)(o||!goog.isFunction(e[l]))&&(t.push("\n"),t.push(s),t.push(l+" = "),n(e[l],s,i));t.push("\n"+r+"}")}else t.push(e);else t.push("undefined")}catch(g){t.push("*** "+g+" ***")}};return n(e,"",new goog.structs.Set),t.join("")},goog.debug.exposeArray=function(e){for(var o=[],t=0;t<e.length;t++)goog.isArray(e[t])?o.push(goog.debug.exposeArray(e[t])):o.push(e[t]);return"[ "+o.join(", ")+" ]"},goog.debug.exposeException=function(e,o){var t=goog.debug.exposeExceptionAsHtml(e,o);return goog.html.SafeHtml.unwrap(t)},goog.debug.exposeExceptionAsHtml=function(e,o){try{var t=goog.debug.normalizeErrorObject(e),n=goog.debug.createViewSourceUrl_(t.fileName);return goog.html.SafeHtml.concat(goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces("Message: "+t.message+"\nUrl: "),goog.html.SafeHtml.create("a",{href:n,target:"_new"},t.fileName),goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces("\nLine: "+t.lineNumber+"\n\nBrowser stack:\n"+t.stack+"-> [end]\n\nJS stack traversal:\n"+goog.debug.getStacktrace(o)+"-> "))}catch(r){return goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces("Exception trying to expose exception! You win, we lose. "+r)}},goog.debug.createViewSourceUrl_=function(e){return goog.isDefAndNotNull(e)||(e=""),/^https?:\/\//i.test(e)?(e=goog.html.SafeUrl.sanitize(e),goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("view-source scheme plus HTTP/HTTPS URL"),"view-source:"+goog.html.SafeUrl.unwrap(e))):goog.html.SafeUrl.fromConstant(goog.string.Const.from("sanitizedviewsrc"))},goog.debug.normalizeErrorObject=function(e){var o=goog.getObjectByName("window.location.href");if(goog.isString(e))return{message:e,name:"Unknown error",lineNumber:"Not available",fileName:o,stack:"Not available"};var t,n,r=!1;try{t=e.lineNumber||e.line||"Not available"}catch(i){t="Not available",r=!0}try{n=e.fileName||e.filename||e.sourceURL||goog.global.$googDebugFname||o}catch(i){n="Not available",r=!0}return!r&&e.lineNumber&&e.fileName&&e.stack&&e.message&&e.name?e:{message:e.message||"Not available",name:e.name||"UnknownError",lineNumber:t,fileName:n,stack:e.stack||"Not available"}},goog.debug.enhanceError=function(e,o){var t;if(e instanceof Error?t=e:(t=Error(e),Error.captureStackTrace&&Error.captureStackTrace(t,goog.debug.enhanceError)),t.stack||(t.stack=goog.debug.getStacktrace(goog.debug.enhanceError)),o){for(var n=0;t["message"+n];)++n;t["message"+n]=String(o)}return t},goog.debug.getStacktraceSimple=function(e){if(!goog.debug.FORCE_SLOPPY_STACKS){var o=goog.debug.getNativeStackTrace_(goog.debug.getStacktraceSimple);if(o)return o}for(var o=[],t=arguments.callee.caller,n=0;t&&(!e||e>n);){o.push(goog.debug.getFunctionName(t)),o.push("()\n");try{t=t.caller}catch(r){o.push("[exception trying to get caller]\n");break}if(n++,n>=goog.debug.MAX_STACK_DEPTH){o.push("[...long stack...]");break}}return e&&n>=e?o.push("[...reached max depth limit...]"):o.push("[end]"),o.join("")},goog.debug.MAX_STACK_DEPTH=50,goog.debug.getNativeStackTrace_=function(e){var o=Error();if(Error.captureStackTrace)return Error.captureStackTrace(o,e),String(o.stack);try{throw o}catch(t){o=t}return(e=o.stack)?String(e):null},goog.debug.getStacktrace=function(e){var o;return goog.debug.FORCE_SLOPPY_STACKS||(o=goog.debug.getNativeStackTrace_(e||goog.debug.getStacktrace)),o||(o=goog.debug.getStacktraceHelper_(e||arguments.callee.caller,[])),o},goog.debug.getStacktraceHelper_=function(e,o){var t=[];if(goog.array.contains(o,e))t.push("[...circular reference...]");else if(e&&o.length<goog.debug.MAX_STACK_DEPTH){t.push(goog.debug.getFunctionName(e)+"(");for(var n=e.arguments,r=0;n&&r<n.length;r++){r>0&&t.push(", ");var i;switch(i=n[r],typeof i){case"object":i=i?"object":"null";break;case"string":break;case"number":i=String(i);break;case"boolean":i=i?"true":"false";break;case"function":i=(i=goog.debug.getFunctionName(i))?i:"[fn]";break;default:i=typeof i}40<i.length&&(i=i.substr(0,40)+"..."),t.push(i)}o.push(e),t.push(")\n");try{t.push(goog.debug.getStacktraceHelper_(e.caller,o))}catch(s){t.push("[exception trying to get caller]\n")}}else e?t.push("[...long stack...]"):t.push("[end]");return t.join("")},goog.debug.setFunctionResolver=function(e){goog.debug.fnNameResolver_=e},goog.debug.getFunctionName=function(e){if(goog.debug.fnNameCache_[e])return goog.debug.fnNameCache_[e];if(goog.debug.fnNameResolver_){var o=goog.debug.fnNameResolver_(e);if(o)return goog.debug.fnNameCache_[e]=o}return e=String(e),goog.debug.fnNameCache_[e]||(o=/function ([^\(]+)/.exec(e),goog.debug.fnNameCache_[e]=o?o[1]:"[Anonymous]"),goog.debug.fnNameCache_[e]},goog.debug.makeWhitespaceVisible=function(e){return e.replace(/ /g,"[_]").replace(/\f/g,"[f]").replace(/\n/g,"[n]\n").replace(/\r/g,"[r]").replace(/\t/g,"[t]")},goog.debug.runtimeType=function(e){return e instanceof Function?e.displayName||e.name||"unknown type name":e instanceof Object?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):null===e?"null":typeof e},goog.debug.fnNameCache_={},goog.debug.LogRecord=function(e,o,t,n,r){this.reset(e,o,t,n,r)},goog.debug.LogRecord.prototype.sequenceNumber_=0,goog.debug.LogRecord.prototype.exception_=null,goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS=!0,goog.debug.LogRecord.nextSequenceNumber_=0,goog.debug.LogRecord.prototype.reset=function(e,o,t,n,r){goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS&&(this.sequenceNumber_="number"==typeof r?r:goog.debug.LogRecord.nextSequenceNumber_++),this.time_=n||goog.now(),this.level_=e,this.msg_=o,this.loggerName_=t,delete this.exception_},goog.debug.LogRecord.prototype.getLoggerName=function(){return this.loggerName_},goog.debug.LogRecord.prototype.getException=function(){return this.exception_},goog.debug.LogRecord.prototype.setException=function(e){this.exception_=e},goog.debug.LogRecord.prototype.setLoggerName=function(e){this.loggerName_=e},goog.debug.LogRecord.prototype.getLevel=function(){return this.level_},goog.debug.LogRecord.prototype.setLevel=function(e){this.level_=e},goog.debug.LogRecord.prototype.getMessage=function(){return this.msg_},goog.debug.LogRecord.prototype.setMessage=function(e){this.msg_=e},goog.debug.LogRecord.prototype.getMillis=function(){return this.time_},goog.debug.LogRecord.prototype.setMillis=function(e){this.time_=e},goog.debug.LogRecord.prototype.getSequenceNumber=function(){return this.sequenceNumber_},goog.debug.LogBuffer=function(){goog.asserts.assert(goog.debug.LogBuffer.isBufferingEnabled(),"Cannot use goog.debug.LogBuffer without defining goog.debug.LogBuffer.CAPACITY."),this.clear()},goog.debug.LogBuffer.getInstance=function(){return goog.debug.LogBuffer.instance_||(goog.debug.LogBuffer.instance_=new goog.debug.LogBuffer),goog.debug.LogBuffer.instance_},goog.debug.LogBuffer.CAPACITY=0,goog.debug.LogBuffer.prototype.addRecord=function(e,o,t){var n=(this.curIndex_+1)%goog.debug.LogBuffer.CAPACITY;return this.curIndex_=n,this.isFull_?(n=this.buffer_[n],n.reset(e,o,t),n):(this.isFull_=n==goog.debug.LogBuffer.CAPACITY-1,this.buffer_[n]=new goog.debug.LogRecord(e,o,t))},goog.debug.LogBuffer.isBufferingEnabled=function(){return 0<goog.debug.LogBuffer.CAPACITY},goog.debug.LogBuffer.prototype.clear=function(){this.buffer_=Array(goog.debug.LogBuffer.CAPACITY),this.curIndex_=-1,this.isFull_=!1},goog.debug.LogBuffer.prototype.forEachRecord=function(e){var o=this.buffer_;if(o[0]){var t=this.curIndex_,n=this.isFull_?t:-1;do n=(n+1)%goog.debug.LogBuffer.CAPACITY,e(o[n]);while(n!=t)}},goog.debug.Logger=function(e){this.name_=e,this.handlers_=this.children_=this.level_=this.parent_=null},goog.debug.Logger.ROOT_LOGGER_NAME="",goog.debug.Logger.ENABLE_HIERARCHY=!0,goog.debug.Logger.ENABLE_HIERARCHY||(goog.debug.Logger.rootHandlers_=[]),goog.debug.Logger.Level=function(e,o){this.name=e,this.value=o},goog.debug.Logger.Level.prototype.toString=function(){return this.name},goog.debug.Logger.Level.OFF=new goog.debug.Logger.Level("OFF",1/0),goog.debug.Logger.Level.SHOUT=new goog.debug.Logger.Level("SHOUT",1200),goog.debug.Logger.Level.SEVERE=new goog.debug.Logger.Level("SEVERE",1e3),goog.debug.Logger.Level.WARNING=new goog.debug.Logger.Level("WARNING",900),goog.debug.Logger.Level.INFO=new goog.debug.Logger.Level("INFO",800),goog.debug.Logger.Level.CONFIG=new goog.debug.Logger.Level("CONFIG",700),goog.debug.Logger.Level.FINE=new goog.debug.Logger.Level("FINE",500),goog.debug.Logger.Level.FINER=new goog.debug.Logger.Level("FINER",400),goog.debug.Logger.Level.FINEST=new goog.debug.Logger.Level("FINEST",300),goog.debug.Logger.Level.ALL=new goog.debug.Logger.Level("ALL",0),goog.debug.Logger.Level.PREDEFINED_LEVELS=[goog.debug.Logger.Level.OFF,goog.debug.Logger.Level.SHOUT,goog.debug.Logger.Level.SEVERE,goog.debug.Logger.Level.WARNING,goog.debug.Logger.Level.INFO,goog.debug.Logger.Level.CONFIG,goog.debug.Logger.Level.FINE,goog.debug.Logger.Level.FINER,goog.debug.Logger.Level.FINEST,goog.debug.Logger.Level.ALL],goog.debug.Logger.Level.predefinedLevelsCache_=null,goog.debug.Logger.Level.createPredefinedLevelsCache_=function(){goog.debug.Logger.Level.predefinedLevelsCache_={};for(var e,o=0;e=goog.debug.Logger.Level.PREDEFINED_LEVELS[o];o++)goog.debug.Logger.Level.predefinedLevelsCache_[e.value]=e,goog.debug.Logger.Level.predefinedLevelsCache_[e.name]=e},goog.debug.Logger.Level.getPredefinedLevel=function(e){return goog.debug.Logger.Level.predefinedLevelsCache_||goog.debug.Logger.Level.createPredefinedLevelsCache_(),goog.debug.Logger.Level.predefinedLevelsCache_[e]||null},goog.debug.Logger.Level.getPredefinedLevelByValue=function(e){if(goog.debug.Logger.Level.predefinedLevelsCache_||goog.debug.Logger.Level.createPredefinedLevelsCache_(),e in goog.debug.Logger.Level.predefinedLevelsCache_)return goog.debug.Logger.Level.predefinedLevelsCache_[e];for(var o=0;o<goog.debug.Logger.Level.PREDEFINED_LEVELS.length;++o){var t=goog.debug.Logger.Level.PREDEFINED_LEVELS[o];if(t.value<=e)return t}return null},goog.debug.Logger.getLogger=function(e){return goog.debug.LogManager.getLogger(e)},goog.debug.Logger.logToProfilers=function(e){goog.global.console&&(goog.global.console.timeStamp?goog.global.console.timeStamp(e):goog.global.console.markTimeline&&goog.global.console.markTimeline(e)),goog.global.msWriteProfilerMark&&goog.global.msWriteProfilerMark(e)},goog.debug.Logger.prototype.getName=function(){return this.name_},goog.debug.Logger.prototype.addHandler=function(e){goog.debug.LOGGING_ENABLED&&(goog.debug.Logger.ENABLE_HIERARCHY?(this.handlers_||(this.handlers_=[]),this.handlers_.push(e)):(goog.asserts.assert(!this.name_,"Cannot call addHandler on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),goog.debug.Logger.rootHandlers_.push(e)))},goog.debug.Logger.prototype.removeHandler=function(e){if(goog.debug.LOGGING_ENABLED){var o=goog.debug.Logger.ENABLE_HIERARCHY?this.handlers_:goog.debug.Logger.rootHandlers_;return!!o&&goog.array.remove(o,e)}return!1},goog.debug.Logger.prototype.getParent=function(){return this.parent_},goog.debug.Logger.prototype.getChildren=function(){return this.children_||(this.children_={}),this.children_},goog.debug.Logger.prototype.setLevel=function(e){goog.debug.LOGGING_ENABLED&&(goog.debug.Logger.ENABLE_HIERARCHY?this.level_=e:(goog.asserts.assert(!this.name_,"Cannot call setLevel() on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),goog.debug.Logger.rootLevel_=e))},goog.debug.Logger.prototype.getLevel=function(){return goog.debug.LOGGING_ENABLED?this.level_:goog.debug.Logger.Level.OFF},goog.debug.Logger.prototype.getEffectiveLevel=function(){return goog.debug.LOGGING_ENABLED?goog.debug.Logger.ENABLE_HIERARCHY?this.level_?this.level_:this.parent_?this.parent_.getEffectiveLevel():(goog.asserts.fail("Root logger has no level set."),null):goog.debug.Logger.rootLevel_:goog.debug.Logger.Level.OFF},goog.debug.Logger.prototype.isLoggable=function(e){return goog.debug.LOGGING_ENABLED&&e.value>=this.getEffectiveLevel().value},goog.debug.Logger.prototype.log=function(e,o,t){goog.debug.LOGGING_ENABLED&&this.isLoggable(e)&&(goog.isFunction(o)&&(o=o()),this.doLogRecord_(this.getLogRecord(e,o,t)))},goog.debug.Logger.prototype.getLogRecord=function(e,o,t){return e=goog.debug.LogBuffer.isBufferingEnabled()?goog.debug.LogBuffer.getInstance().addRecord(e,o,this.name_):new goog.debug.LogRecord(e,String(o),this.name_),t&&e.setException(t),e},goog.debug.Logger.prototype.shout=function(e,o){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.SHOUT,e,o)},goog.debug.Logger.prototype.severe=function(e,o){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.SEVERE,e,o)},goog.debug.Logger.prototype.warning=function(e,o){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.WARNING,e,o)},goog.debug.Logger.prototype.info=function(e,o){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.INFO,e,o)},goog.debug.Logger.prototype.config=function(e,o){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.CONFIG,e,o)},goog.debug.Logger.prototype.fine=function(e,o){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINE,e,o)},goog.debug.Logger.prototype.finer=function(e,o){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINER,e,o)},goog.debug.Logger.prototype.finest=function(e,o){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINEST,e,o)},goog.debug.Logger.prototype.logRecord=function(e){goog.debug.LOGGING_ENABLED&&this.isLoggable(e.getLevel())&&this.doLogRecord_(e)},goog.debug.Logger.prototype.doLogRecord_=function(e){if(goog.debug.Logger.logToProfilers("log:"+e.getMessage()),goog.debug.Logger.ENABLE_HIERARCHY)for(var o=this;o;)o.callPublish_(e),o=o.getParent();else for(var t,o=0;t=goog.debug.Logger.rootHandlers_[o++];)t(e)},goog.debug.Logger.prototype.callPublish_=function(e){if(this.handlers_)for(var o,t=0;o=this.handlers_[t];t++)o(e)},goog.debug.Logger.prototype.setParent_=function(e){this.parent_=e},goog.debug.Logger.prototype.addChild_=function(e,o){this.getChildren()[e]=o},goog.debug.LogManager={},goog.debug.LogManager.loggers_={},goog.debug.LogManager.rootLogger_=null,goog.debug.LogManager.initialize=function(){goog.debug.LogManager.rootLogger_||(goog.debug.LogManager.rootLogger_=new goog.debug.Logger(goog.debug.Logger.ROOT_LOGGER_NAME),goog.debug.LogManager.loggers_[goog.debug.Logger.ROOT_LOGGER_NAME]=goog.debug.LogManager.rootLogger_,goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG))},goog.debug.LogManager.getLoggers=function(){return goog.debug.LogManager.loggers_},goog.debug.LogManager.getRoot=function(){return goog.debug.LogManager.initialize(),goog.debug.LogManager.rootLogger_},goog.debug.LogManager.getLogger=function(e){return goog.debug.LogManager.initialize(),goog.debug.LogManager.loggers_[e]||goog.debug.LogManager.createLogger_(e)},goog.debug.LogManager.createFunctionForCatchErrors=function(e){return function(o){(e||goog.debug.LogManager.getRoot()).severe("Error: "+o.message+" ("+o.fileName+" @ Line: "+o.line+")")}},goog.debug.LogManager.createLogger_=function(e){var o=new goog.debug.Logger(e);if(goog.debug.Logger.ENABLE_HIERARCHY){var t=e.lastIndexOf("."),n=e.substr(0,t),t=e.substr(t+1),n=goog.debug.LogManager.getLogger(n);n.addChild_(t,o),o.setParent_(n)}return goog.debug.LogManager.loggers_[e]=o},goog.log={},goog.log.ENABLED=goog.debug.LOGGING_ENABLED,goog.log.ROOT_LOGGER_NAME=goog.debug.Logger.ROOT_LOGGER_NAME,goog.log.Logger=goog.debug.Logger,goog.log.Level=goog.debug.Logger.Level,goog.log.LogRecord=goog.debug.LogRecord,goog.log.getLogger=function(e,o){if(goog.log.ENABLED){var t=goog.debug.LogManager.getLogger(e);return o&&t&&t.setLevel(o),t}return null},goog.log.addHandler=function(e,o){goog.log.ENABLED&&e&&e.addHandler(o)},goog.log.removeHandler=function(e,o){return goog.log.ENABLED&&e?e.removeHandler(o):!1},goog.log.log=function(e,o,t,n){goog.log.ENABLED&&e&&e.log(o,t,n)},goog.log.error=function(e,o,t){goog.log.ENABLED&&e&&e.severe(o,t)},goog.log.warning=function(e,o,t){goog.log.ENABLED&&e&&e.warning(o,t)},goog.log.info=function(e,o,t){goog.log.ENABLED&&e&&e.info(o,t)},goog.log.fine=function(e,o,t){goog.log.ENABLED&&e&&e.fine(o,t)},goog.string.StringBuffer=function(e,o){null!=e&&this.append.apply(this,arguments)},goog.string.StringBuffer.prototype.buffer_="",goog.string.StringBuffer.prototype.set=function(e){this.buffer_=""+e},goog.string.StringBuffer.prototype.append=function(e,o,t){if(this.buffer_+=String(e),null!=o)for(var n=1;n<arguments.length;n++)this.buffer_+=arguments[n];return this},goog.string.StringBuffer.prototype.clear=function(){this.buffer_=""},goog.string.StringBuffer.prototype.getLength=function(){return this.buffer_.length},goog.string.StringBuffer.prototype.toString=function(){return this.buffer_},goog.ui.tree={},goog.ui.tree.BaseNode=function(e,o,t){goog.ui.Component.call(this,t),this.config_=o||goog.ui.tree.BaseNode.defaultConfig,this.html_=goog.html.SafeHtml.htmlEscapePreservingNewlines(e),this.expanded_=this.selected_=!1,this.toolTip_=null,this.afterLabelHtml_=goog.html.SafeHtml.EMPTY,this.isUserCollapsible_=!0,this.depth_=-1},goog.inherits(goog.ui.tree.BaseNode,goog.ui.Component),goog.ui.tree.BaseNode.EventType={BEFORE_EXPAND:"beforeexpand",EXPAND:"expand",BEFORE_COLLAPSE:"beforecollapse",COLLAPSE:"collapse"},goog.ui.tree.BaseNode.allNodes={},goog.ui.tree.BaseNode.prototype.disposeInternal=function(){goog.ui.tree.BaseNode.superClass_.disposeInternal.call(this),this.tree&&(this.tree.removeNode(this),this.tree=null),this.setElementInternal(null)},goog.ui.tree.BaseNode.prototype.initAccessibility=function(){var e=this.getElement();if(e){var o=this.getLabelElement();if(o&&!o.id&&(o.id=this.getId()+".label"),goog.a11y.aria.setRole(e,"treeitem"),goog.a11y.aria.setState(e,"selected",!1),goog.a11y.aria.setState(e,"expanded",!1),goog.a11y.aria.setState(e,"level",this.getDepth()),o&&goog.a11y.aria.setState(e,"labelledby",o.id),(e=this.getIconElement())&&goog.a11y.aria.setRole(e,"presentation"),(e=this.getExpandIconElement())&&goog.a11y.aria.setRole(e,"presentation"),(e=this.getChildrenElement())&&(goog.a11y.aria.setRole(e,"group"),e.hasChildNodes()))for(e=this.getChildCount(),o=1;e>=o;o++){var t=this.getChildAt(o-1).getElement();goog.asserts.assert(t,"The child element cannot be null"),goog.a11y.aria.setState(t,"setsize",e),goog.a11y.aria.setState(t,"posinset",o)}}},goog.ui.tree.BaseNode.prototype.createDom=function(){var e=this.getDomHelper().safeHtmlToNode(this.toSafeHtml());this.setElementInternal(e)},goog.ui.tree.BaseNode.prototype.enterDocument=function(){goog.ui.tree.BaseNode.superClass_.enterDocument.call(this),goog.ui.tree.BaseNode.allNodes[this.getId()]=this,this.initAccessibility()},goog.ui.tree.BaseNode.prototype.exitDocument=function(){goog.ui.tree.BaseNode.superClass_.exitDocument.call(this),delete goog.ui.tree.BaseNode.allNodes[this.getId()]},goog.ui.tree.BaseNode.prototype.addChildAt=function(e,o,t){goog.asserts.assert(!e.getParent()),goog.asserts.assertInstanceof(e,goog.ui.tree.BaseNode),t=this.getChildAt(o-1);var n=this.getChildAt(o);if(goog.ui.tree.BaseNode.superClass_.addChildAt.call(this,e,o),e.previousSibling_=t,e.nextSibling_=n,t?t.nextSibling_=e:this.firstChild_=e,n?n.previousSibling_=e:this.lastChild_=e,(o=this.getTree())&&e.setTreeInternal(o),e.setDepth_(this.getDepth()+1),this.getElement()&&(this.updateExpandIcon(),this.getExpanded())){o=this.getChildrenElement(),e.getElement()||e.createDom();var r=e.getElement(),i=n&&n.getElement();o.insertBefore(r,i),this.isInDocument()&&e.enterDocument(),n||(t?t.updateExpandIcon():(goog.style.setElementShown(o,!0),this.setExpanded(this.getExpanded())))}},goog.ui.tree.BaseNode.prototype.add=function(e,o){return goog.asserts.assert(!o||o.getParent()==this,"Can only add nodes before siblings"),e.getParent()&&e.getParent().removeChild(e),this.addChildAt(e,o?this.indexOfChild(o):this.getChildCount()),e},goog.ui.tree.BaseNode.prototype.removeChild=function(e,o){var t=this.getTree(),n=t?t.getSelectedItem():null;if((n==e||e.contains(n))&&(t.hasFocus()?(this.select(),goog.Timer.callOnce(this.onTimeoutSelect_,10,this)):this.select()),goog.ui.tree.BaseNode.superClass_.removeChild.call(this,e),this.lastChild_==e&&(this.lastChild_=e.previousSibling_),this.firstChild_==e&&(this.firstChild_=e.nextSibling_),e.previousSibling_&&(e.previousSibling_.nextSibling_=e.nextSibling_),e.nextSibling_&&(e.nextSibling_.previousSibling_=e.previousSibling_),n=e.isLastSibling(),e.tree=null,e.depth_=-1,t&&(t.removeNode(e),this.isInDocument())){if(t=this.getChildrenElement(),e.isInDocument()){var r=e.getElement();t.removeChild(r),e.exitDocument()}n&&(n=this.getLastChild())&&n.updateExpandIcon(),this.hasChildren()||(t.style.display="none",this.updateExpandIcon(),this.updateIcon_())}return e},goog.ui.tree.BaseNode.prototype.remove=goog.ui.tree.BaseNode.prototype.removeChild,goog.ui.tree.BaseNode.prototype.onTimeoutSelect_=function(){this.select()},goog.ui.tree.BaseNode.prototype.getTree=goog.abstractMethod,goog.ui.tree.BaseNode.prototype.getDepth=function(){var e=this.depth_;return 0>e&&(e=this.computeDepth_(),this.setDepth_(e)),e},goog.ui.tree.BaseNode.prototype.computeDepth_=function(){var e=this.getParent();return e?e.getDepth()+1:0},goog.ui.tree.BaseNode.prototype.setDepth_=function(e){if(e!=this.depth_){this.depth_=e;var o=this.getRowElement();if(o){var t=this.getPixelIndent_()+"px";this.isRightToLeft()?o.style.paddingRight=t:o.style.paddingLeft=t}this.forEachChild(function(o){o.setDepth_(e+1)})}},goog.ui.tree.BaseNode.prototype.contains=function(e){for(;e;){if(e==this)return!0;e=e.getParent()}return!1},goog.ui.tree.BaseNode.EMPTY_CHILDREN_=[],goog.ui.tree.BaseNode.prototype.getChildren=function(){var e=[];return this.forEachChild(function(o){e.push(o)}),e},goog.ui.tree.BaseNode.prototype.getFirstChild=function(){return this.getChildAt(0)},goog.ui.tree.BaseNode.prototype.getLastChild=function(){return this.getChildAt(this.getChildCount()-1)},goog.ui.tree.BaseNode.prototype.getPreviousSibling=function(){return this.previousSibling_},goog.ui.tree.BaseNode.prototype.getNextSibling=function(){return this.nextSibling_},goog.ui.tree.BaseNode.prototype.isLastSibling=function(){return!this.nextSibling_},goog.ui.tree.BaseNode.prototype.isSelected=function(){return this.selected_},goog.ui.tree.BaseNode.prototype.select=function(){var e=this.getTree();e&&e.setSelectedItem(this)},goog.ui.tree.BaseNode.prototype.deselect=goog.nullFunction,goog.ui.tree.BaseNode.prototype.setSelectedInternal=function(e){if(this.selected_!=e){this.selected_=e,this.updateRow();var o=this.getElement();o&&(goog.a11y.aria.setState(o,"selected",e),e&&(e=this.getTree().getElement(),goog.asserts.assert(e,"The DOM element for the tree cannot be null"),goog.a11y.aria.setState(e,"activedescendant",this.getId())))}},goog.ui.tree.BaseNode.prototype.getExpanded=function(){return this.expanded_},goog.ui.tree.BaseNode.prototype.setExpandedInternal=function(e){this.expanded_=e},goog.ui.tree.BaseNode.prototype.setExpanded=function(e){var o=e!=this.expanded_;if(!o||this.dispatchEvent(e?goog.ui.tree.BaseNode.EventType.BEFORE_EXPAND:goog.ui.tree.BaseNode.EventType.BEFORE_COLLAPSE)){var t;this.expanded_=e,t=this.getTree();var n=this.getElement();if(this.hasChildren()){if(!e&&t&&this.contains(t.getSelectedItem())&&this.select(),n){if((t=this.getChildrenElement())&&(goog.style.setElementShown(t,e),e&&this.isInDocument()&&!t.hasChildNodes())){var r=[];this.forEachChild(function(e){r.push(e.toSafeHtml())}),goog.dom.safe.setInnerHtml(t,goog.html.SafeHtml.concat(r)),this.forEachChild(function(e){e.enterDocument()})}this.updateExpandIcon()}}else(t=this.getChildrenElement())&&goog.style.setElementShown(t,!1);n&&(this.updateIcon_(),goog.a11y.aria.setState(n,"expanded",e)),o&&this.dispatchEvent(e?goog.ui.tree.BaseNode.EventType.EXPAND:goog.ui.tree.BaseNode.EventType.COLLAPSE)}},goog.ui.tree.BaseNode.prototype.toggle=function(){this.setExpanded(!this.getExpanded())},goog.ui.tree.BaseNode.prototype.expand=function(){this.setExpanded(!0)},goog.ui.tree.BaseNode.prototype.collapse=function(){this.setExpanded(!1)},goog.ui.tree.BaseNode.prototype.collapseChildren=function(){this.forEachChild(function(e){e.collapseAll()})},goog.ui.tree.BaseNode.prototype.collapseAll=function(){this.collapseChildren(),this.collapse()},goog.ui.tree.BaseNode.prototype.expandChildren=function(){this.forEachChild(function(e){e.expandAll()})},goog.ui.tree.BaseNode.prototype.expandAll=function(){this.expandChildren(),this.expand()},goog.ui.tree.BaseNode.prototype.reveal=function(){var e=this.getParent();e&&(e.setExpanded(!0),e.reveal())},goog.ui.tree.BaseNode.prototype.setIsUserCollapsible=function(e){(this.isUserCollapsible_=e)||this.expand(),this.getElement()&&this.updateExpandIcon()},goog.ui.tree.BaseNode.prototype.isUserCollapsible=function(){return this.isUserCollapsible_},goog.ui.tree.BaseNode.prototype.toSafeHtml=function(){var e=this.getTree(),o=!e.getShowLines()||e==this.getParent()&&!e.getShowRootLines()?this.config_.cssChildrenNoLines:this.config_.cssChildren,e=this.getExpanded()&&this.hasChildren(),o={"class":o,style:this.getLineStyle()},t=[];return e&&this.forEachChild(function(e){t.push(e.toSafeHtml())}),e=goog.html.SafeHtml.create("div",o,t),goog.html.SafeHtml.create("div",{"class":this.config_.cssItem,id:this.getId()},[this.getRowSafeHtml(),e])},goog.ui.tree.BaseNode.prototype.getPixelIndent_=function(){return Math.max(0,(this.getDepth()-1)*this.config_.indentWidth)},goog.ui.tree.BaseNode.prototype.getRowSafeHtml=function(){var e={};e["padding-"+(this.isRightToLeft()?"right":"left")]=this.getPixelIndent_()+"px";var e={"class":this.getRowClassName(),style:e},o=[this.getExpandIconSafeHtml(),this.getIconSafeHtml(),this.getLabelSafeHtml()];return goog.html.SafeHtml.create("div",e,o)},goog.ui.tree.BaseNode.prototype.getRowClassName=function(){var e;return e=this.isSelected()?" "+this.config_.cssSelectedRow:"",this.config_.cssTreeRow+e},goog.ui.tree.BaseNode.prototype.getLabelSafeHtml=function(){var e=goog.html.SafeHtml.create("span",{"class":this.config_.cssItemLabel,title:this.getToolTip()||null},this.getSafeHtml());return goog.html.SafeHtml.concat(e,goog.html.SafeHtml.create("span",{},this.getAfterLabelSafeHtml()))},goog.ui.tree.BaseNode.prototype.getAfterLabelHtml=function(){return goog.html.SafeHtml.unwrap(this.getAfterLabelSafeHtml())},goog.ui.tree.BaseNode.prototype.getAfterLabelSafeHtml=function(){return this.afterLabelHtml_},goog.ui.tree.BaseNode.prototype.setAfterLabelSafeHtml=function(e){this.afterLabelHtml_=e;var o=this.getAfterLabelElement();o&&goog.dom.safe.setInnerHtml(o,e)},goog.ui.tree.BaseNode.prototype.getIconSafeHtml=function(){return goog.html.SafeHtml.create("span",{style:{display:"inline-block"},"class":this.getCalculatedIconClass()})},goog.ui.tree.BaseNode.prototype.getCalculatedIconClass=goog.abstractMethod,goog.ui.tree.BaseNode.prototype.getExpandIconSafeHtml=function(){return goog.html.SafeHtml.create("span",{type:"expand",style:{display:"inline-block"},"class":this.getExpandIconClass()})},goog.ui.tree.BaseNode.prototype.getExpandIconClass=function(){var e=this.getTree(),o=!e.getShowLines()||e==this.getParent()&&!e.getShowRootLines(),t=this.config_,n=new goog.string.StringBuffer;if(n.append(t.cssTreeIcon," ",t.cssExpandTreeIcon," "),this.hasChildren()){var r=0;switch(e.getShowExpandIcons()&&this.isUserCollapsible_&&(r=this.getExpanded()?2:1),o||(r=this.isLastSibling()?r+4:r+8),r){case 1:n.append(t.cssExpandTreeIconPlus);break;case 2:n.append(t.cssExpandTreeIconMinus);break;case 4:n.append(t.cssExpandTreeIconL);break;case 5:n.append(t.cssExpandTreeIconLPlus);break;case 6:n.append(t.cssExpandTreeIconLMinus);break;case 8:n.append(t.cssExpandTreeIconT);break;case 9:n.append(t.cssExpandTreeIconTPlus);break;case 10:n.append(t.cssExpandTreeIconTMinus);break;default:n.append(t.cssExpandTreeIconBlank)}}else o?n.append(t.cssExpandTreeIconBlank):this.isLastSibling()?n.append(t.cssExpandTreeIconL):n.append(t.cssExpandTreeIconT);return n.toString()},goog.ui.tree.BaseNode.prototype.getLineStyle=function(){var e=this.getExpanded()&&this.hasChildren();return goog.html.SafeStyle.create({"background-position":this.getBackgroundPosition(),display:e?null:"none"})},goog.ui.tree.BaseNode.prototype.getBackgroundPosition=function(){return(this.isLastSibling()?"-100":(this.getDepth()-1)*this.config_.indentWidth)+"px 0"},goog.ui.tree.BaseNode.prototype.getElement=function(){var e=goog.ui.tree.BaseNode.superClass_.getElement.call(this);return e||(e=this.getDomHelper().getElement(this.getId()),this.setElementInternal(e)),e},goog.ui.tree.BaseNode.prototype.getRowElement=function(){var e=this.getElement();return e?e.firstChild:null},goog.ui.tree.BaseNode.prototype.getExpandIconElement=function(){var e=this.getRowElement();return e?e.firstChild:null},goog.ui.tree.BaseNode.prototype.getIconElement=function(){var e=this.getRowElement();return e?e.childNodes[1]:null},goog.ui.tree.BaseNode.prototype.getLabelElement=function(){var e=this.getRowElement();
 return e&&e.lastChild?e.lastChild.previousSibling:null},goog.ui.tree.BaseNode.prototype.getAfterLabelElement=function(){var e=this.getRowElement();return e?e.lastChild:null},goog.ui.tree.BaseNode.prototype.getChildrenElement=function(){var e=this.getElement();return e?e.lastChild:null},goog.ui.tree.BaseNode.prototype.setIconClass=function(e){this.iconClass_=e,this.isInDocument()&&this.updateIcon_()},goog.ui.tree.BaseNode.prototype.getIconClass=function(){return this.iconClass_},goog.ui.tree.BaseNode.prototype.setExpandedIconClass=function(e){this.expandedIconClass_=e,this.isInDocument()&&this.updateIcon_()},goog.ui.tree.BaseNode.prototype.getExpandedIconClass=function(){return this.expandedIconClass_},goog.ui.tree.BaseNode.prototype.setText=function(e){this.setSafeHtml(goog.html.SafeHtml.htmlEscape(e))},goog.ui.tree.BaseNode.prototype.getText=function(){return goog.string.unescapeEntities(goog.html.SafeHtml.unwrap(this.html_))},goog.ui.tree.BaseNode.prototype.setSafeHtml=function(e){this.html_=e;var o=this.getLabelElement();o&&goog.dom.safe.setInnerHtml(o,e),(e=this.getTree())&&e.setNode(this)},goog.ui.tree.BaseNode.prototype.getHtml=function(){return goog.html.SafeHtml.unwrap(this.getSafeHtml())},goog.ui.tree.BaseNode.prototype.getSafeHtml=function(){return this.html_},goog.ui.tree.BaseNode.prototype.setToolTip=function(e){this.toolTip_=e;var o=this.getLabelElement();o&&(o.title=e)},goog.ui.tree.BaseNode.prototype.getToolTip=function(){return this.toolTip_},goog.ui.tree.BaseNode.prototype.updateRow=function(){var e=this.getRowElement();e&&(e.className=this.getRowClassName())},goog.ui.tree.BaseNode.prototype.updateExpandIcon=function(){var e=this.getExpandIconElement();e&&(e.className=this.getExpandIconClass()),(e=this.getChildrenElement())&&(e.style.backgroundPosition=this.getBackgroundPosition())},goog.ui.tree.BaseNode.prototype.updateIcon_=function(){this.getIconElement().className=this.getCalculatedIconClass()},goog.ui.tree.BaseNode.prototype.onMouseDown=function(e){"expand"==e.target.getAttribute("type")&&this.hasChildren()?this.isUserCollapsible_&&this.toggle():(this.select(),this.updateRow())},goog.ui.tree.BaseNode.prototype.onClick_=goog.events.Event.preventDefault,goog.ui.tree.BaseNode.prototype.onDoubleClick_=function(e){"expand"==e.target.getAttribute("type")&&this.hasChildren()||this.isUserCollapsible_&&this.toggle()},goog.ui.tree.BaseNode.prototype.onKeyDown=function(e){var o=!0;switch(e.keyCode){case goog.events.KeyCodes.RIGHT:if(e.altKey)break;this.hasChildren()&&(this.getExpanded()?this.getFirstChild().select():this.setExpanded(!0));break;case goog.events.KeyCodes.LEFT:if(e.altKey)break;if(this.hasChildren()&&this.getExpanded()&&this.isUserCollapsible_)this.setExpanded(!1);else{var t=this.getParent(),n=this.getTree();t&&(n.getShowRootNode()||t!=n)&&t.select()}break;case goog.events.KeyCodes.DOWN:(t=this.getNextShownNode())&&t.select();break;case goog.events.KeyCodes.UP:(t=this.getPreviousShownNode())&&t.select();break;default:o=!1}return o&&(e.preventDefault(),(n=this.getTree())&&n.clearTypeAhead()),o},goog.ui.tree.BaseNode.prototype.getLastShownDescendant=function(){return this.getExpanded()&&this.hasChildren()?this.getLastChild().getLastShownDescendant():this},goog.ui.tree.BaseNode.prototype.getNextShownNode=function(){if(this.hasChildren()&&this.getExpanded())return this.getFirstChild();for(var e,o=this;o!=this.getTree();){if(e=o.getNextSibling(),null!=e)return e;o=o.getParent()}return null},goog.ui.tree.BaseNode.prototype.getPreviousShownNode=function(){var e=this.getPreviousSibling();if(null!=e)return e.getLastShownDescendant();var e=this.getParent(),o=this.getTree();return!o.getShowRootNode()&&e==o||this==o?null:e},goog.ui.tree.BaseNode.prototype.getClientData=goog.ui.tree.BaseNode.prototype.getModel,goog.ui.tree.BaseNode.prototype.setClientData=goog.ui.tree.BaseNode.prototype.setModel,goog.ui.tree.BaseNode.prototype.getConfig=function(){return this.config_},goog.ui.tree.BaseNode.prototype.setTreeInternal=function(e){this.tree!=e&&(this.tree=e,e.setNode(this),this.forEachChild(function(o){o.setTreeInternal(e)}))},goog.ui.tree.BaseNode.defaultConfig={indentWidth:19,cssRoot:"goog-tree-root goog-tree-item",cssHideRoot:"goog-tree-hide-root",cssItem:"goog-tree-item",cssChildren:"goog-tree-children",cssChildrenNoLines:"goog-tree-children-nolines",cssTreeRow:"goog-tree-row",cssItemLabel:"goog-tree-item-label",cssTreeIcon:"goog-tree-icon",cssExpandTreeIcon:"goog-tree-expand-icon",cssExpandTreeIconPlus:"goog-tree-expand-icon-plus",cssExpandTreeIconMinus:"goog-tree-expand-icon-minus",cssExpandTreeIconTPlus:"goog-tree-expand-icon-tplus",cssExpandTreeIconTMinus:"goog-tree-expand-icon-tminus",cssExpandTreeIconLPlus:"goog-tree-expand-icon-lplus",cssExpandTreeIconLMinus:"goog-tree-expand-icon-lminus",cssExpandTreeIconT:"goog-tree-expand-icon-t",cssExpandTreeIconL:"goog-tree-expand-icon-l",cssExpandTreeIconBlank:"goog-tree-expand-icon-blank",cssExpandedFolderIcon:"goog-tree-expanded-folder-icon",cssCollapsedFolderIcon:"goog-tree-collapsed-folder-icon",cssFileIcon:"goog-tree-file-icon",cssExpandedRootIcon:"goog-tree-expanded-folder-icon",cssCollapsedRootIcon:"goog-tree-collapsed-folder-icon",cssSelectedRow:"selected"},goog.ui.tree.TreeNode=function(e,o,t){goog.ui.tree.BaseNode.call(this,e,o,t)},goog.inherits(goog.ui.tree.TreeNode,goog.ui.tree.BaseNode),goog.ui.tree.TreeNode.prototype.getTree=function(){if(this.tree)return this.tree;var e=this.getParent();return e&&(e=e.getTree())?(this.setTreeInternal(e),e):null},goog.ui.tree.TreeNode.prototype.getCalculatedIconClass=function(){var e=this.getExpanded(),o=this.getExpandedIconClass();if(e&&o)return o;if(o=this.getIconClass(),!e&&o)return o;if(o=this.getConfig(),this.hasChildren()){if(e&&o.cssExpandedFolderIcon)return o.cssTreeIcon+" "+o.cssExpandedFolderIcon;if(!e&&o.cssCollapsedFolderIcon)return o.cssTreeIcon+" "+o.cssCollapsedFolderIcon}else if(o.cssFileIcon)return o.cssTreeIcon+" "+o.cssFileIcon;return""},goog.structs.Trie=function(e){this.value_=void 0,this.childNodes_={},e&&this.setAll(e)},goog.structs.Trie.prototype.set=function(e,o){this.setOrAdd_(e,o,!1)},goog.structs.Trie.prototype.add=function(e,o){this.setOrAdd_(e,o,!0)},goog.structs.Trie.prototype.setOrAdd_=function(e,o,t){for(var n=this,r=0;r<e.length;r++){var i=e.charAt(r);n.childNodes_[i]||(n.childNodes_[i]=new goog.structs.Trie),n=n.childNodes_[i]}if(t&&void 0!==n.value_)throw Error('The collection already contains the key "'+e+'"');n.value_=o},goog.structs.Trie.prototype.setAll=function(e){var o=goog.structs.getKeys(e);e=goog.structs.getValues(e);for(var t=0;t<o.length;t++)this.set(o[t],e[t])},goog.structs.Trie.prototype.getChildNode_=function(e){for(var o=this,t=0;t<e.length;t++){var n=e.charAt(t),o=o.childNodes_[n];if(!o)return}return o},goog.structs.Trie.prototype.get=function(e){return(e=this.getChildNode_(e))?e.value_:void 0},goog.structs.Trie.prototype.getKeyAndPrefixes=function(e,o){var t=this,n={},r=o||0;for(void 0!==t.value_&&(n[r]=t.value_);r<e.length;r++){var i=e.charAt(r);if(!(i in t.childNodes_))break;t=t.childNodes_[i],void 0!==t.value_&&(n[r]=t.value_)}return n},goog.structs.Trie.prototype.getValues=function(){var e=[];return this.getValuesInternal_(e),e},goog.structs.Trie.prototype.getValuesInternal_=function(e){void 0!==this.value_&&e.push(this.value_);for(var o in this.childNodes_)this.childNodes_[o].getValuesInternal_(e)},goog.structs.Trie.prototype.getKeys=function(e){var o=[];if(e){for(var t=this,n=0;n<e.length;n++){var r=e.charAt(n);if(!t.childNodes_[r])return[];t=t.childNodes_[r]}t.getKeysInternal_(e,o)}else this.getKeysInternal_("",o);return o},goog.structs.Trie.prototype.getKeysInternal_=function(e,o){void 0!==this.value_&&o.push(e);for(var t in this.childNodes_)this.childNodes_[t].getKeysInternal_(e+t,o)},goog.structs.Trie.prototype.containsKey=function(e){return void 0!==this.get(e)},goog.structs.Trie.prototype.containsPrefix=function(e){return 0==e.length?!this.isEmpty():!!this.getChildNode_(e)},goog.structs.Trie.prototype.containsValue=function(e){if(this.value_===e)return!0;for(var o in this.childNodes_)if(this.childNodes_[o].containsValue(e))return!0;return!1},goog.structs.Trie.prototype.clear=function(){this.childNodes_={},this.value_=void 0},goog.structs.Trie.prototype.remove=function(e){for(var o=this,t=[],n=0;n<e.length;n++){var r=e.charAt(n);if(!o.childNodes_[r])throw Error('The collection does not have the key "'+e+'"');t.push([o,r]),o=o.childNodes_[r]}for(e=o.value_,delete o.value_;0<t.length&&(r=t.pop(),o=r[0],r=r[1],o.childNodes_[r].isEmpty());)delete o.childNodes_[r];return e},goog.structs.Trie.prototype.clone=function(){return new goog.structs.Trie(this)},goog.structs.Trie.prototype.getCount=function(){return goog.structs.getCount(this.getValues())},goog.structs.Trie.prototype.isEmpty=function(){return void 0===this.value_&&goog.object.isEmpty(this.childNodes_)},goog.ui.tree.TypeAhead=function(){this.nodeMap_=new goog.structs.Trie,this.buffer_="",this.matchingNodes_=this.matchingLabels_=null,this.matchingNodeIndex_=this.matchingLabelIndex_=0},goog.ui.tree.TypeAhead.Offset={DOWN:1,UP:-1},goog.ui.tree.TypeAhead.prototype.handleNavigation=function(e){var o=!1;switch(e.keyCode){case goog.events.KeyCodes.DOWN:case goog.events.KeyCodes.UP:e.ctrlKey&&(this.jumpTo_(e.keyCode==goog.events.KeyCodes.DOWN?goog.ui.tree.TypeAhead.Offset.DOWN:goog.ui.tree.TypeAhead.Offset.UP),o=!0);break;case goog.events.KeyCodes.BACKSPACE:e=this.buffer_.length-1,o=!0,e>0?(this.buffer_=this.buffer_.substring(0,e),this.jumpToLabel_(this.buffer_)):0==e?this.buffer_="":o=!1;break;case goog.events.KeyCodes.ESC:this.buffer_="",o=!0}return o},goog.ui.tree.TypeAhead.prototype.handleTypeAheadChar=function(e){var o=!1;return e.ctrlKey||e.altKey||(e=String.fromCharCode(e.charCode||e.keyCode).toLowerCase(),goog.string.isUnicodeChar(e)&&(" "!=e||this.buffer_)&&(this.buffer_+=e,o=this.jumpToLabel_(this.buffer_))),o},goog.ui.tree.TypeAhead.prototype.setNodeInMap=function(e){var o=e.getText();if(o&&!goog.string.isEmptyOrWhitespace(goog.string.makeSafe(o))){var o=o.toLowerCase(),t=this.nodeMap_.get(o);t?t.push(e):this.nodeMap_.set(o,[e])}},goog.ui.tree.TypeAhead.prototype.removeNodeFromMap=function(e){var o=e.getText();if(o&&!goog.string.isEmptyOrWhitespace(goog.string.makeSafe(o))){var o=o.toLowerCase(),t=this.nodeMap_.get(o);if(t){for(var n=e.getChildCount(),r=0;n>r;r++)this.removeNodeFromMap(e.getChildAt(r));goog.array.remove(t,e),t.length||this.nodeMap_.remove(o)}}},goog.ui.tree.TypeAhead.prototype.jumpToLabel_=function(e){var o=!1;return(e=this.nodeMap_.getKeys(e))&&e.length&&(this.matchingLabelIndex_=this.matchingNodeIndex_=0,o=this.nodeMap_.get(e[0]),o=this.selectMatchingNode_(o))&&(this.matchingLabels_=e),o},goog.ui.tree.TypeAhead.prototype.jumpTo_=function(e){var o=!1,t=this.matchingLabels_;if(t){var o=null,n=!1;if(this.matchingNodes_){var r=this.matchingNodeIndex_+e;r>=0&&r<this.matchingNodes_.length?(this.matchingNodeIndex_=r,o=this.matchingNodes_):n=!0}o||(r=this.matchingLabelIndex_+e,r>=0&&r<t.length&&(this.matchingLabelIndex_=r),t.length>this.matchingLabelIndex_&&(o=this.nodeMap_.get(t[this.matchingLabelIndex_])),o&&o.length&&n&&(this.matchingNodeIndex_=e==goog.ui.tree.TypeAhead.Offset.UP?o.length-1:0)),(o=this.selectMatchingNode_(o))&&(this.matchingLabels_=t)}return o},goog.ui.tree.TypeAhead.prototype.selectMatchingNode_=function(e){var o;return e&&(this.matchingNodeIndex_<e.length&&(o=e[this.matchingNodeIndex_],this.matchingNodes_=e),o&&(o.reveal(),o.select())),!!o},goog.ui.tree.TypeAhead.prototype.clear=function(){this.buffer_=""},goog.ui.tree.TreeControl=function(e,o,t){if(goog.ui.tree.BaseNode.call(this,e,o,t),this.setExpandedInternal(!0),this.setSelectedInternal(!0),this.selectedItem_=this,this.typeAhead_=new goog.ui.tree.TypeAhead,this.focusHandler_=this.keyHandler_=null,this.logger_=goog.log.getLogger("this"),this.focused_=!1,this.focusedNode_=null,this.showRootLines_=this.showRootNode_=this.showExpandIcons_=this.showLines_=!0,goog.userAgent.IE)try{document.execCommand("BackgroundImageCache",!1,!0)}catch(n){goog.log.warning(this.logger_,"Failed to enable background image cache")}},goog.inherits(goog.ui.tree.TreeControl,goog.ui.tree.BaseNode),goog.ui.tree.TreeControl.prototype.getTree=function(){return this},goog.ui.tree.TreeControl.prototype.getDepth=function(){return 0},goog.ui.tree.TreeControl.prototype.reveal=function(){},goog.ui.tree.TreeControl.prototype.handleFocus_=function(e){this.focused_=!0,goog.dom.classlist.add(goog.asserts.assert(this.getElement()),"focused"),this.selectedItem_&&this.selectedItem_.select()},goog.ui.tree.TreeControl.prototype.handleBlur_=function(e){this.focused_=!1,goog.dom.classlist.remove(goog.asserts.assert(this.getElement()),"focused")},goog.ui.tree.TreeControl.prototype.hasFocus=function(){return this.focused_},goog.ui.tree.TreeControl.prototype.getExpanded=function(){return!this.showRootNode_||goog.ui.tree.TreeControl.superClass_.getExpanded.call(this)},goog.ui.tree.TreeControl.prototype.setExpanded=function(e){this.showRootNode_?goog.ui.tree.TreeControl.superClass_.setExpanded.call(this,e):this.setExpandedInternal(e)},goog.ui.tree.TreeControl.prototype.getExpandIconSafeHtml=function(){return goog.html.SafeHtml.EMPTY},goog.ui.tree.TreeControl.prototype.getIconElement=function(){var e=this.getRowElement();return e?e.firstChild:null},goog.ui.tree.TreeControl.prototype.getExpandIconElement=function(){return null},goog.ui.tree.TreeControl.prototype.updateExpandIcon=function(){},goog.ui.tree.TreeControl.prototype.getRowClassName=function(){return goog.ui.tree.TreeControl.superClass_.getRowClassName.call(this)+(this.showRootNode_?"":" "+this.getConfig().cssHideRoot)},goog.ui.tree.TreeControl.prototype.getCalculatedIconClass=function(){var e=this.getExpanded(),o=this.getExpandedIconClass();return e&&o?o:(o=this.getIconClass(),!e&&o?o:(o=this.getConfig(),e&&o.cssExpandedRootIcon?o.cssTreeIcon+" "+o.cssExpandedRootIcon:!e&&o.cssCollapsedRootIcon?o.cssTreeIcon+" "+o.cssCollapsedRootIcon:""))},goog.ui.tree.TreeControl.prototype.setSelectedItem=function(e){if(this.selectedItem_!=e){var o=!1;this.selectedItem_&&(o=this.selectedItem_==this.focusedNode_,this.selectedItem_.setSelectedInternal(!1)),(this.selectedItem_=e)&&(e.setSelectedInternal(!0),o&&e.select()),this.dispatchEvent(goog.events.EventType.CHANGE)}},goog.ui.tree.TreeControl.prototype.getSelectedItem=function(){return this.selectedItem_},goog.ui.tree.TreeControl.prototype.setShowLines=function(e){this.showLines_!=e&&(this.showLines_=e,this.isInDocument()&&this.updateLinesAndExpandIcons_())},goog.ui.tree.TreeControl.prototype.getShowLines=function(){return this.showLines_},goog.ui.tree.TreeControl.prototype.updateLinesAndExpandIcons_=function(){function e(r){var i=r.getChildrenElement();if(i){var s=!t||o==r.getParent()&&!n?r.getConfig().cssChildrenNoLines:r.getConfig().cssChildren;i.className=s,(i=r.getExpandIconElement())&&(i.className=r.getExpandIconClass())}r.forEachChild(e)}var o=this,t=o.getShowLines(),n=o.getShowRootLines();e(this)},goog.ui.tree.TreeControl.prototype.setShowRootLines=function(e){this.showRootLines_!=e&&(this.showRootLines_=e,this.isInDocument()&&this.updateLinesAndExpandIcons_())},goog.ui.tree.TreeControl.prototype.getShowRootLines=function(){return this.showRootLines_},goog.ui.tree.TreeControl.prototype.setShowExpandIcons=function(e){this.showExpandIcons_!=e&&(this.showExpandIcons_=e,this.isInDocument()&&this.updateLinesAndExpandIcons_())},goog.ui.tree.TreeControl.prototype.getShowExpandIcons=function(){return this.showExpandIcons_},goog.ui.tree.TreeControl.prototype.setShowRootNode=function(e){if(this.showRootNode_!=e){if(this.showRootNode_=e,this.isInDocument()){var o=this.getRowElement();o&&(o.className=this.getRowClassName())}!e&&this.getSelectedItem()==this&&this.getFirstChild()&&this.setSelectedItem(this.getFirstChild())}},goog.ui.tree.TreeControl.prototype.getShowRootNode=function(){return this.showRootNode_},goog.ui.tree.TreeControl.prototype.initAccessibility=function(){goog.ui.tree.TreeControl.superClass_.initAccessibility.call(this);var e=this.getElement();goog.asserts.assert(e,"The DOM element for the tree cannot be null."),goog.a11y.aria.setRole(e,"tree"),goog.a11y.aria.setState(e,"labelledby",this.getLabelElement().id)},goog.ui.tree.TreeControl.prototype.enterDocument=function(){goog.ui.tree.TreeControl.superClass_.enterDocument.call(this);var e=this.getElement();e.className=this.getConfig().cssRoot,e.setAttribute("hideFocus","true"),this.attachEvents_(),this.initAccessibility()},goog.ui.tree.TreeControl.prototype.exitDocument=function(){goog.ui.tree.TreeControl.superClass_.exitDocument.call(this),this.detachEvents_()},goog.ui.tree.TreeControl.prototype.attachEvents_=function(){var e=this.getElement();e.tabIndex=0;var o=this.keyHandler_=new goog.events.KeyHandler(e),t=this.focusHandler_=new goog.events.FocusHandler(e);this.getHandler().listen(t,goog.events.FocusHandler.EventType.FOCUSOUT,this.handleBlur_).listen(t,goog.events.FocusHandler.EventType.FOCUSIN,this.handleFocus_).listen(o,goog.events.KeyHandler.EventType.KEY,this.handleKeyEvent).listen(e,goog.events.EventType.MOUSEDOWN,this.handleMouseEvent_).listen(e,goog.events.EventType.CLICK,this.handleMouseEvent_).listen(e,goog.events.EventType.DBLCLICK,this.handleMouseEvent_)},goog.ui.tree.TreeControl.prototype.detachEvents_=function(){this.keyHandler_.dispose(),this.keyHandler_=null,this.focusHandler_.dispose(),this.focusHandler_=null},goog.ui.tree.TreeControl.prototype.handleMouseEvent_=function(e){goog.log.fine(this.logger_,"Received event "+e.type);var o=this.getNodeFromEvent_(e);if(o)switch(e.type){case goog.events.EventType.MOUSEDOWN:o.onMouseDown(e);break;case goog.events.EventType.CLICK:o.onClick_(e);break;case goog.events.EventType.DBLCLICK:o.onDoubleClick_(e)}},goog.ui.tree.TreeControl.prototype.handleKeyEvent=function(e){var o;return(o=this.typeAhead_.handleNavigation(e)||this.selectedItem_&&this.selectedItem_.onKeyDown(e)||this.typeAhead_.handleTypeAheadChar(e))&&e.preventDefault(),o},goog.ui.tree.TreeControl.prototype.getNodeFromEvent_=function(e){for(var o=e.target;null!=o;){if(e=goog.ui.tree.BaseNode.allNodes[o.id])return e;if(o==this.getElement())break;o=o.parentNode}return null},goog.ui.tree.TreeControl.prototype.createNode=function(e){return new goog.ui.tree.TreeNode(e||goog.html.SafeHtml.EMPTY,this.getConfig(),this.getDomHelper())},goog.ui.tree.TreeControl.prototype.setNode=function(e){this.typeAhead_.setNodeInMap(e)},goog.ui.tree.TreeControl.prototype.removeNode=function(e){this.typeAhead_.removeNodeFromMap(e)},goog.ui.tree.TreeControl.prototype.clearTypeAhead=function(){this.typeAhead_.clear()},goog.ui.tree.TreeControl.defaultConfig=goog.ui.tree.BaseNode.defaultConfig;var Blockly={Blocks:{}};Blockly.Touch={},Blockly.Touch.touchIdentifier_=null,Blockly.Touch.onTouchUpWrapper_=null,Blockly.Touch.TOUCH_MAP={},goog.events.BrowserFeature.TOUCH_ENABLED&&(Blockly.Touch.TOUCH_MAP={mousedown:["touchstart"],mousemove:["touchmove"],mouseup:["touchend","touchcancel"]}),Blockly.longPid_=0,Blockly.longStart_=function(e,o){Blockly.longStop_(),Blockly.longPid_=setTimeout(function(){e.button=2,o.onMouseDown_(e)},Blockly.LONGPRESS)},Blockly.longStop_=function(){Blockly.longPid_&&(clearTimeout(Blockly.longPid_),Blockly.longPid_=0)},Blockly.onMouseUp_=function(e){e=Blockly.getMainWorkspace(),e.dragMode_!=Blockly.DRAG_NONE&&(Blockly.Touch.clearTouchIdentifier(),Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN),e.dragMode_=Blockly.DRAG_NONE,Blockly.Touch.onTouchUpWrapper_&&(Blockly.unbindEvent_(Blockly.Touch.onTouchUpWrapper_),Blockly.Touch.onTouchUpWrapper_=null),Blockly.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.onMouseMoveWrapper_),Blockly.onMouseMoveWrapper_=null))},Blockly.onMouseMove_=function(e){var o=Blockly.getMainWorkspace();if(o.dragMode_!=Blockly.DRAG_NONE){var t=e.clientX-o.startDragMouseX,n=e.clientY-o.startDragMouseY,r=o.startDragMetrics,i=o.startScrollX+t,s=o.startScrollY+n,i=Math.min(i,-r.contentLeft),s=Math.min(s,-r.contentTop),i=Math.max(i,r.viewWidth-r.contentLeft-r.contentWidth),s=Math.max(s,r.viewHeight-r.contentTop-r.contentHeight);o.scrollbar.set(-i-r.contentLeft,-s-r.contentTop),Math.sqrt(t*t+n*n)>Blockly.DRAG_RADIUS&&(Blockly.longStop_(),o.dragMode_=Blockly.DRAG_FREE),e.stopPropagation(),e.preventDefault()}},Blockly.Touch.clearTouchIdentifier=function(){Blockly.Touch.touchIdentifier_=null},Blockly.Touch.shouldHandleEvent=function(e){return!Blockly.Touch.isMouseOrTouchEvent(e)||Blockly.Touch.checkTouchIdentifier(e)},Blockly.Touch.checkTouchIdentifier=function(e){var o=e.changedTouches&&e.changedTouches[0]&&void 0!=e.changedTouches[0].identifier&&null!=e.changedTouches[0].identifier?e.changedTouches[0].identifier:"mouse";return void 0!=Blockly.Touch.touchIdentifier_&&null!=Blockly.Touch.touchIdentifier_?Blockly.Touch.touchIdentifier_==o:"mousedown"==e.type||"touchstart"==e.type?(Blockly.Touch.touchIdentifier_=o,!0):!1},Blockly.Touch.setClientFromTouch=function(e){if(goog.string.startsWith(e.type,"touch")){var o=e.changedTouches[0];e.clientX=o.clientX,e.clientY=o.clientY}},Blockly.Touch.isMouseOrTouchEvent=function(e){return goog.string.startsWith(e.type,"touch")||goog.string.startsWith(e.type,"mouse")},Blockly.Touch.splitEventByTouches=function(e){var o=[];if(e.changedTouches)for(var t=0;t<e.changedTouches.length;t++)o[t]={type:e.type,changedTouches:[e.changedTouches[t]],target:e.target,stopPropagation:function(){e.stopPropagation()},preventDefault:function(){e.preventDefault()}};else o.push(e);return o},Blockly.Workspace=function(e){this.id=Blockly.genUid(),Blockly.Workspace.WorkspaceDB_[this.id]=this,this.options=e||{},this.RTL=!!this.options.RTL,this.horizontalLayout=!!this.options.horizontalLayout,this.toolboxPosition=this.options.toolboxPosition,this.topBlocks_=[],this.listeners_=[],this.undoStack_=[],this.redoStack_=[],this.blockDB_=Object.create(null),this.variableList=[]},Blockly.Workspace.prototype.rendered=!1,Blockly.Workspace.prototype.MAX_UNDO=1024,Blockly.Workspace.prototype.dispose=function(){this.listeners_.length=0,this.clear(),delete Blockly.Workspace.WorkspaceDB_[this.id]},Blockly.Workspace.SCAN_ANGLE=3,Blockly.Workspace.prototype.addTopBlock=function(e){if(this.topBlocks_.push(e),this.isFlyout){e=Blockly.Variables.allUsedVariables(e);for(var o=0;o<e.length;o++)-1==this.variableList.indexOf(e[o])&&this.variableList.push(e[o])}},Blockly.Workspace.prototype.removeTopBlock=function(e){if(!goog.array.remove(this.topBlocks_,e))throw"Block not present in workspace's list of top-most blocks."},Blockly.Workspace.prototype.getTopBlocks=function(e){var o=[].concat(this.topBlocks_);if(e&&1<o.length){var t=Math.sin(goog.math.toRadians(Blockly.Workspace.SCAN_ANGLE));this.RTL&&(t*=-1),o.sort(function(e,o){var n=e.getRelativeToSurfaceXY(),r=o.getRelativeToSurfaceXY();return n.y+t*n.x-(r.y+t*r.x)})}return o},Blockly.Workspace.prototype.getAllBlocks=function(){for(var e=this.getTopBlocks(!1),o=0;o<e.length;o++)e.push.apply(e,e[o].getChildren());return e},Blockly.Workspace.prototype.clear=function(){var e=Blockly.Events.getGroup();for(e||Blockly.Events.setGroup(!0);this.topBlocks_.length;)this.topBlocks_[0].dispose();e||Blockly.Events.setGroup(!1),this.variableList.length=0},Blockly.Workspace.prototype.updateVariableList=function(e){if(!this.isFlyout){e&&(this.variableList.length=0),e=Blockly.Variables.allUsedVariables(this);for(var o=0;o<e.length;o++)this.createVariable(e[o])}},Blockly.Workspace.prototype.renameVariable=function(e,o){var t=this.variableIndexOf(e),n=this.variableIndexOf(o);if(-1!=n&&this.variableList[n]!=o)var r=this.variableList[n];Blockly.Events.setGroup(!0);for(var i=this.getAllBlocks(),s=0;s<i.length;s++)i[s].renameVar(e,o),r&&i[s].renameVar(r,o);Blockly.Events.setGroup(!1),t==n||-1!=t&&-1==n?this.variableList[t]=o:-1!=t&&-1!=n?(this.variableList[n]=o,this.variableList.splice(t,1)):(this.variableList.push(o),console.log("Tried to rename an non-existent variable."))},Blockly.Workspace.prototype.createVariable=function(e){-1==this.variableIndexOf(e)&&this.variableList.push(e)},Blockly.Workspace.prototype.getVariableUses=function(e){for(var o=[],t=this.getAllBlocks(),n=0;n<t.length;n++){var r=t[n].getVars();if(r)for(var i=0;i<r.length;i++){var s=r[i];s&&Blockly.Names.equals(s,e)&&o.push(t[n])}}return o},Blockly.Workspace.prototype.deleteVariable=function(e){var o=this,t=this.variableIndexOf(e);if(-1!=t){for(var n,r=function(){Blockly.Events.setGroup(!0);for(var e=0;e<i.length;e++)i[e].dispose(!0,!1);Blockly.Events.setGroup(!1),o.variableList.splice(t,1)},i=this.getVariableUses(e),s=0;n=i[s];s++)if("procedures_defnoreturn"==n.type||"procedures_defreturn"==n.type)return s=n.getFieldValue("NAME"),void Blockly.alert(Blockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE.replace("%1",e).replace("%2",s));1<i.length?Blockly.confirm(Blockly.Msg.DELETE_VARIABLE_CONFIRMATION.replace("%1",i.length).replace("%2",e),function(e){e&&r()}):r()}},Blockly.Workspace.prototype.variableIndexOf=function(e){for(var o,t=0;o=this.variableList[t];t++)if(Blockly.Names.equals(o,e))return t;return-1},Blockly.Workspace.prototype.getWidth=function(){return 0},Blockly.Workspace.prototype.newBlock=function(e,o){return new Blockly.Block(this,e,o)},Blockly.Workspace.prototype.remainingCapacity=function(){return isNaN(this.options.maxBlocks)?1/0:this.options.maxBlocks-this.getAllBlocks().length},Blockly.Workspace.prototype.undo=function(e){var o=e?this.redoStack_:this.undoStack_,t=e?this.undoStack_:this.redoStack_,n=o.pop();if(n){for(var r=[n];o.length&&n.group&&n.group==o[o.length-1].group;)r.push(o.pop());for(o=0;n=r[o];o++)t.push(n);for(r=Blockly.Events.filter(r,e),Blockly.Events.recordUndo=!1,o=0;n=r[o];o++)n.run(e);Blockly.Events.recordUndo=!0}},Blockly.Workspace.prototype.clearUndo=function(){this.undoStack_.length=0,this.redoStack_.length=0,Blockly.Events.clearPendingUndo()},Blockly.Workspace.prototype.addChangeListener=function(e){return this.listeners_.push(e),e},Blockly.Workspace.prototype.removeChangeListener=function(e){goog.array.remove(this.listeners_,e)},Blockly.Workspace.prototype.fireChangeListener=function(e){e.recordUndo&&(this.undoStack_.push(e),this.redoStack_.length=0,this.undoStack_.length>this.MAX_UNDO&&this.undoStack_.unshift());for(var o,t=0;o=this.listeners_[t];t++)o(e)},Blockly.Workspace.prototype.getBlockById=function(e){return this.blockDB_[e]||null},Blockly.Workspace.WorkspaceDB_=Object.create(null),Blockly.Workspace.getById=function(e){return Blockly.Workspace.WorkspaceDB_[e]||null},Blockly.Workspace.prototype.clear=Blockly.Workspace.prototype.clear,Blockly.Workspace.prototype.clearUndo=Blockly.Workspace.prototype.clearUndo,Blockly.Workspace.prototype.addChangeListener=Blockly.Workspace.prototype.addChangeListener,Blockly.Workspace.prototype.removeChangeListener=Blockly.Workspace.prototype.removeChangeListener,Blockly.Bubble=function(e,o,t,n,r,i){this.workspace_=e,this.content_=o,this.shape_=t,t=Blockly.Bubble.ARROW_ANGLE,this.workspace_.RTL&&(t=-t),this.arrow_radians_=goog.math.toRadians(t),e.getBubbleCanvas().appendChild(this.createDom_(o,!(!r||!i))),this.setAnchorLocation(n),r&&i||(o=this.content_.getBBox(),r=o.width+2*Blockly.Bubble.BORDER_WIDTH,i=o.height+2*Blockly.Bubble.BORDER_WIDTH),this.setBubbleSize(r,i),this.positionBubble_(),this.renderArrow_(),this.rendered_=!0,e.options.readOnly||(Blockly.bindEventWithChecks_(this.bubbleBack_,"mousedown",this,this.bubbleMouseDown_),this.resizeGroup_&&Blockly.bindEventWithChecks_(this.resizeGroup_,"mousedown",this,this.resizeMouseDown_))},Blockly.Bubble.BORDER_WIDTH=6,Blockly.Bubble.ARROW_THICKNESS=5,Blockly.Bubble.ARROW_ANGLE=20,Blockly.Bubble.ARROW_BEND=4,Blockly.Bubble.ANCHOR_RADIUS=8,Blockly.Bubble.onMouseUpWrapper_=null,Blockly.Bubble.onMouseMoveWrapper_=null,Blockly.Bubble.prototype.resizeCallback_=null,Blockly.Bubble.unbindDragEvents_=function(){Blockly.Bubble.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.Bubble.onMouseUpWrapper_),Blockly.Bubble.onMouseUpWrapper_=null),Blockly.Bubble.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.Bubble.onMouseMoveWrapper_),Blockly.Bubble.onMouseMoveWrapper_=null)},Blockly.Bubble.bubbleMouseUp_=function(){Blockly.Touch.clearTouchIdentifier(),Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN),Blockly.Bubble.unbindDragEvents_()},Blockly.Bubble.prototype.rendered_=!1,Blockly.Bubble.prototype.anchorXY_=null,Blockly.Bubble.prototype.relativeLeft_=0,Blockly.Bubble.prototype.relativeTop_=0,Blockly.Bubble.prototype.width_=0,Blockly.Bubble.prototype.height_=0,Blockly.Bubble.prototype.autoLayout_=!0,Blockly.Bubble.prototype.createDom_=function(e,o){this.bubbleGroup_=Blockly.createSvgElement("g",{},null);var t={filter:"url(#"+this.workspace_.options.embossFilterId+")"};return-1!=goog.userAgent.getUserAgentString().indexOf("JavaFX")&&(t={}),t=Blockly.createSvgElement("g",t,this.bubbleGroup_),this.bubbleArrow_=Blockly.createSvgElement("path",{},t),this.bubbleBack_=Blockly.createSvgElement("rect",{"class":"blocklyDraggable",x:0,y:0,rx:Blockly.Bubble.BORDER_WIDTH,ry:Blockly.Bubble.BORDER_WIDTH},t),o?(this.resizeGroup_=Blockly.createSvgElement("g",{"class":this.workspace_.RTL?"blocklyResizeSW":"blocklyResizeSE"},this.bubbleGroup_),t=2*Blockly.Bubble.BORDER_WIDTH,Blockly.createSvgElement("polygon",{points:"0,x x,x x,0".replace(/x/g,t.toString())},this.resizeGroup_),Blockly.createSvgElement("line",{"class":"blocklyResizeLine",x1:t/3,y1:t-1,x2:t-1,y2:t/3},this.resizeGroup_),Blockly.createSvgElement("line",{"class":"blocklyResizeLine",x1:2*t/3,y1:t-1,x2:t-1,y2:2*t/3},this.resizeGroup_)):this.resizeGroup_=null,this.bubbleGroup_.appendChild(e),this.bubbleGroup_},Blockly.Bubble.prototype.bubbleMouseDown_=function(e){this.promote_(),Blockly.Bubble.unbindDragEvents_(),Blockly.isRightButton(e)?e.stopPropagation():Blockly.isTargetInput_(e)||(Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED),this.workspace_.startDrag(e,new goog.math.Coordinate(this.workspace_.RTL?-this.relativeLeft_:this.relativeLeft_,this.relativeTop_)),Blockly.Bubble.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,Blockly.Bubble.bubbleMouseUp_),Blockly.Bubble.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.bubbleMouseMove_),Blockly.hideChaff(),e.stopPropagation())},Blockly.Bubble.prototype.bubbleMouseMove_=function(e){this.autoLayout_=!1,e=this.workspace_.moveDrag(e),this.relativeLeft_=this.workspace_.RTL?-e.x:e.x,this.relativeTop_=e.y,this.positionBubble_(),this.renderArrow_()},Blockly.Bubble.prototype.resizeMouseDown_=function(e){this.promote_(),Blockly.Bubble.unbindDragEvents_(),Blockly.isRightButton(e)||(Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED),this.workspace_.startDrag(e,new goog.math.Coordinate(this.workspace_.RTL?-this.width_:this.width_,this.height_)),Blockly.Bubble.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,Blockly.Bubble.bubbleMouseUp_),Blockly.Bubble.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.resizeMouseMove_),Blockly.hideChaff()),e.stopPropagation()},Blockly.Bubble.prototype.resizeMouseMove_=function(e){this.autoLayout_=!1,e=this.workspace_.moveDrag(e),this.setBubbleSize(this.workspace_.RTL?-e.x:e.x,e.y),this.workspace_.RTL&&this.positionBubble_()},Blockly.Bubble.prototype.registerResizeEvent=function(e){this.resizeCallback_=e},Blockly.Bubble.prototype.promote_=function(){this.bubbleGroup_.parentNode.appendChild(this.bubbleGroup_)},Blockly.Bubble.prototype.setAnchorLocation=function(e){this.anchorXY_=e,this.rendered_&&this.positionBubble_()},Blockly.Bubble.prototype.layoutBubble_=function(){var e=-this.width_/4,o=-this.height_-Blockly.BlockSvg.MIN_BLOCK_Y,t=this.workspace_.getMetrics();t.viewWidth/=this.workspace_.scale,t.viewLeft/=this.workspace_.scale;var n=this.anchorXY_.x;this.workspace_.RTL?n-t.viewLeft-e-this.width_<Blockly.Scrollbar.scrollbarThickness?e=n-t.viewLeft-this.width_-Blockly.Scrollbar.scrollbarThickness:n-t.viewLeft-e>t.viewWidth&&(e=n-t.viewLeft-t.viewWidth):n+e<t.viewLeft?e=t.viewLeft-n:t.viewLeft+t.viewWidth<n+e+this.width_+Blockly.BlockSvg.SEP_SPACE_X+Blockly.Scrollbar.scrollbarThickness&&(e=t.viewLeft+t.viewWidth-n-this.width_-Blockly.Scrollbar.scrollbarThickness),
-this.anchorXY_.y+o<t.viewTop&&(o=this.shape_.getBBox().height),this.relativeLeft_=e,this.relativeTop_=o},Blockly.Bubble.prototype.positionBubble_=function(){var e=this.anchorXY_.x,e=this.workspace_.RTL?e-(this.relativeLeft_+this.width_):e+this.relativeLeft_;this.bubbleGroup_.setAttribute("transform","translate("+e+","+(this.relativeTop_+this.anchorXY_.y)+")")},Blockly.Bubble.prototype.getBubbleSize=function(){return{width:this.width_,height:this.height_}},Blockly.Bubble.prototype.setBubbleSize=function(e,o){var t=2*Blockly.Bubble.BORDER_WIDTH;e=Math.max(e,t+45),o=Math.max(o,t+20),this.width_=e,this.height_=o,this.bubbleBack_.setAttribute("width",e),this.bubbleBack_.setAttribute("height",o),this.resizeGroup_&&(this.workspace_.RTL?this.resizeGroup_.setAttribute("transform","translate("+2*Blockly.Bubble.BORDER_WIDTH+","+(o-t)+") scale(-1 1)"):this.resizeGroup_.setAttribute("transform","translate("+(e-t)+","+(o-t)+")")),this.rendered_&&(this.autoLayout_&&this.layoutBubble_(),this.positionBubble_(),this.renderArrow_()),this.resizeCallback_&&this.resizeCallback_()},Blockly.Bubble.prototype.renderArrow_=function(){var e=[],o=this.width_/2,t=this.height_/2,n=-this.relativeLeft_,r=-this.relativeTop_;if(o==n&&t==r)e.push("M "+o+","+t);else{r-=t,n-=o,this.workspace_.RTL&&(n*=-1);var i=Math.sqrt(r*r+n*n),s=Math.acos(n/i);0>r&&(s=2*Math.PI-s);var l=s+Math.PI/2;l>2*Math.PI&&(l-=2*Math.PI);var g=Math.sin(l),a=Math.cos(l),c=this.getBubbleSize(),l=(c.width+c.height)/Blockly.Bubble.ARROW_THICKNESS,l=Math.min(l,c.width,c.height)/4,c=1-Blockly.Bubble.ANCHOR_RADIUS/i,n=o+c*n,r=t+c*r,c=o+l*a,u=t+l*g,o=o-l*a,t=t-l*g,g=s+this.arrow_radians_;g>2*Math.PI&&(g-=2*Math.PI),s=Math.sin(g)*i/Blockly.Bubble.ARROW_BEND,i=Math.cos(g)*i/Blockly.Bubble.ARROW_BEND,e.push("M"+c+","+u),e.push("C"+(c+i)+","+(u+s)+" "+n+","+r+" "+n+","+r),e.push("C"+n+","+r+" "+(o+i)+","+(t+s)+" "+o+","+t)}e.push("z"),this.bubbleArrow_.setAttribute("d",e.join(" "))},Blockly.Bubble.prototype.setColour=function(e){this.bubbleBack_.setAttribute("fill",e),this.bubbleArrow_.setAttribute("fill",e)},Blockly.Bubble.prototype.dispose=function(){Blockly.Bubble.unbindDragEvents_(),goog.dom.removeNode(this.bubbleGroup_),this.shape_=this.content_=this.workspace_=this.resizeGroup_=this.bubbleBack_=this.bubbleArrow_=this.bubbleGroup_=null},Blockly.Icon=function(e){this.block_=e},Blockly.Icon.prototype.collapseHidden=!0,Blockly.Icon.prototype.SIZE=17,Blockly.Icon.prototype.bubble_=null,Blockly.Icon.prototype.iconXY_=null,Blockly.Icon.prototype.createIcon=function(){this.iconGroup_||(this.iconGroup_=Blockly.createSvgElement("g",{"class":"blocklyIconGroup"},null),this.block_.isInFlyout&&Blockly.addClass_(this.iconGroup_,"blocklyIconGroupReadonly"),this.drawIcon_(this.iconGroup_),this.block_.getSvgRoot().appendChild(this.iconGroup_),Blockly.bindEventWithChecks_(this.iconGroup_,"mouseup",this,this.iconClick_),this.updateEditable())},Blockly.Icon.prototype.dispose=function(){goog.dom.removeNode(this.iconGroup_),this.iconGroup_=null,this.setVisible(!1),this.block_=null},Blockly.Icon.prototype.updateEditable=function(){},Blockly.Icon.prototype.isVisible=function(){return!!this.bubble_},Blockly.Icon.prototype.iconClick_=function(e){this.block_.workspace.isDragging()||this.block_.isInFlyout||Blockly.isRightButton(e)||this.setVisible(!this.isVisible())},Blockly.Icon.prototype.updateColour=function(){this.isVisible()&&this.bubble_.setColour(this.block_.getColour())},Blockly.Icon.prototype.renderIcon=function(e){if(this.collapseHidden&&this.block_.isCollapsed())return this.iconGroup_.setAttribute("display","none"),e;this.iconGroup_.setAttribute("display","block");var o=this.SIZE;return this.block_.RTL&&(e-=o),this.iconGroup_.setAttribute("transform","translate("+e+",5)"),this.computeIconLocation(),e=this.block_.RTL?e-Blockly.BlockSvg.SEP_SPACE_X:e+(o+Blockly.BlockSvg.SEP_SPACE_X)},Blockly.Icon.prototype.setIconLocation=function(e){this.iconXY_=e,this.isVisible()&&this.bubble_.setAnchorLocation(e)},Blockly.Icon.prototype.computeIconLocation=function(){var e=this.block_.getRelativeToSurfaceXY(),o=Blockly.getRelativeXY_(this.iconGroup_),e=new goog.math.Coordinate(e.x+o.x+this.SIZE/2,e.y+o.y+this.SIZE/2);goog.math.Coordinate.equals(this.getIconLocation(),e)||this.setIconLocation(e)},Blockly.Icon.prototype.getIconLocation=function(){return this.iconXY_},Blockly.Comment=function(e){Blockly.Comment.superClass_.constructor.call(this,e),this.createIcon()},goog.inherits(Blockly.Comment,Blockly.Icon),Blockly.Comment.prototype.text_="",Blockly.Comment.prototype.width_=160,Blockly.Comment.prototype.height_=80,Blockly.Comment.prototype.drawIcon_=function(e){Blockly.createSvgElement("circle",{"class":"blocklyIconShape",r:"8",cx:"8",cy:"8"},e),Blockly.createSvgElement("path",{"class":"blocklyIconSymbol",d:"m6.8,10h2c0.003,-0.617 0.271,-0.962 0.633,-1.266 2.875,-2.405 0.607,-5.534 -3.765,-3.874v1.7c3.12,-1.657 3.698,0.118 2.336,1.25 -1.201,0.998 -1.201,1.528 -1.204,2.19z"},e),Blockly.createSvgElement("rect",{"class":"blocklyIconSymbol",x:"6.8",y:"10.78",height:"2",width:"2"},e)},Blockly.Comment.prototype.createEditor_=function(){this.foreignObject_=Blockly.createSvgElement("foreignObject",{x:Blockly.Bubble.BORDER_WIDTH,y:Blockly.Bubble.BORDER_WIDTH},null);var e=document.createElementNS(Blockly.HTML_NS,"body");e.setAttribute("xmlns",Blockly.HTML_NS),e.className="blocklyMinimalBody";var o=document.createElementNS(Blockly.HTML_NS,"textarea");return o.className="blocklyCommentTextarea",o.setAttribute("dir",this.block_.RTL?"RTL":"LTR"),e.appendChild(o),this.textarea_=o,this.foreignObject_.appendChild(e),Blockly.bindEventWithChecks_(o,"mouseup",this,this.textareaFocus_),Blockly.bindEventWithChecks_(o,"wheel",this,function(e){e.stopPropagation()}),Blockly.bindEventWithChecks_(o,"change",this,function(e){this.text_!=o.value&&(Blockly.Events.fire(new Blockly.Events.Change(this.block_,"comment",null,this.text_,o.value)),this.text_=o.value)}),setTimeout(function(){o.focus()},0),this.foreignObject_},Blockly.Comment.prototype.updateEditable=function(){this.isVisible()&&(this.setVisible(!1),this.setVisible(!0)),Blockly.Icon.prototype.updateEditable.call(this)},Blockly.Comment.prototype.resizeBubble_=function(){if(this.isVisible()){var e=this.bubble_.getBubbleSize(),o=2*Blockly.Bubble.BORDER_WIDTH;this.foreignObject_.setAttribute("width",e.width-o),this.foreignObject_.setAttribute("height",e.height-o),this.textarea_.style.width=e.width-o-4+"px",this.textarea_.style.height=e.height-o-4+"px"}},Blockly.Comment.prototype.setVisible=function(e){if(e!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"commentOpen",!e,e)),!this.block_.isEditable()&&!this.textarea_||goog.userAgent.IE)Blockly.Warning.prototype.setVisible.call(this,e);else{var o=this.getText(),t=this.getBubbleSize();e?(this.bubble_=new Blockly.Bubble(this.block_.workspace,this.createEditor_(),this.block_.svgPath_,this.iconXY_,this.width_,this.height_),this.bubble_.registerResizeEvent(this.resizeBubble_.bind(this)),this.updateColour()):(this.bubble_.dispose(),this.foreignObject_=this.textarea_=this.bubble_=null),this.setText(o),this.setBubbleSize(t.width,t.height)}},Blockly.Comment.prototype.textareaFocus_=function(e){this.bubble_.promote_(),this.textarea_.focus()},Blockly.Comment.prototype.getBubbleSize=function(){return this.isVisible()?this.bubble_.getBubbleSize():{width:this.width_,height:this.height_}},Blockly.Comment.prototype.setBubbleSize=function(e,o){this.textarea_?this.bubble_.setBubbleSize(e,o):(this.width_=e,this.height_=o)},Blockly.Comment.prototype.getText=function(){return this.textarea_?this.textarea_.value:this.text_},Blockly.Comment.prototype.setText=function(e){this.text_!=e&&(Blockly.Events.fire(new Blockly.Events.Change(this.block_,"comment",null,this.text_,e)),this.text_=e),this.textarea_&&(this.textarea_.value=e)},Blockly.Comment.prototype.dispose=function(){Blockly.Events.isEnabled()&&this.setText(""),this.block_.comment=null,Blockly.Icon.prototype.dispose.call(this)},Blockly.Connection=function(e,o){this.sourceBlock_=e,this.type=o,e.workspace.connectionDBList&&(this.db_=e.workspace.connectionDBList[o],this.dbOpposite_=e.workspace.connectionDBList[Blockly.OPPOSITE_TYPE[o]],this.hidden_=!this.db_)},Blockly.Connection.CAN_CONNECT=0,Blockly.Connection.REASON_SELF_CONNECTION=1,Blockly.Connection.REASON_WRONG_TYPE=2,Blockly.Connection.REASON_TARGET_NULL=3,Blockly.Connection.REASON_CHECKS_FAILED=4,Blockly.Connection.REASON_DIFFERENT_WORKSPACES=5,Blockly.Connection.REASON_SHADOW_PARENT=6,Blockly.Connection.prototype.targetConnection=null,Blockly.Connection.prototype.check_=null,Blockly.Connection.prototype.shadowDom_=null,Blockly.Connection.prototype.x_=0,Blockly.Connection.prototype.y_=0,Blockly.Connection.prototype.inDB_=!1,Blockly.Connection.prototype.db_=null,Blockly.Connection.prototype.dbOpposite_=null,Blockly.Connection.prototype.hidden_=null,Blockly.Connection.prototype.connect_=function(e){var o=this,t=o.getSourceBlock(),n=e.getSourceBlock();if(e.isConnected()&&e.disconnect(),o.isConnected()){var r=o.targetBlock(),i=o.getShadowDom();if(o.setShadowDom(null),r.isShadow())i=Blockly.Xml.blockToDom(r),r.dispose(),r=null;else if(o.type==Blockly.INPUT_VALUE){if(!r.outputConnection)throw"Orphan block does not have an output connection.";var s=Blockly.Connection.lastConnectionInRow_(n,r);s&&(r.outputConnection.connect(s),r=null)}else if(o.type==Blockly.NEXT_STATEMENT){if(!r.previousConnection)throw"Orphan block does not have a previous connection.";for(s=n;s.nextConnection;){var l=s.getNextBlock();if(!l||l.isShadow()){r.previousConnection.checkType_(s.nextConnection)&&(s.nextConnection.connect(r.previousConnection),r=null);break}s=l}}if(r&&(o.disconnect(),Blockly.Events.recordUndo)){var g=Blockly.Events.getGroup();setTimeout(function(){r.workspace&&!r.getParent()&&(Blockly.Events.setGroup(g),r.outputConnection?r.outputConnection.bumpAwayFrom_(o):r.previousConnection&&r.previousConnection.bumpAwayFrom_(o),Blockly.Events.setGroup(!1))},Blockly.BUMP_DELAY)}o.setShadowDom(i)}var a;Blockly.Events.isEnabled()&&(a=new Blockly.Events.Move(n)),Blockly.Connection.connectReciprocally_(o,e),n.setParent(t),a&&(a.recordNew(),Blockly.Events.fire(a))},Blockly.Connection.prototype.dispose=function(){if(this.isConnected())throw"Disconnect connection before disposing of it.";this.inDB_&&this.db_.removeConnection_(this),Blockly.highlightedConnection_==this&&(Blockly.highlightedConnection_=null),Blockly.localConnection_==this&&(Blockly.localConnection_=null),this.dbOpposite_=this.db_=null},Blockly.Connection.prototype.getSourceBlock=function(){return this.sourceBlock_},Blockly.Connection.prototype.isSuperior=function(){return this.type==Blockly.INPUT_VALUE||this.type==Blockly.NEXT_STATEMENT},Blockly.Connection.prototype.isConnected=function(){return!!this.targetConnection},Blockly.Connection.prototype.canConnectWithReason_=function(e){if(!e)return Blockly.Connection.REASON_TARGET_NULL;if(this.isSuperior())var o=this.sourceBlock_,t=e.getSourceBlock();else t=this.sourceBlock_,o=e.getSourceBlock();return o&&o==t?Blockly.Connection.REASON_SELF_CONNECTION:e.type!=Blockly.OPPOSITE_TYPE[this.type]?Blockly.Connection.REASON_WRONG_TYPE:o&&t&&o.workspace!==t.workspace?Blockly.Connection.REASON_DIFFERENT_WORKSPACES:this.checkType_(e)?o.isShadow()&&!t.isShadow()?Blockly.Connection.REASON_SHADOW_PARENT:Blockly.Connection.CAN_CONNECT:Blockly.Connection.REASON_CHECKS_FAILED},Blockly.Connection.prototype.checkConnection_=function(e){switch(this.canConnectWithReason_(e)){case Blockly.Connection.CAN_CONNECT:break;case Blockly.Connection.REASON_SELF_CONNECTION:throw"Attempted to connect a block to itself.";case Blockly.Connection.REASON_DIFFERENT_WORKSPACES:throw"Blocks not on same workspace.";case Blockly.Connection.REASON_WRONG_TYPE:throw"Attempt to connect incompatible types.";case Blockly.Connection.REASON_TARGET_NULL:throw"Target connection is null.";case Blockly.Connection.REASON_CHECKS_FAILED:throw"Connection checks failed.";case Blockly.Connection.REASON_SHADOW_PARENT:throw"Connecting non-shadow to shadow block.";default:throw"Unknown connection failure: this should never happen!"}},Blockly.Connection.prototype.isConnectionAllowed=function(e){return this.canConnectWithReason_(e)!=Blockly.Connection.CAN_CONNECT?!1:e.type!=Blockly.OUTPUT_VALUE&&e.type!=Blockly.PREVIOUS_STATEMENT||!e.isConnected()&&!this.isConnected()?e.type==Blockly.INPUT_VALUE&&e.isConnected()&&!e.targetBlock().isMovable()&&!e.targetBlock().isShadow()||this.type==Blockly.PREVIOUS_STATEMENT&&e.isConnected()&&!this.sourceBlock_.nextConnection&&!e.targetBlock().isShadow()&&e.targetBlock().nextConnection||-1!=Blockly.draggingConnections_.indexOf(e)?!1:!0:!1},Blockly.Connection.prototype.connect=function(e){this.targetConnection!=e&&(this.checkConnection_(e),this.isSuperior()?this.connect_(e):e.connect_(this))},Blockly.Connection.connectReciprocally_=function(e,o){goog.asserts.assert(e&&o,"Cannot connect null connections."),e.targetConnection=o,o.targetConnection=e},Blockly.Connection.singleConnection_=function(e,o){for(var t=!1,n=0;n<e.inputList.length;n++){var r=e.inputList[n].connection;if(r&&r.type==Blockly.INPUT_VALUE&&o.outputConnection.checkType_(r)){if(t)return null;t=r}}return t},Blockly.Connection.lastConnectionInRow_=function(e,o){for(var t,n=e;t=Blockly.Connection.singleConnection_(n,o);)if(n=t.targetBlock(),!n||n.isShadow())return t;return null},Blockly.Connection.prototype.disconnect=function(){var e=this.targetConnection;goog.asserts.assert(e,"Source connection not connected."),goog.asserts.assert(e.targetConnection==this,"Target connection not connected to source connection.");var o,t;this.isSuperior()?(o=this.sourceBlock_,t=e.getSourceBlock(),e=this):(o=e.getSourceBlock(),t=this.sourceBlock_),this.disconnectInternal_(o,t),e.respawnShadow_()},Blockly.Connection.prototype.disconnectInternal_=function(e,o){var t;Blockly.Events.isEnabled()&&(t=new Blockly.Events.Move(o)),this.targetConnection=this.targetConnection.targetConnection=null,o.setParent(null),t&&(t.recordNew(),Blockly.Events.fire(t))},Blockly.Connection.prototype.respawnShadow_=function(){var e=this.getSourceBlock(),o=this.getShadowDom();if(e.workspace&&o&&Blockly.Events.recordUndo)if(e=Blockly.Xml.domToBlock(o,e.workspace),e.outputConnection)this.connect(e.outputConnection);else{if(!e.previousConnection)throw"Child block does not have output or previous statement.";this.connect(e.previousConnection)}},Blockly.Connection.prototype.targetBlock=function(){return this.isConnected()?this.targetConnection.getSourceBlock():null},Blockly.Connection.prototype.checkType_=function(e){if(!this.check_||!e.check_)return!0;for(var o=0;o<this.check_.length;o++)if(-1!=e.check_.indexOf(this.check_[o]))return!0;return!1},Blockly.Connection.prototype.setCheck=function(e){return e?(goog.isArray(e)||(e=[e]),this.check_=e,this.isConnected()&&!this.checkType_(this.targetConnection)&&((this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug(),this.sourceBlock_.bumpNeighbours_())):this.check_=null,this},Blockly.Connection.prototype.setShadowDom=function(e){this.shadowDom_=e},Blockly.Connection.prototype.getShadowDom=function(){return this.shadowDom_},Blockly.Field=function(e,o){this.size_=new goog.math.Size(0,25),this.setValue(e),this.setValidator(o)},Blockly.Field.cacheWidths_=null,Blockly.Field.cacheReference_=0,Blockly.Field.prototype.name=void 0,Blockly.Field.prototype.maxDisplayLength=50,Blockly.Field.prototype.text_="",Blockly.Field.prototype.sourceBlock_=null,Blockly.Field.prototype.visible_=!0,Blockly.Field.prototype.validator_=null,Blockly.Field.NBSP="Â ",Blockly.Field.prototype.EDITABLE=!0,Blockly.Field.prototype.setSourceBlock=function(e){goog.asserts.assert(!this.sourceBlock_,"Field already bound to a block."),this.sourceBlock_=e},Blockly.Field.prototype.init=function(){this.fieldGroup_||(this.fieldGroup_=Blockly.createSvgElement("g",{},null),this.visible_||(this.fieldGroup_.style.display="none"),this.borderRect_=Blockly.createSvgElement("rect",{rx:4,ry:4,x:-Blockly.BlockSvg.SEP_SPACE_X/2,y:0,height:16},this.fieldGroup_,this.sourceBlock_.workspace),this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",y:this.size_.height-12.5},this.fieldGroup_),this.updateEditable(),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_),this.mouseUpWrapper_=Blockly.bindEventWithChecks_(this.fieldGroup_,"mouseup",this,this.onMouseUp_),this.updateTextNode_())},Blockly.Field.prototype.dispose=function(){this.mouseUpWrapper_&&(Blockly.unbindEvent_(this.mouseUpWrapper_),this.mouseUpWrapper_=null),this.sourceBlock_=null,goog.dom.removeNode(this.fieldGroup_),this.validator_=this.borderRect_=this.textElement_=this.fieldGroup_=null},Blockly.Field.prototype.updateEditable=function(){var e=this.fieldGroup_;this.EDITABLE&&e&&(this.sourceBlock_.isEditable()?(Blockly.addClass_(e,"blocklyEditableText"),Blockly.removeClass_(e,"blocklyNonEditableText"),this.fieldGroup_.style.cursor=this.CURSOR):(Blockly.addClass_(e,"blocklyNonEditableText"),Blockly.removeClass_(e,"blocklyEditableText"),this.fieldGroup_.style.cursor=""))},Blockly.Field.prototype.isVisible=function(){return this.visible_},Blockly.Field.prototype.setVisible=function(e){if(this.visible_!=e){this.visible_=e;var o=this.getSvgRoot();o&&(o.style.display=e?"block":"none",this.render_())}},Blockly.Field.prototype.setValidator=function(e){this.validator_=e},Blockly.Field.prototype.getValidator=function(){return this.validator_},Blockly.Field.prototype.classValidator=function(e){return e},Blockly.Field.prototype.callValidator=function(e){var o=this.classValidator(e);if(null===o)return null;if(void 0!==o&&(e=o),o=this.getValidator()){if(o=o.call(this,e),null===o)return null;void 0!==o&&(e=o)}return e},Blockly.Field.prototype.getSvgRoot=function(){return this.fieldGroup_},Blockly.Field.prototype.render_=function(){if(this.visible_&&this.textElement_){var e=this.textElement_.textContent+"\n"+this.textElement_.className.baseVal;if(Blockly.Field.cacheWidths_&&Blockly.Field.cacheWidths_[e])var o=Blockly.Field.cacheWidths_[e];else{try{o=this.textElement_.getComputedTextLength()}catch(t){o=8*this.textElement_.textContent.length}Blockly.Field.cacheWidths_&&(Blockly.Field.cacheWidths_[e]=o)}this.borderRect_&&this.borderRect_.setAttribute("width",o+Blockly.BlockSvg.SEP_SPACE_X)}else o=0;this.size_.width=o},Blockly.Field.startCache=function(){Blockly.Field.cacheReference_++,Blockly.Field.cacheWidths_||(Blockly.Field.cacheWidths_={})},Blockly.Field.stopCache=function(){Blockly.Field.cacheReference_--,Blockly.Field.cacheReference_||(Blockly.Field.cacheWidths_=null)},Blockly.Field.prototype.getSize=function(){return this.size_.width||this.render_(),this.size_},Blockly.Field.prototype.getScaledBBox_=function(){var e=this.borderRect_.getBBox();return new goog.math.Size(e.width*this.sourceBlock_.workspace.scale,e.height*this.sourceBlock_.workspace.scale)},Blockly.Field.prototype.getText=function(){return this.text_},Blockly.Field.prototype.setText=function(e){null!==e&&(e=String(e),e!==this.text_&&(this.text_=e,this.updateTextNode_(),this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_())))},Blockly.Field.prototype.updateTextNode_=function(){if(this.textElement_){var e=this.text_;e.length>this.maxDisplayLength&&(e=e.substring(0,this.maxDisplayLength-2)+"â¦"),e=e.replace(/\s/g,Blockly.Field.NBSP),this.sourceBlock_.RTL&&e&&(e+="â"),e||(e=Blockly.Field.NBSP),goog.dom.removeChildren(this.textElement_),e=document.createTextNode(e),this.textElement_.appendChild(e),this.size_.width=0}},Blockly.Field.prototype.getValue=function(){return this.getText()},Blockly.Field.prototype.setValue=function(e){if(null!==e){var o=this.getValue();o!=e&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,o,e)),this.setText(e))}},Blockly.Field.prototype.onMouseUp_=function(e){(!goog.userAgent.IPHONE&&!goog.userAgent.IPAD||goog.userAgent.isVersionOrHigher("537.51.2")||0===e.layerX||0===e.layerY)&&(Blockly.isRightButton(e)||this.sourceBlock_.workspace.isDragging()||this.sourceBlock_.isEditable()&&this.showEditor_())},Blockly.Field.prototype.setTooltip=function(e){},Blockly.Field.prototype.getAbsoluteXY_=function(){return goog.style.getPageOffset(this.borderRect_)},Blockly.Tooltip={},Blockly.Tooltip.visible=!1,Blockly.Tooltip.LIMIT=50,Blockly.Tooltip.mouseOutPid_=0,Blockly.Tooltip.showPid_=0,Blockly.Tooltip.lastX_=0,Blockly.Tooltip.lastY_=0,Blockly.Tooltip.element_=null,Blockly.Tooltip.poisonedElement_=null,Blockly.Tooltip.OFFSET_X=0,Blockly.Tooltip.OFFSET_Y=10,Blockly.Tooltip.RADIUS_OK=10,Blockly.Tooltip.HOVER_MS=750,Blockly.Tooltip.MARGINS=5,Blockly.Tooltip.DIV=null,Blockly.Tooltip.createDom=function(){Blockly.Tooltip.DIV||(Blockly.Tooltip.DIV=goog.dom.createDom("DIV","blocklyTooltipDiv"),document.body.appendChild(Blockly.Tooltip.DIV))},Blockly.Tooltip.bindMouseEvents=function(e){Blockly.bindEvent_(e,"mouseover",null,Blockly.Tooltip.onMouseOver_),Blockly.bindEvent_(e,"mouseout",null,Blockly.Tooltip.onMouseOut_),e.addEventListener("mousemove",Blockly.Tooltip.onMouseMove_,!1)},Blockly.Tooltip.onMouseOver_=function(e){for(e=e.target;!goog.isString(e.tooltip)&&!goog.isFunction(e.tooltip);)e=e.tooltip;Blockly.Tooltip.element_!=e&&(Blockly.Tooltip.hide(),Blockly.Tooltip.poisonedElement_=null,Blockly.Tooltip.element_=e),clearTimeout(Blockly.Tooltip.mouseOutPid_)},Blockly.Tooltip.onMouseOut_=function(e){Blockly.Tooltip.mouseOutPid_=setTimeout(function(){Blockly.Tooltip.element_=null,Blockly.Tooltip.poisonedElement_=null,Blockly.Tooltip.hide()},1),clearTimeout(Blockly.Tooltip.showPid_)},Blockly.Tooltip.onMouseMove_=function(e){if(Blockly.Tooltip.element_&&Blockly.Tooltip.element_.tooltip&&Blockly.dragMode_==Blockly.DRAG_NONE&&!Blockly.WidgetDiv.isVisible())if(Blockly.Tooltip.visible){var o=Blockly.Tooltip.lastX_-e.pageX;e=Blockly.Tooltip.lastY_-e.pageY,Math.sqrt(o*o+e*e)>Blockly.Tooltip.RADIUS_OK&&Blockly.Tooltip.hide()}else Blockly.Tooltip.poisonedElement_!=Blockly.Tooltip.element_&&(clearTimeout(Blockly.Tooltip.showPid_),Blockly.Tooltip.lastX_=e.pageX,Blockly.Tooltip.lastY_=e.pageY,Blockly.Tooltip.showPid_=setTimeout(Blockly.Tooltip.show_,Blockly.Tooltip.HOVER_MS))},Blockly.Tooltip.hide=function(){Blockly.Tooltip.visible&&(Blockly.Tooltip.visible=!1,Blockly.Tooltip.DIV&&(Blockly.Tooltip.DIV.style.display="none")),clearTimeout(Blockly.Tooltip.showPid_)},Blockly.Tooltip.show_=function(){if(Blockly.Tooltip.poisonedElement_=Blockly.Tooltip.element_,Blockly.Tooltip.DIV){goog.dom.removeChildren(Blockly.Tooltip.DIV);for(var e=Blockly.Tooltip.element_.tooltip;goog.isFunction(e);)e=e();for(var e=Blockly.utils.wrap(e,Blockly.Tooltip.LIMIT),e=e.split("\n"),o=0;o<e.length;o++){var t=document.createElement("div");t.appendChild(document.createTextNode(e[o])),Blockly.Tooltip.DIV.appendChild(t)}e=Blockly.Tooltip.element_.RTL,o=goog.dom.getViewportSize(),Blockly.Tooltip.DIV.style.direction=e?"rtl":"ltr",Blockly.Tooltip.DIV.style.display="block",Blockly.Tooltip.visible=!0;var t=Blockly.Tooltip.lastX_,t=e?t-(Blockly.Tooltip.OFFSET_X+Blockly.Tooltip.DIV.offsetWidth):t+Blockly.Tooltip.OFFSET_X,n=Blockly.Tooltip.lastY_+Blockly.Tooltip.OFFSET_Y;n+Blockly.Tooltip.DIV.offsetHeight>o.height+window.scrollY&&(n-=Blockly.Tooltip.DIV.offsetHeight+2*Blockly.Tooltip.OFFSET_Y),e?t=Math.max(Blockly.Tooltip.MARGINS-window.scrollX,t):t+Blockly.Tooltip.DIV.offsetWidth>o.width+window.scrollX-2*Blockly.Tooltip.MARGINS&&(t=o.width-Blockly.Tooltip.DIV.offsetWidth-2*Blockly.Tooltip.MARGINS),Blockly.Tooltip.DIV.style.top=n+"px",Blockly.Tooltip.DIV.style.left=t+"px"}},Blockly.FieldLabel=function(e,o){this.size_=new goog.math.Size(0,17.5),this.class_=o,this.setValue(e)},goog.inherits(Blockly.FieldLabel,Blockly.Field),Blockly.FieldLabel.prototype.EDITABLE=!1,Blockly.FieldLabel.prototype.init=function(){this.textElement_||(this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",y:this.size_.height-5},null),this.class_&&Blockly.addClass_(this.textElement_,this.class_),this.visible_||(this.textElement_.style.display="none"),this.sourceBlock_.getSvgRoot().appendChild(this.textElement_),this.textElement_.tooltip=this.sourceBlock_,Blockly.Tooltip.bindMouseEvents(this.textElement_),this.updateTextNode_())},Blockly.FieldLabel.prototype.dispose=function(){goog.dom.removeNode(this.textElement_),this.textElement_=null},Blockly.FieldLabel.prototype.getSvgRoot=function(){return this.textElement_},Blockly.FieldLabel.prototype.setTooltip=function(e){this.textElement_.tooltip=e},Blockly.Input=function(e,o,t,n){this.type=e,this.name=o,this.sourceBlock_=t,this.connection=n,this.fieldRow=[]},Blockly.Input.prototype.align=Blockly.ALIGN_LEFT,Blockly.Input.prototype.visible_=!0,Blockly.Input.prototype.appendField=function(e,o){return e||o?(goog.isString(e)&&(e=new Blockly.FieldLabel(e)),e.setSourceBlock(this.sourceBlock_),this.sourceBlock_.rendered&&e.init(),e.name=o,e.prefixField&&this.appendField(e.prefixField),this.fieldRow.push(e),e.suffixField&&this.appendField(e.suffixField),this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_()),this):this},Blockly.Input.prototype.appendTitle=function(e,o){return console.warn("Deprecated call to appendTitle, use appendField instead."),this.appendField(e,o)},Blockly.Input.prototype.removeField=function(e){for(var o,t=0;o=this.fieldRow[t];t++)if(o.name===e)return o.dispose(),this.fieldRow.splice(t,1),void(this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_()));goog.asserts.fail('Field "%s" not found.',e)},Blockly.Input.prototype.isVisible=function(){return this.visible_},Blockly.Input.prototype.setVisible=function(e){var o=[];if(this.visible_==e)return o;for(var t,n=(this.visible_=e)?"block":"none",r=0;t=this.fieldRow[r];r++)t.setVisible(e);return this.connection&&(e?o=this.connection.unhideAll():this.connection.hideAll(),r=this.connection.targetBlock())&&(r.getSvgRoot().style.display=n,e||(r.rendered=!1)),o},Blockly.Input.prototype.setCheck=function(e){if(!this.connection)throw"This input does not have a connection.";return this.connection.setCheck(e),this},Blockly.Input.prototype.setAlign=function(e){return this.align=e,this.sourceBlock_.rendered&&this.sourceBlock_.render(),this},Blockly.Input.prototype.init=function(){if(this.sourceBlock_.workspace.rendered)for(var e=0;e<this.fieldRow.length;e++)this.fieldRow[e].init()},Blockly.Input.prototype.dispose=function(){for(var e,o=0;e=this.fieldRow[o];o++)e.dispose();this.connection&&this.connection.dispose(),this.sourceBlock_=null},Blockly.ConnectionDB=function(){},Blockly.ConnectionDB.prototype=[],Blockly.ConnectionDB.constructor=Blockly.ConnectionDB,Blockly.ConnectionDB.prototype.addConnection=function(e){if(e.inDB_)throw"Connection already in database.";if(!e.getSourceBlock().isInFlyout){var o=this.findPositionForConnection_(e);this.splice(o,0,e),e.inDB_=!0}},Blockly.ConnectionDB.prototype.findConnection=function(e){if(!this.length)return-1;var o=this.findPositionForConnection_(e);if(o>=this.length)return-1;for(var t=e.y_,n=o;n>=0&&this[n].y_==t;){if(this[n]==e)return n;n--}for(;o<this.length&&this[o].y_==t;){if(this[o]==e)return o;o++}return-1},Blockly.ConnectionDB.prototype.findPositionForConnection_=function(e){if(!this.length)return 0;for(var o=0,t=this.length;t>o;){var n=Math.floor((o+t)/2);if(this[n].y_<e.y_)o=n+1;else{if(!(this[n].y_>e.y_)){o=n;break}t=n}}return o},Blockly.ConnectionDB.prototype.removeConnection_=function(e){if(!e.inDB_)throw"Connection not in database.";var o=this.findConnection(e);if(-1==o)throw"Unable to find connection in connectionDB.";e.inDB_=!1,this.splice(o,1)},Blockly.ConnectionDB.prototype.getNeighbours=function(e,o){function t(e){var t=r-n[e].x_,s=i-n[e].y_;return Math.sqrt(t*t+s*s)<=o&&a.push(n[e]),o>s}for(var n=this,r=e.x_,i=e.y_,s=0,l=n.length-2,g=l;g>s;)n[g].y_<i?s=g:l=g,g=Math.floor((s+l)/2);var a=[],l=s=g;if(n.length){for(;s>=0&&t(s);)s--;do l++;while(l<n.length&&t(l))}return a},Blockly.ConnectionDB.prototype.isInYRange_=function(e,o,t){return Math.abs(this[e].y_-o)<=t},Blockly.ConnectionDB.prototype.searchForClosest=function(e,o,t){if(!this.length)return{connection:null,radius:o};var n=e.y_,r=e.x_;e.x_=r+t.x,e.y_=n+t.y;var i=this.findPositionForConnection_(e);t=null;for(var s,l=o,g=i-1;g>=0&&this.isInYRange_(g,e.y_,o);)s=this[g],e.isConnectionAllowed(s,l)&&(t=s,l=s.distanceFrom(e)),g--;for(;i<this.length&&this.isInYRange_(i,e.y_,o);)s=this[i],e.isConnectionAllowed(s,l)&&(t=s,l=s.distanceFrom(e)),i++;return e.x_=r,e.y_=n,{connection:t,radius:l}},Blockly.ConnectionDB.init=function(e){var o=[];o[Blockly.INPUT_VALUE]=new Blockly.ConnectionDB,o[Blockly.OUTPUT_VALUE]=new Blockly.ConnectionDB,o[Blockly.NEXT_STATEMENT]=new Blockly.ConnectionDB,o[Blockly.PREVIOUS_STATEMENT]=new Blockly.ConnectionDB,e.connectionDBList=o},Blockly.constants={},Blockly.DRAG_RADIUS=5,Blockly.SNAP_RADIUS=20,Blockly.BUMP_DELAY=250,Blockly.COLLAPSE_CHARS=30,Blockly.LONGPRESS=750,Blockly.SOUND_LIMIT=100,Blockly.HSV_SATURATION=.45,Blockly.HSV_VALUE=.65,Blockly.SPRITE={width:96,height:124,url:"sprites.png"},Blockly.SVG_NS="http://www.w3.org/2000/svg",Blockly.HTML_NS="http://www.w3.org/1999/xhtml",Blockly.INPUT_VALUE=1,Blockly.OUTPUT_VALUE=2,Blockly.NEXT_STATEMENT=3,Blockly.PREVIOUS_STATEMENT=4,Blockly.DUMMY_INPUT=5,Blockly.ALIGN_LEFT=-1,Blockly.ALIGN_CENTRE=0,Blockly.ALIGN_RIGHT=1,Blockly.DRAG_NONE=0,Blockly.DRAG_STICKY=1,Blockly.DRAG_BEGIN=1,Blockly.DRAG_FREE=2,Blockly.OPPOSITE_TYPE=[],Blockly.OPPOSITE_TYPE[Blockly.INPUT_VALUE]=Blockly.OUTPUT_VALUE,Blockly.OPPOSITE_TYPE[Blockly.OUTPUT_VALUE]=Blockly.INPUT_VALUE,Blockly.OPPOSITE_TYPE[Blockly.NEXT_STATEMENT]=Blockly.PREVIOUS_STATEMENT,Blockly.OPPOSITE_TYPE[Blockly.PREVIOUS_STATEMENT]=Blockly.NEXT_STATEMENT,Blockly.TOOLBOX_AT_TOP=0,Blockly.TOOLBOX_AT_BOTTOM=1,Blockly.TOOLBOX_AT_LEFT=2,Blockly.TOOLBOX_AT_RIGHT=3,Blockly.Options=function(e){var o=!!e.readOnly;if(o)var t=null,n=!1,r=!1,i=!1,s=!1,l=!1,g=!1;else t=Blockly.Options.parseToolboxTree(e.toolbox),n=!(!t||!t.getElementsByTagName("category").length),r=e.trashcan,void 0===r&&(r=n),i=e.collapse,void 0===i&&(i=n),s=e.comments,void 0===s&&(s=n),l=e.disable,void 0===l&&(l=n),g=e.sounds,void 0===g&&(g=!0);var a=!!e.rtl,c=e.horizontalLayout;void 0===c&&(c=!1);var u=e.toolboxPosition,u="end"===u?!1:!0,u=c?u?Blockly.TOOLBOX_AT_TOP:Blockly.TOOLBOX_AT_BOTTOM:u==a?Blockly.TOOLBOX_AT_RIGHT:Blockly.TOOLBOX_AT_LEFT,h=e.scrollbars;void 0===h&&(h=n);var d=e.css;void 0===d&&(d=!0);var p="https://blockly-demo.appspot.com/static/media/";e.media?p=e.media:e.path&&(p=e.path+"media/");var y=void 0===e.oneBasedIndex?!0:!!e.oneBasedIndex;this.RTL=a,this.oneBasedIndex=y,this.collapse=i,this.comments=s,this.disable=l,this.readOnly=o,this.maxBlocks=e.maxBlocks||1/0,this.pathToMedia=p,this.hasCategories=n,this.hasScrollbars=h,this.hasTrashcan=r,this.hasSounds=g,this.hasCss=d,this.horizontalLayout=c,this.languageTree=t,this.gridOptions=Blockly.Options.parseGridOptions_(e),this.zoomOptions=Blockly.Options.parseZoomOptions_(e),this.toolboxPosition=u},Blockly.Options.prototype.parentWorkspace=null,Blockly.Options.prototype.setMetrics=null,Blockly.Options.prototype.getMetrics=null,Blockly.Options.parseZoomOptions_=function(e){e=e.zoom||{};var o={};return o.controls=void 0===e.controls?!1:!!e.controls,o.wheel=void 0===e.wheel?!1:!!e.wheel,o.startScale=void 0===e.startScale?1:parseFloat(e.startScale),o.maxScale=void 0===e.maxScale?3:parseFloat(e.maxScale),o.minScale=void 0===e.minScale?.3:parseFloat(e.minScale),o.scaleSpeed=void 0===e.scaleSpeed?1.2:parseFloat(e.scaleSpeed),o},Blockly.Options.parseGridOptions_=function(e){e=e.grid||{};var o={};return o.spacing=parseFloat(e.spacing)||0,o.colour=e.colour||"#888",o.length=parseFloat(e.length)||1,o.snap=0<o.spacing&&!!e.snap,o},Blockly.Options.parseToolboxTree=function(e){return e?("string"!=typeof e&&("undefined"==typeof XSLTProcessor&&e.outerHTML?e=e.outerHTML:e instanceof Element||(e=null)),
+this.anchorXY_.y+o<t.viewTop&&(o=this.shape_.getBBox().height),this.relativeLeft_=e,this.relativeTop_=o},Blockly.Bubble.prototype.positionBubble_=function(){var e=this.anchorXY_.x,e=this.workspace_.RTL?e-(this.relativeLeft_+this.width_):e+this.relativeLeft_;this.bubbleGroup_.setAttribute("transform","translate("+e+","+(this.relativeTop_+this.anchorXY_.y)+")")},Blockly.Bubble.prototype.getBubbleSize=function(){return{width:this.width_,height:this.height_}},Blockly.Bubble.prototype.setBubbleSize=function(e,o){var t=2*Blockly.Bubble.BORDER_WIDTH;e=Math.max(e,t+45),o=Math.max(o,t+20),this.width_=e,this.height_=o,this.bubbleBack_.setAttribute("width",e),this.bubbleBack_.setAttribute("height",o),this.resizeGroup_&&(this.workspace_.RTL?this.resizeGroup_.setAttribute("transform","translate("+2*Blockly.Bubble.BORDER_WIDTH+","+(o-t)+") scale(-1 1)"):this.resizeGroup_.setAttribute("transform","translate("+(e-t)+","+(o-t)+")")),this.rendered_&&(this.autoLayout_&&this.layoutBubble_(),this.positionBubble_(),this.renderArrow_()),this.resizeCallback_&&this.resizeCallback_()},Blockly.Bubble.prototype.renderArrow_=function(){var e=[],o=this.width_/2,t=this.height_/2,n=-this.relativeLeft_,r=-this.relativeTop_;if(o==n&&t==r)e.push("M "+o+","+t);else{r-=t,n-=o,this.workspace_.RTL&&(n*=-1);var i=Math.sqrt(r*r+n*n),s=Math.acos(n/i);0>r&&(s=2*Math.PI-s);var l=s+Math.PI/2;l>2*Math.PI&&(l-=2*Math.PI);var g=Math.sin(l),a=Math.cos(l),c=this.getBubbleSize(),l=(c.width+c.height)/Blockly.Bubble.ARROW_THICKNESS,l=Math.min(l,c.width,c.height)/4,c=1-Blockly.Bubble.ANCHOR_RADIUS/i,n=o+c*n,r=t+c*r,c=o+l*a,u=t+l*g,o=o-l*a,t=t-l*g,g=s+this.arrow_radians_;g>2*Math.PI&&(g-=2*Math.PI),s=Math.sin(g)*i/Blockly.Bubble.ARROW_BEND,i=Math.cos(g)*i/Blockly.Bubble.ARROW_BEND,e.push("M"+c+","+u),e.push("C"+(c+i)+","+(u+s)+" "+n+","+r+" "+n+","+r),e.push("C"+n+","+r+" "+(o+i)+","+(t+s)+" "+o+","+t)}e.push("z"),this.bubbleArrow_.setAttribute("d",e.join(" "))},Blockly.Bubble.prototype.setColour=function(e){this.bubbleBack_.setAttribute("fill",e),this.bubbleArrow_.setAttribute("fill",e)},Blockly.Bubble.prototype.dispose=function(){Blockly.Bubble.unbindDragEvents_(),goog.dom.removeNode(this.bubbleGroup_),this.shape_=this.content_=this.workspace_=this.resizeGroup_=this.bubbleBack_=this.bubbleArrow_=this.bubbleGroup_=null},Blockly.Icon=function(e){this.block_=e},Blockly.Icon.prototype.collapseHidden=!0,Blockly.Icon.prototype.SIZE=17,Blockly.Icon.prototype.bubble_=null,Blockly.Icon.prototype.iconXY_=null,Blockly.Icon.prototype.createIcon=function(){this.iconGroup_||(this.iconGroup_=Blockly.createSvgElement("g",{"class":"blocklyIconGroup"},null),this.block_.isInFlyout&&Blockly.addClass_(this.iconGroup_,"blocklyIconGroupReadonly"),this.drawIcon_(this.iconGroup_),this.block_.getSvgRoot().appendChild(this.iconGroup_),Blockly.bindEventWithChecks_(this.iconGroup_,"mouseup",this,this.iconClick_),this.updateEditable())},Blockly.Icon.prototype.dispose=function(){goog.dom.removeNode(this.iconGroup_),this.iconGroup_=null,this.setVisible(!1),this.block_=null},Blockly.Icon.prototype.updateEditable=function(){},Blockly.Icon.prototype.isVisible=function(){return!!this.bubble_},Blockly.Icon.prototype.iconClick_=function(e){this.block_.workspace.isDragging()||this.block_.isInFlyout||Blockly.isRightButton(e)||this.setVisible(!this.isVisible())},Blockly.Icon.prototype.updateColour=function(){this.isVisible()&&this.bubble_.setColour(this.block_.getColour())},Blockly.Icon.prototype.renderIcon=function(e){if(this.collapseHidden&&this.block_.isCollapsed())return this.iconGroup_.setAttribute("display","none"),e;this.iconGroup_.setAttribute("display","block");var o=this.SIZE;return this.block_.RTL&&(e-=o),this.iconGroup_.setAttribute("transform","translate("+e+",5)"),this.computeIconLocation(),e=this.block_.RTL?e-Blockly.BlockSvg.SEP_SPACE_X:e+(o+Blockly.BlockSvg.SEP_SPACE_X)},Blockly.Icon.prototype.setIconLocation=function(e){this.iconXY_=e,this.isVisible()&&this.bubble_.setAnchorLocation(e)},Blockly.Icon.prototype.computeIconLocation=function(){var e=this.block_.getRelativeToSurfaceXY(),o=Blockly.getRelativeXY_(this.iconGroup_),e=new goog.math.Coordinate(e.x+o.x+this.SIZE/2,e.y+o.y+this.SIZE/2);goog.math.Coordinate.equals(this.getIconLocation(),e)||this.setIconLocation(e)},Blockly.Icon.prototype.getIconLocation=function(){return this.iconXY_},Blockly.Comment=function(e){Blockly.Comment.superClass_.constructor.call(this,e),this.createIcon()},goog.inherits(Blockly.Comment,Blockly.Icon),Blockly.Comment.prototype.text_="",Blockly.Comment.prototype.width_=160,Blockly.Comment.prototype.height_=80,Blockly.Comment.prototype.drawIcon_=function(e){Blockly.createSvgElement("circle",{"class":"blocklyIconShape",r:"8",cx:"8",cy:"8"},e),Blockly.createSvgElement("path",{"class":"blocklyIconSymbol",d:"m6.8,10h2c0.003,-0.617 0.271,-0.962 0.633,-1.266 2.875,-2.405 0.607,-5.534 -3.765,-3.874v1.7c3.12,-1.657 3.698,0.118 2.336,1.25 -1.201,0.998 -1.201,1.528 -1.204,2.19z"},e),Blockly.createSvgElement("rect",{"class":"blocklyIconSymbol",x:"6.8",y:"10.78",height:"2",width:"2"},e)},Blockly.Comment.prototype.createEditor_=function(){this.foreignObject_=Blockly.createSvgElement("foreignObject",{x:Blockly.Bubble.BORDER_WIDTH,y:Blockly.Bubble.BORDER_WIDTH},null);var e=document.createElementNS(Blockly.HTML_NS,"body");e.setAttribute("xmlns",Blockly.HTML_NS),e.className="blocklyMinimalBody";var o=document.createElementNS(Blockly.HTML_NS,"textarea");return o.className="blocklyCommentTextarea",o.setAttribute("dir",this.block_.RTL?"RTL":"LTR"),e.appendChild(o),this.textarea_=o,this.foreignObject_.appendChild(e),Blockly.bindEventWithChecks_(o,"mouseup",this,this.textareaFocus_),Blockly.bindEventWithChecks_(o,"wheel",this,function(e){e.stopPropagation()}),Blockly.bindEventWithChecks_(o,"change",this,function(e){this.text_!=o.value&&(Blockly.Events.fire(new Blockly.Events.Change(this.block_,"comment",null,this.text_,o.value)),this.text_=o.value)}),setTimeout(function(){o.focus()},0),this.foreignObject_},Blockly.Comment.prototype.updateEditable=function(){this.isVisible()&&(this.setVisible(!1),this.setVisible(!0)),Blockly.Icon.prototype.updateEditable.call(this)},Blockly.Comment.prototype.resizeBubble_=function(){if(this.isVisible()){var e=this.bubble_.getBubbleSize(),o=2*Blockly.Bubble.BORDER_WIDTH;this.foreignObject_.setAttribute("width",e.width-o),this.foreignObject_.setAttribute("height",e.height-o),this.textarea_.style.width=e.width-o-4+"px",this.textarea_.style.height=e.height-o-4+"px"}},Blockly.Comment.prototype.setVisible=function(e){if(e!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"commentOpen",!e,e)),!this.block_.isEditable()&&!this.textarea_||goog.userAgent.IE)Blockly.Warning.prototype.setVisible.call(this,e);else{var o=this.getText(),t=this.getBubbleSize();e?(this.bubble_=new Blockly.Bubble(this.block_.workspace,this.createEditor_(),this.block_.svgPath_,this.iconXY_,this.width_,this.height_),this.bubble_.registerResizeEvent(this.resizeBubble_.bind(this)),this.updateColour()):(this.bubble_.dispose(),this.foreignObject_=this.textarea_=this.bubble_=null),this.setText(o),this.setBubbleSize(t.width,t.height)}},Blockly.Comment.prototype.textareaFocus_=function(e){this.bubble_.promote_(),this.textarea_.focus()},Blockly.Comment.prototype.getBubbleSize=function(){return this.isVisible()?this.bubble_.getBubbleSize():{width:this.width_,height:this.height_}},Blockly.Comment.prototype.setBubbleSize=function(e,o){this.textarea_?this.bubble_.setBubbleSize(e,o):(this.width_=e,this.height_=o)},Blockly.Comment.prototype.getText=function(){return this.textarea_?this.textarea_.value:this.text_},Blockly.Comment.prototype.setText=function(e){this.text_!=e&&(Blockly.Events.fire(new Blockly.Events.Change(this.block_,"comment",null,this.text_,e)),this.text_=e),this.textarea_&&(this.textarea_.value=e)},Blockly.Comment.prototype.dispose=function(){Blockly.Events.isEnabled()&&this.setText(""),this.block_.comment=null,Blockly.Icon.prototype.dispose.call(this)},Blockly.Connection=function(e,o){this.sourceBlock_=e,this.type=o,e.workspace.connectionDBList&&(this.db_=e.workspace.connectionDBList[o],this.dbOpposite_=e.workspace.connectionDBList[Blockly.OPPOSITE_TYPE[o]],this.hidden_=!this.db_)},Blockly.Connection.CAN_CONNECT=0,Blockly.Connection.REASON_SELF_CONNECTION=1,Blockly.Connection.REASON_WRONG_TYPE=2,Blockly.Connection.REASON_TARGET_NULL=3,Blockly.Connection.REASON_CHECKS_FAILED=4,Blockly.Connection.REASON_DIFFERENT_WORKSPACES=5,Blockly.Connection.REASON_SHADOW_PARENT=6,Blockly.Connection.prototype.targetConnection=null,Blockly.Connection.prototype.check_=null,Blockly.Connection.prototype.shadowDom_=null,Blockly.Connection.prototype.x_=0,Blockly.Connection.prototype.y_=0,Blockly.Connection.prototype.inDB_=!1,Blockly.Connection.prototype.db_=null,Blockly.Connection.prototype.dbOpposite_=null,Blockly.Connection.prototype.hidden_=null,Blockly.Connection.prototype.connect_=function(e){var o=this,t=o.getSourceBlock(),n=e.getSourceBlock();if(e.isConnected()&&e.disconnect(),o.isConnected()){var r=o.targetBlock(),i=o.getShadowDom();if(o.setShadowDom(null),r.isShadow())i=Blockly.Xml.blockToDom(r),r.dispose(),r=null;else if(o.type==Blockly.INPUT_VALUE){if(!r.outputConnection)throw"Orphan block does not have an output connection.";var s=Blockly.Connection.lastConnectionInRow_(n,r);s&&(r.outputConnection.connect(s),r=null)}else if(o.type==Blockly.NEXT_STATEMENT){if(!r.previousConnection)throw"Orphan block does not have a previous connection.";for(s=n;s.nextConnection;){var l=s.getNextBlock();if(!l||l.isShadow()){r.previousConnection.checkType_(s.nextConnection)&&(s.nextConnection.connect(r.previousConnection),r=null);break}s=l}}if(r&&(o.disconnect(),Blockly.Events.recordUndo)){var g=Blockly.Events.getGroup();setTimeout(function(){r.workspace&&!r.getParent()&&(Blockly.Events.setGroup(g),r.outputConnection?r.outputConnection.bumpAwayFrom_(o):r.previousConnection&&r.previousConnection.bumpAwayFrom_(o),Blockly.Events.setGroup(!1))},Blockly.BUMP_DELAY)}o.setShadowDom(i)}var a;Blockly.Events.isEnabled()&&(a=new Blockly.Events.Move(n)),Blockly.Connection.connectReciprocally_(o,e),n.setParent(t),a&&(a.recordNew(),Blockly.Events.fire(a))},Blockly.Connection.prototype.dispose=function(){if(this.isConnected())throw"Disconnect connection before disposing of it.";this.inDB_&&this.db_.removeConnection_(this),Blockly.highlightedConnection_==this&&(Blockly.highlightedConnection_=null),Blockly.localConnection_==this&&(Blockly.localConnection_=null),this.dbOpposite_=this.db_=null},Blockly.Connection.prototype.getSourceBlock=function(){return this.sourceBlock_},Blockly.Connection.prototype.isSuperior=function(){return this.type==Blockly.INPUT_VALUE||this.type==Blockly.NEXT_STATEMENT},Blockly.Connection.prototype.isConnected=function(){return!!this.targetConnection},Blockly.Connection.prototype.canConnectWithReason_=function(e){if(!e)return Blockly.Connection.REASON_TARGET_NULL;if(this.isSuperior())var o=this.sourceBlock_,t=e.getSourceBlock();else t=this.sourceBlock_,o=e.getSourceBlock();return o&&o==t?Blockly.Connection.REASON_SELF_CONNECTION:e.type!=Blockly.OPPOSITE_TYPE[this.type]?Blockly.Connection.REASON_WRONG_TYPE:o&&t&&o.workspace!==t.workspace?Blockly.Connection.REASON_DIFFERENT_WORKSPACES:this.checkType_(e)?o.isShadow()&&!t.isShadow()?Blockly.Connection.REASON_SHADOW_PARENT:Blockly.Connection.CAN_CONNECT:Blockly.Connection.REASON_CHECKS_FAILED},Blockly.Connection.prototype.checkConnection_=function(e){switch(this.canConnectWithReason_(e)){case Blockly.Connection.CAN_CONNECT:break;case Blockly.Connection.REASON_SELF_CONNECTION:throw"Attempted to connect a block to itself.";case Blockly.Connection.REASON_DIFFERENT_WORKSPACES:throw"Blocks not on same workspace.";case Blockly.Connection.REASON_WRONG_TYPE:throw"Attempt to connect incompatible types.";case Blockly.Connection.REASON_TARGET_NULL:throw"Target connection is null.";case Blockly.Connection.REASON_CHECKS_FAILED:throw"Connection checks failed.";case Blockly.Connection.REASON_SHADOW_PARENT:throw"Connecting non-shadow to shadow block.";default:throw"Unknown connection failure: this should never happen!"}},Blockly.Connection.prototype.isConnectionAllowed=function(e){return this.canConnectWithReason_(e)!=Blockly.Connection.CAN_CONNECT?!1:e.type!=Blockly.OUTPUT_VALUE&&e.type!=Blockly.PREVIOUS_STATEMENT||!e.isConnected()&&!this.isConnected()?e.type==Blockly.INPUT_VALUE&&e.isConnected()&&!e.targetBlock().isMovable()&&!e.targetBlock().isShadow()||this.type==Blockly.PREVIOUS_STATEMENT&&e.isConnected()&&!this.sourceBlock_.nextConnection&&!e.targetBlock().isShadow()&&e.targetBlock().nextConnection||-1!=Blockly.draggingConnections_.indexOf(e)?!1:!0:!1},Blockly.Connection.prototype.connect=function(e){this.targetConnection!=e&&(this.checkConnection_(e),this.isSuperior()?this.connect_(e):e.connect_(this))},Blockly.Connection.connectReciprocally_=function(e,o){goog.asserts.assert(e&&o,"Cannot connect null connections."),e.targetConnection=o,o.targetConnection=e},Blockly.Connection.singleConnection_=function(e,o){for(var t=!1,n=0;n<e.inputList.length;n++){var r=e.inputList[n].connection;if(r&&r.type==Blockly.INPUT_VALUE&&o.outputConnection.checkType_(r)){if(t)return null;t=r}}return t},Blockly.Connection.lastConnectionInRow_=function(e,o){for(var t,n=e;t=Blockly.Connection.singleConnection_(n,o);)if(n=t.targetBlock(),!n||n.isShadow())return t;return null},Blockly.Connection.prototype.disconnect=function(){var e=this.targetConnection;goog.asserts.assert(e,"Source connection not connected."),goog.asserts.assert(e.targetConnection==this,"Target connection not connected to source connection.");var o,t;this.isSuperior()?(o=this.sourceBlock_,t=e.getSourceBlock(),e=this):(o=e.getSourceBlock(),t=this.sourceBlock_),this.disconnectInternal_(o,t),e.respawnShadow_()},Blockly.Connection.prototype.disconnectInternal_=function(e,o){var t;Blockly.Events.isEnabled()&&(t=new Blockly.Events.Move(o)),this.targetConnection=this.targetConnection.targetConnection=null,o.setParent(null),t&&(t.recordNew(),Blockly.Events.fire(t))},Blockly.Connection.prototype.respawnShadow_=function(){var e=this.getSourceBlock(),o=this.getShadowDom();if(e.workspace&&o&&Blockly.Events.recordUndo)if(e=Blockly.Xml.domToBlock(o,e.workspace),e.outputConnection)this.connect(e.outputConnection);else{if(!e.previousConnection)throw"Child block does not have output or previous statement.";this.connect(e.previousConnection)}},Blockly.Connection.prototype.targetBlock=function(){return this.isConnected()?this.targetConnection.getSourceBlock():null},Blockly.Connection.prototype.checkType_=function(e){if(!this.check_||!e.check_)return!0;for(var o=0;o<this.check_.length;o++)if(-1!=e.check_.indexOf(this.check_[o]))return!0;return!1},Blockly.Connection.prototype.setCheck=function(e){return e?(goog.isArray(e)||(e=[e]),this.check_=e,this.isConnected()&&!this.checkType_(this.targetConnection)&&((this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug(),this.sourceBlock_.bumpNeighbours_())):this.check_=null,this},Blockly.Connection.prototype.setShadowDom=function(e){this.shadowDom_=e},Blockly.Connection.prototype.getShadowDom=function(){return this.shadowDom_},Blockly.Field=function(e,o){this.size_=new goog.math.Size(0,25),this.setValue(e),this.setValidator(o)},Blockly.Field.cacheWidths_=null,Blockly.Field.cacheReference_=0,Blockly.Field.prototype.name=void 0,Blockly.Field.prototype.maxDisplayLength=50,Blockly.Field.prototype.text_="",Blockly.Field.prototype.sourceBlock_=null,Blockly.Field.prototype.visible_=!0,Blockly.Field.prototype.validator_=null,Blockly.Field.NBSP=" ",Blockly.Field.prototype.EDITABLE=!0,Blockly.Field.prototype.setSourceBlock=function(e){goog.asserts.assert(!this.sourceBlock_,"Field already bound to a block."),this.sourceBlock_=e},Blockly.Field.prototype.init=function(){this.fieldGroup_||(this.fieldGroup_=Blockly.createSvgElement("g",{},null),this.visible_||(this.fieldGroup_.style.display="none"),this.borderRect_=Blockly.createSvgElement("rect",{rx:4,ry:4,x:-Blockly.BlockSvg.SEP_SPACE_X/2,y:0,height:16},this.fieldGroup_,this.sourceBlock_.workspace),this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",y:this.size_.height-12.5},this.fieldGroup_),this.updateEditable(),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_),this.mouseUpWrapper_=Blockly.bindEventWithChecks_(this.fieldGroup_,"mouseup",this,this.onMouseUp_),this.updateTextNode_())},Blockly.Field.prototype.dispose=function(){this.mouseUpWrapper_&&(Blockly.unbindEvent_(this.mouseUpWrapper_),this.mouseUpWrapper_=null),this.sourceBlock_=null,goog.dom.removeNode(this.fieldGroup_),this.validator_=this.borderRect_=this.textElement_=this.fieldGroup_=null},Blockly.Field.prototype.updateEditable=function(){var e=this.fieldGroup_;this.EDITABLE&&e&&(this.sourceBlock_.isEditable()?(Blockly.addClass_(e,"blocklyEditableText"),Blockly.removeClass_(e,"blocklyNonEditableText"),this.fieldGroup_.style.cursor=this.CURSOR):(Blockly.addClass_(e,"blocklyNonEditableText"),Blockly.removeClass_(e,"blocklyEditableText"),this.fieldGroup_.style.cursor=""))},Blockly.Field.prototype.isVisible=function(){return this.visible_},Blockly.Field.prototype.setVisible=function(e){if(this.visible_!=e){this.visible_=e;var o=this.getSvgRoot();o&&(o.style.display=e?"block":"none",this.render_())}},Blockly.Field.prototype.setValidator=function(e){this.validator_=e},Blockly.Field.prototype.getValidator=function(){return this.validator_},Blockly.Field.prototype.classValidator=function(e){return e},Blockly.Field.prototype.callValidator=function(e){var o=this.classValidator(e);if(null===o)return null;if(void 0!==o&&(e=o),o=this.getValidator()){if(o=o.call(this,e),null===o)return null;void 0!==o&&(e=o)}return e},Blockly.Field.prototype.getSvgRoot=function(){return this.fieldGroup_},Blockly.Field.prototype.render_=function(){if(this.visible_&&this.textElement_){var e=this.textElement_.textContent+"\n"+this.textElement_.className.baseVal;if(Blockly.Field.cacheWidths_&&Blockly.Field.cacheWidths_[e])var o=Blockly.Field.cacheWidths_[e];else{try{o=this.textElement_.getComputedTextLength()}catch(t){o=8*this.textElement_.textContent.length}Blockly.Field.cacheWidths_&&(Blockly.Field.cacheWidths_[e]=o)}this.borderRect_&&this.borderRect_.setAttribute("width",o+Blockly.BlockSvg.SEP_SPACE_X)}else o=0;this.size_.width=o},Blockly.Field.startCache=function(){Blockly.Field.cacheReference_++,Blockly.Field.cacheWidths_||(Blockly.Field.cacheWidths_={})},Blockly.Field.stopCache=function(){Blockly.Field.cacheReference_--,Blockly.Field.cacheReference_||(Blockly.Field.cacheWidths_=null)},Blockly.Field.prototype.getSize=function(){return this.size_.width||this.render_(),this.size_},Blockly.Field.prototype.getScaledBBox_=function(){var e=this.borderRect_.getBBox();return new goog.math.Size(e.width*this.sourceBlock_.workspace.scale,e.height*this.sourceBlock_.workspace.scale)},Blockly.Field.prototype.getText=function(){return this.text_},Blockly.Field.prototype.setText=function(e){null!==e&&(e=String(e),e!==this.text_&&(this.text_=e,this.updateTextNode_(),this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_())))},Blockly.Field.prototype.updateTextNode_=function(){if(this.textElement_){var e=this.text_;e.length>this.maxDisplayLength&&(e=e.substring(0,this.maxDisplayLength-2)+"…"),e=e.replace(/\s/g,Blockly.Field.NBSP),this.sourceBlock_.RTL&&e&&(e+="‏"),e||(e=Blockly.Field.NBSP),goog.dom.removeChildren(this.textElement_),e=document.createTextNode(e),this.textElement_.appendChild(e),this.size_.width=0}},Blockly.Field.prototype.getValue=function(){return this.getText()},Blockly.Field.prototype.setValue=function(e){if(null!==e){var o=this.getValue();o!=e&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,o,e)),this.setText(e))}},Blockly.Field.prototype.onMouseUp_=function(e){(!goog.userAgent.IPHONE&&!goog.userAgent.IPAD||goog.userAgent.isVersionOrHigher("537.51.2")||0===e.layerX||0===e.layerY)&&(Blockly.isRightButton(e)||this.sourceBlock_.workspace.isDragging()||this.sourceBlock_.isEditable()&&this.showEditor_())},Blockly.Field.prototype.setTooltip=function(e){},Blockly.Field.prototype.getAbsoluteXY_=function(){return goog.style.getPageOffset(this.borderRect_)},Blockly.Tooltip={},Blockly.Tooltip.visible=!1,Blockly.Tooltip.LIMIT=50,Blockly.Tooltip.mouseOutPid_=0,Blockly.Tooltip.showPid_=0,Blockly.Tooltip.lastX_=0,Blockly.Tooltip.lastY_=0,Blockly.Tooltip.element_=null,Blockly.Tooltip.poisonedElement_=null,Blockly.Tooltip.OFFSET_X=0,Blockly.Tooltip.OFFSET_Y=10,Blockly.Tooltip.RADIUS_OK=10,Blockly.Tooltip.HOVER_MS=750,Blockly.Tooltip.MARGINS=5,Blockly.Tooltip.DIV=null,Blockly.Tooltip.createDom=function(){Blockly.Tooltip.DIV||(Blockly.Tooltip.DIV=goog.dom.createDom("DIV","blocklyTooltipDiv"),document.body.appendChild(Blockly.Tooltip.DIV))},Blockly.Tooltip.bindMouseEvents=function(e){Blockly.bindEvent_(e,"mouseover",null,Blockly.Tooltip.onMouseOver_),Blockly.bindEvent_(e,"mouseout",null,Blockly.Tooltip.onMouseOut_),e.addEventListener("mousemove",Blockly.Tooltip.onMouseMove_,!1)},Blockly.Tooltip.onMouseOver_=function(e){for(e=e.target;!goog.isString(e.tooltip)&&!goog.isFunction(e.tooltip);)e=e.tooltip;Blockly.Tooltip.element_!=e&&(Blockly.Tooltip.hide(),Blockly.Tooltip.poisonedElement_=null,Blockly.Tooltip.element_=e),clearTimeout(Blockly.Tooltip.mouseOutPid_)},Blockly.Tooltip.onMouseOut_=function(e){Blockly.Tooltip.mouseOutPid_=setTimeout(function(){Blockly.Tooltip.element_=null,Blockly.Tooltip.poisonedElement_=null,Blockly.Tooltip.hide()},1),clearTimeout(Blockly.Tooltip.showPid_)},Blockly.Tooltip.onMouseMove_=function(e){if(Blockly.Tooltip.element_&&Blockly.Tooltip.element_.tooltip&&Blockly.dragMode_==Blockly.DRAG_NONE&&!Blockly.WidgetDiv.isVisible())if(Blockly.Tooltip.visible){var o=Blockly.Tooltip.lastX_-e.pageX;e=Blockly.Tooltip.lastY_-e.pageY,Math.sqrt(o*o+e*e)>Blockly.Tooltip.RADIUS_OK&&Blockly.Tooltip.hide()}else Blockly.Tooltip.poisonedElement_!=Blockly.Tooltip.element_&&(clearTimeout(Blockly.Tooltip.showPid_),Blockly.Tooltip.lastX_=e.pageX,Blockly.Tooltip.lastY_=e.pageY,Blockly.Tooltip.showPid_=setTimeout(Blockly.Tooltip.show_,Blockly.Tooltip.HOVER_MS))},Blockly.Tooltip.hide=function(){Blockly.Tooltip.visible&&(Blockly.Tooltip.visible=!1,Blockly.Tooltip.DIV&&(Blockly.Tooltip.DIV.style.display="none")),clearTimeout(Blockly.Tooltip.showPid_)},Blockly.Tooltip.show_=function(){if(Blockly.Tooltip.poisonedElement_=Blockly.Tooltip.element_,Blockly.Tooltip.DIV){goog.dom.removeChildren(Blockly.Tooltip.DIV);for(var e=Blockly.Tooltip.element_.tooltip;goog.isFunction(e);)e=e();for(var e=Blockly.utils.wrap(e,Blockly.Tooltip.LIMIT),e=e.split("\n"),o=0;o<e.length;o++){var t=document.createElement("div");t.appendChild(document.createTextNode(e[o])),Blockly.Tooltip.DIV.appendChild(t)}e=Blockly.Tooltip.element_.RTL,o=goog.dom.getViewportSize(),Blockly.Tooltip.DIV.style.direction=e?"rtl":"ltr",Blockly.Tooltip.DIV.style.display="block",Blockly.Tooltip.visible=!0;var t=Blockly.Tooltip.lastX_,t=e?t-(Blockly.Tooltip.OFFSET_X+Blockly.Tooltip.DIV.offsetWidth):t+Blockly.Tooltip.OFFSET_X,n=Blockly.Tooltip.lastY_+Blockly.Tooltip.OFFSET_Y;n+Blockly.Tooltip.DIV.offsetHeight>o.height+window.scrollY&&(n-=Blockly.Tooltip.DIV.offsetHeight+2*Blockly.Tooltip.OFFSET_Y),e?t=Math.max(Blockly.Tooltip.MARGINS-window.scrollX,t):t+Blockly.Tooltip.DIV.offsetWidth>o.width+window.scrollX-2*Blockly.Tooltip.MARGINS&&(t=o.width-Blockly.Tooltip.DIV.offsetWidth-2*Blockly.Tooltip.MARGINS),Blockly.Tooltip.DIV.style.top=n+"px",Blockly.Tooltip.DIV.style.left=t+"px"}},Blockly.FieldLabel=function(e,o){this.size_=new goog.math.Size(0,17.5),this.class_=o,this.setValue(e)},goog.inherits(Blockly.FieldLabel,Blockly.Field),Blockly.FieldLabel.prototype.EDITABLE=!1,Blockly.FieldLabel.prototype.init=function(){this.textElement_||(this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",y:this.size_.height-5},null),this.class_&&Blockly.addClass_(this.textElement_,this.class_),this.visible_||(this.textElement_.style.display="none"),this.sourceBlock_.getSvgRoot().appendChild(this.textElement_),this.textElement_.tooltip=this.sourceBlock_,Blockly.Tooltip.bindMouseEvents(this.textElement_),this.updateTextNode_())},Blockly.FieldLabel.prototype.dispose=function(){goog.dom.removeNode(this.textElement_),this.textElement_=null},Blockly.FieldLabel.prototype.getSvgRoot=function(){return this.textElement_},Blockly.FieldLabel.prototype.setTooltip=function(e){this.textElement_.tooltip=e},Blockly.Input=function(e,o,t,n){this.type=e,this.name=o,this.sourceBlock_=t,this.connection=n,this.fieldRow=[]},Blockly.Input.prototype.align=Blockly.ALIGN_LEFT,Blockly.Input.prototype.visible_=!0,Blockly.Input.prototype.appendField=function(e,o){return e||o?(goog.isString(e)&&(e=new Blockly.FieldLabel(e)),e.setSourceBlock(this.sourceBlock_),this.sourceBlock_.rendered&&e.init(),e.name=o,e.prefixField&&this.appendField(e.prefixField),this.fieldRow.push(e),e.suffixField&&this.appendField(e.suffixField),this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_()),this):this},Blockly.Input.prototype.appendTitle=function(e,o){return console.warn("Deprecated call to appendTitle, use appendField instead."),this.appendField(e,o)},Blockly.Input.prototype.removeField=function(e){for(var o,t=0;o=this.fieldRow[t];t++)if(o.name===e)return o.dispose(),this.fieldRow.splice(t,1),void(this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_()));goog.asserts.fail('Field "%s" not found.',e)},Blockly.Input.prototype.isVisible=function(){return this.visible_},Blockly.Input.prototype.setVisible=function(e){var o=[];if(this.visible_==e)return o;for(var t,n=(this.visible_=e)?"block":"none",r=0;t=this.fieldRow[r];r++)t.setVisible(e);return this.connection&&(e?o=this.connection.unhideAll():this.connection.hideAll(),r=this.connection.targetBlock())&&(r.getSvgRoot().style.display=n,e||(r.rendered=!1)),o},Blockly.Input.prototype.setCheck=function(e){if(!this.connection)throw"This input does not have a connection.";return this.connection.setCheck(e),this},Blockly.Input.prototype.setAlign=function(e){return this.align=e,this.sourceBlock_.rendered&&this.sourceBlock_.render(),this},Blockly.Input.prototype.init=function(){if(this.sourceBlock_.workspace.rendered)for(var e=0;e<this.fieldRow.length;e++)this.fieldRow[e].init()},Blockly.Input.prototype.dispose=function(){for(var e,o=0;e=this.fieldRow[o];o++)e.dispose();this.connection&&this.connection.dispose(),this.sourceBlock_=null},Blockly.ConnectionDB=function(){},Blockly.ConnectionDB.prototype=[],Blockly.ConnectionDB.constructor=Blockly.ConnectionDB,Blockly.ConnectionDB.prototype.addConnection=function(e){if(e.inDB_)throw"Connection already in database.";if(!e.getSourceBlock().isInFlyout){var o=this.findPositionForConnection_(e);this.splice(o,0,e),e.inDB_=!0}},Blockly.ConnectionDB.prototype.findConnection=function(e){if(!this.length)return-1;var o=this.findPositionForConnection_(e);if(o>=this.length)return-1;for(var t=e.y_,n=o;n>=0&&this[n].y_==t;){if(this[n]==e)return n;n--}for(;o<this.length&&this[o].y_==t;){if(this[o]==e)return o;o++}return-1},Blockly.ConnectionDB.prototype.findPositionForConnection_=function(e){if(!this.length)return 0;for(var o=0,t=this.length;t>o;){var n=Math.floor((o+t)/2);if(this[n].y_<e.y_)o=n+1;else{if(!(this[n].y_>e.y_)){o=n;break}t=n}}return o},Blockly.ConnectionDB.prototype.removeConnection_=function(e){if(!e.inDB_)throw"Connection not in database.";var o=this.findConnection(e);if(-1==o)throw"Unable to find connection in connectionDB.";e.inDB_=!1,this.splice(o,1)},Blockly.ConnectionDB.prototype.getNeighbours=function(e,o){function t(e){var t=r-n[e].x_,s=i-n[e].y_;return Math.sqrt(t*t+s*s)<=o&&a.push(n[e]),o>s}for(var n=this,r=e.x_,i=e.y_,s=0,l=n.length-2,g=l;g>s;)n[g].y_<i?s=g:l=g,g=Math.floor((s+l)/2);var a=[],l=s=g;if(n.length){for(;s>=0&&t(s);)s--;do l++;while(l<n.length&&t(l))}return a},Blockly.ConnectionDB.prototype.isInYRange_=function(e,o,t){return Math.abs(this[e].y_-o)<=t},Blockly.ConnectionDB.prototype.searchForClosest=function(e,o,t){if(!this.length)return{connection:null,radius:o};var n=e.y_,r=e.x_;e.x_=r+t.x,e.y_=n+t.y;var i=this.findPositionForConnection_(e);t=null;for(var s,l=o,g=i-1;g>=0&&this.isInYRange_(g,e.y_,o);)s=this[g],e.isConnectionAllowed(s,l)&&(t=s,l=s.distanceFrom(e)),g--;for(;i<this.length&&this.isInYRange_(i,e.y_,o);)s=this[i],e.isConnectionAllowed(s,l)&&(t=s,l=s.distanceFrom(e)),i++;return e.x_=r,e.y_=n,{connection:t,radius:l}},Blockly.ConnectionDB.init=function(e){var o=[];o[Blockly.INPUT_VALUE]=new Blockly.ConnectionDB,o[Blockly.OUTPUT_VALUE]=new Blockly.ConnectionDB,o[Blockly.NEXT_STATEMENT]=new Blockly.ConnectionDB,o[Blockly.PREVIOUS_STATEMENT]=new Blockly.ConnectionDB,e.connectionDBList=o},Blockly.constants={},Blockly.DRAG_RADIUS=5,Blockly.SNAP_RADIUS=20,Blockly.BUMP_DELAY=250,Blockly.COLLAPSE_CHARS=30,Blockly.LONGPRESS=750,Blockly.SOUND_LIMIT=100,Blockly.HSV_SATURATION=.45,Blockly.HSV_VALUE=.65,Blockly.SPRITE={width:96,height:124,url:"sprites.png"},Blockly.SVG_NS="http://www.w3.org/2000/svg",Blockly.HTML_NS="http://www.w3.org/1999/xhtml",Blockly.INPUT_VALUE=1,Blockly.OUTPUT_VALUE=2,Blockly.NEXT_STATEMENT=3,Blockly.PREVIOUS_STATEMENT=4,Blockly.DUMMY_INPUT=5,Blockly.ALIGN_LEFT=-1,Blockly.ALIGN_CENTRE=0,Blockly.ALIGN_RIGHT=1,Blockly.DRAG_NONE=0,Blockly.DRAG_STICKY=1,Blockly.DRAG_BEGIN=1,Blockly.DRAG_FREE=2,Blockly.OPPOSITE_TYPE=[],Blockly.OPPOSITE_TYPE[Blockly.INPUT_VALUE]=Blockly.OUTPUT_VALUE,Blockly.OPPOSITE_TYPE[Blockly.OUTPUT_VALUE]=Blockly.INPUT_VALUE,Blockly.OPPOSITE_TYPE[Blockly.NEXT_STATEMENT]=Blockly.PREVIOUS_STATEMENT,Blockly.OPPOSITE_TYPE[Blockly.PREVIOUS_STATEMENT]=Blockly.NEXT_STATEMENT,Blockly.TOOLBOX_AT_TOP=0,Blockly.TOOLBOX_AT_BOTTOM=1,Blockly.TOOLBOX_AT_LEFT=2,Blockly.TOOLBOX_AT_RIGHT=3,Blockly.Options=function(e){var o=!!e.readOnly;if(o)var t=null,n=!1,r=!1,i=!1,s=!1,l=!1,g=!1;else t=Blockly.Options.parseToolboxTree(e.toolbox),n=!(!t||!t.getElementsByTagName("category").length),r=e.trashcan,void 0===r&&(r=n),i=e.collapse,void 0===i&&(i=n),s=e.comments,void 0===s&&(s=n),l=e.disable,void 0===l&&(l=n),g=e.sounds,void 0===g&&(g=!0);var a=!!e.rtl,c=e.horizontalLayout;void 0===c&&(c=!1);var u=e.toolboxPosition,u="end"===u?!1:!0,u=c?u?Blockly.TOOLBOX_AT_TOP:Blockly.TOOLBOX_AT_BOTTOM:u==a?Blockly.TOOLBOX_AT_RIGHT:Blockly.TOOLBOX_AT_LEFT,h=e.scrollbars;void 0===h&&(h=n);var d=e.css;void 0===d&&(d=!0);var p="https://blockly-demo.appspot.com/static/media/";e.media?p=e.media:e.path&&(p=e.path+"media/");var y=void 0===e.oneBasedIndex?!0:!!e.oneBasedIndex;this.RTL=a,this.oneBasedIndex=y,this.collapse=i,this.comments=s,this.disable=l,this.readOnly=o,this.maxBlocks=e.maxBlocks||1/0,this.pathToMedia=p,this.hasCategories=n,this.hasScrollbars=h,this.hasTrashcan=r,this.hasSounds=g,this.hasCss=d,this.horizontalLayout=c,this.languageTree=t,this.gridOptions=Blockly.Options.parseGridOptions_(e),this.zoomOptions=Blockly.Options.parseZoomOptions_(e),this.toolboxPosition=u},Blockly.Options.prototype.parentWorkspace=null,Blockly.Options.prototype.setMetrics=null,Blockly.Options.prototype.getMetrics=null,Blockly.Options.parseZoomOptions_=function(e){e=e.zoom||{};var o={};return o.controls=void 0===e.controls?!1:!!e.controls,o.wheel=void 0===e.wheel?!1:!!e.wheel,o.startScale=void 0===e.startScale?1:parseFloat(e.startScale),o.maxScale=void 0===e.maxScale?3:parseFloat(e.maxScale),o.minScale=void 0===e.minScale?.3:parseFloat(e.minScale),o.scaleSpeed=void 0===e.scaleSpeed?1.2:parseFloat(e.scaleSpeed),o},Blockly.Options.parseGridOptions_=function(e){e=e.grid||{};var o={};return o.spacing=parseFloat(e.spacing)||0,o.colour=e.colour||"#888",o.length=parseFloat(e.length)||1,o.snap=0<o.spacing&&!!e.snap,o},Blockly.Options.parseToolboxTree=function(e){return e?("string"!=typeof e&&("undefined"==typeof XSLTProcessor&&e.outerHTML?e=e.outerHTML:e instanceof Element||(e=null)),
 "string"==typeof e&&(e=Blockly.Xml.textToDom(e))):e=null,e},Blockly.ScrollbarPair=function(e){this.workspace_=e,this.hScroll=new Blockly.Scrollbar(e,!0,!0),this.vScroll=new Blockly.Scrollbar(e,!1,!0),this.corner_=Blockly.createSvgElement("rect",{height:Blockly.Scrollbar.scrollbarThickness,width:Blockly.Scrollbar.scrollbarThickness,"class":"blocklyScrollbarBackground"},null),Blockly.Scrollbar.insertAfter_(this.corner_,e.getBubbleCanvas())},Blockly.ScrollbarPair.prototype.oldHostMetrics_=null,Blockly.ScrollbarPair.prototype.dispose=function(){goog.dom.removeNode(this.corner_),this.oldHostMetrics_=this.workspace_=this.corner_=null,this.hScroll.dispose(),this.hScroll=null,this.vScroll.dispose(),this.vScroll=null},Blockly.ScrollbarPair.prototype.resize=function(){var e=this.workspace_.getMetrics();if(e){var o=!1,t=!1;this.oldHostMetrics_&&this.oldHostMetrics_.viewWidth==e.viewWidth&&this.oldHostMetrics_.viewHeight==e.viewHeight&&this.oldHostMetrics_.absoluteTop==e.absoluteTop&&this.oldHostMetrics_.absoluteLeft==e.absoluteLeft?(this.oldHostMetrics_&&this.oldHostMetrics_.contentWidth==e.contentWidth&&this.oldHostMetrics_.viewLeft==e.viewLeft&&this.oldHostMetrics_.contentLeft==e.contentLeft||(o=!0),this.oldHostMetrics_&&this.oldHostMetrics_.contentHeight==e.contentHeight&&this.oldHostMetrics_.viewTop==e.viewTop&&this.oldHostMetrics_.contentTop==e.contentTop||(t=!0)):t=o=!0,o&&this.hScroll.resize(e),t&&this.vScroll.resize(e),this.oldHostMetrics_&&this.oldHostMetrics_.viewWidth==e.viewWidth&&this.oldHostMetrics_.absoluteLeft==e.absoluteLeft||this.corner_.setAttribute("x",this.vScroll.position_.x),this.oldHostMetrics_&&this.oldHostMetrics_.viewHeight==e.viewHeight&&this.oldHostMetrics_.absoluteTop==e.absoluteTop||this.corner_.setAttribute("y",this.hScroll.position_.y),this.oldHostMetrics_=e}},Blockly.ScrollbarPair.prototype.set=function(e,o){var t={},n=e*this.hScroll.ratio_,r=o*this.vScroll.ratio_,i=this.vScroll.scrollViewSize_;t.x=this.getRatio_(n,this.hScroll.scrollViewSize_),t.y=this.getRatio_(r,i),this.workspace_.setMetrics(t),this.hScroll.setHandlePosition(n),this.vScroll.setHandlePosition(r)},Blockly.ScrollbarPair.prototype.getRatio_=function(e,o){var t=e/o;return isNaN(t)?0:t},Blockly.Scrollbar=function(e,o,t){this.workspace_=e,this.pair_=t||!1,this.horizontal_=o,this.oldHostMetrics_=null,this.createDom_(),this.position_=new goog.math.Coordinate(0,0),o?(this.svgBackground_.setAttribute("height",Blockly.Scrollbar.scrollbarThickness),this.svgHandle_.setAttribute("height",Blockly.Scrollbar.scrollbarThickness-5),this.svgHandle_.setAttribute("y",2.5),this.lengthAttribute_="width",this.positionAttribute_="x"):(this.svgBackground_.setAttribute("width",Blockly.Scrollbar.scrollbarThickness),this.svgHandle_.setAttribute("width",Blockly.Scrollbar.scrollbarThickness-5),this.svgHandle_.setAttribute("x",2.5),this.lengthAttribute_="height",this.positionAttribute_="y"),this.onMouseDownBarWrapper_=Blockly.bindEventWithChecks_(this.svgBackground_,"mousedown",this,this.onMouseDownBar_),this.onMouseDownHandleWrapper_=Blockly.bindEventWithChecks_(this.svgHandle_,"mousedown",this,this.onMouseDownHandle_)},Blockly.Scrollbar.prototype.scrollViewSize_=0,Blockly.Scrollbar.prototype.handleLength_=0,Blockly.Scrollbar.prototype.handlePosition_=0,Blockly.Scrollbar.prototype.isVisible_=!0,Blockly.Scrollbar.scrollbarThickness=15,goog.events.BrowserFeature.TOUCH_ENABLED&&(Blockly.Scrollbar.scrollbarThickness=25),Blockly.Scrollbar.metricsAreEquivalent_=function(e,o){return e&&o&&e.viewWidth==o.viewWidth&&e.viewHeight==o.viewHeight&&e.viewLeft==o.viewLeft&&e.viewTop==o.viewTop&&e.absoluteTop==o.absoluteTop&&e.absoluteLeft==o.absoluteLeft&&e.contentWidth==o.contentWidth&&e.contentHeight==o.contentHeight&&e.contentLeft==o.contentLeft&&e.contentTop==o.contentTop?!0:!1},Blockly.Scrollbar.prototype.dispose=function(){this.cleanUp_(),Blockly.unbindEvent_(this.onMouseDownBarWrapper_),this.onMouseDownBarWrapper_=null,Blockly.unbindEvent_(this.onMouseDownHandleWrapper_),this.onMouseDownHandleWrapper_=null,goog.dom.removeNode(this.svgGroup_),this.workspace_=this.svgHandle_=this.svgBackground_=this.svgGroup_=null},Blockly.Scrollbar.prototype.setHandleLength_=function(e){this.handleLength_=e,this.svgHandle_.setAttribute(this.lengthAttribute_,this.handleLength_)},Blockly.Scrollbar.prototype.setHandlePosition=function(e){this.handlePosition_=e,this.svgHandle_.setAttribute(this.positionAttribute_,this.handlePosition_)},Blockly.Scrollbar.prototype.setScrollViewSize_=function(e){this.scrollViewSize_=e,this.svgBackground_.setAttribute(this.lengthAttribute_,this.scrollViewSize_)},Blockly.Scrollbar.prototype.setPosition=function(e,o){this.position_.x=e,this.position_.y=o,this.svgGroup_.setAttribute("transform","translate("+this.position_.x+","+this.position_.y+")")},Blockly.Scrollbar.prototype.resize=function(e){(e||(e=this.workspace_.getMetrics()))&&(Blockly.Scrollbar.metricsAreEquivalent_(e,this.oldHostMetrics_)||(this.oldHostMetrics_=e,this.horizontal_?this.resizeHorizontal_(e):this.resizeVertical_(e),this.onScroll_()))},Blockly.Scrollbar.prototype.resizeHorizontal_=function(e){this.resizeViewHorizontal(e)},Blockly.Scrollbar.prototype.resizeViewHorizontal=function(e){var o=e.viewWidth-1;this.pair_&&(o-=Blockly.Scrollbar.scrollbarThickness),this.setScrollViewSize_(Math.max(0,o)),o=e.absoluteLeft+.5,this.pair_&&this.workspace_.RTL&&(o+=Blockly.Scrollbar.scrollbarThickness),this.setPosition(o,e.absoluteTop+e.viewHeight-Blockly.Scrollbar.scrollbarThickness-.5),this.resizeContentHorizontal(e)},Blockly.Scrollbar.prototype.resizeContentHorizontal=function(e){this.pair_||this.setVisible(this.scrollViewSize_<e.contentWidth),this.ratio_=this.scrollViewSize_/e.contentWidth,(-(1/0)==this.ratio_||1/0==this.ratio_||isNaN(this.ratio_))&&(this.ratio_=0),this.setHandleLength_(Math.max(0,e.viewWidth*this.ratio_)),this.setHandlePosition(this.constrainHandle_((e.viewLeft-e.contentLeft)*this.ratio_))},Blockly.Scrollbar.prototype.resizeVertical_=function(e){this.resizeViewVertical(e)},Blockly.Scrollbar.prototype.resizeViewVertical=function(e){var o=e.viewHeight-1;this.pair_&&(o-=Blockly.Scrollbar.scrollbarThickness),this.setScrollViewSize_(Math.max(0,o)),o=e.absoluteLeft+.5,this.workspace_.RTL||(o+=e.viewWidth-Blockly.Scrollbar.scrollbarThickness-1),this.setPosition(o,e.absoluteTop+.5),this.resizeContentVertical(e)},Blockly.Scrollbar.prototype.resizeContentVertical=function(e){this.pair_||this.setVisible(this.scrollViewSize_<e.contentHeight),this.ratio_=this.scrollViewSize_/e.contentHeight,(-(1/0)==this.ratio_||1/0==this.ratio_||isNaN(this.ratio_))&&(this.ratio_=0),this.setHandleLength_(Math.max(0,e.viewHeight*this.ratio_)),this.setHandlePosition(this.constrainHandle_((e.viewTop-e.contentTop)*this.ratio_))},Blockly.Scrollbar.prototype.createDom_=function(){this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyScrollbar"+(this.horizontal_?"Horizontal":"Vertical")},null),this.svgBackground_=Blockly.createSvgElement("rect",{"class":"blocklyScrollbarBackground"},this.svgGroup_);var e=Math.floor((Blockly.Scrollbar.scrollbarThickness-5)/2);this.svgHandle_=Blockly.createSvgElement("rect",{"class":"blocklyScrollbarHandle",rx:e,ry:e},this.svgGroup_),Blockly.Scrollbar.insertAfter_(this.svgGroup_,this.workspace_.getBubbleCanvas())},Blockly.Scrollbar.prototype.isVisible=function(){return this.isVisible_},Blockly.Scrollbar.prototype.setVisible=function(e){if(e!=this.isVisible()){if(this.pair_)throw"Unable to toggle visibility of paired scrollbars.";(this.isVisible_=e)?this.svgGroup_.setAttribute("display","block"):(this.workspace_.setMetrics({x:0,y:0}),this.svgGroup_.setAttribute("display","none"))}},Blockly.Scrollbar.prototype.onMouseDownBar_=function(e){if(this.workspace_.markFocused(),Blockly.Touch.clearTouchIdentifier(),this.cleanUp_(),Blockly.isRightButton(e))e.stopPropagation();else{var o=Blockly.mouseToSvg(e,this.workspace_.getParentSvg(),this.workspace_.getInverseScreenCTM()),o=this.horizontal_?o.x:o.y,t=Blockly.getSvgXY_(this.svgHandle_,this.workspace_),t=this.horizontal_?t.x:t.y,n=this.handlePosition_,r=.95*this.handleLength_;t>=o?n-=r:o>=t+this.handleLength_&&(n+=r),this.setHandlePosition(this.constrainHandle_(n)),this.onScroll_(),e.stopPropagation(),e.preventDefault()}},Blockly.Scrollbar.prototype.onMouseDownHandle_=function(e){this.workspace_.markFocused(),this.cleanUp_(),Blockly.isRightButton(e)?e.stopPropagation():(this.startDragHandle=this.handlePosition_,this.startDragMouse=this.horizontal_?e.clientX:e.clientY,Blockly.Scrollbar.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,this.onMouseUpHandle_),Blockly.Scrollbar.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.onMouseMoveHandle_),e.stopPropagation(),e.preventDefault())},Blockly.Scrollbar.prototype.onMouseMoveHandle_=function(e){this.setHandlePosition(this.constrainHandle_(this.startDragHandle+((this.horizontal_?e.clientX:e.clientY)-this.startDragMouse))),this.onScroll_()},Blockly.Scrollbar.prototype.onMouseUpHandle_=function(){Blockly.Touch.clearTouchIdentifier(),this.cleanUp_()},Blockly.Scrollbar.prototype.cleanUp_=function(){Blockly.hideChaff(!0),Blockly.Scrollbar.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.Scrollbar.onMouseUpWrapper_),Blockly.Scrollbar.onMouseUpWrapper_=null),Blockly.Scrollbar.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.Scrollbar.onMouseMoveWrapper_),Blockly.Scrollbar.onMouseMoveWrapper_=null)},Blockly.Scrollbar.prototype.constrainHandle_=function(e){return e=0>=e||isNaN(e)||this.scrollViewSize_<this.handleLength_?0:Math.min(e,this.scrollViewSize_-this.handleLength_)},Blockly.Scrollbar.prototype.onScroll_=function(){var e=this.handlePosition_/this.scrollViewSize_;isNaN(e)&&(e=0);var o={};this.horizontal_?o.x=e:o.y=e,this.workspace_.setMetrics(o)},Blockly.Scrollbar.prototype.set=function(e){this.setHandlePosition(this.constrainHandle_(e*this.ratio_)),this.onScroll_()},Blockly.Scrollbar.insertAfter_=function(e,o){var t=o.nextSibling,n=o.parentNode;if(!n)throw"Reference node has no parent.";t?n.insertBefore(e,t):n.appendChild(e)},Blockly.Trashcan=function(e){this.workspace_=e},Blockly.Trashcan.prototype.WIDTH_=47,Blockly.Trashcan.prototype.BODY_HEIGHT_=44,Blockly.Trashcan.prototype.LID_HEIGHT_=16,Blockly.Trashcan.prototype.MARGIN_BOTTOM_=20,Blockly.Trashcan.prototype.MARGIN_SIDE_=20,Blockly.Trashcan.prototype.MARGIN_HOTSPOT_=10,Blockly.Trashcan.prototype.SPRITE_LEFT_=0,Blockly.Trashcan.prototype.SPRITE_TOP_=32,Blockly.Trashcan.prototype.isOpen=!1,Blockly.Trashcan.prototype.svgGroup_=null,Blockly.Trashcan.prototype.svgLid_=null,Blockly.Trashcan.prototype.lidTask_=0,Blockly.Trashcan.prototype.lidOpen_=0,Blockly.Trashcan.prototype.left_=0,Blockly.Trashcan.prototype.top_=0,Blockly.Trashcan.prototype.createDom=function(){this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyTrash"},null);var e=String(Math.random()).substring(2),o=Blockly.createSvgElement("clipPath",{id:"blocklyTrashBodyClipPath"+e},this.svgGroup_);return Blockly.createSvgElement("rect",{width:this.WIDTH_,height:this.BODY_HEIGHT_,y:this.LID_HEIGHT_},o),Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,x:-this.SPRITE_LEFT_,height:Blockly.SPRITE.height,y:-this.SPRITE_TOP_,"clip-path":"url(#blocklyTrashBodyClipPath"+e+")"},this.svgGroup_).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",this.workspace_.options.pathToMedia+Blockly.SPRITE.url),o=Blockly.createSvgElement("clipPath",{id:"blocklyTrashLidClipPath"+e},this.svgGroup_),Blockly.createSvgElement("rect",{width:this.WIDTH_,height:this.LID_HEIGHT_},o),this.svgLid_=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,x:-this.SPRITE_LEFT_,height:Blockly.SPRITE.height,y:-this.SPRITE_TOP_,"clip-path":"url(#blocklyTrashLidClipPath"+e+")"},this.svgGroup_),this.svgLid_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",this.workspace_.options.pathToMedia+Blockly.SPRITE.url),Blockly.bindEventWithChecks_(this.svgGroup_,"mouseup",this,this.click),this.animateLid_(),this.svgGroup_},Blockly.Trashcan.prototype.init=function(e){return this.bottom_=this.MARGIN_BOTTOM_+e,this.setOpen_(!1),this.bottom_+this.BODY_HEIGHT_+this.LID_HEIGHT_},Blockly.Trashcan.prototype.dispose=function(){this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null),this.workspace_=this.svgLid_=null,goog.Timer.clear(this.lidTask_)},Blockly.Trashcan.prototype.position=function(){var e=this.workspace_.getMetrics();e&&(this.workspace_.RTL?(this.left_=this.MARGIN_SIDE_+Blockly.Scrollbar.scrollbarThickness,e.toolboxPosition==Blockly.TOOLBOX_AT_LEFT&&(this.left_+=e.flyoutWidth,this.workspace_.toolbox_&&(this.left_+=e.absoluteLeft))):(this.left_=e.viewWidth+e.absoluteLeft-this.WIDTH_-this.MARGIN_SIDE_-Blockly.Scrollbar.scrollbarThickness,e.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT&&(this.left_-=e.flyoutWidth)),this.top_=e.viewHeight+e.absoluteTop-(this.BODY_HEIGHT_+this.LID_HEIGHT_)-this.bottom_,e.toolboxPosition==Blockly.TOOLBOX_AT_BOTTOM&&(this.top_-=e.flyoutHeight),this.svgGroup_.setAttribute("transform","translate("+this.left_+","+this.top_+")"))},Blockly.Trashcan.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var e=this.svgGroup_.getBoundingClientRect();return new goog.math.Rect(e.left+this.SPRITE_LEFT_-this.MARGIN_HOTSPOT_,e.top+this.SPRITE_TOP_-this.MARGIN_HOTSPOT_,this.WIDTH_+2*this.MARGIN_HOTSPOT_,this.LID_HEIGHT_+this.BODY_HEIGHT_+2*this.MARGIN_HOTSPOT_)},Blockly.Trashcan.prototype.setOpen_=function(e){this.isOpen!=e&&(goog.Timer.clear(this.lidTask_),this.isOpen=e,this.animateLid_())},Blockly.Trashcan.prototype.animateLid_=function(){this.lidOpen_+=this.isOpen?.2:-.2,this.lidOpen_=goog.math.clamp(this.lidOpen_,0,1);var e=45*this.lidOpen_;this.svgLid_.setAttribute("transform","rotate("+(this.workspace_.RTL?-e:e)+","+(this.workspace_.RTL?4:this.WIDTH_-4)+","+(this.LID_HEIGHT_-2)+")"),e=goog.math.lerp(.4,.8,this.lidOpen_),this.svgGroup_.style.opacity=e,0<this.lidOpen_&&1>this.lidOpen_&&(this.lidTask_=goog.Timer.callOnce(this.animateLid_,20,this))},Blockly.Trashcan.prototype.close=function(){this.setOpen_(!1)},Blockly.Trashcan.prototype.click=function(){var e=this.workspace_.startScrollX-this.workspace_.scrollX,o=this.workspace_.startScrollY-this.workspace_.scrollY;Math.sqrt(e*e+o*o)>Blockly.DRAG_RADIUS||console.log("TODO: Inspect trash.")},Blockly.Xml={},Blockly.Xml.workspaceToDom=function(e,o){for(var t,n=goog.dom.createDom("xml"),r=e.getTopBlocks(!0),i=0;t=r[i];i++)n.appendChild(Blockly.Xml.blockToDomWithXY(t,o));return n},Blockly.Xml.blockToDomWithXY=function(e,o){var t;e.workspace.RTL&&(t=e.workspace.getWidth());var n=Blockly.Xml.blockToDom(e,o),r=e.getRelativeToSurfaceXY();return n.setAttribute("x",Math.round(e.workspace.RTL?t-r.x:r.x)),n.setAttribute("y",Math.round(r.y)),n},Blockly.Xml.blockToDom=function(e,o){var t=goog.dom.createDom(e.isShadow()?"shadow":"block");if(t.setAttribute("type",e.type),o||t.setAttribute("id",e.id),e.mutationToDom){var n=e.mutationToDom();n&&(n.hasChildNodes()||n.hasAttributes())&&t.appendChild(n)}for(var r,n=0;r=e.inputList[n];n++)for(var i,s=0;i=r.fieldRow[s];s++)if(i.name&&i.EDITABLE){var l=goog.dom.createDom("field",null,i.getValue());l.setAttribute("name",i.name),t.appendChild(l)}for((n=e.getCommentText())&&(n=goog.dom.createDom("comment",null,n),"object"==typeof e.comment&&(n.setAttribute("pinned",e.comment.isVisible()),r=e.comment.getBubbleSize(),n.setAttribute("h",r.height),n.setAttribute("w",r.width)),t.appendChild(n)),e.data&&(n=goog.dom.createDom("data",null,e.data),t.appendChild(n)),n=0;r=e.inputList[n];n++){var g;i=!0,r.type!=Blockly.DUMMY_INPUT&&(l=r.connection.targetBlock(),r.type==Blockly.INPUT_VALUE?g=goog.dom.createDom("value"):r.type==Blockly.NEXT_STATEMENT&&(g=goog.dom.createDom("statement")),s=r.connection.getShadowDom(),!s||l&&l.isShadow()||g.appendChild(Blockly.Xml.cloneShadow_(s)),l&&(g.appendChild(Blockly.Xml.blockToDom(l,o)),i=!1),g.setAttribute("name",r.name),i||t.appendChild(g))}return e.inputsInlineDefault!=e.inputsInline&&t.setAttribute("inline",e.inputsInline),e.isCollapsed()&&t.setAttribute("collapsed",!0),e.disabled&&t.setAttribute("disabled",!0),e.isDeletable()||e.isShadow()||t.setAttribute("deletable",!1),e.isMovable()||e.isShadow()||t.setAttribute("movable",!1),e.isEditable()||t.setAttribute("editable",!1),(n=e.getNextBlock())&&(g=goog.dom.createDom("next",null,Blockly.Xml.blockToDom(n,o)),t.appendChild(g)),s=e.nextConnection&&e.nextConnection.getShadowDom(),!s||n&&n.isShadow()||g.appendChild(Blockly.Xml.cloneShadow_(s)),t},Blockly.Xml.cloneShadow_=function(e){for(var o,t=e=e.cloneNode(!0);t;)if(t.firstChild)t=t.firstChild;else{for(;t&&!t.nextSibling;)o=t,t=t.parentNode,3==o.nodeType&&""==o.data.trim()&&t.firstChild!=o&&goog.dom.removeNode(o);t&&(o=t,t=t.nextSibling,3==o.nodeType&&""==o.data.trim()&&goog.dom.removeNode(o))}return e},Blockly.Xml.domToText=function(e){return(new XMLSerializer).serializeToString(e)},Blockly.Xml.domToPrettyText=function(e){e=Blockly.Xml.domToText(e).split("<");for(var o="",t=1;t<e.length;t++){var n=e[t];"/"==n[0]&&(o=o.substring(2)),e[t]=o+"<"+n,"/"!=n[0]&&"/>"!=n.slice(-2)&&(o+="  ")}return e=e.join("\n"),e=e.replace(/(<(\w+)\b[^>]*>[^\n]*)\n *<\/\2>/g,"$1</$2>"),e.replace(/^\n/,"")},Blockly.Xml.textToDom=function(e){return(e=(new DOMParser).parseFromString(e,"text/xml"))&&e.firstChild&&"xml"==e.firstChild.nodeName.toLowerCase()&&e.firstChild===e.lastChild||goog.asserts.fail("Blockly.Xml.textToDom did not obtain a valid XML tree."),e.firstChild},Blockly.Xml.domToWorkspace=function(e,o){if(e instanceof Blockly.Workspace){var t=e;e=o,o=t,console.warn("Deprecated call to Blockly.Xml.domToWorkspace, swap the arguments.")}var n;o.RTL&&(n=o.getWidth()),Blockly.Field.startCache();var t=e.childNodes.length,r=Blockly.Events.getGroup();r||Blockly.Events.setGroup(!0),o.setResizesEnabled&&o.setResizesEnabled(!1);for(var i=0;t>i;i++){var s=e.childNodes[i],l=s.nodeName.toLowerCase();if("block"==l||"shadow"==l&&!Blockly.Events.recordUndo){var l=Blockly.Xml.domToBlock(s,o),g=parseInt(s.getAttribute("x"),10),s=parseInt(s.getAttribute("y"),10);isNaN(g)||isNaN(s)||l.moveBy(o.RTL?n-g:g,s)}else"shadow"==l&&goog.asserts.fail("Shadow block cannot be a top-level block.")}r||Blockly.Events.setGroup(!1),Blockly.Field.stopCache(),o.updateVariableList(!1),o.setResizesEnabled&&o.setResizesEnabled(!0)},Blockly.Xml.domToBlock=function(e,o){if(e instanceof Blockly.Workspace){var t=e;e=o,o=t,console.warn("Deprecated call to Blockly.Xml.domToBlock, swap the arguments.")}Blockly.Events.disable();try{var n=Blockly.Xml.domToBlockHeadless_(e,o);if(o.rendered){n.setConnectionsHidden(!0);for(var r=n.getDescendants(),i=r.length-1;i>=0;i--)r[i].initSvg();for(i=r.length-1;i>=0;i--)r[i].render(!1);setTimeout(function(){n.workspace&&n.setConnectionsHidden(!1)},1),n.updateDisabled(),o.resizeContents()}}finally{Blockly.Events.enable()}return Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Create(n)),n},Blockly.Xml.domToBlockHeadless_=function(e,o){var t=null,n=e.getAttribute("type");goog.asserts.assert(n,"Block type unspecified: %s",e.outerHTML);for(var r,i=e.getAttribute("id"),t=o.newBlock(n,i),s=null,i=0;r=e.childNodes[i];i++)if(3!=r.nodeType){for(var l,g=s=null,a=0;l=r.childNodes[a];a++)1==l.nodeType&&("block"==l.nodeName.toLowerCase()?s=l:"shadow"==l.nodeName.toLowerCase()&&(g=l));switch(!s&&g&&(s=g),a=r.getAttribute("name"),r.nodeName.toLowerCase()){case"mutation":t.domToMutation&&(t.domToMutation(r),t.initSvg&&t.initSvg());break;case"comment":t.setCommentText(r.textContent);var c=r.getAttribute("pinned");c&&!t.isInFlyout&&setTimeout(function(){t.comment&&t.comment.setVisible&&t.comment.setVisible("true"==c)},1),s=parseInt(r.getAttribute("w"),10),r=parseInt(r.getAttribute("h"),10),!isNaN(s)&&!isNaN(r)&&t.comment&&t.comment.setVisible&&t.comment.setBubbleSize(s,r);break;case"data":t.data=r.textContent;break;case"title":case"field":if(s=t.getField(a),!s){console.warn("Ignoring non-existent field "+a+" in block "+n);break}s.setValue(r.textContent);break;case"value":case"statement":if(r=t.getInput(a),!r){console.warn("Ignoring non-existent input "+a+" in block "+n);break}g&&r.connection.setShadowDom(g),s&&(s=Blockly.Xml.domToBlockHeadless_(s,o),s.outputConnection?r.connection.connect(s.outputConnection):s.previousConnection?r.connection.connect(s.previousConnection):goog.asserts.fail("Child block does not have output or previous statement."));break;case"next":g&&t.nextConnection&&t.nextConnection.setShadowDom(g),s&&(goog.asserts.assert(t.nextConnection,"Next statement does not exist."),goog.asserts.assert(!t.nextConnection.isConnected(),"Next statement is already connected."),s=Blockly.Xml.domToBlockHeadless_(s,o),goog.asserts.assert(s.previousConnection,"Next block does not have previous statement."),t.nextConnection.connect(s.previousConnection));break;default:console.warn("Ignoring unknown tag: "+r.nodeName)}}if((i=e.getAttribute("inline"))&&t.setInputsInline("true"==i),(i=e.getAttribute("disabled"))&&t.setDisabled("true"==i),(i=e.getAttribute("deletable"))&&t.setDeletable("true"==i),(i=e.getAttribute("movable"))&&t.setMovable("true"==i),(i=e.getAttribute("editable"))&&t.setEditable("true"==i),(i=e.getAttribute("collapsed"))&&t.setCollapsed("true"==i),"shadow"==e.nodeName.toLowerCase()){for(n=t.getChildren(),i=0;r=n[i];i++)goog.asserts.assert(r.isShadow(),"Shadow block not allowed non-shadow child.");goog.asserts.assert(0==t.getVars().length,"Shadow blocks cannot have variable fields."),t.setShadow(!0)}return t},Blockly.Xml.deleteNext=function(e){for(var o,t=0;o=e.childNodes[t];t++)if("next"==o.nodeName.toLowerCase()){e.removeChild(o);break}},goog.global.Blockly||(goog.global.Blockly={}),goog.global.Blockly.Xml||(goog.global.Blockly.Xml={}),goog.global.Blockly.Xml.domToText=Blockly.Xml.domToText,goog.global.Blockly.Xml.domToWorkspace=Blockly.Xml.domToWorkspace,goog.global.Blockly.Xml.textToDom=Blockly.Xml.textToDom,goog.global.Blockly.Xml.workspaceToDom=Blockly.Xml.workspaceToDom,Blockly.ZoomControls=function(e){this.workspace_=e},Blockly.ZoomControls.prototype.WIDTH_=32,Blockly.ZoomControls.prototype.HEIGHT_=110,Blockly.ZoomControls.prototype.MARGIN_BOTTOM_=20,Blockly.ZoomControls.prototype.MARGIN_SIDE_=20,Blockly.ZoomControls.prototype.svgGroup_=null,Blockly.ZoomControls.prototype.left_=0,Blockly.ZoomControls.prototype.top_=0,Blockly.ZoomControls.prototype.createDom=function(){var e=this.workspace_;this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyZoom"},null);var o=String(Math.random()).substring(2),t=Blockly.createSvgElement("clipPath",{id:"blocklyZoomoutClipPath"+o},this.svgGroup_);Blockly.createSvgElement("rect",{width:32,height:32,y:77},t);var n=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,x:-64,y:-15,"clip-path":"url(#blocklyZoomoutClipPath"+o+")"},this.svgGroup_);n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.options.pathToMedia+Blockly.SPRITE.url),t=Blockly.createSvgElement("clipPath",{id:"blocklyZoominClipPath"+o},this.svgGroup_),Blockly.createSvgElement("rect",{width:32,height:32,y:43},t);var r=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,x:-32,y:-49,"clip-path":"url(#blocklyZoominClipPath"+o+")"},this.svgGroup_);return r.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.options.pathToMedia+Blockly.SPRITE.url),t=Blockly.createSvgElement("clipPath",{id:"blocklyZoomresetClipPath"+o},this.svgGroup_),Blockly.createSvgElement("rect",{width:32,height:32},t),o=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,y:-92,"clip-path":"url(#blocklyZoomresetClipPath"+o+")"},this.svgGroup_),o.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.options.pathToMedia+Blockly.SPRITE.url),Blockly.bindEventWithChecks_(o,"mousedown",null,function(o){e.markFocused(),e.setScale(e.options.zoomOptions.startScale),e.scrollCenter(),Blockly.Touch.clearTouchIdentifier(),o.stopPropagation(),o.preventDefault()}),Blockly.bindEventWithChecks_(r,"mousedown",null,function(o){e.markFocused(),e.zoomCenter(1),Blockly.Touch.clearTouchIdentifier(),o.stopPropagation(),o.preventDefault()}),Blockly.bindEventWithChecks_(n,"mousedown",null,function(o){e.markFocused(),e.zoomCenter(-1),Blockly.Touch.clearTouchIdentifier(),o.stopPropagation(),o.preventDefault()}),this.svgGroup_},Blockly.ZoomControls.prototype.init=function(e){return this.bottom_=this.MARGIN_BOTTOM_+e,this.bottom_+this.HEIGHT_},Blockly.ZoomControls.prototype.dispose=function(){this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null),this.workspace_=null},Blockly.ZoomControls.prototype.position=function(){var e=this.workspace_.getMetrics();e&&(this.workspace_.RTL?(this.left_=this.MARGIN_SIDE_+Blockly.Scrollbar.scrollbarThickness,e.toolboxPosition==Blockly.TOOLBOX_AT_LEFT&&(this.left_+=e.flyoutWidth,this.workspace_.toolbox_&&(this.left_+=e.absoluteLeft))):(this.left_=e.viewWidth+e.absoluteLeft-this.WIDTH_-this.MARGIN_SIDE_-Blockly.Scrollbar.scrollbarThickness,e.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT&&(this.left_-=e.flyoutWidth)),this.top_=e.viewHeight+e.absoluteTop-this.HEIGHT_-this.bottom_,e.toolboxPosition==Blockly.TOOLBOX_AT_BOTTOM&&(this.top_-=e.flyoutHeight),this.svgGroup_.setAttribute("transform","translate("+this.left_+","+this.top_+")"))},Blockly.WorkspaceSvg=function(e){Blockly.WorkspaceSvg.superClass_.constructor.call(this,e),this.getMetrics=e.getMetrics||Blockly.WorkspaceSvg.getTopLevelWorkspaceMetrics_,this.setMetrics=e.setMetrics||Blockly.WorkspaceSvg.setTopLevelWorkspaceMetrics_,Blockly.ConnectionDB.init(this),this.SOUNDS_=Object.create(null),this.highlightedBlocks_=[]},goog.inherits(Blockly.WorkspaceSvg,Blockly.Workspace),Blockly.WorkspaceSvg.prototype.resizeHandlerWrapper_=null,Blockly.WorkspaceSvg.prototype.rendered=!0,Blockly.WorkspaceSvg.prototype.isFlyout=!1,Blockly.WorkspaceSvg.prototype.isMutator=!1,Blockly.WorkspaceSvg.prototype.dragMode_=Blockly.DRAG_NONE,Blockly.WorkspaceSvg.prototype.resizesEnabled_=!0,Blockly.WorkspaceSvg.prototype.scrollX=0,Blockly.WorkspaceSvg.prototype.scrollY=0,Blockly.WorkspaceSvg.prototype.startScrollX=0,Blockly.WorkspaceSvg.prototype.startScrollY=0,Blockly.WorkspaceSvg.prototype.dragDeltaXY_=null,Blockly.WorkspaceSvg.prototype.scale=1,Blockly.WorkspaceSvg.prototype.trashcan=null,Blockly.WorkspaceSvg.prototype.scrollbar=null,Blockly.WorkspaceSvg.prototype.lastSound_=null,Blockly.WorkspaceSvg.prototype.lastRecordedPageScroll_=null,Blockly.WorkspaceSvg.prototype.inverseScreenCTM_=null,Blockly.WorkspaceSvg.prototype.getInverseScreenCTM=function(){return this.inverseScreenCTM_},Blockly.WorkspaceSvg.prototype.updateInverseScreenCTM=function(){var e=this.getParentSvg().getScreenCTM();e&&(this.inverseScreenCTM_=e.inverse())},Blockly.WorkspaceSvg.prototype.setResizeHandlerWrapper=function(e){this.resizeHandlerWrapper_=e},Blockly.WorkspaceSvg.prototype.createDom=function(e){if(this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyWorkspace"},null),e&&(this.svgBackground_=Blockly.createSvgElement("rect",{height:"100%",width:"100%","class":e},this.svgGroup_),"blocklyMainBackground"==e&&(this.svgBackground_.style.fill="url(#"+this.options.gridPattern.id+")")),this.svgBlockCanvas_=Blockly.createSvgElement("g",{"class":"blocklyBlockCanvas"},this.svgGroup_,this),this.svgBubbleCanvas_=Blockly.createSvgElement("g",{"class":"blocklyBubbleCanvas"},this.svgGroup_,this),e=Blockly.Scrollbar.scrollbarThickness,this.options.hasTrashcan&&(e=this.addTrashcan_(e)),this.options.zoomOptions&&this.options.zoomOptions.controls&&(e=this.addZoomControls_(e)),!this.isFlyout){Blockly.bindEventWithChecks_(this.svgGroup_,"mousedown",this,this.onMouseDown_);var o=this;Blockly.bindEvent_(this.svgGroup_,"touchstart",null,function(e){Blockly.longStart_(e,o)}),this.options.zoomOptions&&this.options.zoomOptions.wheel&&Blockly.bindEventWithChecks_(this.svgGroup_,"wheel",this,this.onMouseWheel_)}return this.options.hasCategories?this.toolbox_=new Blockly.Toolbox(this):this.options.languageTree&&this.addFlyout_(),this.updateGridPattern_(),this.recordDeleteAreas(),this.svgGroup_},Blockly.WorkspaceSvg.prototype.dispose=function(){this.rendered=!1,Blockly.WorkspaceSvg.superClass_.dispose.call(this),this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null),this.svgBubbleCanvas_=this.svgBlockCanvas_=null,this.toolbox_&&(this.toolbox_.dispose(),this.toolbox_=null),this.flyout_&&(this.flyout_.dispose(),this.flyout_=null),this.trashcan&&(this.trashcan.dispose(),this.trashcan=null),this.scrollbar&&(this.scrollbar.dispose(),this.scrollbar=null),this.zoomControls_&&(this.zoomControls_.dispose(),this.zoomControls_=null),this.options.parentWorkspace||goog.dom.removeNode(this.getParentSvg().parentNode),this.resizeHandlerWrapper_&&(Blockly.unbindEvent_(this.resizeHandlerWrapper_),this.resizeHandlerWrapper_=null)},Blockly.WorkspaceSvg.prototype.newBlock=function(e,o){return new Blockly.BlockSvg(this,e,o)},Blockly.WorkspaceSvg.prototype.addTrashcan_=function(e){this.trashcan=new Blockly.Trashcan(this);var o=this.trashcan.createDom();return this.svgGroup_.insertBefore(o,this.svgBlockCanvas_),this.trashcan.init(e)},Blockly.WorkspaceSvg.prototype.addZoomControls_=function(e){this.zoomControls_=new Blockly.ZoomControls(this);var o=this.zoomControls_.createDom();return this.svgGroup_.appendChild(o),this.zoomControls_.init(e)},Blockly.WorkspaceSvg.prototype.addFlyout_=function(){this.flyout_=new Blockly.Flyout({disabledPatternId:this.options.disabledPatternId,parentWorkspace:this,RTL:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,toolboxPosition:this.options.toolboxPosition}),this.flyout_.autoClose=!1;var e=this.flyout_.createDom();this.svgGroup_.insertBefore(e,this.svgBlockCanvas_)},Blockly.WorkspaceSvg.prototype.updateScreenCalculations_=function(){this.updateInverseScreenCTM(),this.recordDeleteAreas()},Blockly.WorkspaceSvg.prototype.resizeContents=function(){this.resizesEnabled_&&this.rendered&&(this.scrollbar&&this.scrollbar.resize(),this.updateInverseScreenCTM())},Blockly.WorkspaceSvg.prototype.resize=function(){this.toolbox_&&this.toolbox_.position(),this.flyout_&&this.flyout_.position(),this.trashcan&&this.trashcan.position(),this.zoomControls_&&this.zoomControls_.position(),this.scrollbar&&this.scrollbar.resize(),this.updateScreenCalculations_()},Blockly.WorkspaceSvg.prototype.updateScreenCalculationsIfScrolled=function(){var e=goog.dom.getDocumentScroll();goog.math.Coordinate.equals(this.lastRecordedPageScroll_,e)||(this.lastRecordedPageScroll_=e,this.updateScreenCalculations_())},Blockly.WorkspaceSvg.prototype.getCanvas=function(){return this.svgBlockCanvas_},Blockly.WorkspaceSvg.prototype.getBubbleCanvas=function(){return this.svgBubbleCanvas_},Blockly.WorkspaceSvg.prototype.getParentSvg=function(){if(this.cachedParentSvg_)return this.cachedParentSvg_;for(var e=this.svgGroup_;e;){if("svg"==e.tagName)return this.cachedParentSvg_=e;e=e.parentNode}return null},Blockly.WorkspaceSvg.prototype.translate=function(e,o){var t="translate("+e+","+o+") scale("+this.scale+")";this.svgBlockCanvas_.setAttribute("transform",t),this.svgBubbleCanvas_.setAttribute("transform",t)},Blockly.WorkspaceSvg.prototype.getWidth=function(){var e=this.getMetrics();return e?e.viewWidth/this.scale:0},Blockly.WorkspaceSvg.prototype.setVisible=function(e){this.getParentSvg().style.display=e?"block":"none",this.toolbox_&&(this.toolbox_.HtmlDiv.style.display=e?"block":"none"),e?(this.render(),this.toolbox_&&this.toolbox_.position()):Blockly.hideChaff(!0)},Blockly.WorkspaceSvg.prototype.render=function(){for(var e=this.getAllBlocks(),o=e.length-1;o>=0;o--)e[o].render(!1)},Blockly.WorkspaceSvg.prototype.traceOn=function(){console.warn("Deprecated call to traceOn, delete this.")},Blockly.WorkspaceSvg.prototype.highlightBlock=function(e,o){if(void 0===o){for(var t,n=0;t=this.highlightedBlocks_[n];n++)t.setHighlighted(!1);this.highlightedBlocks_.length=0}(t=e?this.getBlockById(e):null)&&((n=void 0===o||o)?-1==this.highlightedBlocks_.indexOf(t)&&this.highlightedBlocks_.push(t):goog.array.remove(this.highlightedBlocks_,t),
 t.setHighlighted(n))},Blockly.WorkspaceSvg.prototype.paste=function(e){if(this.rendered&&!(e.getElementsByTagName("block").length>=this.remainingCapacity())){Blockly.terminateDrag_(),Blockly.Events.disable();try{var o=Blockly.Xml.domToBlock(e,this),t=parseInt(e.getAttribute("x"),10),n=parseInt(e.getAttribute("y"),10);if(!isNaN(t)&&!isNaN(n)){this.RTL&&(t=-t);do{e=!1;for(var r,i=this.getAllBlocks(),s=0;r=i[s];s++){var l=r.getRelativeToSurfaceXY();if(1>=Math.abs(t-l.x)&&1>=Math.abs(n-l.y)){e=!0;break}}if(!e)for(var g,a=o.getConnections_(!1),s=0;g=a[s];s++)if(g.closest(Blockly.SNAP_RADIUS,new goog.math.Coordinate(t,n)).connection){e=!0;break}e&&(t=this.RTL?t-Blockly.SNAP_RADIUS:t+Blockly.SNAP_RADIUS,n+=2*Blockly.SNAP_RADIUS)}while(e);o.moveBy(t,n)}}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!o.isShadow()&&Blockly.Events.fire(new Blockly.Events.Create(o)),o.select()}},Blockly.WorkspaceSvg.prototype.createVariable=function(e){Blockly.WorkspaceSvg.superClass_.createVariable.call(this,e),this.toolbox_&&this.toolbox_.flyout_&&!Blockly.Flyout.startFlyout_&&this.toolbox_.refreshSelection()},Blockly.WorkspaceSvg.prototype.recordDeleteAreas=function(){this.deleteAreaTrash_=this.trashcan?this.trashcan.getClientRect():null,this.deleteAreaToolbox_=this.flyout_?this.flyout_.getClientRect():this.toolbox_?this.toolbox_.getClientRect():null},Blockly.WorkspaceSvg.prototype.isDeleteArea=function(e){if(e=new goog.math.Coordinate(e.clientX,e.clientY),this.deleteAreaTrash_){if(this.deleteAreaTrash_.contains(e))return this.trashcan.setOpen_(!0),Blockly.Css.setCursor(Blockly.Css.Cursor.DELETE),!0;this.trashcan.setOpen_(!1)}return this.deleteAreaToolbox_&&this.deleteAreaToolbox_.contains(e)?(Blockly.Css.setCursor(Blockly.Css.Cursor.DELETE),!0):(Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED),!1)},Blockly.WorkspaceSvg.prototype.onMouseDown_=function(e){this.markFocused(),Blockly.isTargetInput_(e)?Blockly.Touch.clearTouchIdentifier():(Blockly.terminateDrag_(),Blockly.hideChaff(),e.target&&e.target.nodeName&&("svg"==e.target.nodeName.toLowerCase()||e.target==this.svgBackground_)&&Blockly.selected&&!this.options.readOnly&&Blockly.selected.unselect(),Blockly.isRightButton(e)?(this.showContextMenu_(e),Blockly.Touch.clearTouchIdentifier()):this.scrollbar?(this.dragMode_=Blockly.DRAG_BEGIN,this.startDragMouseX=e.clientX,this.startDragMouseY=e.clientY,this.startDragMetrics=this.getMetrics(),this.startScrollX=this.scrollX,this.startScrollY=this.scrollY,"mouseup"in Blockly.Touch.TOUCH_MAP&&(Blockly.Touch.onTouchUpWrapper_=Blockly.Touch.onTouchUpWrapper_||[],Blockly.Touch.onTouchUpWrapper_=Blockly.Touch.onTouchUpWrapper_.concat(Blockly.bindEventWithChecks_(document,"mouseup",null,Blockly.onMouseUp_))),Blockly.onMouseMoveWrapper_=Blockly.onMouseMoveWrapper_||[],Blockly.onMouseMoveWrapper_=Blockly.onMouseMoveWrapper_.concat(Blockly.bindEventWithChecks_(document,"mousemove",null,Blockly.onMouseMove_))):Blockly.Touch.clearTouchIdentifier(),e.stopPropagation(),e.preventDefault())},Blockly.WorkspaceSvg.prototype.startDrag=function(e,o){var t=Blockly.mouseToSvg(e,this.getParentSvg(),this.getInverseScreenCTM());t.x/=this.scale,t.y/=this.scale,this.dragDeltaXY_=goog.math.Coordinate.difference(o,t)},Blockly.WorkspaceSvg.prototype.moveDrag=function(e){return e=Blockly.mouseToSvg(e,this.getParentSvg(),this.getInverseScreenCTM()),e.x/=this.scale,e.y/=this.scale,goog.math.Coordinate.sum(this.dragDeltaXY_,e)},Blockly.WorkspaceSvg.prototype.isDragging=function(){return Blockly.dragMode_==Blockly.DRAG_FREE||Blockly.Flyout.startFlyout_&&Blockly.Flyout.startFlyout_.dragMode_==Blockly.DRAG_FREE||this.dragMode_==Blockly.DRAG_FREE},Blockly.WorkspaceSvg.prototype.onMouseWheel_=function(e){Blockly.terminateDrag_();var o=0<e.deltaY?-1:1,t=Blockly.mouseToSvg(e,this.getParentSvg(),this.getInverseScreenCTM());this.zoom(t.x,t.y,o),e.preventDefault()},Blockly.WorkspaceSvg.prototype.getBlocksBoundingBox=function(){var e=this.getTopBlocks(!1);if(!e.length)return{x:0,y:0,width:0,height:0};for(var o=e[0].getBoundingRectangle(),t=1;t<e.length;t++){var n=e[t].getBoundingRectangle();n.topLeft.x<o.topLeft.x&&(o.topLeft.x=n.topLeft.x),n.bottomRight.x>o.bottomRight.x&&(o.bottomRight.x=n.bottomRight.x),n.topLeft.y<o.topLeft.y&&(o.topLeft.y=n.topLeft.y),n.bottomRight.y>o.bottomRight.y&&(o.bottomRight.y=n.bottomRight.y)}return{x:o.topLeft.x,y:o.topLeft.y,width:o.bottomRight.x-o.topLeft.x,height:o.bottomRight.y-o.topLeft.y}},Blockly.WorkspaceSvg.prototype.cleanUp=function(){Blockly.Events.setGroup(!0);for(var e,o=this.getTopBlocks(!0),t=0,n=0;e=o[n];n++){var r=e.getRelativeToSurfaceXY();e.moveBy(-r.x,t-r.y),e.snapToGrid(),t=e.getRelativeToSurfaceXY().y+e.getHeightWidth().height+Blockly.BlockSvg.MIN_BLOCK_Y}Blockly.Events.setGroup(!1),this.resizeContents()},Blockly.WorkspaceSvg.prototype.showContextMenu_=function(e){function o(e){if(e.isDeletable())u=u.concat(e.getDescendants());else{e=e.getChildren();for(var t=0;t<e.length;t++)o(e[t])}}function t(){Blockly.Events.setGroup(i);var e=u.shift();e&&(e.workspace?(e.dispose(!1,!0),setTimeout(t,10)):t()),Blockly.Events.setGroup(!1)}if(!this.options.readOnly&&!this.isFlyout){var n=[],r=this.getTopBlocks(!0),i=Blockly.genUid(),s={};if(s.text=Blockly.Msg.UNDO,s.enabled=0<this.undoStack_.length,s.callback=this.undo.bind(this,!1),n.push(s),s={},s.text=Blockly.Msg.REDO,s.enabled=0<this.redoStack_.length,s.callback=this.undo.bind(this,!0),n.push(s),this.scrollbar&&(s={},s.text=Blockly.Msg.CLEAN_UP,s.enabled=1<r.length,s.callback=this.cleanUp.bind(this),n.push(s)),this.options.collapse){for(var l=s=!1,g=0;g<r.length;g++)for(var a=r[g];a;)a.isCollapsed()?s=!0:l=!0,a=a.getNextBlock();var c=function(e){for(var o=0,t=0;t<r.length;t++)for(var n=r[t];n;)setTimeout(n.setCollapsed.bind(n,e),o),n=n.getNextBlock(),o+=10},l={enabled:l};l.text=Blockly.Msg.COLLAPSE_ALL,l.callback=function(){c(!0)},n.push(l),s={enabled:s},s.text=Blockly.Msg.EXPAND_ALL,s.callback=function(){c(!1)},n.push(s)}for(var u=[],g=0;g<r.length;g++)o(r[g]);s={text:1==u.length?Blockly.Msg.DELETE_BLOCK:Blockly.Msg.DELETE_X_BLOCKS.replace("%1",String(u.length)),enabled:0<u.length,callback:function(){2>u.length?t():Blockly.confirm(Blockly.Msg.DELETE_ALL_BLOCKS.replace("%1",u.length),function(e){e&&t()})}},n.push(s),Blockly.ContextMenu.show(e,n,this.RTL)}},Blockly.WorkspaceSvg.prototype.loadAudio_=function(e,o){if(e.length){try{var t=new window.Audio}catch(n){return}for(var r,i=0;i<e.length;i++){var s=e[i],l=s.match(/\.(\w+)$/);if(l&&t.canPlayType("audio/"+l[1])){r=new window.Audio(s);break}}r&&r.play&&(this.SOUNDS_[o]=r)}},Blockly.WorkspaceSvg.prototype.preloadAudio_=function(){for(var e in this.SOUNDS_){var o=this.SOUNDS_[e];if(o.volume=.01,o.play(),o.pause(),goog.userAgent.IPAD||goog.userAgent.IPHONE)break}},Blockly.WorkspaceSvg.prototype.playAudio=function(e,o){var t=this.SOUNDS_[e];if(t){var n=new Date;n-this.lastSound_<Blockly.SOUND_LIMIT||(this.lastSound_=n,t=goog.userAgent.DOCUMENT_MODE&&9===goog.userAgent.DOCUMENT_MODE||goog.userAgent.IPAD||goog.userAgent.ANDROID?t:t.cloneNode(),t.volume=void 0===o?1:o,t.play())}else this.options.parentWorkspace&&this.options.parentWorkspace.playAudio(e,o)},Blockly.WorkspaceSvg.prototype.updateToolbox=function(e){if(e=Blockly.Options.parseToolboxTree(e)){if(!this.options.languageTree)throw"Existing toolbox is null.  Can't create new toolbox.";if(e.getElementsByTagName("category").length){if(!this.toolbox_)throw"Existing toolbox has no categories.  Can't change mode.";this.options.languageTree=e,this.toolbox_.populate_(e),this.toolbox_.addColour_()}else{if(!this.flyout_)throw"Existing toolbox has categories.  Can't change mode.";this.options.languageTree=e,this.flyout_.show(e.childNodes)}}else if(this.options.languageTree)throw"Can't nullify an existing toolbox."},Blockly.WorkspaceSvg.prototype.markFocused=function(){this.options.parentWorkspace?this.options.parentWorkspace.markFocused():Blockly.mainWorkspace=this},Blockly.WorkspaceSvg.prototype.zoom=function(e,o,t){var n=this.options.zoomOptions.scaleSpeed,r=this.getMetrics(),i=this.getParentSvg().createSVGPoint();i.x=e,i.y=o,i=i.matrixTransform(this.getCanvas().getCTM().inverse()),e=i.x,o=i.y,i=this.getCanvas(),n=1==t?n:1/n,t=this.scale*n,t>this.options.zoomOptions.maxScale?n=this.options.zoomOptions.maxScale/this.scale:t<this.options.zoomOptions.minScale&&(n=this.options.zoomOptions.minScale/this.scale),this.scale!=t&&(this.scrollbar&&(e=i.getCTM().translate(e*(1-n),o*(1-n)).scale(n),this.scrollX=e.e-r.absoluteLeft,this.scrollY=e.f-r.absoluteTop),this.setScale(t))},Blockly.WorkspaceSvg.prototype.zoomCenter=function(e){var o=this.getMetrics();this.zoom(o.viewWidth/2,o.viewHeight/2,e)},Blockly.WorkspaceSvg.prototype.zoomToFit=function(){var e=this.getMetrics(),o=this.getBlocksBoundingBox(),t=o.width,o=o.height;if(t){var n=e.viewWidth,r=e.viewHeight;this.flyout_&&(n-=this.flyout_.width_),this.scrollbar||(t+=e.contentLeft,o+=e.contentTop),this.setScale(Math.min(n/t,r/o)),this.scrollCenter()}},Blockly.WorkspaceSvg.prototype.scrollCenter=function(){if(this.scrollbar){var e=this.getMetrics(),o=(e.contentWidth-e.viewWidth)/2;this.flyout_&&(o-=this.flyout_.width_/2),this.scrollbar.set(o,(e.contentHeight-e.viewHeight)/2)}},Blockly.WorkspaceSvg.prototype.setScale=function(e){this.options.zoomOptions.maxScale&&e>this.options.zoomOptions.maxScale?e=this.options.zoomOptions.maxScale:this.options.zoomOptions.minScale&&e<this.options.zoomOptions.minScale&&(e=this.options.zoomOptions.minScale),this.scale=e,this.updateGridPattern_(),this.scrollbar?this.scrollbar.resize():this.translate(this.scrollX,this.scrollY),Blockly.hideChaff(!1),this.flyout_&&this.flyout_.reflow()},Blockly.WorkspaceSvg.prototype.updateGridPattern_=function(){if(this.options.gridPattern){var e=this.options.gridOptions.spacing*this.scale||100;this.options.gridPattern.setAttribute("width",e),this.options.gridPattern.setAttribute("height",e);var e=Math.floor(this.options.gridOptions.spacing/2)+.5,o=e-this.options.gridOptions.length/2,t=e+this.options.gridOptions.length/2,n=this.options.gridPattern.firstChild,r=n&&n.nextSibling,e=e*this.scale,o=o*this.scale,t=t*this.scale;n&&(n.setAttribute("stroke-width",this.scale),n.setAttribute("x1",o),n.setAttribute("y1",e),n.setAttribute("x2",t),n.setAttribute("y2",e)),r&&(r.setAttribute("stroke-width",this.scale),r.setAttribute("x1",e),r.setAttribute("y1",o),r.setAttribute("x2",e),r.setAttribute("y2",t))}},Blockly.WorkspaceSvg.getTopLevelWorkspaceMetrics_=function(){var e=Blockly.svgSize(this.getParentSvg());this.toolbox_&&(this.toolboxPosition==Blockly.TOOLBOX_AT_TOP||this.toolboxPosition==Blockly.TOOLBOX_AT_BOTTOM?e.height-=this.toolbox_.getHeight():(this.toolboxPosition==Blockly.TOOLBOX_AT_LEFT||this.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT)&&(e.width-=this.toolbox_.getWidth()));var o=Blockly.Flyout.prototype.CORNER_RADIUS-1,t=e.width-o,n=e.height-o,r=this.getBlocksBoundingBox(),i=r.width*this.scale,s=r.height*this.scale,l=r.x*this.scale,g=r.y*this.scale;return this.scrollbar?(o=Math.min(l-t/2,l+i-t),t=Math.max(l+i+t/2,l+t),i=Math.min(g-n/2,g+s-n),n=Math.max(g+s+n/2,g+n)):(o=r.x,t=o+r.width,i=r.y,n=i+r.height),r=0,this.toolbox_&&this.toolboxPosition==Blockly.TOOLBOX_AT_LEFT&&(r=this.toolbox_.getWidth()),s=0,this.toolbox_&&this.toolboxPosition==Blockly.TOOLBOX_AT_TOP&&(s=this.toolbox_.getHeight()),{viewHeight:e.height,viewWidth:e.width,contentHeight:n-i,contentWidth:t-o,viewTop:-this.scrollY,viewLeft:-this.scrollX,contentTop:i,contentLeft:o,absoluteTop:s,absoluteLeft:r,toolboxWidth:this.toolbox_?this.toolbox_.getWidth():0,toolboxHeight:this.toolbox_?this.toolbox_.getHeight():0,flyoutWidth:this.flyout_?this.flyout_.getWidth():0,flyoutHeight:this.flyout_?this.flyout_.getHeight():0,toolboxPosition:this.toolboxPosition}},Blockly.WorkspaceSvg.setTopLevelWorkspaceMetrics_=function(e){if(!this.scrollbar)throw"Attempt to set top level workspace scroll without scrollbars.";var o=this.getMetrics();goog.isNumber(e.x)&&(this.scrollX=-o.contentWidth*e.x-o.contentLeft),goog.isNumber(e.y)&&(this.scrollY=-o.contentHeight*e.y-o.contentTop),e=this.scrollX+o.absoluteLeft,o=this.scrollY+o.absoluteTop,this.translate(e,o),this.options.gridPattern&&(this.options.gridPattern.setAttribute("x",e),this.options.gridPattern.setAttribute("y",o),goog.userAgent.IE&&this.updateGridPattern_())},Blockly.WorkspaceSvg.prototype.setResizesEnabled=function(e){var o=!this.resizesEnabled_&&e;this.resizesEnabled_=e,o&&this.resizeContents()},Blockly.WorkspaceSvg.prototype.clear=function(){this.setResizesEnabled(!1),Blockly.WorkspaceSvg.superClass_.clear.call(this),this.setResizesEnabled(!0)},Blockly.WorkspaceSvg.prototype.setVisible=Blockly.WorkspaceSvg.prototype.setVisible,Blockly.Mutator=function(e){Blockly.Mutator.superClass_.constructor.call(this,null),this.quarkNames_=e},goog.inherits(Blockly.Mutator,Blockly.Icon),Blockly.Mutator.prototype.workspaceWidth_=0,Blockly.Mutator.prototype.workspaceHeight_=0,Blockly.Mutator.prototype.drawIcon_=function(e){Blockly.createSvgElement("rect",{"class":"blocklyIconShape",rx:"4",ry:"4",height:"16",width:"16"},e),Blockly.createSvgElement("path",{"class":"blocklyIconSymbol",d:"m4.203,7.296 0,1.368 -0.92,0.677 -0.11,0.41 0.9,1.559 0.41,0.11 1.043,-0.457 1.187,0.683 0.127,1.134 0.3,0.3 1.8,0 0.3,-0.299 0.127,-1.138 1.185,-0.682 1.046,0.458 0.409,-0.11 0.9,-1.559 -0.11,-0.41 -0.92,-0.677 0,-1.366 0.92,-0.677 0.11,-0.41 -0.9,-1.559 -0.409,-0.109 -1.046,0.458 -1.185,-0.682 -0.127,-1.138 -0.3,-0.299 -1.8,0 -0.3,0.3 -0.126,1.135 -1.187,0.682 -1.043,-0.457 -0.41,0.11 -0.899,1.559 0.108,0.409z"},e),Blockly.createSvgElement("circle",{"class":"blocklyIconShape",r:"2.7",cx:"8",cy:"8"},e)},Blockly.Mutator.prototype.iconClick_=function(e){this.block_.isEditable()&&Blockly.Icon.prototype.iconClick_.call(this,e)},Blockly.Mutator.prototype.createEditor_=function(){if(this.svgDialog_=Blockly.createSvgElement("svg",{x:Blockly.Bubble.BORDER_WIDTH,y:Blockly.Bubble.BORDER_WIDTH},null),this.quarkNames_.length)for(var e,o=goog.dom.createDom("xml"),t=0;e=this.quarkNames_[t];t++)o.appendChild(goog.dom.createDom("block",{type:e}));else o=null;return o={languageTree:o,parentWorkspace:this.block_.workspace,pathToMedia:this.block_.workspace.options.pathToMedia,RTL:this.block_.RTL,toolboxPosition:this.block_.RTL?Blockly.TOOLBOX_AT_RIGHT:Blockly.TOOLBOX_AT_LEFT,horizontalLayout:!1,getMetrics:this.getFlyoutMetrics_.bind(this),setMetrics:null},this.workspace_=new Blockly.WorkspaceSvg(o),this.workspace_.isMutator=!0,this.svgDialog_.appendChild(this.workspace_.createDom("blocklyMutatorBackground")),this.svgDialog_},Blockly.Mutator.prototype.updateEditable=function(){this.block_.isInFlyout||(this.block_.isEditable()?this.iconGroup_&&Blockly.removeClass_(this.iconGroup_,"blocklyIconGroupReadonly"):(this.setVisible(!1),this.iconGroup_&&Blockly.addClass_(this.iconGroup_,"blocklyIconGroupReadonly"))),Blockly.Icon.prototype.updateEditable.call(this)},Blockly.Mutator.prototype.resizeBubble_=function(){var e,o=2*Blockly.Bubble.BORDER_WIDTH,t=this.workspace_.getCanvas().getBBox();if(e=this.block_.RTL?-t.x:t.width+t.x,t=t.height+3*o,this.workspace_.flyout_)var n=this.workspace_.flyout_.getMetrics_(),t=Math.max(t,n.contentHeight+20);e+=3*o,(Math.abs(this.workspaceWidth_-e)>o||Math.abs(this.workspaceHeight_-t)>o)&&(this.workspaceWidth_=e,this.workspaceHeight_=t,this.bubble_.setBubbleSize(e+o,t+o),this.svgDialog_.setAttribute("width",this.workspaceWidth_),this.svgDialog_.setAttribute("height",this.workspaceHeight_)),this.block_.RTL&&(o="translate("+this.workspaceWidth_+",0)",this.workspace_.getCanvas().setAttribute("transform",o)),this.workspace_.resize()},Blockly.Mutator.prototype.setVisible=function(e){if(e!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"mutatorOpen",!e,e)),e){this.bubble_=new Blockly.Bubble(this.block_.workspace,this.createEditor_(),this.block_.svgPath_,this.iconXY_,null,null),(e=this.workspace_.options.languageTree)&&(this.workspace_.flyout_.init(this.workspace_),this.workspace_.flyout_.show(e.childNodes)),this.rootBlock_=this.block_.decompose(this.workspace_),e=this.rootBlock_.getDescendants();for(var o,t=0;o=e[t];t++)o.render();if(this.rootBlock_.setMovable(!1),this.rootBlock_.setDeletable(!1),this.workspace_.flyout_?(e=2*this.workspace_.flyout_.CORNER_RADIUS,t=this.workspace_.flyout_.width_+e):t=e=16,this.block_.RTL&&(t=-t),this.rootBlock_.moveBy(t,e),this.block_.saveConnections){var n=this;this.block_.saveConnections(this.rootBlock_),this.sourceListener_=function(){n.block_.saveConnections(n.rootBlock_)},this.block_.workspace.addChangeListener(this.sourceListener_)}this.resizeBubble_(),this.workspace_.addChangeListener(this.workspaceChanged_.bind(this)),this.updateColour()}else this.svgDialog_=null,this.workspace_.dispose(),this.rootBlock_=this.workspace_=null,this.bubble_.dispose(),this.bubble_=null,this.workspaceHeight_=this.workspaceWidth_=0,this.sourceListener_&&(this.block_.workspace.removeChangeListener(this.sourceListener_),this.sourceListener_=null)},Blockly.Mutator.prototype.workspaceChanged_=function(){if(Blockly.dragMode_==Blockly.DRAG_NONE)for(var e,o=this.workspace_.getTopBlocks(!1),t=0;e=o[t];t++){var n=e.getRelativeToSurfaceXY(),r=e.getHeightWidth();20>n.y+r.height&&e.moveBy(0,20-r.height-n.y)}if(this.rootBlock_.workspace==this.workspace_){if(Blockly.Events.setGroup(!0),e=this.block_,o=(o=e.mutationToDom())&&Blockly.Xml.domToText(o),t=e.rendered,e.rendered=!1,e.compose(this.rootBlock_),e.rendered=t,e.initSvg(),t=(t=e.mutationToDom())&&Blockly.Xml.domToText(t),o!=t){Blockly.Events.fire(new Blockly.Events.Change(e,"mutation",null,o,t));var i=Blockly.Events.getGroup();setTimeout(function(){Blockly.Events.setGroup(i),e.bumpNeighbours_(),Blockly.Events.setGroup(!1)},Blockly.BUMP_DELAY)}e.rendered&&e.render(),this.resizeBubble_(),Blockly.Events.setGroup(!1)}},Blockly.Mutator.prototype.getFlyoutMetrics_=function(){return{viewHeight:this.workspaceHeight_,viewWidth:this.workspaceWidth_,absoluteTop:0,absoluteLeft:0}},Blockly.Mutator.prototype.dispose=function(){this.block_.mutator=null,Blockly.Icon.prototype.dispose.call(this)},Blockly.Mutator.reconnect=function(e,o,t){if(!e||!e.getSourceBlock().workspace)return!1;t=o.getInput(t).connection;var n=e.targetBlock();return n&&n!=o||t.targetConnection==e?!1:(t.isConnected()&&t.disconnect(),t.connect(e),!0)},goog.global.Blockly||(goog.global.Blockly={}),goog.global.Blockly.Mutator||(goog.global.Blockly.Mutator={}),goog.global.Blockly.Mutator.reconnect=Blockly.Mutator.reconnect,Blockly.Warning=function(e){Blockly.Warning.superClass_.constructor.call(this,e),this.createIcon(),this.text_={}},goog.inherits(Blockly.Warning,Blockly.Icon),Blockly.Warning.prototype.collapseHidden=!1,Blockly.Warning.prototype.drawIcon_=function(e){Blockly.createSvgElement("path",{"class":"blocklyIconShape",d:"M2,15Q-1,15 0.5,12L6.5,1.7Q8,-1 9.5,1.7L15.5,12Q17,15 14,15z"},e),Blockly.createSvgElement("path",{"class":"blocklyIconSymbol",d:"m7,4.8v3.16l0.27,2.27h1.46l0.27,-2.27v-3.16z"},e),Blockly.createSvgElement("rect",{"class":"blocklyIconSymbol",x:"7",y:"11",height:"2",width:"2"},e)},Blockly.Warning.textToDom_=function(e){var o=Blockly.createSvgElement("text",{"class":"blocklyText blocklyBubbleText",y:Blockly.Bubble.BORDER_WIDTH},null);e=e.split("\n");for(var t=0;t<e.length;t++){var n=Blockly.createSvgElement("tspan",{dy:"1em",x:Blockly.Bubble.BORDER_WIDTH},o),r=document.createTextNode(e[t]);n.appendChild(r)}return o},Blockly.Warning.prototype.setVisible=function(e){if(e!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"warningOpen",!e,e)),e){if(e=Blockly.Warning.textToDom_(this.getText()),this.bubble_=new Blockly.Bubble(this.block_.workspace,e,this.block_.svgPath_,this.iconXY_,null,null),this.block_.RTL)for(var o,t=e.getBBox().width,n=0;o=e.childNodes[n];n++)o.setAttribute("text-anchor","end"),o.setAttribute("x",t+Blockly.Bubble.BORDER_WIDTH);this.updateColour(),e=this.bubble_.getBubbleSize(),this.bubble_.setBubbleSize(e.width,e.height)}else this.bubble_.dispose(),this.body_=this.bubble_=null},Blockly.Warning.prototype.bodyFocus_=function(e){this.bubble_.promote_()},Blockly.Warning.prototype.setText=function(e,o){this.text_[o]!=e&&(e?this.text_[o]=e:delete this.text_[o],this.isVisible()&&(this.setVisible(!1),this.setVisible(!0)))},Blockly.Warning.prototype.getText=function(){var e,o=[];for(e in this.text_)o.push(this.text_[e]);return o.join("\n")},Blockly.Warning.prototype.dispose=function(){this.block_.warning=null,Blockly.Icon.prototype.dispose.call(this)},Blockly.Block=function(e,o,t){this.id=t&&!e.getBlockById(t)?t:Blockly.genUid(),e.blockDB_[this.id]=this,this.previousConnection=this.nextConnection=this.outputConnection=null,this.inputList=[],this.inputsInline=void 0,this.disabled=!1,this.tooltip="",this.contextMenu=!0,this.parentBlock_=null,this.childBlocks_=[],this.editable_=this.movable_=this.deletable_=!0,this.collapsed_=this.isShadow_=!1,this.comment=null,this.xy_=new goog.math.Coordinate(0,0),this.workspace=e,this.isInFlyout=e.isFlyout,this.isInMutator=e.isMutator,this.RTL=e.RTL,o&&(this.type=o,t=Blockly.Blocks[o],goog.asserts.assertObject(t,'Error: "%s" is an unknown language block.',o),goog.mixin(this,t)),e.addTopBlock(this),goog.isFunction(this.init)&&this.init(),this.inputsInlineDefault=this.inputsInline,Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Create(this)),goog.isFunction(this.onchange)&&(this.onchangeWrapper_=this.onchange.bind(this),this.workspace.addChangeListener(this.onchangeWrapper_))},Blockly.Block.obtain=function(e,o){return console.warn("Deprecated call to Blockly.Block.obtain, use workspace.newBlock instead."),e.newBlock(o)},Blockly.Block.prototype.data=null,Blockly.Block.prototype.colour_="#000000",Blockly.Block.prototype.dispose=function(e){if(this.workspace){this.onchangeWrapper_&&this.workspace.removeChangeListener(this.onchangeWrapper_),this.unplug(e),Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Delete(this)),Blockly.Events.disable();try{this.workspace&&(this.workspace.removeTopBlock(this),delete this.workspace.blockDB_[this.id],this.workspace=null);for(var o=this.childBlocks_.length-1;o>=0;o--)this.childBlocks_[o].dispose(!1);for(var t,o=0;t=this.inputList[o];o++)t.dispose();this.inputList.length=0;for(var n=this.getConnections_(!0),o=0;o<n.length;o++){var r=n[o];r.isConnected()&&r.disconnect(),n[o].dispose()}}finally{Blockly.Events.enable()}}},Blockly.Block.prototype.unplug=function(e){if(this.outputConnection)this.outputConnection.isConnected()&&this.outputConnection.disconnect();else if(this.previousConnection){var o=null;this.previousConnection.isConnected()&&(o=this.previousConnection.targetConnection,this.previousConnection.disconnect());var t=this.getNextBlock();e&&t&&(e=this.nextConnection.targetConnection,e.disconnect(),o&&o.checkType_(e)&&o.connect(e))}},Blockly.Block.prototype.getConnections_=function(){var e=[];this.outputConnection&&e.push(this.outputConnection),this.previousConnection&&e.push(this.previousConnection),this.nextConnection&&e.push(this.nextConnection);for(var o,t=0;o=this.inputList[t];t++)o.connection&&e.push(o.connection);return e},Blockly.Block.prototype.lastConnectionInStack_=function(){for(var e=this.nextConnection;e;){var o=e.targetBlock();if(!o)return e;e=o.nextConnection}return null},Blockly.Block.prototype.bumpNeighbours_=function(){if(this.workspace&&Blockly.dragMode_==Blockly.DRAG_NONE){var e=this.getRootBlock();if(!e.isInFlyout)for(var o,t=this.getConnections_(!1),n=0;o=t[n];n++){o.isConnected()&&o.isSuperior()&&o.targetBlock().bumpNeighbours_();for(var r,i=o.neighbours_(Blockly.SNAP_RADIUS),s=0;r=i[s];s++)o.isConnected()&&r.isConnected()||r.getSourceBlock().getRootBlock()!=e&&(o.isSuperior()?r.bumpAwayFrom_(o):o.bumpAwayFrom_(r))}}},Blockly.Block.prototype.getParent=function(){return this.parentBlock_},Blockly.Block.prototype.getInputWithBlock=function(e){for(var o,t=0;o=this.inputList[t];t++)if(o.connection&&o.connection.targetBlock()==e)return o;return null},Blockly.Block.prototype.getSurroundParent=function(){var e=this;do{var o=e,e=e.getParent();if(!e)return null}while(e.getNextBlock()==o);return e},Blockly.Block.prototype.getNextBlock=function(){return this.nextConnection&&this.nextConnection.targetBlock()},Blockly.Block.prototype.getRootBlock=function(){var e,o=this;do e=o,o=e.parentBlock_;while(o);return e},Blockly.Block.prototype.getChildren=function(){return this.childBlocks_},Blockly.Block.prototype.setParent=function(e){if(e!=this.parentBlock_){if(this.parentBlock_){if(goog.array.remove(this.parentBlock_.childBlocks_,this),this.previousConnection&&this.previousConnection.isConnected())throw"Still connected to previous block.";if(this.outputConnection&&this.outputConnection.isConnected())throw"Still connected to parent block.";this.parentBlock_=null}else this.workspace.removeTopBlock(this);(this.parentBlock_=e)?e.childBlocks_.push(this):this.workspace.addTopBlock(this)}},Blockly.Block.prototype.getDescendants=function(){for(var e,o=[this],t=0;e=this.childBlocks_[t];t++)o.push.apply(o,e.getDescendants());return o},Blockly.Block.prototype.isDeletable=function(){return this.deletable_&&!this.isShadow_&&!(this.workspace&&this.workspace.options.readOnly)},Blockly.Block.prototype.setDeletable=function(e){this.deletable_=e},Blockly.Block.prototype.isMovable=function(){return this.movable_&&!this.isShadow_&&!(this.workspace&&this.workspace.options.readOnly)},Blockly.Block.prototype.setMovable=function(e){this.movable_=e},Blockly.Block.prototype.isShadow=function(){return this.isShadow_},Blockly.Block.prototype.setShadow=function(e){this.isShadow_=e},Blockly.Block.prototype.isEditable=function(){return this.editable_&&!(this.workspace&&this.workspace.options.readOnly)},Blockly.Block.prototype.setEditable=function(e){this.editable_=e,e=0;for(var o;o=this.inputList[e];e++)for(var t,n=0;t=o.fieldRow[n];n++)t.updateEditable()},Blockly.Block.prototype.setConnectionsHidden=function(e){if(!e&&this.isCollapsed()){if(this.outputConnection&&this.outputConnection.setHidden(e),this.previousConnection&&this.previousConnection.setHidden(e),this.nextConnection){this.nextConnection.setHidden(e);var o=this.nextConnection.targetBlock();o&&o.setConnectionsHidden(e)}}else for(var t=this.getConnections_(!0),n=0;o=t[n];n++)o.setHidden(e),o.isSuperior()&&(o=o.targetBlock())&&o.setConnectionsHidden(e)},Blockly.Block.prototype.setHelpUrl=function(e){this.helpUrl=e},Blockly.Block.prototype.setTooltip=function(e){this.tooltip=e},Blockly.Block.prototype.getColour=function(){return this.colour_},Blockly.Block.prototype.setColour=function(e){var o=parseFloat(e);if(isNaN(o)){if(!goog.isString(e)||!e.match(/^#[0-9a-fA-F]{6}$/))throw"Invalid colour: "+e;this.colour_=e}else this.colour_=Blockly.hueToRgb(o)},Blockly.Block.prototype.getField=function(e){for(var o,t=0;o=this.inputList[t];t++)for(var n,r=0;n=o.fieldRow[r];r++)if(n.name===e)return n;return null},Blockly.Block.prototype.getVars=function(){for(var e,o=[],t=0;e=this.inputList[t];t++)for(var n,r=0;n=e.fieldRow[r];r++)n instanceof Blockly.FieldVariable&&o.push(n.getValue());return o},Blockly.Block.prototype.renameVar=function(e,o){for(var t,n=0;t=this.inputList[n];n++)for(var r,i=0;r=t.fieldRow[i];i++)r instanceof Blockly.FieldVariable&&Blockly.Names.equals(e,r.getValue())&&r.setValue(o)},Blockly.Block.prototype.getFieldValue=function(e){return(e=this.getField(e))?e.getValue():null},Blockly.Block.prototype.getTitleValue=function(e){return console.warn("Deprecated call to getTitleValue, use getFieldValue instead."),this.getFieldValue(e)},Blockly.Block.prototype.setFieldValue=function(e,o){var t=this.getField(o);goog.asserts.assertObject(t,'Field "%s" not found.',o),t.setValue(e)},Blockly.Block.prototype.setTitleValue=function(e,o){console.warn("Deprecated call to setTitleValue, use setFieldValue instead."),this.setFieldValue(e,o)},Blockly.Block.prototype.setPreviousStatement=function(e,o){e?(void 0===o&&(o=null),this.previousConnection||(goog.asserts.assert(!this.outputConnection,"Remove output connection prior to adding previous connection."),this.previousConnection=this.makeConnection_(Blockly.PREVIOUS_STATEMENT)),this.previousConnection.setCheck(o)):this.previousConnection&&(goog.asserts.assert(!this.previousConnection.isConnected(),"Must disconnect previous statement before removing connection."),this.previousConnection.dispose(),this.previousConnection=null)},Blockly.Block.prototype.setNextStatement=function(e,o){e?(void 0===o&&(o=null),this.nextConnection||(this.nextConnection=this.makeConnection_(Blockly.NEXT_STATEMENT)),this.nextConnection.setCheck(o)):this.nextConnection&&(goog.asserts.assert(!this.nextConnection.isConnected(),"Must disconnect next statement before removing connection."),this.nextConnection.dispose(),this.nextConnection=null)},Blockly.Block.prototype.setOutput=function(e,o){e?(void 0===o&&(o=null),this.outputConnection||(goog.asserts.assert(!this.previousConnection,"Remove previous connection prior to adding output connection."),this.outputConnection=this.makeConnection_(Blockly.OUTPUT_VALUE)),this.outputConnection.setCheck(o)):this.outputConnection&&(goog.asserts.assert(!this.outputConnection.isConnected(),"Must disconnect output value before removing connection."),this.outputConnection.dispose(),this.outputConnection=null)},Blockly.Block.prototype.setInputsInline=function(e){this.inputsInline!=e&&(Blockly.Events.fire(new Blockly.Events.Change(this,"inline",null,this.inputsInline,e)),this.inputsInline=e)},Blockly.Block.prototype.getInputsInline=function(){if(void 0!=this.inputsInline)return this.inputsInline;for(var e=1;e<this.inputList.length;e++)if(this.inputList[e-1].type==Blockly.DUMMY_INPUT&&this.inputList[e].type==Blockly.DUMMY_INPUT)return!1;for(e=1;e<this.inputList.length;e++)if(this.inputList[e-1].type==Blockly.INPUT_VALUE&&this.inputList[e].type==Blockly.DUMMY_INPUT)return!0;return!1},Blockly.Block.prototype.setDisabled=function(e){this.disabled!=e&&(Blockly.Events.fire(new Blockly.Events.Change(this,"disabled",null,this.disabled,e)),this.disabled=e)},Blockly.Block.prototype.getInheritedDisabled=function(){for(var e=this;;){if(e=e.getSurroundParent(),!e)return!1;if(e.disabled)return!0}},Blockly.Block.prototype.isCollapsed=function(){return this.collapsed_},Blockly.Block.prototype.setCollapsed=function(e){this.collapsed_!=e&&(Blockly.Events.fire(new Blockly.Events.Change(this,"collapsed",null,this.collapsed_,e)),this.collapsed_=e)},Blockly.Block.prototype.toString=function(e,o){var t=[],n=o||"?";if(this.collapsed_)t.push(this.getInput("_TEMP_COLLAPSED_INPUT").fieldRow[0].text_);else for(var r,i=0;r=this.inputList[i];i++){for(var s,l=0;s=r.fieldRow[l];l++)t.push(s.getText());r.connection&&((r=r.connection.targetBlock())?t.push(r.toString(void 0,o)):t.push(n))}return t=goog.string.trim(t.join(" "))||"???",e&&(t=goog.string.truncate(t,e)),t},Blockly.Block.prototype.appendValueInput=function(e){return this.appendInput_(Blockly.INPUT_VALUE,e)},Blockly.Block.prototype.appendStatementInput=function(e){return this.appendInput_(Blockly.NEXT_STATEMENT,e)},Blockly.Block.prototype.appendDummyInput=function(e){return this.appendInput_(Blockly.DUMMY_INPUT,e||"")},Blockly.Block.prototype.jsonInit=function(e){goog.asserts.assert(void 0==e.output||void 0==e.previousStatement,"Must not have both an output and a previousStatement."),void 0!==e.colour&&this.setColour(e.colour);for(var o=0;void 0!==e["message"+o];)this.interpolate_(e["message"+o],e["args"+o]||[],e["lastDummyAlign"+o]),o++;void 0!==e.inputsInline&&this.setInputsInline(e.inputsInline),void 0!==e.output&&this.setOutput(!0,e.output),void 0!==e.previousStatement&&this.setPreviousStatement(!0,e.previousStatement),void 0!==e.nextStatement&&this.setNextStatement(!0,e.nextStatement),void 0!==e.tooltip&&this.setTooltip(e.tooltip),void 0!==e.helpUrl&&this.setHelpUrl(e.helpUrl)},Blockly.Block.prototype.interpolate_=function(e,o,t){var n=Blockly.utils.tokenizeInterpolation(e),r=[],i=0;e=[];for(var s=0;s<n.length;s++){
 var l=n[s];"number"==typeof l?(goog.asserts.assert(l>0&&l<=o.length,'Message index "%s" out of range.',l),goog.asserts.assert(!r[l],'Message index "%s" duplicated.',l),r[l]=!0,i++,e.push(o[l-1])):(l=l.trim())&&e.push(l)}for(goog.asserts.assert(i==o.length,"Message does not reference all %s arg(s).",o.length),e.length&&("string"==typeof e[e.length-1]||goog.string.startsWith(e[e.length-1].type,"field_"))&&(s={type:"input_dummy"},t&&(s.align=t),e.push(s)),t={LEFT:Blockly.ALIGN_LEFT,RIGHT:Blockly.ALIGN_RIGHT,CENTRE:Blockly.ALIGN_CENTRE},o=[],s=0;s<e.length;s++)if(r=e[s],"string"==typeof r)o.push([r,void 0]);else{n=i=null;do if(l=!1,"string"==typeof r)i=new Blockly.FieldLabel(r);else switch(r.type){case"input_value":n=this.appendValueInput(r.name);break;case"input_statement":n=this.appendStatementInput(r.name);break;case"input_dummy":n=this.appendDummyInput(r.name);break;case"field_label":i=new Blockly.FieldLabel(r.text,r["class"]);break;case"field_input":i=new Blockly.FieldTextInput(r.text),"boolean"==typeof r.spellcheck&&i.setSpellcheck(r.spellcheck);break;case"field_angle":i=new Blockly.FieldAngle(r.angle);break;case"field_checkbox":i=new Blockly.FieldCheckbox(r.checked?"TRUE":"FALSE");break;case"field_colour":i=new Blockly.FieldColour(r.colour);break;case"field_variable":i=new Blockly.FieldVariable(r.variable);break;case"field_dropdown":i=new Blockly.FieldDropdown(r.options);break;case"field_image":i=new Blockly.FieldImage(r.src,r.width,r.height,r.alt);break;case"field_number":i=new Blockly.FieldNumber(r.value,r.min,r.max,r.precision);break;case"field_date":if(Blockly.FieldDate){i=new Blockly.FieldDate(r.date);break}default:r.alt&&(r=r.alt,l=!0)}while(l);if(i)o.push([i,r.name]);else if(n){for(r.check&&n.setCheck(r.check),r.align&&n.setAlign(t[r.align]),r=0;r<o.length;r++)n.appendField(o[r][0],o[r][1]);o.length=0}}},Blockly.Block.prototype.appendInput_=function(e,o){var t=null;return(e==Blockly.INPUT_VALUE||e==Blockly.NEXT_STATEMENT)&&(t=this.makeConnection_(e)),t=new Blockly.Input(e,o,this,t),this.inputList.push(t),t},Blockly.Block.prototype.moveInputBefore=function(e,o){if(e!=o){for(var t,n=-1,r=o?-1:this.inputList.length,i=0;t=this.inputList[i];i++)if(t.name==e){if(n=i,-1!=r)break}else if(o&&t.name==o&&(r=i,-1!=n))break;goog.asserts.assert(-1!=n,'Named input "%s" not found.',e),goog.asserts.assert(-1!=r,'Reference input "%s" not found.',o),this.moveNumberedInputBefore(n,r)}},Blockly.Block.prototype.moveNumberedInputBefore=function(e,o){goog.asserts.assert(e!=o,"Can't move input to itself."),goog.asserts.assert(e<this.inputList.length,"Input index "+e+" out of bounds."),goog.asserts.assert(o<=this.inputList.length,"Reference input "+o+" out of bounds.");var t=this.inputList[e];this.inputList.splice(e,1),o>e&&o--,this.inputList.splice(o,0,t)},Blockly.Block.prototype.removeInput=function(e,o){for(var t,n=0;t=this.inputList[n];n++)if(t.name==e){if(t.connection&&t.connection.isConnected()){t.connection.setShadowDom(null);var r=t.connection.targetBlock();r.isShadow()?r.dispose():r.unplug()}return t.dispose(),void this.inputList.splice(n,1)}o||goog.asserts.fail('Input "%s" not found.',e)},Blockly.Block.prototype.getInput=function(e){for(var o,t=0;o=this.inputList[t];t++)if(o.name==e)return o;return null},Blockly.Block.prototype.getInputTargetBlock=function(e){return(e=this.getInput(e))&&e.connection&&e.connection.targetBlock()},Blockly.Block.prototype.getCommentText=function(){return this.comment||""},Blockly.Block.prototype.setCommentText=function(e){this.comment!=e&&(Blockly.Events.fire(new Blockly.Events.Change(this,"comment",null,this.comment,e||"")),this.comment=e)},Blockly.Block.prototype.setWarningText=function(e){},Blockly.Block.prototype.setMutator=function(e){},Blockly.Block.prototype.getRelativeToSurfaceXY=function(){return this.xy_},Blockly.Block.prototype.moveBy=function(e,o){goog.asserts.assert(!this.parentBlock_,"Block has parent.");var t=new Blockly.Events.Move(this);this.xy_.translate(e,o),t.recordNew(),Blockly.Events.fire(t)},Blockly.Block.prototype.makeConnection_=function(e){return new Blockly.Connection(this,e)},Blockly.ContextMenu={},Blockly.ContextMenu.currentBlock=null,Blockly.ContextMenu.show=function(e,o,t){if(Blockly.WidgetDiv.show(Blockly.ContextMenu,t,null),o.length){var n=new goog.ui.Menu;n.setRightToLeft(t);for(var r,i=0;r=o[i];i++){var s=new goog.ui.MenuItem(r.text);s.setRightToLeft(t),n.addChild(s,!0),s.setEnabled(r.enabled),r.enabled&&(goog.events.listen(s,goog.ui.Component.EventType.ACTION,r.callback),s.handleContextMenu=function(e){goog.events.dispatchEvent(this,goog.ui.Component.EventType.ACTION)})}goog.events.listen(n,goog.ui.Component.EventType.ACTION,Blockly.ContextMenu.hide),o=goog.dom.getViewportSize(),i=goog.style.getViewportPageOffset(document),n.render(Blockly.WidgetDiv.DIV);var l=n.getElement();Blockly.addClass_(l,"blocklyContextMenu"),Blockly.bindEventWithChecks_(l,"contextmenu",null,Blockly.noEvent),r=goog.style.getSize(l);var s=e.clientX+i.x,g=e.clientY+i.y;e.clientY+r.height>=o.height&&(g-=r.height),t?r.width>=e.clientX&&(s+=r.width):e.clientX+r.width>=o.width&&(s-=r.width),Blockly.WidgetDiv.position(s,g,o,i,t),n.setAllowAutoFocus(!0),setTimeout(function(){l.focus()},1),Blockly.ContextMenu.currentBlock=null}else Blockly.ContextMenu.hide()},Blockly.ContextMenu.hide=function(){Blockly.WidgetDiv.hideIfOwner(Blockly.ContextMenu),Blockly.ContextMenu.currentBlock=null},Blockly.ContextMenu.callbackFactory=function(e,o){return function(){Blockly.Events.disable();try{var t=Blockly.Xml.domToBlock(o,e.workspace),n=e.getRelativeToSurfaceXY();n.x=e.RTL?n.x-Blockly.SNAP_RADIUS:n.x+Blockly.SNAP_RADIUS,n.y+=2*Blockly.SNAP_RADIUS,t.moveBy(n.x,n.y)}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!t.isShadow()&&Blockly.Events.fire(new Blockly.Events.Create(t)),t.select()}},Blockly.RenderedConnection=function(e,o){Blockly.RenderedConnection.superClass_.constructor.call(this,e,o),this.offsetInBlock_=new goog.math.Coordinate(0,0)},goog.inherits(Blockly.RenderedConnection,Blockly.Connection),Blockly.RenderedConnection.prototype.distanceFrom=function(e){var o=this.x_-e.x_;return e=this.y_-e.y_,Math.sqrt(o*o+e*e)},Blockly.RenderedConnection.prototype.bumpAwayFrom_=function(e){if(Blockly.dragMode_==Blockly.DRAG_NONE){var o=this.sourceBlock_.getRootBlock();if(!o.isInFlyout){var t=!1;if(!o.isMovable()){if(o=e.getSourceBlock().getRootBlock(),!o.isMovable())return;e=this,t=!0}var n=Blockly.selected==o;n||o.addSelect();var r=e.x_+Blockly.SNAP_RADIUS-this.x_;e=e.y_+Blockly.SNAP_RADIUS-this.y_,t&&(e=-e),o.RTL&&(r=-r),o.moveBy(r,e),n||o.removeSelect()}}},Blockly.RenderedConnection.prototype.moveTo=function(e,o){this.inDB_&&this.db_.removeConnection_(this),this.x_=e,this.y_=o,this.hidden_||this.db_.addConnection(this)},Blockly.RenderedConnection.prototype.moveBy=function(e,o){this.moveTo(this.x_+e,this.y_+o)},Blockly.RenderedConnection.prototype.moveToOffset=function(e){this.moveTo(e.x+this.offsetInBlock_.x,e.y+this.offsetInBlock_.y)},Blockly.RenderedConnection.prototype.setOffsetInBlock=function(e,o){this.offsetInBlock_.x=e,this.offsetInBlock_.y=o},Blockly.RenderedConnection.prototype.tighten_=function(){var e=this.targetConnection.x_-this.x_,o=this.targetConnection.y_-this.y_;if(0!=e||0!=o){var t=this.targetBlock(),n=t.getSvgRoot();if(!n)throw"block is not rendered.";n=Blockly.getRelativeXY_(n),t.getSvgRoot().setAttribute("transform","translate("+(n.x-e)+","+(n.y-o)+")"),t.moveConnections_(-e,-o)}},Blockly.RenderedConnection.prototype.closest=function(e,o,t){return this.dbOpposite_.searchForClosest(this,e,o,t)},Blockly.RenderedConnection.prototype.highlight=function(){var e;e=this.type==Blockly.INPUT_VALUE||this.type==Blockly.OUTPUT_VALUE?"m 0,0 "+Blockly.BlockSvg.TAB_PATH_DOWN+" v 5":"m -20,0 h 5 "+Blockly.BlockSvg.NOTCH_PATH_LEFT+" h 5";var o=this.sourceBlock_.getRelativeToSurfaceXY();Blockly.Connection.highlightedPath_=Blockly.createSvgElement("path",{"class":"blocklyHighlightedConnectionPath",d:e,transform:"translate("+(this.x_-o.x)+","+(this.y_-o.y)+")"+(this.sourceBlock_.RTL?" scale(-1 1)":"")},this.sourceBlock_.getSvgRoot())},Blockly.RenderedConnection.prototype.unhideAll=function(){this.setHidden(!1);var e=[];if(this.type!=Blockly.INPUT_VALUE&&this.type!=Blockly.NEXT_STATEMENT)return e;var o=this.targetBlock();if(o){var t;o.isCollapsed()?(t=[],o.outputConnection&&t.push(o.outputConnection),o.nextConnection&&t.push(o.nextConnection),o.previousConnection&&t.push(o.previousConnection)):t=o.getConnections_(!0);for(var n=0;n<t.length;n++)e.push.apply(e,t[n].unhideAll());e.length||(e[0]=o)}return e},Blockly.RenderedConnection.prototype.unhighlight=function(){goog.dom.removeNode(Blockly.Connection.highlightedPath_),delete Blockly.Connection.highlightedPath_},Blockly.RenderedConnection.prototype.setHidden=function(e){(this.hidden_=e)&&this.inDB_?this.db_.removeConnection_(this):e||this.inDB_||this.db_.addConnection(this)},Blockly.RenderedConnection.prototype.hideAll=function(){if(this.setHidden(!0),this.targetConnection)for(var e=this.targetBlock().getDescendants(),o=0;o<e.length;o++){for(var t=e[o],n=t.getConnections_(!0),r=0;r<n.length;r++)n[r].setHidden(!0);for(t=t.getIcons(),r=0;r<t.length;r++)t[r].setVisible(!1)}},Blockly.RenderedConnection.prototype.isConnectionAllowed=function(e,o){return this.distanceFrom(e)>o?!1:Blockly.RenderedConnection.superClass_.isConnectionAllowed.call(this,e)},Blockly.RenderedConnection.prototype.disconnectInternal_=function(e,o){Blockly.RenderedConnection.superClass_.disconnectInternal_.call(this,e,o),e.rendered&&e.render(),o.rendered&&(o.updateDisabled(),o.render())},Blockly.RenderedConnection.prototype.respawnShadow_=function(){var e=this.getSourceBlock(),o=this.getShadowDom();if(e.workspace&&o&&Blockly.Events.recordUndo){if(Blockly.RenderedConnection.superClass_.respawnShadow_.call(this),o=this.targetBlock(),!o)throw"Couldn't respawn the shadow block that should exist here.";o.initSvg(),o.render(!1),e.rendered&&e.render()}},Blockly.RenderedConnection.prototype.neighbours_=function(e){return this.dbOpposite_.getNeighbours(this,e)},Blockly.RenderedConnection.prototype.connect_=function(e){Blockly.RenderedConnection.superClass_.connect_.call(this,e);var o=this.getSourceBlock();e=e.getSourceBlock(),o.rendered&&o.updateDisabled(),e.rendered&&e.updateDisabled(),o.rendered&&e.rendered&&(this.type==Blockly.NEXT_STATEMENT||this.type==Blockly.PREVIOUS_STATEMENT?e.render():o.render())},Blockly.BlockSvg=function(e,o,t){this.svgGroup_=Blockly.createSvgElement("g",{},null),this.svgPathDark_=Blockly.createSvgElement("path",{"class":"blocklyPathDark",transform:"translate(1,1)"},this.svgGroup_),this.svgPath_=Blockly.createSvgElement("path",{"class":"blocklyPath"},this.svgGroup_),this.svgPathLight_=Blockly.createSvgElement("path",{"class":"blocklyPathLight"},this.svgGroup_),this.svgPath_.tooltip=this,this.rendered=!1,Blockly.Tooltip.bindMouseEvents(this.svgPath_),Blockly.BlockSvg.superClass_.constructor.call(this,e,o,t)},goog.inherits(Blockly.BlockSvg,Blockly.Block),Blockly.BlockSvg.prototype.height=0,Blockly.BlockSvg.prototype.width=0,Blockly.BlockSvg.prototype.dragStartXY_=null,Blockly.BlockSvg.INLINE=-1,Blockly.BlockSvg.prototype.initSvg=function(){goog.asserts.assert(this.workspace.rendered,"Workspace is headless.");for(var e,o=0;e=this.inputList[o];o++)e.init();for(e=this.getIcons(),o=0;o<e.length;o++)e[o].createIcon();if(this.updateColour(),this.updateMovable(),!this.workspace.options.readOnly&&!this.eventsInit_){Blockly.bindEventWithChecks_(this.getSvgRoot(),"mousedown",this,this.onMouseDown_);var t=this;Blockly.bindEvent_(this.getSvgRoot(),"touchstart",null,function(e){Blockly.longStart_(e,t)})}this.eventsInit_=!0,this.getSvgRoot().parentNode||this.workspace.getCanvas().appendChild(this.getSvgRoot())},Blockly.BlockSvg.prototype.select=function(){if(this.isShadow()&&this.getParent())this.getParent().select();else if(Blockly.selected!=this){var e=null;if(Blockly.selected){e=Blockly.selected.id,Blockly.Events.disable();try{Blockly.selected.unselect()}finally{Blockly.Events.enable()}}e=new Blockly.Events.Ui(null,"selected",e,this.id),e.workspaceId=this.workspace.id,Blockly.Events.fire(e),Blockly.selected=this,this.addSelect()}},Blockly.BlockSvg.prototype.unselect=function(){if(Blockly.selected==this){var e=new Blockly.Events.Ui(null,"selected",this.id,null);e.workspaceId=this.workspace.id,Blockly.Events.fire(e),Blockly.selected=null,this.removeSelect()}},Blockly.BlockSvg.prototype.mutator=null,Blockly.BlockSvg.prototype.comment=null,Blockly.BlockSvg.prototype.warning=null,Blockly.BlockSvg.prototype.getIcons=function(){var e=[];return this.mutator&&e.push(this.mutator),this.comment&&e.push(this.comment),this.warning&&e.push(this.warning),e},Blockly.BlockSvg.onMouseUpWrapper_=null,Blockly.BlockSvg.onMouseMoveWrapper_=null,Blockly.BlockSvg.terminateDrag=function(){Blockly.BlockSvg.disconnectUiStop_(),Blockly.BlockSvg.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.BlockSvg.onMouseUpWrapper_),Blockly.BlockSvg.onMouseUpWrapper_=null),Blockly.BlockSvg.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.BlockSvg.onMouseMoveWrapper_),Blockly.BlockSvg.onMouseMoveWrapper_=null);var e=Blockly.selected;if(Blockly.dragMode_==Blockly.DRAG_FREE&&e){var o=e.getRelativeToSurfaceXY(),o=goog.math.Coordinate.difference(o,e.dragStartXY_),t=new Blockly.Events.Move(e);t.oldCoordinate=e.dragStartXY_,t.recordNew(),Blockly.Events.fire(t),e.moveConnections_(o.x,o.y),delete e.draggedBubbles_,e.setDragging_(!1),e.render(),e.workspace.setResizesEnabled(!0);var n=Blockly.Events.getGroup();setTimeout(function(){Blockly.Events.setGroup(n),e.snapToGrid(),Blockly.Events.setGroup(!1)},Blockly.BUMP_DELAY/2),setTimeout(function(){Blockly.Events.setGroup(n),e.bumpNeighbours_(),Blockly.Events.setGroup(!1)},Blockly.BUMP_DELAY)}Blockly.dragMode_=Blockly.DRAG_NONE,Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN)},Blockly.BlockSvg.prototype.setParent=function(e){if(e!=this.parentBlock_){var o=this.getSvgRoot();if(this.parentBlock_&&o){var t=this.getRelativeToSurfaceXY();this.workspace.getCanvas().appendChild(o),o.setAttribute("transform","translate("+t.x+","+t.y+")")}Blockly.Field.startCache(),Blockly.BlockSvg.superClass_.setParent.call(this,e),Blockly.Field.stopCache(),e&&(t=this.getRelativeToSurfaceXY(),e.getSvgRoot().appendChild(o),e=this.getRelativeToSurfaceXY(),this.moveConnections_(e.x-t.x,e.y-t.y))}},Blockly.BlockSvg.prototype.getRelativeToSurfaceXY=function(){var e=0,o=0,t=this.getSvgRoot();if(t)do var n=Blockly.getRelativeXY_(t),e=e+n.x,o=o+n.y,t=t.parentNode;while(t&&t!=this.workspace.getCanvas());return new goog.math.Coordinate(e,o)},Blockly.BlockSvg.prototype.moveBy=function(e,o){goog.asserts.assert(!this.parentBlock_,"Block has parent.");var t=new Blockly.Events.Move(this),n=this.getRelativeToSurfaceXY();this.getSvgRoot().setAttribute("transform","translate("+(n.x+e)+","+(n.y+o)+")"),this.moveConnections_(e,o),t.recordNew(),this.workspace.resizeContents(),Blockly.Events.fire(t)},Blockly.BlockSvg.prototype.snapToGrid=function(){if(this.workspace&&Blockly.dragMode_==Blockly.DRAG_NONE&&!this.getParent()&&!this.isInFlyout&&this.workspace.options.gridOptions&&this.workspace.options.gridOptions.snap){var e=this.workspace.options.gridOptions.spacing,o=e/2,t=this.getRelativeToSurfaceXY(),n=Math.round((t.x-o)/e)*e+o-t.x,e=Math.round((t.y-o)/e)*e+o-t.y,n=Math.round(n),e=Math.round(e);0==n&&0==e||this.moveBy(n,e)}},Blockly.BlockSvg.prototype.getHeightWidth=function(){var e=this.height,o=this.width,t=this.getNextBlock();return t?(t=t.getHeightWidth(),e+=t.height-4,o=Math.max(o,t.width)):this.nextConnection||this.outputConnection||(e+=2),{height:e,width:o}},Blockly.BlockSvg.prototype.getBoundingRectangle=function(){var e,o=this.getRelativeToSurfaceXY(this),t=this.outputConnection?Blockly.BlockSvg.TAB_WIDTH:0,n=this.getHeightWidth();return this.RTL?(e=new goog.math.Coordinate(o.x-(n.width-t),o.y),o=new goog.math.Coordinate(o.x+t,o.y+n.height)):(e=new goog.math.Coordinate(o.x-t,o.y),o=new goog.math.Coordinate(o.x+n.width-t,o.y+n.height)),{topLeft:e,bottomRight:o}},Blockly.BlockSvg.prototype.setCollapsed=function(e){if(this.collapsed_!=e){for(var o,t=[],n=0;o=this.inputList[n];n++)t.push.apply(t,o.setVisible(!e));if(e){for(o=this.getIcons(),n=0;n<o.length;n++)o[n].setVisible(!1);n=this.toString(Blockly.COLLAPSE_CHARS),this.appendDummyInput("_TEMP_COLLAPSED_INPUT").appendField(n).init()}else this.removeInput("_TEMP_COLLAPSED_INPUT"),this.setWarningText(null);if(Blockly.BlockSvg.superClass_.setCollapsed.call(this,e),t.length||(t[0]=this),this.rendered)for(n=0;e=t[n];n++)e.render()}},Blockly.BlockSvg.prototype.tab=function(e,o){for(var t,n=[],r=0;t=this.inputList[r];r++){for(var i,s=0;i=t.fieldRow[s];s++)i instanceof Blockly.FieldTextInput&&n.push(i);t.connection&&(t=t.connection.targetBlock())&&n.push(t)}r=n.indexOf(e),-1==r&&(r=o?-1:n.length),(n=n[o?r+1:r-1])?n instanceof Blockly.Field?n.showEditor_():n.tab(null,o):(n=this.getParent())&&n.tab(this,o)},Blockly.BlockSvg.prototype.onMouseDown_=function(e){if(!this.workspace.options.readOnly)if(this.isInFlyout)"touchstart"==e.type&&Blockly.isRightButton(e)&&(Blockly.Flyout.blockRightClick_(e,this),e.stopPropagation(),e.preventDefault());else{if(this.isInMutator&&this.workspace.resize(),this.workspace.updateScreenCalculationsIfScrolled(),this.workspace.markFocused(),Blockly.terminateDrag_(),this.select(),Blockly.hideChaff(),Blockly.isRightButton(e))this.showContextMenu_(e),Blockly.Touch.clearTouchIdentifier();else{if(!this.isMovable())return;Blockly.Events.getGroup()||Blockly.Events.setGroup(!0),Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED),this.dragStartXY_=this.getRelativeToSurfaceXY(),this.workspace.startDrag(e,this.dragStartXY_),Blockly.dragMode_=Blockly.DRAG_STICKY,Blockly.BlockSvg.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,this.onMouseUp_),Blockly.BlockSvg.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.onMouseMove_),this.draggedBubbles_=[];for(var o,t=this.getDescendants(),n=0;o=t[n];n++){o=o.getIcons();for(var r=0;r<o.length;r++){var i=o[r].getIconLocation();i.bubble=o[r],this.draggedBubbles_.push(i)}}}e.stopPropagation(),e.preventDefault()}},Blockly.BlockSvg.prototype.onMouseUp_=function(e){Blockly.Touch.clearTouchIdentifier(),Blockly.dragMode_==Blockly.DRAG_FREE||Blockly.WidgetDiv.isVisible()||Blockly.Events.fire(new Blockly.Events.Ui(this,"click",void 0,void 0)),Blockly.terminateDrag_(),Blockly.selected&&Blockly.highlightedConnection_?(Blockly.localConnection_.connect(Blockly.highlightedConnection_),this.rendered&&(Blockly.localConnection_.isSuperior()?Blockly.highlightedConnection_:Blockly.localConnection_).getSourceBlock().connectionUiEffect(),this.workspace.trashcan&&this.workspace.trashcan.close()):!this.getParent()&&Blockly.selected.isDeletable()&&this.workspace.isDeleteArea(e)&&((e=this.workspace.trashcan)&&goog.Timer.callOnce(e.close,100,e),Blockly.selected.dispose(!1,!0)),Blockly.highlightedConnection_&&(Blockly.highlightedConnection_.unhighlight(),Blockly.highlightedConnection_=null),Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN),Blockly.WidgetDiv.isVisible()||Blockly.Events.setGroup(!1)},Blockly.BlockSvg.prototype.showHelp_=function(){var e=goog.isFunction(this.helpUrl)?this.helpUrl():this.helpUrl;e&&window.open(e)},Blockly.BlockSvg.prototype.showContextMenu_=function(e){if(!this.workspace.options.readOnly&&this.contextMenu){var o=this,t=[];if(this.isDeletable()&&this.isMovable()&&!o.isInFlyout){var n={text:Blockly.Msg.DUPLICATE_BLOCK,enabled:!0,callback:function(){Blockly.duplicate_(o)}};if(this.getDescendants().length>this.workspace.remainingCapacity()&&(n.enabled=!1),t.push(n),this.isEditable()&&!this.collapsed_&&this.workspace.options.comments&&(n={enabled:!goog.userAgent.IE},this.comment?(n.text=Blockly.Msg.REMOVE_COMMENT,n.callback=function(){o.setCommentText(null)}):(n.text=Blockly.Msg.ADD_COMMENT,n.callback=function(){o.setCommentText("")}),t.push(n)),!this.collapsed_)for(n=1;n<this.inputList.length;n++)if(this.inputList[n-1].type!=Blockly.NEXT_STATEMENT&&this.inputList[n].type!=Blockly.NEXT_STATEMENT){var n={enabled:!0},r=this.getInputsInline();n.text=r?Blockly.Msg.EXTERNAL_INPUTS:Blockly.Msg.INLINE_INPUTS,n.callback=function(){o.setInputsInline(!r)},t.push(n);break}this.workspace.options.collapse&&(this.collapsed_?(n={enabled:!0},n.text=Blockly.Msg.EXPAND_BLOCK,n.callback=function(){o.setCollapsed(!1)}):(n={enabled:!0},n.text=Blockly.Msg.COLLAPSE_BLOCK,n.callback=function(){o.setCollapsed(!0)}),t.push(n)),this.workspace.options.disable&&(n={text:this.disabled?Blockly.Msg.ENABLE_BLOCK:Blockly.Msg.DISABLE_BLOCK,enabled:!this.getInheritedDisabled(),callback:function(){o.setDisabled(!o.disabled)}},t.push(n));var n=this.getDescendants().length,i=this.getNextBlock();i&&(n-=i.getDescendants().length),n={text:1==n?Blockly.Msg.DELETE_BLOCK:Blockly.Msg.DELETE_X_BLOCKS.replace("%1",String(n)),enabled:!0,callback:function(){Blockly.Events.setGroup(!0),o.dispose(!0,!0),Blockly.Events.setGroup(!1)}},t.push(n)}n={enabled:!(goog.isFunction(this.helpUrl)?!this.helpUrl():!this.helpUrl)},n.text=Blockly.Msg.HELP,n.callback=function(){o.showHelp_()},t.push(n),this.customContextMenu&&!o.isInFlyout&&this.customContextMenu(t),Blockly.ContextMenu.show(e,t,this.RTL),Blockly.ContextMenu.currentBlock=this}},Blockly.BlockSvg.prototype.moveConnections_=function(e,o){if(this.rendered){for(var t=this.getConnections_(!1),n=0;n<t.length;n++)t[n].moveBy(e,o);for(t=this.getIcons(),n=0;n<t.length;n++)t[n].computeIconLocation();for(n=0;n<this.childBlocks_.length;n++)this.childBlocks_[n].moveConnections_(e,o)}},Blockly.BlockSvg.prototype.setDragging_=function(e){if(e){var o=this.getSvgRoot();o.translate_="",o.skew_="",Blockly.draggingConnections_=Blockly.draggingConnections_.concat(this.getConnections_(!0)),Blockly.addClass_(this.svgGroup_,"blocklyDragging")}else Blockly.draggingConnections_=[],Blockly.removeClass_(this.svgGroup_,"blocklyDragging");for(o=0;o<this.childBlocks_.length;o++)this.childBlocks_[o].setDragging_(e)},Blockly.BlockSvg.prototype.onMouseMove_=function(e){if("mousemove"==e.type&&1>=e.clientX&&0==e.clientY&&0==e.button)e.stopPropagation();else{var o=this.getRelativeToSurfaceXY(),t=this.workspace.moveDrag(e);if(Blockly.dragMode_==Blockly.DRAG_STICKY&&goog.math.Coordinate.distance(o,t)*this.workspace.scale>Blockly.DRAG_RADIUS){if(Blockly.dragMode_=Blockly.DRAG_FREE,Blockly.longStop_(),this.workspace.setResizesEnabled(!1),this.parentBlock_){this.unplug();var n=this.getSvgRoot();n.translate_="translate("+t.x+","+t.y+")",this.disconnectUiEffect()}this.setDragging_(!0)}if(Blockly.dragMode_==Blockly.DRAG_FREE){for(o=goog.math.Coordinate.difference(o,this.dragStartXY_),n=this.getSvgRoot(),n.translate_="translate("+t.x+","+t.y+")",n.setAttribute("transform",n.translate_+n.skew_),t=0;t<this.draggedBubbles_.length;t++)n=this.draggedBubbles_[t],n.bubble.setIconLocation(goog.math.Coordinate.sum(n,o));n=this.getConnections_(!1),(t=this.lastConnectionInStack_())&&t!=this.nextConnection&&n.push(t);for(var r=null,i=null,s=Blockly.SNAP_RADIUS,t=0;t<n.length;t++){var l=n[t],g=l.closest(s,o);g.connection&&(r=g.connection,i=l,s=g.radius)}Blockly.highlightedConnection_&&Blockly.highlightedConnection_!=r&&(Blockly.highlightedConnection_.unhighlight(),Blockly.highlightedConnection_=null,Blockly.localConnection_=null),r&&r!=Blockly.highlightedConnection_&&(r.highlight(),Blockly.highlightedConnection_=r,Blockly.localConnection_=i),this.isDeletable()&&this.workspace.isDeleteArea(e)}e.stopPropagation(),e.preventDefault()}},Blockly.BlockSvg.prototype.updateMovable=function(){this.isMovable()?Blockly.addClass_(this.svgGroup_,"blocklyDraggable"):Blockly.removeClass_(this.svgGroup_,"blocklyDraggable")},Blockly.BlockSvg.prototype.setMovable=function(e){Blockly.BlockSvg.superClass_.setMovable.call(this,e),this.updateMovable()},Blockly.BlockSvg.prototype.setEditable=function(e){Blockly.BlockSvg.superClass_.setEditable.call(this,e),e=this.getIcons();for(var o=0;o<e.length;o++)e[o].updateEditable()},Blockly.BlockSvg.prototype.setShadow=function(e){Blockly.BlockSvg.superClass_.setShadow.call(this,e),this.updateColour()},Blockly.BlockSvg.prototype.getSvgRoot=function(){return this.svgGroup_},Blockly.BlockSvg.prototype.dispose=function(e,o){if(this.workspace){Blockly.Tooltip.hide(),Blockly.Field.startCache();var t=this.workspace;Blockly.selected==this&&(this.unselect(),Blockly.terminateDrag_()),Blockly.ContextMenu.currentBlock==this&&Blockly.ContextMenu.hide(),o&&this.rendered&&(this.unplug(e),this.disposeUiEffect()),this.rendered=!1,Blockly.Events.disable();try{for(var n=this.getIcons(),r=0;r<n.length;r++)n[r].dispose()}finally{Blockly.Events.enable()}Blockly.BlockSvg.superClass_.dispose.call(this,e),goog.dom.removeNode(this.svgGroup_),t.resizeContents(),this.svgPathDark_=this.svgPathLight_=this.svgPath_=this.svgGroup_=null,Blockly.Field.stopCache()}},Blockly.BlockSvg.prototype.disposeUiEffect=function(){this.workspace.playAudio("delete");var e=Blockly.getSvgXY_(this.svgGroup_,this.workspace),o=this.svgGroup_.cloneNode(!0);o.translateX_=e.x,o.translateY_=e.y,o.setAttribute("transform","translate("+o.translateX_+","+o.translateY_+")"),this.workspace.getParentSvg().appendChild(o),o.bBox_=o.getBBox(),Blockly.BlockSvg.disposeUiStep_(o,this.RTL,new Date,this.workspace.scale)},Blockly.BlockSvg.disposeUiStep_=function(e,o,t,n){var r=(new Date-t)/150;r>1?goog.dom.removeNode(e):(e.setAttribute("transform","translate("+(e.translateX_+(o?-1:1)*e.bBox_.width*n/2*r)+","+(e.translateY_+e.bBox_.height*n*r)+") scale("+(1-r)*n+")"),setTimeout(function(){Blockly.BlockSvg.disposeUiStep_(e,o,t,n)},10))},Blockly.BlockSvg.prototype.connectionUiEffect=function(){if(this.workspace.playAudio("click"),!(1>this.workspace.scale)){var e=Blockly.getSvgXY_(this.svgGroup_,this.workspace);this.outputConnection?(e.x+=(this.RTL?3:-3)*this.workspace.scale,e.y+=13*this.workspace.scale):this.previousConnection&&(e.x+=(this.RTL?-23:23)*this.workspace.scale,e.y+=3*this.workspace.scale),e=Blockly.createSvgElement("circle",{cx:e.x,cy:e.y,r:0,fill:"none",stroke:"#888","stroke-width":10},this.workspace.getParentSvg()),Blockly.BlockSvg.connectionUiStep_(e,new Date,this.workspace.scale)}},Blockly.BlockSvg.connectionUiStep_=function(e,o,t){var n=(new Date-o)/150;n>1?goog.dom.removeNode(e):(e.setAttribute("r",25*n*t),e.style.opacity=1-n,Blockly.BlockSvg.disconnectUiStop_.pid_=setTimeout(function(){Blockly.BlockSvg.connectionUiStep_(e,o,t)},10))},Blockly.BlockSvg.prototype.disconnectUiEffect=function(){if(this.workspace.playAudio("disconnect"),!(1>this.workspace.scale)){var e=this.getHeightWidth().height,e=Math.atan(10/e)/Math.PI*180;this.RTL||(e*=-1),Blockly.BlockSvg.disconnectUiStep_(this.svgGroup_,e,new Date)}},Blockly.BlockSvg.disconnectUiStep_=function(e,o,t){var n=(new Date-t)/200;n>1?e.skew_="":(e.skew_="skewX("+Math.round(Math.sin(n*Math.PI*3)*(1-n)*o)+")",Blockly.BlockSvg.disconnectUiStop_.group=e,Blockly.BlockSvg.disconnectUiStop_.pid=setTimeout(function(){Blockly.BlockSvg.disconnectUiStep_(e,o,t)},10)),e.setAttribute("transform",e.translate_+e.skew_)},Blockly.BlockSvg.disconnectUiStop_=function(){if(Blockly.BlockSvg.disconnectUiStop_.group){clearTimeout(Blockly.BlockSvg.disconnectUiStop_.pid);var e=Blockly.BlockSvg.disconnectUiStop_.group;e.skew_="",e.setAttribute("transform",e.translate_),Blockly.BlockSvg.disconnectUiStop_.group=null}},Blockly.BlockSvg.disconnectUiStop_.pid=0,Blockly.BlockSvg.disconnectUiStop_.group=null,Blockly.BlockSvg.prototype.updateColour=function(){if(!this.disabled){var e=this.getColour(),o=goog.color.hexToRgb(e);if(this.isShadow())o=goog.color.lighten(o,.6),e=goog.color.rgbArrayToHex(o),this.svgPathLight_.style.display="none",this.svgPathDark_.setAttribute("fill",e);else{this.svgPathLight_.style.display="";var t=goog.color.rgbArrayToHex(goog.color.lighten(o,.3)),o=goog.color.rgbArrayToHex(goog.color.darken(o,.2));this.svgPathLight_.setAttribute("stroke",t),this.svgPathDark_.setAttribute("fill",o)}for(this.svgPath_.setAttribute("fill",e),e=this.getIcons(),t=0;t<e.length;t++)e[t].updateColour();for(e=0;t=this.inputList[e];e++)for(var n,o=0;n=t.fieldRow[o];o++)n.setText(null)}},Blockly.BlockSvg.prototype.updateDisabled=function(){var e=Blockly.hasClass_(this.svgGroup_,"blocklyDisabled");this.disabled||this.getInheritedDisabled()?e||(Blockly.addClass_(this.svgGroup_,"blocklyDisabled"),this.svgPath_.setAttribute("fill","url(#"+this.workspace.options.disabledPatternId+")")):e&&(Blockly.removeClass_(this.svgGroup_,"blocklyDisabled"),this.updateColour());for(var o,e=this.getChildren(),t=0;o=e[t];t++)o.updateDisabled()},Blockly.BlockSvg.prototype.getCommentText=function(){return this.comment?this.comment.getText().replace(/\s+$/,"").replace(/ +\n/g,"\n"):""},Blockly.BlockSvg.prototype.setCommentText=function(e){var o=!1;goog.isString(e)?(this.comment||(this.comment=new Blockly.Comment(this),o=!0),this.comment.setText(e)):this.comment&&(this.comment.dispose(),o=!0),o&&this.rendered&&(this.render(),this.bumpNeighbours_())},Blockly.BlockSvg.prototype.setWarningText=function(e,o){this.setWarningText.pid_||(this.setWarningText.pid_=Object.create(null));var t=o||"";if(t)this.setWarningText.pid_[t]&&(clearTimeout(this.setWarningText.pid_[t]),delete this.setWarningText.pid_[t]);else for(var n in this.setWarningText.pid_)clearTimeout(this.setWarningText.pid_[n]),delete this.setWarningText.pid_[n];if(Blockly.dragMode_==Blockly.DRAG_FREE){var r=this;this.setWarningText.pid_[t]=setTimeout(function(){r.workspace&&(delete r.setWarningText.pid_[t],r.setWarningText(e,t))},100)}else{this.isInFlyout&&(e=null),n=this.getSurroundParent();for(var i=null;n;)n.isCollapsed()&&(i=n),n=n.getSurroundParent();i&&i.setWarningText(e,"collapsed "+this.id+" "+t),n=!1,goog.isString(e)?(this.warning||(this.warning=new Blockly.Warning(this),n=!0),this.warning.setText(e,t)):this.warning&&!t?(this.warning.dispose(),n=!0):this.warning&&(n=this.warning.getText(),this.warning.setText("",t),(i=this.warning.getText())||this.warning.dispose(),n=n==i),n&&this.rendered&&(this.render(),this.bumpNeighbours_())}},Blockly.BlockSvg.prototype.setMutator=function(e){this.mutator&&this.mutator!==e&&this.mutator.dispose(),e&&(e.block_=this,this.mutator=e,e.createIcon())},Blockly.BlockSvg.prototype.setDisabled=function(e){this.disabled!=e&&(Blockly.BlockSvg.superClass_.setDisabled.call(this,e),this.rendered&&this.updateDisabled())},Blockly.BlockSvg.prototype.setHighlighted=function(e){e?(this.svgPath_.setAttribute("filter","url(#"+this.workspace.options.embossFilterId+")"),this.svgPathLight_.style.display="none"):(this.svgPath_.removeAttribute("filter"),this.svgPathLight_.style.display="block")},Blockly.BlockSvg.prototype.addSelect=function(){Blockly.addClass_(this.svgGroup_,"blocklySelected");var e=this;do{var o=e.getSvgRoot();o.parentNode.appendChild(o),e=e.getParent()}while(e)},Blockly.BlockSvg.prototype.removeSelect=function(){Blockly.removeClass_(this.svgGroup_,"blocklySelected")},Blockly.BlockSvg.prototype.setColour=function(e){Blockly.BlockSvg.superClass_.setColour.call(this,e),this.rendered&&this.updateColour()},Blockly.BlockSvg.prototype.setPreviousStatement=function(e,o){Blockly.BlockSvg.superClass_.setPreviousStatement.call(this,e,o),this.rendered&&(this.render(),this.bumpNeighbours_())},Blockly.BlockSvg.prototype.setNextStatement=function(e,o){Blockly.BlockSvg.superClass_.setNextStatement.call(this,e,o),this.rendered&&(this.render(),this.bumpNeighbours_())},Blockly.BlockSvg.prototype.setOutput=function(e,o){Blockly.BlockSvg.superClass_.setOutput.call(this,e,o),this.rendered&&(this.render(),this.bumpNeighbours_())},Blockly.BlockSvg.prototype.setInputsInline=function(e){Blockly.BlockSvg.superClass_.setInputsInline.call(this,e),this.rendered&&(this.render(),this.bumpNeighbours_())},Blockly.BlockSvg.prototype.removeInput=function(e,o){Blockly.BlockSvg.superClass_.removeInput.call(this,e,o),this.rendered&&(this.render(),this.bumpNeighbours_())},Blockly.BlockSvg.prototype.moveNumberedInputBefore=function(e,o){
-Blockly.BlockSvg.superClass_.moveNumberedInputBefore.call(this,e,o),this.rendered&&(this.render(),this.bumpNeighbours_())},Blockly.BlockSvg.prototype.appendInput_=function(e,o){var t=Blockly.BlockSvg.superClass_.appendInput_.call(this,e,o);return this.rendered&&(this.render(),this.bumpNeighbours_()),t},Blockly.BlockSvg.prototype.getConnections_=function(e){var o=[];if((e||this.rendered)&&(this.outputConnection&&o.push(this.outputConnection),this.previousConnection&&o.push(this.previousConnection),this.nextConnection&&o.push(this.nextConnection),e||!this.collapsed_)){e=0;for(var t;t=this.inputList[e];e++)t.connection&&o.push(t.connection)}return o},Blockly.BlockSvg.prototype.makeConnection_=function(e){return new Blockly.RenderedConnection(this,e)},Blockly.BlockSvg.render={},Blockly.BlockSvg.SEP_SPACE_X=10,Blockly.BlockSvg.SEP_SPACE_Y=10,Blockly.BlockSvg.INLINE_PADDING_Y=5,Blockly.BlockSvg.MIN_BLOCK_Y=25,Blockly.BlockSvg.TAB_HEIGHT=20,Blockly.BlockSvg.TAB_WIDTH=8,Blockly.BlockSvg.NOTCH_WIDTH=30,Blockly.BlockSvg.CORNER_RADIUS=8,Blockly.BlockSvg.START_HAT=!1,Blockly.BlockSvg.START_HAT_HEIGHT=15,Blockly.BlockSvg.START_HAT_PATH="c 30,-"+Blockly.BlockSvg.START_HAT_HEIGHT+" 70,-"+Blockly.BlockSvg.START_HAT_HEIGHT+" 100,0",Blockly.BlockSvg.START_HAT_HIGHLIGHT_LTR="c 17.8,-9.2 45.3,-14.9 75,-8.7 M 100.5,0.5",Blockly.BlockSvg.START_HAT_HIGHLIGHT_RTL="m 25,-8.7 c 29.7,-6.2 57.2,-0.5 75,8.7",Blockly.BlockSvg.DISTANCE_45_INSIDE=(1-Math.SQRT1_2)*(Blockly.BlockSvg.CORNER_RADIUS-.5)+.5,Blockly.BlockSvg.DISTANCE_45_OUTSIDE=(1-Math.SQRT1_2)*(Blockly.BlockSvg.CORNER_RADIUS+.5)-.5,Blockly.BlockSvg.NOTCH_PATH_LEFT="l 6,4 3,0 6,-4",Blockly.BlockSvg.NOTCH_PATH_LEFT_HIGHLIGHT="l 6,4 3,0 6,-4",Blockly.BlockSvg.NOTCH_PATH_RIGHT="l -6,4 -3,0 -6,-4",Blockly.BlockSvg.JAGGED_TEETH="l 8,0 0,4 8,4 -16,8 8,4",Blockly.BlockSvg.JAGGED_TEETH_HEIGHT=20,Blockly.BlockSvg.JAGGED_TEETH_WIDTH=15,Blockly.BlockSvg.TAB_PATH_DOWN="v 5 c 0,10 -"+Blockly.BlockSvg.TAB_WIDTH+",-8 -"+Blockly.BlockSvg.TAB_WIDTH+",7.5 s "+Blockly.BlockSvg.TAB_WIDTH+",-2.5 "+Blockly.BlockSvg.TAB_WIDTH+",7.5",Blockly.BlockSvg.TAB_PATH_DOWN_HIGHLIGHT_RTL="v 6.5 m -"+.97*Blockly.BlockSvg.TAB_WIDTH+",3 q -"+.05*Blockly.BlockSvg.TAB_WIDTH+",10 "+.3*Blockly.BlockSvg.TAB_WIDTH+",9.5 m "+.67*Blockly.BlockSvg.TAB_WIDTH+",-1.9 v 1.4",Blockly.BlockSvg.TOP_LEFT_CORNER_START="m 0,"+Blockly.BlockSvg.CORNER_RADIUS,Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_RTL="m "+Blockly.BlockSvg.DISTANCE_45_INSIDE+","+Blockly.BlockSvg.DISTANCE_45_INSIDE,Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_LTR="m 0.5,"+(Blockly.BlockSvg.CORNER_RADIUS-.5),Blockly.BlockSvg.TOP_LEFT_CORNER="A "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,1 "+Blockly.BlockSvg.CORNER_RADIUS+",0",Blockly.BlockSvg.TOP_LEFT_CORNER_HIGHLIGHT="A "+(Blockly.BlockSvg.CORNER_RADIUS-.5)+","+(Blockly.BlockSvg.CORNER_RADIUS-.5)+" 0 0,1 "+Blockly.BlockSvg.CORNER_RADIUS+",0.5",Blockly.BlockSvg.INNER_TOP_LEFT_CORNER=Blockly.BlockSvg.NOTCH_PATH_RIGHT+" h -"+(Blockly.BlockSvg.NOTCH_WIDTH-15-Blockly.BlockSvg.CORNER_RADIUS)+" a "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 -"+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS,Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER="a "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS,Blockly.BlockSvg.INNER_TOP_LEFT_CORNER_HIGHLIGHT_RTL="a "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 "+(-Blockly.BlockSvg.DISTANCE_45_OUTSIDE-.5)+","+(Blockly.BlockSvg.CORNER_RADIUS-Blockly.BlockSvg.DISTANCE_45_OUTSIDE),Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_RTL="a "+(Blockly.BlockSvg.CORNER_RADIUS+.5)+","+(Blockly.BlockSvg.CORNER_RADIUS+.5)+" 0 0,0 "+(Blockly.BlockSvg.CORNER_RADIUS+.5)+","+(Blockly.BlockSvg.CORNER_RADIUS+.5),Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_LTR="a "+(Blockly.BlockSvg.CORNER_RADIUS+.5)+","+(Blockly.BlockSvg.CORNER_RADIUS+.5)+" 0 0,0 "+(Blockly.BlockSvg.CORNER_RADIUS-Blockly.BlockSvg.DISTANCE_45_OUTSIDE)+","+(Blockly.BlockSvg.DISTANCE_45_OUTSIDE+.5),Blockly.BlockSvg.prototype.render=function(e){Blockly.Field.startCache(),this.rendered=!0;var o=Blockly.BlockSvg.SEP_SPACE_X;this.RTL&&(o=-o);for(var t=this.getIcons(),n=0;n<t.length;n++)o=t[n].renderIcon(o);o+=this.RTL?Blockly.BlockSvg.SEP_SPACE_X:-Blockly.BlockSvg.SEP_SPACE_X,t=this.renderCompute_(o),this.renderDraw_(o,t),this.renderMoveConnections_(),!1!==e&&((e=this.getParent())?e.render(!0):this.workspace.resizeContents()),Blockly.Field.stopCache()},Blockly.BlockSvg.prototype.renderFields_=function(e,o,t){t+=Blockly.BlockSvg.INLINE_PADDING_Y,this.RTL&&(o=-o);for(var n,r=0;n=e[r];r++){var i=n.getSvgRoot();i&&(this.RTL?(o-=n.renderSep+n.renderWidth,i.setAttribute("transform","translate("+o+","+t+")"),n.renderWidth&&(o-=Blockly.BlockSvg.SEP_SPACE_X)):(i.setAttribute("transform","translate("+(o+n.renderSep)+","+t+")"),n.renderWidth&&(o+=n.renderSep+n.renderWidth+Blockly.BlockSvg.SEP_SPACE_X)))}return this.RTL?-o:o},Blockly.BlockSvg.prototype.renderCompute_=function(e){var o=this.inputList,t=[];t.rightEdge=e+2*Blockly.BlockSvg.SEP_SPACE_X,(this.previousConnection||this.nextConnection)&&(t.rightEdge=Math.max(t.rightEdge,Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.SEP_SPACE_X));for(var n,r=0,i=0,s=!1,l=!1,g=!1,a=void 0,c=this.getInputsInline()&&!this.isCollapsed(),u=0;n=o[u];u++)if(n.isVisible()){var h;if(c&&a&&a!=Blockly.NEXT_STATEMENT&&n.type!=Blockly.NEXT_STATEMENT?h=t[t.length-1]:(a=n.type,h=[],h.type=c&&n.type!=Blockly.NEXT_STATEMENT?Blockly.BlockSvg.INLINE:n.type,h.height=0,t.push(h)),h.push(n),n.renderHeight=Blockly.BlockSvg.MIN_BLOCK_Y,n.renderWidth=c&&n.type==Blockly.INPUT_VALUE?Blockly.BlockSvg.TAB_WIDTH+1.25*Blockly.BlockSvg.SEP_SPACE_X:0,n.connection&&n.connection.isConnected()){var d=n.connection.targetBlock().getHeightWidth();n.renderHeight=Math.max(n.renderHeight,d.height),n.renderWidth=Math.max(n.renderWidth,d.width)}c||u!=o.length-1?!c&&n.type==Blockly.INPUT_VALUE&&o[u+1]&&o[u+1].type==Blockly.NEXT_STATEMENT&&n.renderHeight--:n.renderHeight--,h.height=Math.max(h.height,n.renderHeight),n.fieldWidth=0,1==t.length&&(n.fieldWidth+=this.RTL?-e:e);for(var p,d=!1,y=0;p=n.fieldRow[y];y++){0!=y&&(n.fieldWidth+=Blockly.BlockSvg.SEP_SPACE_X);var f=p.getSize();p.renderWidth=f.width,p.renderSep=d&&p.EDITABLE?Blockly.BlockSvg.SEP_SPACE_X:0,n.fieldWidth+=p.renderWidth+p.renderSep,h.height=Math.max(h.height,f.height),d=p.EDITABLE}h.type!=Blockly.BlockSvg.INLINE&&(h.type==Blockly.NEXT_STATEMENT?(l=!0,i=Math.max(i,n.fieldWidth)):(h.type==Blockly.INPUT_VALUE?s=!0:h.type==Blockly.DUMMY_INPUT&&(g=!0),r=Math.max(r,n.fieldWidth)))}for(e=0;h=t[e];e++)if(h.thicker=!1,h.type==Blockly.BlockSvg.INLINE)for(o=0;n=h[o];o++)if(n.type==Blockly.INPUT_VALUE){h.height+=2*Blockly.BlockSvg.INLINE_PADDING_Y,h.thicker=!0;break}return t.statementEdge=2*Blockly.BlockSvg.SEP_SPACE_X+i,l&&(t.rightEdge=Math.max(t.rightEdge,t.statementEdge+Blockly.BlockSvg.NOTCH_WIDTH)),s?t.rightEdge=Math.max(t.rightEdge,r+2*Blockly.BlockSvg.SEP_SPACE_X+Blockly.BlockSvg.TAB_WIDTH):g&&(t.rightEdge=Math.max(t.rightEdge,r+2*Blockly.BlockSvg.SEP_SPACE_X)),t.hasValue=s,t.hasStatement=l,t.hasDummy=g,t},Blockly.BlockSvg.prototype.renderDraw_=function(e,o){if(this.startHat_=!1,this.height=0,this.outputConnection)this.squareBottomLeftCorner_=this.squareTopLeftCorner_=!0;else{if(this.squareBottomLeftCorner_=this.squareTopLeftCorner_=!1,this.previousConnection){var t=this.previousConnection.targetBlock();t&&t.getNextBlock()==this&&(this.squareTopLeftCorner_=!0)}else Blockly.BlockSvg.START_HAT&&(this.startHat_=this.squareTopLeftCorner_=!0,this.height+=Blockly.BlockSvg.START_HAT_HEIGHT,o.rightEdge=Math.max(o.rightEdge,100));this.getNextBlock()&&(this.squareBottomLeftCorner_=!0)}var n=[],r=[],t=[],i=[];this.renderDrawTop_(n,t,o.rightEdge);var s=this.renderDrawRight_(n,t,r,i,o,e);this.renderDrawBottom_(n,t,s),this.renderDrawLeft_(n,t),n=n.join(" ")+"\n"+r.join(" "),this.svgPath_.setAttribute("d",n),this.svgPathDark_.setAttribute("d",n),n=t.join(" ")+"\n"+i.join(" "),this.svgPathLight_.setAttribute("d",n),this.RTL&&(this.svgPath_.setAttribute("transform","scale(-1 1)"),this.svgPathLight_.setAttribute("transform","scale(-1 1)"),this.svgPathDark_.setAttribute("transform","translate(1,1) scale(-1 1)"))},Blockly.BlockSvg.prototype.renderMoveConnections_=function(){var e=this.getRelativeToSurfaceXY();this.previousConnection&&this.previousConnection.moveToOffset(e),this.outputConnection&&this.outputConnection.moveToOffset(e);for(var o=0;o<this.inputList.length;o++){var t=this.inputList[o].connection;t&&(t.moveToOffset(e),t.isConnected()&&t.tighten_())}this.nextConnection&&(this.nextConnection.moveToOffset(e),this.nextConnection.isConnected()&&this.nextConnection.tighten_())},Blockly.BlockSvg.prototype.renderDrawTop_=function(e,o,t){this.squareTopLeftCorner_?(e.push("m 0,0"),o.push("m 0.5,0.5"),this.startHat_&&(e.push(Blockly.BlockSvg.START_HAT_PATH),o.push(this.RTL?Blockly.BlockSvg.START_HAT_HIGHLIGHT_RTL:Blockly.BlockSvg.START_HAT_HIGHLIGHT_LTR))):(e.push(Blockly.BlockSvg.TOP_LEFT_CORNER_START),o.push(this.RTL?Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_RTL:Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_LTR),e.push(Blockly.BlockSvg.TOP_LEFT_CORNER),o.push(Blockly.BlockSvg.TOP_LEFT_CORNER_HIGHLIGHT)),this.previousConnection&&(e.push("H",Blockly.BlockSvg.NOTCH_WIDTH-15),o.push("H",Blockly.BlockSvg.NOTCH_WIDTH-15),e.push(Blockly.BlockSvg.NOTCH_PATH_LEFT),o.push(Blockly.BlockSvg.NOTCH_PATH_LEFT_HIGHLIGHT),this.previousConnection.setOffsetInBlock(this.RTL?-Blockly.BlockSvg.NOTCH_WIDTH:Blockly.BlockSvg.NOTCH_WIDTH,0)),e.push("H",t),o.push("H",t-.5),this.width=t},Blockly.BlockSvg.prototype.renderDrawRight_=function(e,o,t,n,r,i){for(var s,l,g,a,c=0,u=0;a=r[u];u++){if(s=Blockly.BlockSvg.SEP_SPACE_X,0==u&&(s+=this.RTL?-i:i),o.push("M",r.rightEdge-.5+","+(c+.5)),this.isCollapsed()){var h=a[0];l=c,this.renderFields_(h.fieldRow,s,l),e.push(Blockly.BlockSvg.JAGGED_TEETH),o.push("h 8"),h=a.height-Blockly.BlockSvg.JAGGED_TEETH_HEIGHT,e.push("v",h),this.RTL&&(o.push("v 3.9 l 7.2,3.4 m -14.5,8.9 l 7.3,3.5"),o.push("v",h-.7)),this.width+=Blockly.BlockSvg.JAGGED_TEETH_WIDTH}else if(a.type==Blockly.BlockSvg.INLINE){for(var d=0;h=a[d];d++)l=c,a.thicker&&(l+=Blockly.BlockSvg.INLINE_PADDING_Y),s=this.renderFields_(h.fieldRow,s,l),h.type!=Blockly.DUMMY_INPUT&&(s+=h.renderWidth+Blockly.BlockSvg.SEP_SPACE_X),h.type==Blockly.INPUT_VALUE&&(t.push("M",s-Blockly.BlockSvg.SEP_SPACE_X+","+(c+Blockly.BlockSvg.INLINE_PADDING_Y)),t.push("h",Blockly.BlockSvg.TAB_WIDTH-2-h.renderWidth),t.push(Blockly.BlockSvg.TAB_PATH_DOWN),t.push("v",h.renderHeight+1-Blockly.BlockSvg.TAB_HEIGHT),t.push("h",h.renderWidth+2-Blockly.BlockSvg.TAB_WIDTH),t.push("z"),this.RTL?(n.push("M",s-Blockly.BlockSvg.SEP_SPACE_X-2.5+Blockly.BlockSvg.TAB_WIDTH-h.renderWidth+","+(c+Blockly.BlockSvg.INLINE_PADDING_Y+.5)),n.push(Blockly.BlockSvg.TAB_PATH_DOWN_HIGHLIGHT_RTL),n.push("v",h.renderHeight-Blockly.BlockSvg.TAB_HEIGHT+2.5),n.push("h",h.renderWidth-Blockly.BlockSvg.TAB_WIDTH+2)):(n.push("M",s-Blockly.BlockSvg.SEP_SPACE_X+.5+","+(c+Blockly.BlockSvg.INLINE_PADDING_Y+.5)),n.push("v",h.renderHeight+1),n.push("h",Blockly.BlockSvg.TAB_WIDTH-2-h.renderWidth),n.push("M",s-h.renderWidth-Blockly.BlockSvg.SEP_SPACE_X+.9+","+(c+Blockly.BlockSvg.INLINE_PADDING_Y+Blockly.BlockSvg.TAB_HEIGHT-.7)),n.push("l",.46*Blockly.BlockSvg.TAB_WIDTH+",-2.1")),l=this.RTL?-s-Blockly.BlockSvg.TAB_WIDTH+Blockly.BlockSvg.SEP_SPACE_X+h.renderWidth+1:s+Blockly.BlockSvg.TAB_WIDTH-Blockly.BlockSvg.SEP_SPACE_X-h.renderWidth-1,g=c+Blockly.BlockSvg.INLINE_PADDING_Y+1,h.connection.setOffsetInBlock(l,g));s=Math.max(s,r.rightEdge),this.width=Math.max(this.width,s),e.push("H",s),o.push("H",s-.5),e.push("v",a.height),this.RTL&&o.push("v",a.height-1)}else a.type==Blockly.INPUT_VALUE?(h=a[0],l=c,h.align!=Blockly.ALIGN_LEFT&&(d=r.rightEdge-h.fieldWidth-Blockly.BlockSvg.TAB_WIDTH-2*Blockly.BlockSvg.SEP_SPACE_X,h.align==Blockly.ALIGN_RIGHT?s+=d:h.align==Blockly.ALIGN_CENTRE&&(s+=d/2)),this.renderFields_(h.fieldRow,s,l),e.push(Blockly.BlockSvg.TAB_PATH_DOWN),d=a.height-Blockly.BlockSvg.TAB_HEIGHT,e.push("v",d),this.RTL?(o.push(Blockly.BlockSvg.TAB_PATH_DOWN_HIGHLIGHT_RTL),o.push("v",d+.5)):(o.push("M",r.rightEdge-5+","+(c+Blockly.BlockSvg.TAB_HEIGHT-.7)),o.push("l",.46*Blockly.BlockSvg.TAB_WIDTH+",-2.1")),l=this.RTL?-r.rightEdge-1:r.rightEdge+1,h.connection.setOffsetInBlock(l,c),h.connection.isConnected()&&(this.width=Math.max(this.width,r.rightEdge+h.connection.targetBlock().getHeightWidth().width-Blockly.BlockSvg.TAB_WIDTH+1))):a.type==Blockly.DUMMY_INPUT?(h=a[0],l=c,h.align!=Blockly.ALIGN_LEFT&&(d=r.rightEdge-h.fieldWidth-2*Blockly.BlockSvg.SEP_SPACE_X,r.hasValue&&(d-=Blockly.BlockSvg.TAB_WIDTH),h.align==Blockly.ALIGN_RIGHT?s+=d:h.align==Blockly.ALIGN_CENTRE&&(s+=d/2)),this.renderFields_(h.fieldRow,s,l),e.push("v",a.height),this.RTL&&o.push("v",a.height-1)):a.type==Blockly.NEXT_STATEMENT&&(h=a[0],0==u&&(e.push("v",Blockly.BlockSvg.SEP_SPACE_Y),this.RTL&&o.push("v",Blockly.BlockSvg.SEP_SPACE_Y-1),c+=Blockly.BlockSvg.SEP_SPACE_Y),l=c,h.align!=Blockly.ALIGN_LEFT&&(d=r.statementEdge-h.fieldWidth-2*Blockly.BlockSvg.SEP_SPACE_X,h.align==Blockly.ALIGN_RIGHT?s+=d:h.align==Blockly.ALIGN_CENTRE&&(s+=d/2)),this.renderFields_(h.fieldRow,s,l),s=r.statementEdge+Blockly.BlockSvg.NOTCH_WIDTH,e.push("H",s),e.push(Blockly.BlockSvg.INNER_TOP_LEFT_CORNER),e.push("v",a.height-2*Blockly.BlockSvg.CORNER_RADIUS),e.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER),e.push("H",r.rightEdge),this.RTL?(o.push("M",s-Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.DISTANCE_45_OUTSIDE+","+(c+Blockly.BlockSvg.DISTANCE_45_OUTSIDE)),o.push(Blockly.BlockSvg.INNER_TOP_LEFT_CORNER_HIGHLIGHT_RTL),o.push("v",a.height-2*Blockly.BlockSvg.CORNER_RADIUS),o.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_RTL)):(o.push("M",s-Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.DISTANCE_45_OUTSIDE+","+(c+a.height-Blockly.BlockSvg.DISTANCE_45_OUTSIDE)),o.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_LTR)),o.push("H",r.rightEdge-.5),l=this.RTL?-s:s+1,h.connection.setOffsetInBlock(l,c+1),h.connection.isConnected()&&(this.width=Math.max(this.width,r.statementEdge+h.connection.targetBlock().getHeightWidth().width)),u==r.length-1||r[u+1].type==Blockly.NEXT_STATEMENT)&&(e.push("v",Blockly.BlockSvg.SEP_SPACE_Y),this.RTL&&o.push("v",Blockly.BlockSvg.SEP_SPACE_Y-1),c+=Blockly.BlockSvg.SEP_SPACE_Y);c+=a.height}return r.length||(c=Blockly.BlockSvg.MIN_BLOCK_Y,e.push("V",c),this.RTL&&o.push("V",c-1)),c},Blockly.BlockSvg.prototype.renderDrawBottom_=function(e,o,t){this.height+=t+1,this.nextConnection&&(e.push("H",Blockly.BlockSvg.NOTCH_WIDTH+(this.RTL?.5:-.5)+" "+Blockly.BlockSvg.NOTCH_PATH_RIGHT),this.nextConnection.setOffsetInBlock(this.RTL?-Blockly.BlockSvg.NOTCH_WIDTH:Blockly.BlockSvg.NOTCH_WIDTH,t+1),this.height+=4),this.squareBottomLeftCorner_?(e.push("H 0"),this.RTL||o.push("M","0.5,"+(t-.5))):(e.push("H",Blockly.BlockSvg.CORNER_RADIUS),e.push("a",Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,1 -"+Blockly.BlockSvg.CORNER_RADIUS+",-"+Blockly.BlockSvg.CORNER_RADIUS),this.RTL||(o.push("M",Blockly.BlockSvg.DISTANCE_45_INSIDE+","+(t-Blockly.BlockSvg.DISTANCE_45_INSIDE)),o.push("A",Blockly.BlockSvg.CORNER_RADIUS-.5+","+(Blockly.BlockSvg.CORNER_RADIUS-.5)+" 0 0,1 0.5,"+(t-Blockly.BlockSvg.CORNER_RADIUS))))},Blockly.BlockSvg.prototype.renderDrawLeft_=function(e,o){this.outputConnection?(this.outputConnection.setOffsetInBlock(0,0),e.push("V",Blockly.BlockSvg.TAB_HEIGHT),e.push("c 0,-10 -"+Blockly.BlockSvg.TAB_WIDTH+",8 -"+Blockly.BlockSvg.TAB_WIDTH+",-7.5 s "+Blockly.BlockSvg.TAB_WIDTH+",2.5 "+Blockly.BlockSvg.TAB_WIDTH+",-7.5"),this.RTL?(o.push("M",-.25*Blockly.BlockSvg.TAB_WIDTH+",8.4"),o.push("l",-.45*Blockly.BlockSvg.TAB_WIDTH+",-2.1")):(o.push("V",Blockly.BlockSvg.TAB_HEIGHT-1.5),o.push("m",-.92*Blockly.BlockSvg.TAB_WIDTH+",-0.5 q "+-.19*Blockly.BlockSvg.TAB_WIDTH+",-5.5 0,-11"),o.push("m",.92*Blockly.BlockSvg.TAB_WIDTH+",1 V 0.5 H 1")),this.width+=Blockly.BlockSvg.TAB_WIDTH):this.RTL||(this.squareTopLeftCorner_?o.push("V",.5):o.push("V",Blockly.BlockSvg.CORNER_RADIUS)),e.push("z")},Blockly.Events={},Blockly.Events.group_="",Blockly.Events.recordUndo=!0,Blockly.Events.disabled_=0,Blockly.Events.CREATE="create",Blockly.Events.DELETE="delete",Blockly.Events.CHANGE="change",Blockly.Events.MOVE="move",Blockly.Events.UI="ui",Blockly.Events.FIRE_QUEUE_=[],Blockly.Events.fire=function(e){Blockly.Events.isEnabled()&&(Blockly.Events.FIRE_QUEUE_.length||setTimeout(Blockly.Events.fireNow_,0),Blockly.Events.FIRE_QUEUE_.push(e))},Blockly.Events.fireNow_=function(){for(var e,o=Blockly.Events.filter(Blockly.Events.FIRE_QUEUE_,!0),t=Blockly.Events.FIRE_QUEUE_.length=0;e=o[t];t++){var n=Blockly.Workspace.getById(e.workspaceId);n&&n.fireChangeListener(e)}},Blockly.Events.filter=function(e,o){var t=goog.array.clone(e);o||t.reverse();for(var n,r=0;n=t[r];r++)for(var i,s=r+1;i=t[s];s++)n.type==i.type&&n.blockId==i.blockId&&n.workspaceId==i.workspaceId&&(n.type==Blockly.Events.MOVE?(n.newParentId=i.newParentId,n.newInputName=i.newInputName,n.newCoordinate=i.newCoordinate,t.splice(s,1),s--):n.type==Blockly.Events.CHANGE&&n.element==i.element&&n.name==i.name?(n.newValue=i.newValue,t.splice(s,1),s--):n.type!=Blockly.Events.UI||"click"!=i.element||"commentOpen"!=n.element&&"mutatorOpen"!=n.element&&"warningOpen"!=n.element||(n.newValue=i.newValue,t.splice(s,1),s--));for(r=t.length-1;r>=0;r--)t[r].isNull()&&t.splice(r,1);for(o||t.reverse(),r=1;n=t[r];r++)n.type==Blockly.Events.CHANGE&&"mutation"==n.element&&t.unshift(t.splice(r,1)[0]);return t},Blockly.Events.clearPendingUndo=function(){for(var e,o=0;e=Blockly.Events.FIRE_QUEUE_[o];o++)e.recordUndo=!1},Blockly.Events.disable=function(){Blockly.Events.disabled_++},Blockly.Events.enable=function(){Blockly.Events.disabled_--},Blockly.Events.isEnabled=function(){return 0==Blockly.Events.disabled_},Blockly.Events.getGroup=function(){return Blockly.Events.group_},Blockly.Events.setGroup=function(e){Blockly.Events.group_="boolean"==typeof e?e?Blockly.genUid():"":e},Blockly.Events.getDescendantIds_=function(e){var o=[];e=e.getDescendants();for(var t,n=0;t=e[n];n++)o[n]=t.id;return o},Blockly.Events.fromJson=function(e,o){var t;switch(e.type){case Blockly.Events.CREATE:t=new Blockly.Events.Create(null);break;case Blockly.Events.DELETE:t=new Blockly.Events.Delete(null);break;case Blockly.Events.CHANGE:t=new Blockly.Events.Change(null);break;case Blockly.Events.MOVE:t=new Blockly.Events.Move(null);break;case Blockly.Events.UI:t=new Blockly.Events.Ui(null);break;default:throw"Unknown event type."}return t.fromJson(e),t.workspaceId=o.id,t},Blockly.Events.Abstract=function(e){e&&(this.blockId=e.id,this.workspaceId=e.workspace.id),this.group=Blockly.Events.group_,this.recordUndo=Blockly.Events.recordUndo},Blockly.Events.Abstract.prototype.toJson=function(){var e={type:this.type};return this.blockId&&(e.blockId=this.blockId),this.group&&(e.group=this.group),e},Blockly.Events.Abstract.prototype.fromJson=function(e){this.blockId=e.blockId,this.group=e.group},Blockly.Events.Abstract.prototype.isNull=function(){return!1},Blockly.Events.Abstract.prototype.run=function(e){},Blockly.Events.Create=function(e){e&&(Blockly.Events.Create.superClass_.constructor.call(this,e),this.xml=Blockly.Xml.blockToDomWithXY(e),this.ids=Blockly.Events.getDescendantIds_(e))},goog.inherits(Blockly.Events.Create,Blockly.Events.Abstract),Blockly.Events.Create.prototype.type=Blockly.Events.CREATE,Blockly.Events.Create.prototype.toJson=function(){var e=Blockly.Events.Create.superClass_.toJson.call(this);return e.xml=Blockly.Xml.domToText(this.xml),e.ids=this.ids,e},Blockly.Events.Create.prototype.fromJson=function(e){Blockly.Events.Create.superClass_.fromJson.call(this,e),this.xml=Blockly.Xml.textToDom("<xml>"+e.xml+"</xml>").firstChild,this.ids=e.ids},Blockly.Events.Create.prototype.run=function(e){var o=Blockly.Workspace.getById(this.workspaceId);if(e)e=goog.dom.createDom("xml"),e.appendChild(this.xml),Blockly.Xml.domToWorkspace(e,o);else{e=0;for(var t;t=this.ids[e];e++){var n=o.getBlockById(t);n?n.dispose(!1,!1):t==this.blockId&&console.warn("Can't uncreate non-existant block: "+t)}}},Blockly.Events.Delete=function(e){if(e){if(e.getParent())throw"Connected blocks cannot be deleted.";Blockly.Events.Delete.superClass_.constructor.call(this,e),this.oldXml=Blockly.Xml.blockToDomWithXY(e),this.ids=Blockly.Events.getDescendantIds_(e)}},goog.inherits(Blockly.Events.Delete,Blockly.Events.Abstract),Blockly.Events.Delete.prototype.type=Blockly.Events.DELETE,Blockly.Events.Delete.prototype.toJson=function(){var e=Blockly.Events.Delete.superClass_.toJson.call(this);return e.ids=this.ids,e},Blockly.Events.Delete.prototype.fromJson=function(e){Blockly.Events.Delete.superClass_.fromJson.call(this,e),this.ids=e.ids},Blockly.Events.Delete.prototype.run=function(e){var o=Blockly.Workspace.getById(this.workspaceId);if(e){e=0;for(var t;t=this.ids[e];e++){var n=o.getBlockById(t);n?n.dispose(!1,!1):t==this.blockId&&console.warn("Can't delete non-existant block: "+t)}}else e=goog.dom.createDom("xml"),e.appendChild(this.oldXml),Blockly.Xml.domToWorkspace(e,o)},Blockly.Events.Change=function(e,o,t,n,r){e&&(Blockly.Events.Change.superClass_.constructor.call(this,e),this.element=o,this.name=t,this.oldValue=n,this.newValue=r)},goog.inherits(Blockly.Events.Change,Blockly.Events.Abstract),Blockly.Events.Change.prototype.type=Blockly.Events.CHANGE,Blockly.Events.Change.prototype.toJson=function(){var e=Blockly.Events.Change.superClass_.toJson.call(this);return e.element=this.element,this.name&&(e.name=this.name),e.newValue=this.newValue,e},Blockly.Events.Change.prototype.fromJson=function(e){Blockly.Events.Change.superClass_.fromJson.call(this,e),this.element=e.element,this.name=e.name,this.newValue=e.newValue},Blockly.Events.Change.prototype.isNull=function(){return this.oldValue==this.newValue},Blockly.Events.Change.prototype.run=function(e){var o=Blockly.Workspace.getById(this.workspaceId).getBlockById(this.blockId);if(o)switch(o.mutator&&o.mutator.setVisible(!1),e=e?this.newValue:this.oldValue,this.element){case"field":(o=o.getField(this.name))?(o.callValidator(e),o.setValue(e)):console.warn("Can't set non-existant field: "+this.name);break;case"comment":o.setCommentText(e||null);break;case"collapsed":o.setCollapsed(e);break;case"disabled":o.setDisabled(e);break;case"inline":o.setInputsInline(e);break;case"mutation":var t="";if(o.mutationToDom&&(t=(t=o.mutationToDom())&&Blockly.Xml.domToText(t)),o.domToMutation){e=e||"<mutation></mutation>";var n=Blockly.Xml.textToDom("<xml>"+e+"</xml>");o.domToMutation(n.firstChild)}Blockly.Events.fire(new Blockly.Events.Change(o,"mutation",null,t,e));break;default:console.warn("Unknown change type: "+this.element)}else console.warn("Can't change non-existant block: "+this.blockId)},Blockly.Events.Move=function(e){e&&(Blockly.Events.Move.superClass_.constructor.call(this,e),e=this.currentLocation_(),this.oldParentId=e.parentId,this.oldInputName=e.inputName,this.oldCoordinate=e.coordinate)},goog.inherits(Blockly.Events.Move,Blockly.Events.Abstract),Blockly.Events.Move.prototype.type=Blockly.Events.MOVE,Blockly.Events.Move.prototype.toJson=function(){var e=Blockly.Events.Move.superClass_.toJson.call(this);return this.newParentId&&(e.newParentId=this.newParentId),this.newInputName&&(e.newInputName=this.newInputName),this.newCoordinate&&(e.newCoordinate=Math.round(this.newCoordinate.x)+","+Math.round(this.newCoordinate.y)),e},Blockly.Events.Move.prototype.fromJson=function(e){Blockly.Events.Move.superClass_.fromJson.call(this,e),this.newParentId=e.newParentId,this.newInputName=e.newInputName,e.newCoordinate&&(e=e.newCoordinate.split(","),this.newCoordinate=new goog.math.Coordinate(parseFloat(e[0]),parseFloat(e[1])))},Blockly.Events.Move.prototype.recordNew=function(){var e=this.currentLocation_();this.newParentId=e.parentId,this.newInputName=e.inputName,this.newCoordinate=e.coordinate},Blockly.Events.Move.prototype.currentLocation_=function(){var e=Blockly.Workspace.getById(this.workspaceId).getBlockById(this.blockId),o={},t=e.getParent();return t?(o.parentId=t.id,(e=t.getInputWithBlock(e))&&(o.inputName=e.name)):o.coordinate=e.getRelativeToSurfaceXY(),o},Blockly.Events.Move.prototype.isNull=function(){return this.oldParentId==this.newParentId&&this.oldInputName==this.newInputName&&goog.math.Coordinate.equals(this.oldCoordinate,this.newCoordinate)},Blockly.Events.Move.prototype.run=function(e){var o=Blockly.Workspace.getById(this.workspaceId),t=o.getBlockById(this.blockId);if(t){var n=e?this.newParentId:this.oldParentId,r=e?this.newInputName:this.oldInputName;e=e?this.newCoordinate:this.oldCoordinate;var i=null;if(n&&(i=o.getBlockById(n),!i))return void console.warn("Can't connect to non-existant block: "+n);if(t.getParent()&&t.unplug(),e)r=t.getRelativeToSurfaceXY(),t.moveBy(e.x-r.x,e.y-r.y);else{var s,t=t.outputConnection||t.previousConnection;r?(o=i.getInput(r))&&(s=o.connection):t.type==Blockly.PREVIOUS_STATEMENT&&(s=i.nextConnection),s?t.connect(s):console.warn("Can't connect to non-existant input: "+r)}}else console.warn("Can't move non-existant block: "+this.blockId)},Blockly.Events.Ui=function(e,o,t,n){Blockly.Events.Ui.superClass_.constructor.call(this,e),this.element=o,this.oldValue=t,this.newValue=n,this.recordUndo=!1},goog.inherits(Blockly.Events.Ui,Blockly.Events.Abstract),Blockly.Events.Ui.prototype.type=Blockly.Events.UI,Blockly.Events.Ui.prototype.toJson=function(){var e=Blockly.Events.Ui.superClass_.toJson.call(this);return e.element=this.element,void 0!==this.newValue&&(e.newValue=this.newValue),e},Blockly.Events.Ui.prototype.fromJson=function(e){Blockly.Events.Ui.superClass_.fromJson.call(this,e),this.element=e.element,this.newValue=e.newValue},Blockly.Events.disableOrphans=function(e){if(e.type==Blockly.Events.MOVE||e.type==Blockly.Events.CREATE){if(Blockly.Events.disable(),e=Blockly.Workspace.getById(e.workspaceId).getBlockById(e.blockId))if(e.getParent()&&!e.getParent().disabled){e=e.getDescendants();for(var o,t=0;o=e[t];t++)o.setDisabled(!1)}else if((e.outputConnection||e.previousConnection)&&Blockly.dragMode_==Blockly.DRAG_NONE)do e.setDisabled(!0),e=e.getNextBlock();while(e);Blockly.Events.enable()}},Blockly.Msg={},goog.getMsgOrig=goog.getMsg,goog.getMsg=function(e,o){var t=goog.getMsg.blocklyMsgMap[e];return t&&(e=Blockly.Msg[t]),goog.getMsgOrig(e,o)},goog.getMsg.blocklyMsgMap={Today:"TODAY"},Blockly.FieldTextInput=function(e,o){Blockly.FieldTextInput.superClass_.constructor.call(this,e,o)},goog.inherits(Blockly.FieldTextInput,Blockly.Field),Blockly.FieldTextInput.FONTSIZE=11,Blockly.FieldTextInput.prototype.CURSOR="text",Blockly.FieldTextInput.prototype.spellcheck_=!0,Blockly.FieldTextInput.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this),Blockly.FieldTextInput.superClass_.dispose.call(this)},Blockly.FieldTextInput.prototype.setValue=function(e){if(null!==e){if(this.sourceBlock_){var o=this.callValidator(e);null!==o&&(e=o)}Blockly.Field.prototype.setValue.call(this,e)}},Blockly.FieldTextInput.prototype.setSpellcheck=function(e){this.spellcheck_=e},Blockly.FieldTextInput.prototype.showEditor_=function(e){if(this.workspace_=this.sourceBlock_.workspace,e=e||!1,!e&&(goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD)){var o=this;Blockly.prompt(Blockly.Msg.CHANGE_VALUE_TITLE,this.text_,function(e){o.sourceBlock_&&(e=o.callValidator(e)),o.setValue(e)})}else{Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,this.widgetDispose_());var t=Blockly.WidgetDiv.DIV,n=goog.dom.createDom("INPUT","blocklyHtmlInput");n.setAttribute("spellcheck",this.spellcheck_);var r=Blockly.FieldTextInput.FONTSIZE*this.workspace_.scale+"pt";t.style.fontSize=r,n.style.fontSize=r,Blockly.FieldTextInput.htmlInput_=n,t.appendChild(n),n.value=n.defaultValue=this.text_,n.oldValue_=null,this.validate_(),this.resizeEditor_(),e||(n.focus(),n.select()),n.onKeyDownWrapper_=Blockly.bindEventWithChecks_(n,"keydown",this,this.onHtmlInputKeyDown_),n.onKeyUpWrapper_=Blockly.bindEventWithChecks_(n,"keyup",this,this.onHtmlInputChange_),n.onKeyPressWrapper_=Blockly.bindEventWithChecks_(n,"keypress",this,this.onHtmlInputChange_),n.onWorkspaceChangeWrapper_=this.resizeEditor_.bind(this),this.workspace_.addChangeListener(n.onWorkspaceChangeWrapper_)}},Blockly.FieldTextInput.prototype.onHtmlInputKeyDown_=function(e){var o=Blockly.FieldTextInput.htmlInput_;13==e.keyCode?Blockly.WidgetDiv.hide():27==e.keyCode?(o.value=o.defaultValue,Blockly.WidgetDiv.hide()):9==e.keyCode&&(Blockly.WidgetDiv.hide(),this.sourceBlock_.tab(this,!e.shiftKey),e.preventDefault())},Blockly.FieldTextInput.prototype.onHtmlInputChange_=function(e){e=Blockly.FieldTextInput.htmlInput_;var o=e.value;o!==e.oldValue_?(e.oldValue_=o,this.setValue(o),this.validate_()):goog.userAgent.WEBKIT&&this.sourceBlock_.render(),this.resizeEditor_(),Blockly.svgResize(this.sourceBlock_.workspace)},Blockly.FieldTextInput.prototype.validate_=function(){var e=!0;goog.asserts.assertObject(Blockly.FieldTextInput.htmlInput_);var o=Blockly.FieldTextInput.htmlInput_;this.sourceBlock_&&(e=this.callValidator(o.value)),null===e?Blockly.addClass_(o,"blocklyInvalidInput"):Blockly.removeClass_(o,"blocklyInvalidInput")},Blockly.FieldTextInput.prototype.resizeEditor_=function(){var e=Blockly.WidgetDiv.DIV,o=this.fieldGroup_.getBBox();if(e.style.width=o.width*this.workspace_.scale+"px",e.style.height=o.height*this.workspace_.scale+"px",o=this.getAbsoluteXY_(),this.sourceBlock_.RTL){var t=this.getScaledBBox_();o.x+=t.width,o.x-=e.offsetWidth}o.y+=1,goog.userAgent.GECKO&&Blockly.WidgetDiv.DIV.style.top&&(--o.x,--o.y),goog.userAgent.WEBKIT&&(o.y-=3),e.style.left=o.x+"px",e.style.top=o.y+"px"},Blockly.FieldTextInput.prototype.widgetDispose_=function(){var e=this;return function(){var o=Blockly.FieldTextInput.htmlInput_,t=o.value;e.sourceBlock_&&(t=e.callValidator(t),null===t?t=o.defaultValue:e.onFinishEditing_&&e.onFinishEditing_(t)),e.setValue(t),e.sourceBlock_.rendered&&e.sourceBlock_.render(),Blockly.unbindEvent_(o.onKeyDownWrapper_),Blockly.unbindEvent_(o.onKeyUpWrapper_),Blockly.unbindEvent_(o.onKeyPressWrapper_),e.workspace_.removeChangeListener(o.onWorkspaceChangeWrapper_),Blockly.FieldTextInput.htmlInput_=null,o=Blockly.WidgetDiv.DIV.style,o.width="auto",o.height="auto",o.fontSize=""}},Blockly.FieldTextInput.numberValidator=function(e){return console.warn("Blockly.FieldTextInput.numberValidator is deprecated. Use Blockly.FieldNumber instead."),null===e?null:(e=String(e),e=e.replace(/O/gi,"0"),e=e.replace(/,/g,""),e=parseFloat(e||0),isNaN(e)?null:String(e))},Blockly.FieldTextInput.nonnegativeIntegerValidator=function(e){return(e=Blockly.FieldTextInput.numberValidator(e))&&(e=String(Math.max(0,Math.floor(e)))),e},Blockly.FieldAngle=function(e,o){this.symbol_=Blockly.createSvgElement("tspan",{},null),this.symbol_.appendChild(document.createTextNode("Â°")),Blockly.FieldAngle.superClass_.constructor.call(this,e,o)},goog.inherits(Blockly.FieldAngle,Blockly.FieldTextInput),Blockly.FieldAngle.ROUND=15,Blockly.FieldAngle.HALF=50,Blockly.FieldAngle.CLOCKWISE=!1,Blockly.FieldAngle.OFFSET=0,Blockly.FieldAngle.WRAP=360,Blockly.FieldAngle.RADIUS=Blockly.FieldAngle.HALF-1,Blockly.FieldAngle.prototype.dispose_=function(){var e=this;return function(){Blockly.FieldAngle.superClass_.dispose_.call(e)(),e.gauge_=null,e.clickWrapper_&&Blockly.unbindEvent_(e.clickWrapper_),e.moveWrapper1_&&Blockly.unbindEvent_(e.moveWrapper1_),e.moveWrapper2_&&Blockly.unbindEvent_(e.moveWrapper2_)}},Blockly.FieldAngle.prototype.showEditor_=function(){Blockly.FieldAngle.superClass_.showEditor_.call(this,goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD);var e=Blockly.WidgetDiv.DIV;if(e.firstChild){var e=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml",
-"xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1",height:2*Blockly.FieldAngle.HALF+"px",width:2*Blockly.FieldAngle.HALF+"px"},e),o=Blockly.createSvgElement("circle",{cx:Blockly.FieldAngle.HALF,cy:Blockly.FieldAngle.HALF,r:Blockly.FieldAngle.RADIUS,"class":"blocklyAngleCircle"},e);this.gauge_=Blockly.createSvgElement("path",{"class":"blocklyAngleGauge"},e),this.line_=Blockly.createSvgElement("line",{x1:Blockly.FieldAngle.HALF,y1:Blockly.FieldAngle.HALF,"class":"blocklyAngleLine"},e);for(var t=0;360>t;t+=15)Blockly.createSvgElement("line",{x1:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS,y1:Blockly.FieldAngle.HALF,x2:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS-(0==t%45?10:5),y2:Blockly.FieldAngle.HALF,"class":"blocklyAngleMarks",transform:"rotate("+t+","+Blockly.FieldAngle.HALF+","+Blockly.FieldAngle.HALF+")"},e);e.style.marginLeft=15-Blockly.FieldAngle.RADIUS+"px",this.clickWrapper_=Blockly.bindEvent_(e,"click",this,Blockly.WidgetDiv.hide),this.moveWrapper1_=Blockly.bindEvent_(o,"mousemove",this,this.onMouseMove),this.moveWrapper2_=Blockly.bindEvent_(this.gauge_,"mousemove",this,this.onMouseMove),this.updateGraph_()}},Blockly.FieldAngle.prototype.onMouseMove=function(e){var o=this.gauge_.ownerSVGElement.getBoundingClientRect(),t=e.clientX-o.left-Blockly.FieldAngle.HALF;e=e.clientY-o.top-Blockly.FieldAngle.HALF,o=Math.atan(-e/t),isNaN(o)||(o=goog.math.toDegrees(o),0>t?o+=180:e>0&&(o+=360),o=Blockly.FieldAngle.CLOCKWISE?Blockly.FieldAngle.OFFSET+360-o:o-Blockly.FieldAngle.OFFSET,Blockly.FieldAngle.ROUND&&(o=Math.round(o/Blockly.FieldAngle.ROUND)*Blockly.FieldAngle.ROUND),o=this.callValidator(o),Blockly.FieldTextInput.htmlInput_.value=o,this.setValue(o),this.validate_(),this.resizeEditor_())},Blockly.FieldAngle.prototype.setText=function(e){Blockly.FieldAngle.superClass_.setText.call(this,e),this.textElement_&&(this.updateGraph_(),this.sourceBlock_.RTL?this.textElement_.insertBefore(this.symbol_,this.textElement_.firstChild):this.textElement_.appendChild(this.symbol_),this.size_.width=0)},Blockly.FieldAngle.prototype.updateGraph_=function(){if(this.gauge_){var e=Number(this.getText())+Blockly.FieldAngle.OFFSET,o=goog.math.toRadians(e),e=["M ",Blockly.FieldAngle.HALF,",",Blockly.FieldAngle.HALF],t=Blockly.FieldAngle.HALF,n=Blockly.FieldAngle.HALF;if(!isNaN(o)){var r=goog.math.toRadians(Blockly.FieldAngle.OFFSET),i=Math.cos(r)*Blockly.FieldAngle.RADIUS,s=Math.sin(r)*-Blockly.FieldAngle.RADIUS;Blockly.FieldAngle.CLOCKWISE&&(o=2*r-o),t+=Math.cos(o)*Blockly.FieldAngle.RADIUS,n-=Math.sin(o)*Blockly.FieldAngle.RADIUS,o=Math.abs(Math.floor((o-r)/Math.PI)%2),Blockly.FieldAngle.CLOCKWISE&&(o=1-o),e.push(" l ",i,",",s," A ",Blockly.FieldAngle.RADIUS,",",Blockly.FieldAngle.RADIUS," 0 ",o," ",Number(Blockly.FieldAngle.CLOCKWISE)," ",t,",",n," z")}this.gauge_.setAttribute("d",e.join("")),this.line_.setAttribute("x2",t),this.line_.setAttribute("y2",n)}},Blockly.FieldAngle.prototype.classValidator=function(e){return null===e?null:(e=parseFloat(e||0),isNaN(e)?null:(e%=360,0>e&&(e+=360),e>Blockly.FieldAngle.WRAP&&(e-=360),String(e)))},Blockly.FieldCheckbox=function(e,o){Blockly.FieldCheckbox.superClass_.constructor.call(this,"",o),this.setValue(e)},goog.inherits(Blockly.FieldCheckbox,Blockly.Field),Blockly.FieldCheckbox.CHECK_CHAR="â",Blockly.FieldCheckbox.prototype.CURSOR="default",Blockly.FieldCheckbox.prototype.init=function(){if(!this.fieldGroup_){Blockly.FieldCheckbox.superClass_.init.call(this),this.checkElement_=Blockly.createSvgElement("text",{"class":"blocklyText blocklyCheckbox",x:-3,y:14},this.fieldGroup_);var e=document.createTextNode(Blockly.FieldCheckbox.CHECK_CHAR);this.checkElement_.appendChild(e),this.checkElement_.style.display=this.state_?"block":"none"}},Blockly.FieldCheckbox.prototype.getValue=function(){return String(this.state_).toUpperCase()},Blockly.FieldCheckbox.prototype.setValue=function(e){e="TRUE"==e.toUpperCase(),this.state_!==e&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.state_,e)),this.state_=e,this.checkElement_&&(this.checkElement_.style.display=e?"block":"none"))},Blockly.FieldCheckbox.prototype.showEditor_=function(){var e=!this.state_;this.sourceBlock_&&(e=this.callValidator(e)),null!==e&&this.setValue(String(e).toUpperCase())},Blockly.FieldColour=function(e,o){Blockly.FieldColour.superClass_.constructor.call(this,e,o),this.setText(Blockly.Field.NBSP+Blockly.Field.NBSP+Blockly.Field.NBSP)},goog.inherits(Blockly.FieldColour,Blockly.Field),Blockly.FieldColour.prototype.colours_=null,Blockly.FieldColour.prototype.columns_=0,Blockly.FieldColour.prototype.init=function(){Blockly.FieldColour.superClass_.init.call(this),this.borderRect_.style.fillOpacity=1,this.setValue(this.getValue())},Blockly.FieldColour.prototype.CURSOR="default",Blockly.FieldColour.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this),Blockly.FieldColour.superClass_.dispose.call(this)},Blockly.FieldColour.prototype.getValue=function(){return this.colour_},Blockly.FieldColour.prototype.setValue=function(e){this.sourceBlock_&&Blockly.Events.isEnabled()&&this.colour_!=e&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.colour_,e)),this.colour_=e,this.borderRect_&&(this.borderRect_.style.fill=e)},Blockly.FieldColour.prototype.getText=function(){var e=this.colour_,o=e.match(/^#(.)\1(.)\2(.)\3$/);return o&&(e="#"+o[1]+o[2]+o[3]),e},Blockly.FieldColour.COLOURS=goog.ui.ColorPicker.SIMPLE_GRID_COLORS,Blockly.FieldColour.COLUMNS=7,Blockly.FieldColour.prototype.setColours=function(e){return this.colours_=e,this},Blockly.FieldColour.prototype.setColumns=function(e){return this.columns_=e,this},Blockly.FieldColour.prototype.showEditor_=function(){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,Blockly.FieldColour.widgetDispose_);var e=new goog.ui.ColorPicker;e.setSize(this.columns_||Blockly.FieldColour.COLUMNS),e.setColors(this.colours_||Blockly.FieldColour.COLOURS);var o=goog.dom.getViewportSize(),t=goog.style.getViewportPageOffset(document),n=this.getAbsoluteXY_(),r=this.getScaledBBox_();e.render(Blockly.WidgetDiv.DIV),e.setSelectedColor(this.getValue());var i=goog.style.getSize(e.getElement());n.y=n.y+i.height+r.height>=o.height+t.y?n.y-(i.height-1):n.y+(r.height-1),this.sourceBlock_.RTL?(n.x+=r.width,n.x-=i.width,n.x<t.x&&(n.x=t.x)):n.x>o.width+t.x-i.width&&(n.x=o.width+t.x-i.width),Blockly.WidgetDiv.position(n.x,n.y,o,t,this.sourceBlock_.RTL);var s=this;Blockly.FieldColour.changeEventKey_=goog.events.listen(e,goog.ui.ColorPicker.EventType.CHANGE,function(e){e=e.target.getSelectedColor()||"#000000",Blockly.WidgetDiv.hide(),s.sourceBlock_&&(e=s.callValidator(e)),null!==e&&s.setValue(e)})},Blockly.FieldColour.widgetDispose_=function(){Blockly.FieldColour.changeEventKey_&&goog.events.unlistenByKey(Blockly.FieldColour.changeEventKey_)},Blockly.FieldDropdown=function(e,o){this.menuGenerator_=e,this.trimOptions_();var t=this.getOptions_()[0];Blockly.FieldDropdown.superClass_.constructor.call(this,t[1],o)},goog.inherits(Blockly.FieldDropdown,Blockly.Field),Blockly.FieldDropdown.CHECKMARK_OVERHANG=25,Blockly.FieldDropdown.ARROW_CHAR=goog.userAgent.ANDROID?"â¼":"â¾",Blockly.FieldDropdown.prototype.CURSOR="default",Blockly.FieldDropdown.prototype.value_="",Blockly.FieldDropdown.prototype.init=function(){if(!this.fieldGroup_){this.arrow_=Blockly.createSvgElement("tspan",{},null),this.arrow_.appendChild(document.createTextNode(this.sourceBlock_.RTL?Blockly.FieldDropdown.ARROW_CHAR+" ":" "+Blockly.FieldDropdown.ARROW_CHAR)),Blockly.FieldDropdown.superClass_.init.call(this);var e=this.text_;this.text_=null,this.setText(e)}},Blockly.FieldDropdown.prototype.showEditor_=function(){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,null);var e=this,o=new goog.ui.Menu;o.setRightToLeft(this.sourceBlock_.RTL);for(var t=this.getOptions_(),n=0;n<t.length;n++){var r=t[n][1],i=new goog.ui.MenuItem(t[n][0]);i.setRightToLeft(this.sourceBlock_.RTL),i.setValue(r),i.setCheckable(!0),o.addChild(i,!0),i.setChecked(r==this.value_)}goog.events.listen(o,goog.ui.Component.EventType.ACTION,function(o){(o=o.target)&&e.onItemSelected(this,o),Blockly.WidgetDiv.hideIfOwner(e)}),o.getHandler().listen(o.getElement(),goog.events.EventType.TOUCHSTART,function(e){this.getOwnerControl(e.target).handleMouseDown(e)}),o.getHandler().listen(o.getElement(),goog.events.EventType.TOUCHEND,function(e){this.getOwnerControl(e.target).performActionInternal(e)}),t=goog.dom.getViewportSize(),n=goog.style.getViewportPageOffset(document),r=this.getAbsoluteXY_(),i=this.getScaledBBox_(),o.render(Blockly.WidgetDiv.DIV);var s=o.getElement();Blockly.addClass_(s,"blocklyDropdownMenu");var l=goog.style.getSize(s);l.height=s.scrollHeight,r.y=r.y+l.height+i.height>=t.height+n.y?r.y-(l.height+2):r.y+i.height,this.sourceBlock_.RTL?(r.x+=i.width,r.x+=Blockly.FieldDropdown.CHECKMARK_OVERHANG,r.x<n.x+l.width&&(r.x=n.x+l.width)):(r.x-=Blockly.FieldDropdown.CHECKMARK_OVERHANG,r.x>t.width+n.x-l.width&&(r.x=t.width+n.x-l.width)),Blockly.WidgetDiv.position(r.x,r.y,t,n,this.sourceBlock_.RTL),o.setAllowAutoFocus(!0),s.focus()},Blockly.FieldDropdown.prototype.onItemSelected=function(e,o){var t=o.getValue();this.sourceBlock_&&(t=this.callValidator(t)),null!==t&&this.setValue(t)},Blockly.FieldDropdown.prototype.trimOptions_=function(){this.suffixField=this.prefixField=null;var e=this.menuGenerator_;if(goog.isArray(e)&&!(2>e.length)){var o=e.map(function(e){return e[0]}),t=Blockly.shortestStringLength(o),n=Blockly.commonWordPrefix(o,t),r=Blockly.commonWordSuffix(o,t);if((n||r)&&!(n+r>=t)){for(n&&(this.prefixField=o[0].substring(0,n-1)),r&&(this.suffixField=o[0].substr(1-r)),o=[],t=0;t<e.length;t++){var i=e[t][0],s=e[t][1],i=i.substring(n,i.length-r);o[t]=[i,s]}this.menuGenerator_=o}}},Blockly.FieldDropdown.prototype.getOptions_=function(){return goog.isFunction(this.menuGenerator_)?this.menuGenerator_.call(this):this.menuGenerator_},Blockly.FieldDropdown.prototype.getValue=function(){return this.value_},Blockly.FieldDropdown.prototype.setValue=function(e){if(null!==e&&e!==this.value_){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,e)),this.value_=e;for(var o=this.getOptions_(),t=0;t<o.length;t++)if(o[t][1]==e)return void this.setText(o[t][0]);this.setText(e)}},Blockly.FieldDropdown.prototype.setText=function(e){this.sourceBlock_&&this.arrow_&&(this.arrow_.style.fill=this.sourceBlock_.getColour()),null!==e&&e!==this.text_&&(this.text_=e,this.updateTextNode_(),this.textElement_&&(this.sourceBlock_.RTL?this.textElement_.insertBefore(this.arrow_,this.textElement_.firstChild):this.textElement_.appendChild(this.arrow_)),this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_()))},Blockly.FieldDropdown.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this),Blockly.FieldDropdown.superClass_.dispose.call(this)},Blockly.FieldImage=function(e,o,t,n){this.sourceBlock_=null,this.height_=Number(t),this.width_=Number(o),this.size_=new goog.math.Size(this.width_,this.height_+2*Blockly.BlockSvg.INLINE_PADDING_Y),this.text_=n||"",this.setValue(e)},goog.inherits(Blockly.FieldImage,Blockly.Field),Blockly.FieldImage.prototype.rectElement_=null,Blockly.FieldImage.prototype.EDITABLE=!1,Blockly.FieldImage.prototype.init=function(){if(!this.fieldGroup_){this.fieldGroup_=Blockly.createSvgElement("g",{},null),this.visible_||(this.fieldGroup_.style.display="none"),this.imageElement_=Blockly.createSvgElement("image",{height:this.height_+"px",width:this.width_+"px"},this.fieldGroup_),this.setValue(this.src_),goog.userAgent.GECKO&&(this.rectElement_=Blockly.createSvgElement("rect",{height:this.height_+"px",width:this.width_+"px","fill-opacity":0},this.fieldGroup_)),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);var e=this.rectElement_||this.imageElement_;e.tooltip=this.sourceBlock_,Blockly.Tooltip.bindMouseEvents(e)}},Blockly.FieldImage.prototype.dispose=function(){goog.dom.removeNode(this.fieldGroup_),this.rectElement_=this.imageElement_=this.fieldGroup_=null},Blockly.FieldImage.prototype.setTooltip=function(e){(this.rectElement_||this.imageElement_).tooltip=e},Blockly.FieldImage.prototype.getValue=function(){return this.src_},Blockly.FieldImage.prototype.setValue=function(e){null!==e&&(this.src_=e,this.imageElement_&&this.imageElement_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",goog.isString(e)?e:""))},Blockly.FieldImage.prototype.setText=function(e){null!==e&&(this.text_=e)},Blockly.FieldImage.prototype.render_=function(){},Blockly.FieldNumber=function(e,o,t,n,r){e=String(e),Blockly.FieldNumber.superClass_.constructor.call(this,e,r),this.setConstraints(o,t,n)},goog.inherits(Blockly.FieldNumber,Blockly.FieldTextInput),Blockly.FieldNumber.prototype.setConstraints=function(e,o,t){t=parseFloat(t),this.precision_=isNaN(t)?0:t,e=parseFloat(e),this.min_=isNaN(e)?-(1/0):e,o=parseFloat(o),this.max_=isNaN(o)?1/0:o,this.setValue(this.callValidator(this.getValue()))},Blockly.FieldNumber.prototype.classValidator=function(e){return null===e?null:(e=String(e),e=e.replace(/O/gi,"0"),e=e.replace(/,/g,""),e=parseFloat(e||0),isNaN(e)?null:(this.precision_&&isFinite(e)&&(e=Math.round(e/this.precision_)*this.precision_),e=goog.math.clamp(e,this.min_,this.max_),String(e)))},Blockly.FieldVariable=function(e,o){Blockly.FieldVariable.superClass_.constructor.call(this,Blockly.FieldVariable.dropdownCreate,o),this.setValue(e||"")},goog.inherits(Blockly.FieldVariable,Blockly.FieldDropdown),Blockly.FieldVariable.prototype.renameVarItemIndex_=-1,Blockly.FieldVariable.prototype.deleteVarItemIndex_=-1,Blockly.FieldVariable.prototype.init=function(){this.fieldGroup_||(Blockly.FieldVariable.superClass_.init.call(this),this.getValue()||this.setValue(Blockly.Variables.generateUniqueName(this.sourceBlock_.isInFlyout?this.sourceBlock_.workspace.targetWorkspace:this.sourceBlock_.workspace)),this.sourceBlock_.isInFlyout||this.sourceBlock_.workspace.createVariable(this.getValue()))},Blockly.FieldVariable.prototype.setSourceBlock=function(e){goog.asserts.assert(!e.isShadow(),"Variable fields are not allowed to exist on shadow blocks."),Blockly.FieldVariable.superClass_.setSourceBlock.call(this,e)},Blockly.FieldVariable.prototype.getValue=function(){return this.getText()},Blockly.FieldVariable.prototype.setValue=function(e){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,e)),this.value_=e,this.setText(e)},Blockly.FieldVariable.dropdownCreate=function(){var e=this.sourceBlock_&&this.sourceBlock_.workspace?this.sourceBlock_.workspace.variableList.slice(0):[],o=this.getText();o&&-1==e.indexOf(o)&&e.push(o),e.sort(goog.string.caseInsensitiveCompare),this.renameVarItemIndex_=e.length,e.push(Blockly.Msg.RENAME_VARIABLE),this.deleteVarItemIndex_=e.length,e.push(Blockly.Msg.DELETE_VARIABLE.replace("%1",o));for(var o=[],t=0;t<e.length;t++)o[t]=[e[t],e[t]];return o},Blockly.FieldVariable.prototype.onItemSelected=function(e,o){e.getChildCount();var t=o.getValue();if(this.sourceBlock_){var n=this.sourceBlock_.workspace;if(0<=this.renameVarItemIndex_&&e.getChildAt(this.renameVarItemIndex_)===o){var r=this.getText();return Blockly.hideChaff(),void Blockly.Variables.promptName(Blockly.Msg.RENAME_VARIABLE_TITLE.replace("%1",r),r,function(e){e&&n.renameVariable(r,e)})}if(0<=this.deleteVarItemIndex_&&e.getChildAt(this.deleteVarItemIndex_)===o)return void n.deleteVariable(this.getText());t=this.callValidator(t)}null!==t&&this.setValue(t)},Blockly.FlyoutButton=function(e,o,t,n,r){this.workspace_=e,this.targetWorkspace_=o,this.text_=t,this.position_=new goog.math.Coordinate(0,0),this.callback_=Blockly.flyoutButtonCallbacks_[n],this.isLabel_=r},Blockly.FlyoutButton.MARGIN=5,Blockly.FlyoutButton.prototype.width=0,Blockly.FlyoutButton.prototype.height=0,Blockly.FlyoutButton.prototype.createDom=function(){if(this.svgGroup_=Blockly.createSvgElement("g",{"class":this.isLabel_?"blocklyFlyoutLabel":"blocklyFlyoutButton"},this.workspace_.getCanvas()),!this.isLabel_)var e=Blockly.createSvgElement("rect",{"class":"blocklyFlyoutButtonShadow",rx:4,ry:4,x:1,y:1},this.svgGroup_);var o=Blockly.createSvgElement("rect",{"class":this.isLabel_?"blocklyFlyoutLabelBackground":"blocklyFlyoutButtonBackground",rx:4,ry:4},this.svgGroup_),t=Blockly.createSvgElement("text",{"class":this.isLabel_?"blocklyFlyoutLabelText":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup_);return t.textContent=this.text_,this.width=t.getComputedTextLength()+2*Blockly.FlyoutButton.MARGIN,this.height=20,this.isLabel_||(e.setAttribute("width",this.width),e.setAttribute("height",this.height)),o.setAttribute("width",this.width),o.setAttribute("height",this.height),t.setAttribute("x",this.width/2),t.setAttribute("y",this.height-Blockly.FlyoutButton.MARGIN),this.updateTransform_(),this.svgGroup_},Blockly.FlyoutButton.prototype.show=function(){this.updateTransform_(),this.svgGroup_.setAttribute("display","block")},Blockly.FlyoutButton.prototype.updateTransform_=function(){this.svgGroup_.setAttribute("transform","translate("+this.position_.x+","+this.position_.y+")")},Blockly.FlyoutButton.prototype.moveTo=function(e,o){this.position_.x=e,this.position_.y=o,this.updateTransform_()},Blockly.FlyoutButton.prototype.getTargetWorkspace=function(){return this.targetWorkspace_},Blockly.FlyoutButton.prototype.dispose=function(){this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null),this.targetWorkspace_=this.workspace_=null},Blockly.FlyoutButton.prototype.onMouseUp=function(e){e.preventDefault(),e.stopPropagation(),Blockly.Flyout.terminateDrag_(),this.callback_&&this.callback_(this)},Blockly.Flyout=function(e){e.getMetrics=this.getMetrics_.bind(this),e.setMetrics=this.setMetrics_.bind(this),this.workspace_=new Blockly.WorkspaceSvg(e),this.workspace_.isFlyout=!0,this.RTL=!!e.RTL,this.horizontalLayout_=e.horizontalLayout,this.toolboxPosition_=e.toolboxPosition,this.eventWrappers_=[],this.backgroundButtons_=[],this.buttons_=[],this.listeners_=[],this.permanentlyDisabled_=[],this.startDragMouseX_=this.startDragMouseY_=0},Blockly.Flyout.startFlyout_=null,Blockly.Flyout.startDownEvent_=null,Blockly.Flyout.startBlock_=null,Blockly.Flyout.onMouseUpWrapper_=null,Blockly.Flyout.onMouseMoveWrapper_=null,Blockly.Flyout.onMouseMoveBlockWrapper_=null,Blockly.Flyout.prototype.autoClose=!0,Blockly.Flyout.prototype.CORNER_RADIUS=8,Blockly.Flyout.prototype.DRAG_RADIUS=10,Blockly.Flyout.prototype.MARGIN=Blockly.Flyout.prototype.CORNER_RADIUS,Blockly.Flyout.prototype.GAP_X=3*Blockly.Flyout.prototype.MARGIN,Blockly.Flyout.prototype.GAP_Y=3*Blockly.Flyout.prototype.MARGIN,Blockly.Flyout.prototype.SCROLLBAR_PADDING=2,Blockly.Flyout.prototype.width_=0,Blockly.Flyout.prototype.height_=0,Blockly.Flyout.prototype.dragMode_=Blockly.DRAG_NONE,Blockly.Flyout.prototype.dragAngleRange_=70,Blockly.Flyout.prototype.createDom=function(){return this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyFlyout"},null),this.svgBackground_=Blockly.createSvgElement("path",{"class":"blocklyFlyoutBackground"},this.svgGroup_),this.svgGroup_.appendChild(this.workspace_.createDom()),this.svgGroup_},Blockly.Flyout.prototype.init=function(e){this.targetWorkspace_=e,this.workspace_.targetWorkspace=e,this.scrollbar_=new Blockly.Scrollbar(this.workspace_,this.horizontalLayout_,!1),this.hide(),Array.prototype.push.apply(this.eventWrappers_,Blockly.bindEventWithChecks_(this.svgGroup_,"wheel",this,this.wheel_)),this.autoClose||(this.filterWrapper_=this.filterForCapacity_.bind(this),this.targetWorkspace_.addChangeListener(this.filterWrapper_)),Array.prototype.push.apply(this.eventWrappers_,Blockly.bindEventWithChecks_(this.svgGroup_,"mousedown",this,this.onMouseDown_))},Blockly.Flyout.prototype.dispose=function(){this.hide(),Blockly.unbindEvent_(this.eventWrappers_),this.filterWrapper_&&(this.targetWorkspace_.removeChangeListener(this.filterWrapper_),this.filterWrapper_=null),this.scrollbar_&&(this.scrollbar_.dispose(),this.scrollbar_=null),this.workspace_&&(this.workspace_.targetWorkspace=null,this.workspace_.dispose(),this.workspace_=null),this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null),this.targetWorkspace_=this.svgBackground_=null},Blockly.Flyout.prototype.getWidth=function(){return this.width_},Blockly.Flyout.prototype.getHeight=function(){return this.height_},Blockly.Flyout.prototype.getMetrics_=function(){if(!this.isVisible())return null;try{var e=this.workspace_.getCanvas().getBBox()}catch(o){e={height:0,y:0,width:0,x:0}}var t=this.SCROLLBAR_PADDING,n=this.SCROLLBAR_PADDING;if(this.horizontalLayout_){this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM&&(t=0);var r=this.height_;this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP&&(r-=this.SCROLLBAR_PADDING);var i=this.width_-2*this.SCROLLBAR_PADDING}else n=0,r=this.height_-2*this.SCROLLBAR_PADDING,i=this.width_,this.RTL||(i-=this.SCROLLBAR_PADDING);return{viewHeight:r,viewWidth:i,contentHeight:(e.height+2*this.MARGIN)*this.workspace_.scale,contentWidth:(e.width+2*this.MARGIN)*this.workspace_.scale,viewTop:-this.workspace_.scrollY,viewLeft:-this.workspace_.scrollX,contentTop:e.y,contentLeft:e.x,absoluteTop:t,absoluteLeft:n}},Blockly.Flyout.prototype.setMetrics_=function(e){var o=this.getMetrics_();o&&(!this.horizontalLayout_&&goog.isNumber(e.y)?this.workspace_.scrollY=-o.contentHeight*e.y:this.horizontalLayout_&&goog.isNumber(e.x)&&(this.workspace_.scrollX=-o.contentWidth*e.x),this.workspace_.translate(this.workspace_.scrollX+o.absoluteLeft,this.workspace_.scrollY+o.absoluteTop))},Blockly.Flyout.prototype.position=function(){if(this.isVisible()){var e=this.targetWorkspace_.getMetrics();if(e){this.setBackgroundPath_(this.horizontalLayout_?e.viewWidth-2*this.CORNER_RADIUS:this.width_-this.CORNER_RADIUS,this.horizontalLayout_?this.height_-this.CORNER_RADIUS:e.viewHeight-2*this.CORNER_RADIUS);var o=e.absoluteLeft;this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT&&(o+=e.viewWidth,o-=this.width_);var t=e.absoluteTop;this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM&&(t+=e.viewHeight,t-=this.height_),this.svgGroup_.setAttribute("transform","translate("+o+","+t+")"),this.horizontalLayout_?this.width_=e.viewWidth:this.height_=e.viewHeight,this.scrollbar_&&this.scrollbar_.resize()}}},Blockly.Flyout.prototype.setBackgroundPath_=function(e,o){this.horizontalLayout_?this.setBackgroundPathHorizontal_(e,o):this.setBackgroundPathVertical_(e,o)},Blockly.Flyout.prototype.setBackgroundPathVertical_=function(e,o){var t=this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT,n=e+this.CORNER_RADIUS,n=["M "+(t?n:0)+",0"];n.push("h",t?-e:e),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,t?0:1,t?-this.CORNER_RADIUS:this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("v",Math.max(0,o)),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,t?0:1,t?this.CORNER_RADIUS:-this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("h",t?e:-e),n.push("z"),this.svgBackground_.setAttribute("d",n.join(" "))},Blockly.Flyout.prototype.setBackgroundPathHorizontal_=function(e,o){var t=this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP,n=["M 0,"+(t?0:this.CORNER_RADIUS)];t?(n.push("h",e+2*this.CORNER_RADIUS),n.push("v",o),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("h",-1*e),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,-this.CORNER_RADIUS)):(n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,-this.CORNER_RADIUS),n.push("h",e),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("v",o),n.push("h",-e-2*this.CORNER_RADIUS)),n.push("z"),this.svgBackground_.setAttribute("d",n.join(" "))},Blockly.Flyout.prototype.scrollToStart=function(){this.scrollbar_.set(this.horizontalLayout_&&this.RTL?1/0:0)},Blockly.Flyout.prototype.wheel_=function(e){var o=this.horizontalLayout_?e.deltaX:e.deltaY;if(o){goog.userAgent.GECKO&&(o*=10);var t=this.getMetrics_(),o=this.horizontalLayout_?t.viewLeft+o:t.viewTop+o,o=Math.min(o,this.horizontalLayout_?t.contentWidth-t.viewWidth:t.contentHeight-t.viewHeight),o=Math.max(o,0);this.scrollbar_.set(o)}e.preventDefault(),e.stopPropagation()},Blockly.Flyout.prototype.isVisible=function(){return this.svgGroup_&&"block"==this.svgGroup_.style.display},Blockly.Flyout.prototype.hide=function(){if(this.isVisible()){this.svgGroup_.style.display="none";for(var e,o=0;e=this.listeners_[o];o++)Blockly.unbindEvent_(e);this.listeners_.length=0,this.reflowWrapper_&&(this.workspace_.removeChangeListener(this.reflowWrapper_),this.reflowWrapper_=null)}},Blockly.Flyout.prototype.flyoutCategory=function(e,o){return e},Blockly.Flyout.prototype.show=function(e){this.hide(),this.clearOldBlocks_(),e=this.flyoutCategory(e,this.workspace_.targetWorkspace),this.svgGroup_.style.display="block";for(var o,t=[],n=[],r=this.permanentlyDisabled_.length=0;o=e[r];r++)if(o.tagName){var i=o.tagName.toUpperCase(),s=this.horizontalLayout_?this.GAP_X:this.GAP_Y;if("BLOCK"==i)i=Blockly.Xml.domToBlock(o,this.workspace_),i.disabled&&this.permanentlyDisabled_.push(i),t.push({type:"block",block:i}),o=parseInt(o.getAttribute("gap"),10),n.push(isNaN(o)?s:o);else if("SEP"==o.tagName.toUpperCase())o=parseInt(o.getAttribute("gap"),10),!isNaN(o)&&0<n.length?n[n.length-1]=o:n.push(s);else if("BUTTON"==i||"LABEL"==i){var i="LABEL"==i,l=o.getAttribute("text");o=o.getAttribute("callbackKey"),o=new Blockly.FlyoutButton(this.workspace_,this.targetWorkspace_,l,o,i),t.push({type:"button",button:o}),n.push(s)}}this.layout_(t,n),this.listeners_.push(Blockly.bindEventWithChecks_(this.svgBackground_,"mouseover",this,function(){for(var e,o=this.workspace_.getTopBlocks(!1),t=0;e=o[t];t++)e.removeSelect()})),this.horizontalLayout_?this.height_=0:this.width_=0,this.reflow(),this.filterForCapacity_(),this.position(),this.reflowWrapper_=this.reflow.bind(this),this.workspace_.addChangeListener(this.reflowWrapper_)},Blockly.Flyout.prototype.layout_=function(e,o){this.workspace_.scale=this.targetWorkspace_.scale;var t=this.MARGIN,n=this.RTL?t:t+Blockly.BlockSvg.TAB_WIDTH;this.horizontalLayout_&&this.RTL&&(e=e.reverse());for(var r,i=0;r=e[i];i++)if("block"==r.type){r=r.block;for(var s,l=r.getDescendants(),g=0;s=l[g];g++)s.isInFlyout=!0;r.render(),l=r.getSvgRoot(),g=r.getHeightWidth(),s=r.outputConnection?Blockly.BlockSvg.TAB_WIDTH:0,this.horizontalLayout_&&(n+=s),r.moveBy(this.horizontalLayout_&&this.RTL?n+g.width-s:n,t),this.horizontalLayout_?n+=g.width+o[i]-s:t+=g.height+o[i],g=Blockly.createSvgElement("rect",{"fill-opacity":0},null),g.tooltip=r,Blockly.Tooltip.bindMouseEvents(g),this.workspace_.getCanvas().insertBefore(g,r.getSvgRoot()),r.flyoutRect_=g,this.backgroundButtons_[i]=g,this.addBlockListeners_(l,r,g)}else"button"==r.type&&(r=r.button,l=r.createDom(),r.moveTo(n,t),r.show(),Blockly.bindEventWithChecks_(l,"mouseup",r,r.onMouseUp),this.buttons_.push(r),this.horizontalLayout_?n+=r.width+o[i]:t+=r.height+o[i])},Blockly.Flyout.prototype.clearOldBlocks_=function(){for(var e,o=this.workspace_.getTopBlocks(!1),t=0;e=o[t];t++)e.workspace==this.workspace_&&e.dispose(!1,!1);for(t=0;o=this.backgroundButtons_[t];t++)goog.dom.removeNode(o);for(t=this.backgroundButtons_.length=0;o=this.buttons_[t];t++)o.dispose();this.buttons_.length=0},Blockly.Flyout.prototype.addBlockListeners_=function(e,o,t){this.listeners_.push(Blockly.bindEventWithChecks_(e,"mousedown",null,this.blockMouseDown_(o))),this.listeners_.push(Blockly.bindEventWithChecks_(t,"mousedown",null,this.blockMouseDown_(o))),this.listeners_.push(Blockly.bindEvent_(e,"mouseover",o,o.addSelect)),this.listeners_.push(Blockly.bindEvent_(e,"mouseout",o,o.removeSelect)),this.listeners_.push(Blockly.bindEvent_(t,"mouseover",o,o.addSelect)),this.listeners_.push(Blockly.bindEvent_(t,"mouseout",o,o.removeSelect))},Blockly.Flyout.blockRightClick_=function(e,o){Blockly.terminateDrag_(),Blockly.hideChaff(!0),o.showContextMenu_(e),Blockly.Touch.clearTouchIdentifier()},Blockly.Flyout.prototype.blockMouseDown_=function(e){var o=this;return function(t){Blockly.isRightButton(t)?Blockly.Flyout.blockRightClick_(t,e):(Blockly.terminateDrag_(),Blockly.hideChaff(!0),Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED),o.startDragMouseY_=t.clientY,o.startDragMouseX_=t.clientX,Blockly.Flyout.startDownEvent_=t,Blockly.Flyout.startBlock_=e,Blockly.Flyout.startFlyout_=o,Blockly.Flyout.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",o,o.onMouseUp_),Blockly.Flyout.onMouseMoveBlockWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",o,o.onMouseMoveBlock_)),t.stopPropagation(),t.preventDefault()}},Blockly.Flyout.prototype.onMouseDown_=function(e){Blockly.isRightButton(e)?Blockly.Touch.clearTouchIdentifier():(Blockly.hideChaff(!0),this.dragMode_=Blockly.DRAG_FREE,this.startDragMouseY_=e.clientY,this.startDragMouseX_=e.clientX,Blockly.Flyout.startFlyout_=this,Blockly.Flyout.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.onMouseMove_),Blockly.Flyout.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,Blockly.Flyout.terminateDrag_),e.preventDefault(),e.stopPropagation())},Blockly.Flyout.prototype.onMouseUp_=function(e){this.workspace_.isDragging()||(Blockly.Touch.clearTouchIdentifier(),this.autoClose?this.createBlockFunc_(Blockly.Flyout.startBlock_)(Blockly.Flyout.startDownEvent_):Blockly.WidgetDiv.isVisible()||Blockly.Events.fire(new Blockly.Events.Ui(Blockly.Flyout.startBlock_,"click",void 0,void 0))),Blockly.terminateDrag_()},Blockly.Flyout.prototype.onMouseMove_=function(e){var o=this.getMetrics_();if(this.horizontalLayout_){if(!(0>o.contentWidth-o.viewWidth)){var t=e.clientX-this.startDragMouseX_;this.startDragMouseX_=e.clientX,e=o.viewLeft-t,e=goog.math.clamp(e,0,o.contentWidth-o.viewWidth),this.scrollbar_.set(e)}}else 0>o.contentHeight-o.viewHeight||(t=e.clientY-this.startDragMouseY_,this.startDragMouseY_=e.clientY,e=o.viewTop-t,e=goog.math.clamp(e,0,o.contentHeight-o.viewHeight),this.scrollbar_.set(e))},Blockly.Flyout.prototype.onMouseMoveBlock_=function(e){"mousemove"==e.type&&1>=e.clientX&&0==e.clientY&&0==e.button||(this.determineDragIntention_(e.clientX-Blockly.Flyout.startDownEvent_.clientX,e.clientY-Blockly.Flyout.startDownEvent_.clientY)?(Blockly.longStop_(),this.createBlockFunc_(Blockly.Flyout.startBlock_)(Blockly.Flyout.startDownEvent_)):this.dragMode_==Blockly.DRAG_FREE&&(Blockly.longStop_(),this.onMouseMove_(e))),e.stopPropagation()},Blockly.Flyout.prototype.determineDragIntention_=function(e,o){return this.dragMode_==Blockly.DRAG_FREE?!1:Math.sqrt(e*e+o*o)<this.DRAG_RADIUS?(this.dragMode_=Blockly.DRAG_STICKY,!1):this.isDragTowardWorkspace_(e,o)||!this.scrollbar_.isVisible()?!0:(this.dragMode_=Blockly.DRAG_FREE,!1)},Blockly.Flyout.prototype.isDragTowardWorkspace_=function(e,o){var t=Math.atan2(o,e)/Math.PI*180,n=this.dragAngleRange_;if(this.horizontalLayout_){if(90+n>t&&t>90-n||t>-90-n&&-90+n>t)return!0}else if(n>t&&t>-n||-180+n>t||t>180-n)return!0;return!1},Blockly.Flyout.prototype.createBlockFunc_=function(e){var o=this;return function(t){if(!Blockly.isRightButton(t)&&!e.disabled){Blockly.Events.disable();try{var n=o.placeNewBlock_(e)}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&(Blockly.Events.setGroup(!0),Blockly.Events.fire(new Blockly.Events.Create(n))),o.autoClose?o.hide():o.filterForCapacity_(),n.onMouseDown_(t),Blockly.dragMode_=Blockly.DRAG_FREE,n.setDragging_(!0),o.targetWorkspace_.setResizesEnabled(!1)}}},Blockly.Flyout.prototype.placeNewBlock_=function(e){var o=this.targetWorkspace_,t=e.getSvgRoot();if(!t)throw"originBlock is not rendered.";var t=Blockly.getSvgXY_(t,o),n=this.workspace_.scrollX,r=this.workspace_.scale;if(t.x+=n/r-n,this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT&&(n=o.getMetrics().viewWidth-this.width_,r=o.scale,t.x+=n/r-n),n=this.workspace_.scrollY,r=this.workspace_.scale,t.y+=n/r-n,
+Blockly.BlockSvg.superClass_.moveNumberedInputBefore.call(this,e,o),this.rendered&&(this.render(),this.bumpNeighbours_())},Blockly.BlockSvg.prototype.appendInput_=function(e,o){var t=Blockly.BlockSvg.superClass_.appendInput_.call(this,e,o);return this.rendered&&(this.render(),this.bumpNeighbours_()),t},Blockly.BlockSvg.prototype.getConnections_=function(e){var o=[];if((e||this.rendered)&&(this.outputConnection&&o.push(this.outputConnection),this.previousConnection&&o.push(this.previousConnection),this.nextConnection&&o.push(this.nextConnection),e||!this.collapsed_)){e=0;for(var t;t=this.inputList[e];e++)t.connection&&o.push(t.connection)}return o},Blockly.BlockSvg.prototype.makeConnection_=function(e){return new Blockly.RenderedConnection(this,e)},Blockly.BlockSvg.render={},Blockly.BlockSvg.SEP_SPACE_X=10,Blockly.BlockSvg.SEP_SPACE_Y=10,Blockly.BlockSvg.INLINE_PADDING_Y=5,Blockly.BlockSvg.MIN_BLOCK_Y=25,Blockly.BlockSvg.TAB_HEIGHT=20,Blockly.BlockSvg.TAB_WIDTH=8,Blockly.BlockSvg.NOTCH_WIDTH=30,Blockly.BlockSvg.CORNER_RADIUS=8,Blockly.BlockSvg.START_HAT=!1,Blockly.BlockSvg.START_HAT_HEIGHT=15,Blockly.BlockSvg.START_HAT_PATH="c 30,-"+Blockly.BlockSvg.START_HAT_HEIGHT+" 70,-"+Blockly.BlockSvg.START_HAT_HEIGHT+" 100,0",Blockly.BlockSvg.START_HAT_HIGHLIGHT_LTR="c 17.8,-9.2 45.3,-14.9 75,-8.7 M 100.5,0.5",Blockly.BlockSvg.START_HAT_HIGHLIGHT_RTL="m 25,-8.7 c 29.7,-6.2 57.2,-0.5 75,8.7",Blockly.BlockSvg.DISTANCE_45_INSIDE=(1-Math.SQRT1_2)*(Blockly.BlockSvg.CORNER_RADIUS-.5)+.5,Blockly.BlockSvg.DISTANCE_45_OUTSIDE=(1-Math.SQRT1_2)*(Blockly.BlockSvg.CORNER_RADIUS+.5)-.5,Blockly.BlockSvg.NOTCH_PATH_LEFT="l 6,4 3,0 6,-4",Blockly.BlockSvg.NOTCH_PATH_LEFT_HIGHLIGHT="l 6,4 3,0 6,-4",Blockly.BlockSvg.NOTCH_PATH_RIGHT="l -6,4 -3,0 -6,-4",Blockly.BlockSvg.JAGGED_TEETH="l 8,0 0,4 8,4 -16,8 8,4",Blockly.BlockSvg.JAGGED_TEETH_HEIGHT=20,Blockly.BlockSvg.JAGGED_TEETH_WIDTH=15,Blockly.BlockSvg.TAB_PATH_DOWN="v 5 c 0,10 -"+Blockly.BlockSvg.TAB_WIDTH+",-8 -"+Blockly.BlockSvg.TAB_WIDTH+",7.5 s "+Blockly.BlockSvg.TAB_WIDTH+",-2.5 "+Blockly.BlockSvg.TAB_WIDTH+",7.5",Blockly.BlockSvg.TAB_PATH_DOWN_HIGHLIGHT_RTL="v 6.5 m -"+.97*Blockly.BlockSvg.TAB_WIDTH+",3 q -"+.05*Blockly.BlockSvg.TAB_WIDTH+",10 "+.3*Blockly.BlockSvg.TAB_WIDTH+",9.5 m "+.67*Blockly.BlockSvg.TAB_WIDTH+",-1.9 v 1.4",Blockly.BlockSvg.TOP_LEFT_CORNER_START="m 0,"+Blockly.BlockSvg.CORNER_RADIUS,Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_RTL="m "+Blockly.BlockSvg.DISTANCE_45_INSIDE+","+Blockly.BlockSvg.DISTANCE_45_INSIDE,Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_LTR="m 0.5,"+(Blockly.BlockSvg.CORNER_RADIUS-.5),Blockly.BlockSvg.TOP_LEFT_CORNER="A "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,1 "+Blockly.BlockSvg.CORNER_RADIUS+",0",Blockly.BlockSvg.TOP_LEFT_CORNER_HIGHLIGHT="A "+(Blockly.BlockSvg.CORNER_RADIUS-.5)+","+(Blockly.BlockSvg.CORNER_RADIUS-.5)+" 0 0,1 "+Blockly.BlockSvg.CORNER_RADIUS+",0.5",Blockly.BlockSvg.INNER_TOP_LEFT_CORNER=Blockly.BlockSvg.NOTCH_PATH_RIGHT+" h -"+(Blockly.BlockSvg.NOTCH_WIDTH-15-Blockly.BlockSvg.CORNER_RADIUS)+" a "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 -"+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS,Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER="a "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS,Blockly.BlockSvg.INNER_TOP_LEFT_CORNER_HIGHLIGHT_RTL="a "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 "+(-Blockly.BlockSvg.DISTANCE_45_OUTSIDE-.5)+","+(Blockly.BlockSvg.CORNER_RADIUS-Blockly.BlockSvg.DISTANCE_45_OUTSIDE),Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_RTL="a "+(Blockly.BlockSvg.CORNER_RADIUS+.5)+","+(Blockly.BlockSvg.CORNER_RADIUS+.5)+" 0 0,0 "+(Blockly.BlockSvg.CORNER_RADIUS+.5)+","+(Blockly.BlockSvg.CORNER_RADIUS+.5),Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_LTR="a "+(Blockly.BlockSvg.CORNER_RADIUS+.5)+","+(Blockly.BlockSvg.CORNER_RADIUS+.5)+" 0 0,0 "+(Blockly.BlockSvg.CORNER_RADIUS-Blockly.BlockSvg.DISTANCE_45_OUTSIDE)+","+(Blockly.BlockSvg.DISTANCE_45_OUTSIDE+.5),Blockly.BlockSvg.prototype.render=function(e){Blockly.Field.startCache(),this.rendered=!0;var o=Blockly.BlockSvg.SEP_SPACE_X;this.RTL&&(o=-o);for(var t=this.getIcons(),n=0;n<t.length;n++)o=t[n].renderIcon(o);o+=this.RTL?Blockly.BlockSvg.SEP_SPACE_X:-Blockly.BlockSvg.SEP_SPACE_X,t=this.renderCompute_(o),this.renderDraw_(o,t),this.renderMoveConnections_(),!1!==e&&((e=this.getParent())?e.render(!0):this.workspace.resizeContents()),Blockly.Field.stopCache()},Blockly.BlockSvg.prototype.renderFields_=function(e,o,t){t+=Blockly.BlockSvg.INLINE_PADDING_Y,this.RTL&&(o=-o);for(var n,r=0;n=e[r];r++){var i=n.getSvgRoot();i&&(this.RTL?(o-=n.renderSep+n.renderWidth,i.setAttribute("transform","translate("+o+","+t+")"),n.renderWidth&&(o-=Blockly.BlockSvg.SEP_SPACE_X)):(i.setAttribute("transform","translate("+(o+n.renderSep)+","+t+")"),n.renderWidth&&(o+=n.renderSep+n.renderWidth+Blockly.BlockSvg.SEP_SPACE_X)))}return this.RTL?-o:o},Blockly.BlockSvg.prototype.renderCompute_=function(e){var o=this.inputList,t=[];t.rightEdge=e+2*Blockly.BlockSvg.SEP_SPACE_X,(this.previousConnection||this.nextConnection)&&(t.rightEdge=Math.max(t.rightEdge,Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.SEP_SPACE_X));for(var n,r=0,i=0,s=!1,l=!1,g=!1,a=void 0,c=this.getInputsInline()&&!this.isCollapsed(),u=0;n=o[u];u++)if(n.isVisible()){var h;if(c&&a&&a!=Blockly.NEXT_STATEMENT&&n.type!=Blockly.NEXT_STATEMENT?h=t[t.length-1]:(a=n.type,h=[],h.type=c&&n.type!=Blockly.NEXT_STATEMENT?Blockly.BlockSvg.INLINE:n.type,h.height=0,t.push(h)),h.push(n),n.renderHeight=Blockly.BlockSvg.MIN_BLOCK_Y,n.renderWidth=c&&n.type==Blockly.INPUT_VALUE?Blockly.BlockSvg.TAB_WIDTH+1.25*Blockly.BlockSvg.SEP_SPACE_X:0,n.connection&&n.connection.isConnected()){var d=n.connection.targetBlock().getHeightWidth();n.renderHeight=Math.max(n.renderHeight,d.height),n.renderWidth=Math.max(n.renderWidth,d.width)}c||u!=o.length-1?!c&&n.type==Blockly.INPUT_VALUE&&o[u+1]&&o[u+1].type==Blockly.NEXT_STATEMENT&&n.renderHeight--:n.renderHeight--,h.height=Math.max(h.height,n.renderHeight),n.fieldWidth=0,1==t.length&&(n.fieldWidth+=this.RTL?-e:e);for(var p,d=!1,y=0;p=n.fieldRow[y];y++){0!=y&&(n.fieldWidth+=Blockly.BlockSvg.SEP_SPACE_X);var f=p.getSize();p.renderWidth=f.width,p.renderSep=d&&p.EDITABLE?Blockly.BlockSvg.SEP_SPACE_X:0,n.fieldWidth+=p.renderWidth+p.renderSep,h.height=Math.max(h.height,f.height),d=p.EDITABLE}h.type!=Blockly.BlockSvg.INLINE&&(h.type==Blockly.NEXT_STATEMENT?(l=!0,i=Math.max(i,n.fieldWidth)):(h.type==Blockly.INPUT_VALUE?s=!0:h.type==Blockly.DUMMY_INPUT&&(g=!0),r=Math.max(r,n.fieldWidth)))}for(e=0;h=t[e];e++)if(h.thicker=!1,h.type==Blockly.BlockSvg.INLINE)for(o=0;n=h[o];o++)if(n.type==Blockly.INPUT_VALUE){h.height+=2*Blockly.BlockSvg.INLINE_PADDING_Y,h.thicker=!0;break}return t.statementEdge=2*Blockly.BlockSvg.SEP_SPACE_X+i,l&&(t.rightEdge=Math.max(t.rightEdge,t.statementEdge+Blockly.BlockSvg.NOTCH_WIDTH)),s?t.rightEdge=Math.max(t.rightEdge,r+2*Blockly.BlockSvg.SEP_SPACE_X+Blockly.BlockSvg.TAB_WIDTH):g&&(t.rightEdge=Math.max(t.rightEdge,r+2*Blockly.BlockSvg.SEP_SPACE_X)),t.hasValue=s,t.hasStatement=l,t.hasDummy=g,t},Blockly.BlockSvg.prototype.renderDraw_=function(e,o){if(this.startHat_=!1,this.height=0,this.outputConnection)this.squareBottomLeftCorner_=this.squareTopLeftCorner_=!0;else{if(this.squareBottomLeftCorner_=this.squareTopLeftCorner_=!1,this.previousConnection){var t=this.previousConnection.targetBlock();t&&t.getNextBlock()==this&&(this.squareTopLeftCorner_=!0)}else Blockly.BlockSvg.START_HAT&&(this.startHat_=this.squareTopLeftCorner_=!0,this.height+=Blockly.BlockSvg.START_HAT_HEIGHT,o.rightEdge=Math.max(o.rightEdge,100));this.getNextBlock()&&(this.squareBottomLeftCorner_=!0)}var n=[],r=[],t=[],i=[];this.renderDrawTop_(n,t,o.rightEdge);var s=this.renderDrawRight_(n,t,r,i,o,e);this.renderDrawBottom_(n,t,s),this.renderDrawLeft_(n,t),n=n.join(" ")+"\n"+r.join(" "),this.svgPath_.setAttribute("d",n),this.svgPathDark_.setAttribute("d",n),n=t.join(" ")+"\n"+i.join(" "),this.svgPathLight_.setAttribute("d",n),this.RTL&&(this.svgPath_.setAttribute("transform","scale(-1 1)"),this.svgPathLight_.setAttribute("transform","scale(-1 1)"),this.svgPathDark_.setAttribute("transform","translate(1,1) scale(-1 1)"))},Blockly.BlockSvg.prototype.renderMoveConnections_=function(){var e=this.getRelativeToSurfaceXY();this.previousConnection&&this.previousConnection.moveToOffset(e),this.outputConnection&&this.outputConnection.moveToOffset(e);for(var o=0;o<this.inputList.length;o++){var t=this.inputList[o].connection;t&&(t.moveToOffset(e),t.isConnected()&&t.tighten_())}this.nextConnection&&(this.nextConnection.moveToOffset(e),this.nextConnection.isConnected()&&this.nextConnection.tighten_())},Blockly.BlockSvg.prototype.renderDrawTop_=function(e,o,t){this.squareTopLeftCorner_?(e.push("m 0,0"),o.push("m 0.5,0.5"),this.startHat_&&(e.push(Blockly.BlockSvg.START_HAT_PATH),o.push(this.RTL?Blockly.BlockSvg.START_HAT_HIGHLIGHT_RTL:Blockly.BlockSvg.START_HAT_HIGHLIGHT_LTR))):(e.push(Blockly.BlockSvg.TOP_LEFT_CORNER_START),o.push(this.RTL?Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_RTL:Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_LTR),e.push(Blockly.BlockSvg.TOP_LEFT_CORNER),o.push(Blockly.BlockSvg.TOP_LEFT_CORNER_HIGHLIGHT)),this.previousConnection&&(e.push("H",Blockly.BlockSvg.NOTCH_WIDTH-15),o.push("H",Blockly.BlockSvg.NOTCH_WIDTH-15),e.push(Blockly.BlockSvg.NOTCH_PATH_LEFT),o.push(Blockly.BlockSvg.NOTCH_PATH_LEFT_HIGHLIGHT),this.previousConnection.setOffsetInBlock(this.RTL?-Blockly.BlockSvg.NOTCH_WIDTH:Blockly.BlockSvg.NOTCH_WIDTH,0)),e.push("H",t),o.push("H",t-.5),this.width=t},Blockly.BlockSvg.prototype.renderDrawRight_=function(e,o,t,n,r,i){for(var s,l,g,a,c=0,u=0;a=r[u];u++){if(s=Blockly.BlockSvg.SEP_SPACE_X,0==u&&(s+=this.RTL?-i:i),o.push("M",r.rightEdge-.5+","+(c+.5)),this.isCollapsed()){var h=a[0];l=c,this.renderFields_(h.fieldRow,s,l),e.push(Blockly.BlockSvg.JAGGED_TEETH),o.push("h 8"),h=a.height-Blockly.BlockSvg.JAGGED_TEETH_HEIGHT,e.push("v",h),this.RTL&&(o.push("v 3.9 l 7.2,3.4 m -14.5,8.9 l 7.3,3.5"),o.push("v",h-.7)),this.width+=Blockly.BlockSvg.JAGGED_TEETH_WIDTH}else if(a.type==Blockly.BlockSvg.INLINE){for(var d=0;h=a[d];d++)l=c,a.thicker&&(l+=Blockly.BlockSvg.INLINE_PADDING_Y),s=this.renderFields_(h.fieldRow,s,l),h.type!=Blockly.DUMMY_INPUT&&(s+=h.renderWidth+Blockly.BlockSvg.SEP_SPACE_X),h.type==Blockly.INPUT_VALUE&&(t.push("M",s-Blockly.BlockSvg.SEP_SPACE_X+","+(c+Blockly.BlockSvg.INLINE_PADDING_Y)),t.push("h",Blockly.BlockSvg.TAB_WIDTH-2-h.renderWidth),t.push(Blockly.BlockSvg.TAB_PATH_DOWN),t.push("v",h.renderHeight+1-Blockly.BlockSvg.TAB_HEIGHT),t.push("h",h.renderWidth+2-Blockly.BlockSvg.TAB_WIDTH),t.push("z"),this.RTL?(n.push("M",s-Blockly.BlockSvg.SEP_SPACE_X-2.5+Blockly.BlockSvg.TAB_WIDTH-h.renderWidth+","+(c+Blockly.BlockSvg.INLINE_PADDING_Y+.5)),n.push(Blockly.BlockSvg.TAB_PATH_DOWN_HIGHLIGHT_RTL),n.push("v",h.renderHeight-Blockly.BlockSvg.TAB_HEIGHT+2.5),n.push("h",h.renderWidth-Blockly.BlockSvg.TAB_WIDTH+2)):(n.push("M",s-Blockly.BlockSvg.SEP_SPACE_X+.5+","+(c+Blockly.BlockSvg.INLINE_PADDING_Y+.5)),n.push("v",h.renderHeight+1),n.push("h",Blockly.BlockSvg.TAB_WIDTH-2-h.renderWidth),n.push("M",s-h.renderWidth-Blockly.BlockSvg.SEP_SPACE_X+.9+","+(c+Blockly.BlockSvg.INLINE_PADDING_Y+Blockly.BlockSvg.TAB_HEIGHT-.7)),n.push("l",.46*Blockly.BlockSvg.TAB_WIDTH+",-2.1")),l=this.RTL?-s-Blockly.BlockSvg.TAB_WIDTH+Blockly.BlockSvg.SEP_SPACE_X+h.renderWidth+1:s+Blockly.BlockSvg.TAB_WIDTH-Blockly.BlockSvg.SEP_SPACE_X-h.renderWidth-1,g=c+Blockly.BlockSvg.INLINE_PADDING_Y+1,h.connection.setOffsetInBlock(l,g));s=Math.max(s,r.rightEdge),this.width=Math.max(this.width,s),e.push("H",s),o.push("H",s-.5),e.push("v",a.height),this.RTL&&o.push("v",a.height-1)}else a.type==Blockly.INPUT_VALUE?(h=a[0],l=c,h.align!=Blockly.ALIGN_LEFT&&(d=r.rightEdge-h.fieldWidth-Blockly.BlockSvg.TAB_WIDTH-2*Blockly.BlockSvg.SEP_SPACE_X,h.align==Blockly.ALIGN_RIGHT?s+=d:h.align==Blockly.ALIGN_CENTRE&&(s+=d/2)),this.renderFields_(h.fieldRow,s,l),e.push(Blockly.BlockSvg.TAB_PATH_DOWN),d=a.height-Blockly.BlockSvg.TAB_HEIGHT,e.push("v",d),this.RTL?(o.push(Blockly.BlockSvg.TAB_PATH_DOWN_HIGHLIGHT_RTL),o.push("v",d+.5)):(o.push("M",r.rightEdge-5+","+(c+Blockly.BlockSvg.TAB_HEIGHT-.7)),o.push("l",.46*Blockly.BlockSvg.TAB_WIDTH+",-2.1")),l=this.RTL?-r.rightEdge-1:r.rightEdge+1,h.connection.setOffsetInBlock(l,c),h.connection.isConnected()&&(this.width=Math.max(this.width,r.rightEdge+h.connection.targetBlock().getHeightWidth().width-Blockly.BlockSvg.TAB_WIDTH+1))):a.type==Blockly.DUMMY_INPUT?(h=a[0],l=c,h.align!=Blockly.ALIGN_LEFT&&(d=r.rightEdge-h.fieldWidth-2*Blockly.BlockSvg.SEP_SPACE_X,r.hasValue&&(d-=Blockly.BlockSvg.TAB_WIDTH),h.align==Blockly.ALIGN_RIGHT?s+=d:h.align==Blockly.ALIGN_CENTRE&&(s+=d/2)),this.renderFields_(h.fieldRow,s,l),e.push("v",a.height),this.RTL&&o.push("v",a.height-1)):a.type==Blockly.NEXT_STATEMENT&&(h=a[0],0==u&&(e.push("v",Blockly.BlockSvg.SEP_SPACE_Y),this.RTL&&o.push("v",Blockly.BlockSvg.SEP_SPACE_Y-1),c+=Blockly.BlockSvg.SEP_SPACE_Y),l=c,h.align!=Blockly.ALIGN_LEFT&&(d=r.statementEdge-h.fieldWidth-2*Blockly.BlockSvg.SEP_SPACE_X,h.align==Blockly.ALIGN_RIGHT?s+=d:h.align==Blockly.ALIGN_CENTRE&&(s+=d/2)),this.renderFields_(h.fieldRow,s,l),s=r.statementEdge+Blockly.BlockSvg.NOTCH_WIDTH,e.push("H",s),e.push(Blockly.BlockSvg.INNER_TOP_LEFT_CORNER),e.push("v",a.height-2*Blockly.BlockSvg.CORNER_RADIUS),e.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER),e.push("H",r.rightEdge),this.RTL?(o.push("M",s-Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.DISTANCE_45_OUTSIDE+","+(c+Blockly.BlockSvg.DISTANCE_45_OUTSIDE)),o.push(Blockly.BlockSvg.INNER_TOP_LEFT_CORNER_HIGHLIGHT_RTL),o.push("v",a.height-2*Blockly.BlockSvg.CORNER_RADIUS),o.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_RTL)):(o.push("M",s-Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.DISTANCE_45_OUTSIDE+","+(c+a.height-Blockly.BlockSvg.DISTANCE_45_OUTSIDE)),o.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_LTR)),o.push("H",r.rightEdge-.5),l=this.RTL?-s:s+1,h.connection.setOffsetInBlock(l,c+1),h.connection.isConnected()&&(this.width=Math.max(this.width,r.statementEdge+h.connection.targetBlock().getHeightWidth().width)),u==r.length-1||r[u+1].type==Blockly.NEXT_STATEMENT)&&(e.push("v",Blockly.BlockSvg.SEP_SPACE_Y),this.RTL&&o.push("v",Blockly.BlockSvg.SEP_SPACE_Y-1),c+=Blockly.BlockSvg.SEP_SPACE_Y);c+=a.height}return r.length||(c=Blockly.BlockSvg.MIN_BLOCK_Y,e.push("V",c),this.RTL&&o.push("V",c-1)),c},Blockly.BlockSvg.prototype.renderDrawBottom_=function(e,o,t){this.height+=t+1,this.nextConnection&&(e.push("H",Blockly.BlockSvg.NOTCH_WIDTH+(this.RTL?.5:-.5)+" "+Blockly.BlockSvg.NOTCH_PATH_RIGHT),this.nextConnection.setOffsetInBlock(this.RTL?-Blockly.BlockSvg.NOTCH_WIDTH:Blockly.BlockSvg.NOTCH_WIDTH,t+1),this.height+=4),this.squareBottomLeftCorner_?(e.push("H 0"),this.RTL||o.push("M","0.5,"+(t-.5))):(e.push("H",Blockly.BlockSvg.CORNER_RADIUS),e.push("a",Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,1 -"+Blockly.BlockSvg.CORNER_RADIUS+",-"+Blockly.BlockSvg.CORNER_RADIUS),this.RTL||(o.push("M",Blockly.BlockSvg.DISTANCE_45_INSIDE+","+(t-Blockly.BlockSvg.DISTANCE_45_INSIDE)),o.push("A",Blockly.BlockSvg.CORNER_RADIUS-.5+","+(Blockly.BlockSvg.CORNER_RADIUS-.5)+" 0 0,1 0.5,"+(t-Blockly.BlockSvg.CORNER_RADIUS))))},Blockly.BlockSvg.prototype.renderDrawLeft_=function(e,o){this.outputConnection?(this.outputConnection.setOffsetInBlock(0,0),e.push("V",Blockly.BlockSvg.TAB_HEIGHT),e.push("c 0,-10 -"+Blockly.BlockSvg.TAB_WIDTH+",8 -"+Blockly.BlockSvg.TAB_WIDTH+",-7.5 s "+Blockly.BlockSvg.TAB_WIDTH+",2.5 "+Blockly.BlockSvg.TAB_WIDTH+",-7.5"),this.RTL?(o.push("M",-.25*Blockly.BlockSvg.TAB_WIDTH+",8.4"),o.push("l",-.45*Blockly.BlockSvg.TAB_WIDTH+",-2.1")):(o.push("V",Blockly.BlockSvg.TAB_HEIGHT-1.5),o.push("m",-.92*Blockly.BlockSvg.TAB_WIDTH+",-0.5 q "+-.19*Blockly.BlockSvg.TAB_WIDTH+",-5.5 0,-11"),o.push("m",.92*Blockly.BlockSvg.TAB_WIDTH+",1 V 0.5 H 1")),this.width+=Blockly.BlockSvg.TAB_WIDTH):this.RTL||(this.squareTopLeftCorner_?o.push("V",.5):o.push("V",Blockly.BlockSvg.CORNER_RADIUS)),e.push("z")},Blockly.Events={},Blockly.Events.group_="",Blockly.Events.recordUndo=!0,Blockly.Events.disabled_=0,Blockly.Events.CREATE="create",Blockly.Events.DELETE="delete",Blockly.Events.CHANGE="change",Blockly.Events.MOVE="move",Blockly.Events.UI="ui",Blockly.Events.FIRE_QUEUE_=[],Blockly.Events.fire=function(e){Blockly.Events.isEnabled()&&(Blockly.Events.FIRE_QUEUE_.length||setTimeout(Blockly.Events.fireNow_,0),Blockly.Events.FIRE_QUEUE_.push(e))},Blockly.Events.fireNow_=function(){for(var e,o=Blockly.Events.filter(Blockly.Events.FIRE_QUEUE_,!0),t=Blockly.Events.FIRE_QUEUE_.length=0;e=o[t];t++){var n=Blockly.Workspace.getById(e.workspaceId);n&&n.fireChangeListener(e)}},Blockly.Events.filter=function(e,o){var t=goog.array.clone(e);o||t.reverse();for(var n,r=0;n=t[r];r++)for(var i,s=r+1;i=t[s];s++)n.type==i.type&&n.blockId==i.blockId&&n.workspaceId==i.workspaceId&&(n.type==Blockly.Events.MOVE?(n.newParentId=i.newParentId,n.newInputName=i.newInputName,n.newCoordinate=i.newCoordinate,t.splice(s,1),s--):n.type==Blockly.Events.CHANGE&&n.element==i.element&&n.name==i.name?(n.newValue=i.newValue,t.splice(s,1),s--):n.type!=Blockly.Events.UI||"click"!=i.element||"commentOpen"!=n.element&&"mutatorOpen"!=n.element&&"warningOpen"!=n.element||(n.newValue=i.newValue,t.splice(s,1),s--));for(r=t.length-1;r>=0;r--)t[r].isNull()&&t.splice(r,1);for(o||t.reverse(),r=1;n=t[r];r++)n.type==Blockly.Events.CHANGE&&"mutation"==n.element&&t.unshift(t.splice(r,1)[0]);return t},Blockly.Events.clearPendingUndo=function(){for(var e,o=0;e=Blockly.Events.FIRE_QUEUE_[o];o++)e.recordUndo=!1},Blockly.Events.disable=function(){Blockly.Events.disabled_++},Blockly.Events.enable=function(){Blockly.Events.disabled_--},Blockly.Events.isEnabled=function(){return 0==Blockly.Events.disabled_},Blockly.Events.getGroup=function(){return Blockly.Events.group_},Blockly.Events.setGroup=function(e){Blockly.Events.group_="boolean"==typeof e?e?Blockly.genUid():"":e},Blockly.Events.getDescendantIds_=function(e){var o=[];e=e.getDescendants();for(var t,n=0;t=e[n];n++)o[n]=t.id;return o},Blockly.Events.fromJson=function(e,o){var t;switch(e.type){case Blockly.Events.CREATE:t=new Blockly.Events.Create(null);break;case Blockly.Events.DELETE:t=new Blockly.Events.Delete(null);break;case Blockly.Events.CHANGE:t=new Blockly.Events.Change(null);break;case Blockly.Events.MOVE:t=new Blockly.Events.Move(null);break;case Blockly.Events.UI:t=new Blockly.Events.Ui(null);break;default:throw"Unknown event type."}return t.fromJson(e),t.workspaceId=o.id,t},Blockly.Events.Abstract=function(e){e&&(this.blockId=e.id,this.workspaceId=e.workspace.id),this.group=Blockly.Events.group_,this.recordUndo=Blockly.Events.recordUndo},Blockly.Events.Abstract.prototype.toJson=function(){var e={type:this.type};return this.blockId&&(e.blockId=this.blockId),this.group&&(e.group=this.group),e},Blockly.Events.Abstract.prototype.fromJson=function(e){this.blockId=e.blockId,this.group=e.group},Blockly.Events.Abstract.prototype.isNull=function(){return!1},Blockly.Events.Abstract.prototype.run=function(e){},Blockly.Events.Create=function(e){e&&(Blockly.Events.Create.superClass_.constructor.call(this,e),this.xml=Blockly.Xml.blockToDomWithXY(e),this.ids=Blockly.Events.getDescendantIds_(e))},goog.inherits(Blockly.Events.Create,Blockly.Events.Abstract),Blockly.Events.Create.prototype.type=Blockly.Events.CREATE,Blockly.Events.Create.prototype.toJson=function(){var e=Blockly.Events.Create.superClass_.toJson.call(this);return e.xml=Blockly.Xml.domToText(this.xml),e.ids=this.ids,e},Blockly.Events.Create.prototype.fromJson=function(e){Blockly.Events.Create.superClass_.fromJson.call(this,e),this.xml=Blockly.Xml.textToDom("<xml>"+e.xml+"</xml>").firstChild,this.ids=e.ids},Blockly.Events.Create.prototype.run=function(e){var o=Blockly.Workspace.getById(this.workspaceId);if(e)e=goog.dom.createDom("xml"),e.appendChild(this.xml),Blockly.Xml.domToWorkspace(e,o);else{e=0;for(var t;t=this.ids[e];e++){var n=o.getBlockById(t);n?n.dispose(!1,!1):t==this.blockId&&console.warn("Can't uncreate non-existant block: "+t)}}},Blockly.Events.Delete=function(e){if(e){if(e.getParent())throw"Connected blocks cannot be deleted.";Blockly.Events.Delete.superClass_.constructor.call(this,e),this.oldXml=Blockly.Xml.blockToDomWithXY(e),this.ids=Blockly.Events.getDescendantIds_(e)}},goog.inherits(Blockly.Events.Delete,Blockly.Events.Abstract),Blockly.Events.Delete.prototype.type=Blockly.Events.DELETE,Blockly.Events.Delete.prototype.toJson=function(){var e=Blockly.Events.Delete.superClass_.toJson.call(this);return e.ids=this.ids,e},Blockly.Events.Delete.prototype.fromJson=function(e){Blockly.Events.Delete.superClass_.fromJson.call(this,e),this.ids=e.ids},Blockly.Events.Delete.prototype.run=function(e){var o=Blockly.Workspace.getById(this.workspaceId);if(e){e=0;for(var t;t=this.ids[e];e++){var n=o.getBlockById(t);n?n.dispose(!1,!1):t==this.blockId&&console.warn("Can't delete non-existant block: "+t)}}else e=goog.dom.createDom("xml"),e.appendChild(this.oldXml),Blockly.Xml.domToWorkspace(e,o)},Blockly.Events.Change=function(e,o,t,n,r){e&&(Blockly.Events.Change.superClass_.constructor.call(this,e),this.element=o,this.name=t,this.oldValue=n,this.newValue=r)},goog.inherits(Blockly.Events.Change,Blockly.Events.Abstract),Blockly.Events.Change.prototype.type=Blockly.Events.CHANGE,Blockly.Events.Change.prototype.toJson=function(){var e=Blockly.Events.Change.superClass_.toJson.call(this);return e.element=this.element,this.name&&(e.name=this.name),e.newValue=this.newValue,e},Blockly.Events.Change.prototype.fromJson=function(e){Blockly.Events.Change.superClass_.fromJson.call(this,e),this.element=e.element,this.name=e.name,this.newValue=e.newValue},Blockly.Events.Change.prototype.isNull=function(){return this.oldValue==this.newValue},Blockly.Events.Change.prototype.run=function(e){var o=Blockly.Workspace.getById(this.workspaceId).getBlockById(this.blockId);if(o)switch(o.mutator&&o.mutator.setVisible(!1),e=e?this.newValue:this.oldValue,this.element){case"field":(o=o.getField(this.name))?(o.callValidator(e),o.setValue(e)):console.warn("Can't set non-existant field: "+this.name);break;case"comment":o.setCommentText(e||null);break;case"collapsed":o.setCollapsed(e);break;case"disabled":o.setDisabled(e);break;case"inline":o.setInputsInline(e);break;case"mutation":var t="";if(o.mutationToDom&&(t=(t=o.mutationToDom())&&Blockly.Xml.domToText(t)),o.domToMutation){e=e||"<mutation></mutation>";var n=Blockly.Xml.textToDom("<xml>"+e+"</xml>");o.domToMutation(n.firstChild)}Blockly.Events.fire(new Blockly.Events.Change(o,"mutation",null,t,e));break;default:console.warn("Unknown change type: "+this.element)}else console.warn("Can't change non-existant block: "+this.blockId)},Blockly.Events.Move=function(e){e&&(Blockly.Events.Move.superClass_.constructor.call(this,e),e=this.currentLocation_(),this.oldParentId=e.parentId,this.oldInputName=e.inputName,this.oldCoordinate=e.coordinate)},goog.inherits(Blockly.Events.Move,Blockly.Events.Abstract),Blockly.Events.Move.prototype.type=Blockly.Events.MOVE,Blockly.Events.Move.prototype.toJson=function(){var e=Blockly.Events.Move.superClass_.toJson.call(this);return this.newParentId&&(e.newParentId=this.newParentId),this.newInputName&&(e.newInputName=this.newInputName),this.newCoordinate&&(e.newCoordinate=Math.round(this.newCoordinate.x)+","+Math.round(this.newCoordinate.y)),e},Blockly.Events.Move.prototype.fromJson=function(e){Blockly.Events.Move.superClass_.fromJson.call(this,e),this.newParentId=e.newParentId,this.newInputName=e.newInputName,e.newCoordinate&&(e=e.newCoordinate.split(","),this.newCoordinate=new goog.math.Coordinate(parseFloat(e[0]),parseFloat(e[1])))},Blockly.Events.Move.prototype.recordNew=function(){var e=this.currentLocation_();this.newParentId=e.parentId,this.newInputName=e.inputName,this.newCoordinate=e.coordinate},Blockly.Events.Move.prototype.currentLocation_=function(){var e=Blockly.Workspace.getById(this.workspaceId).getBlockById(this.blockId),o={},t=e.getParent();return t?(o.parentId=t.id,(e=t.getInputWithBlock(e))&&(o.inputName=e.name)):o.coordinate=e.getRelativeToSurfaceXY(),o},Blockly.Events.Move.prototype.isNull=function(){return this.oldParentId==this.newParentId&&this.oldInputName==this.newInputName&&goog.math.Coordinate.equals(this.oldCoordinate,this.newCoordinate)},Blockly.Events.Move.prototype.run=function(e){var o=Blockly.Workspace.getById(this.workspaceId),t=o.getBlockById(this.blockId);if(t){var n=e?this.newParentId:this.oldParentId,r=e?this.newInputName:this.oldInputName;e=e?this.newCoordinate:this.oldCoordinate;var i=null;if(n&&(i=o.getBlockById(n),!i))return void console.warn("Can't connect to non-existant block: "+n);if(t.getParent()&&t.unplug(),e)r=t.getRelativeToSurfaceXY(),t.moveBy(e.x-r.x,e.y-r.y);else{var s,t=t.outputConnection||t.previousConnection;r?(o=i.getInput(r))&&(s=o.connection):t.type==Blockly.PREVIOUS_STATEMENT&&(s=i.nextConnection),s?t.connect(s):console.warn("Can't connect to non-existant input: "+r)}}else console.warn("Can't move non-existant block: "+this.blockId)},Blockly.Events.Ui=function(e,o,t,n){Blockly.Events.Ui.superClass_.constructor.call(this,e),this.element=o,this.oldValue=t,this.newValue=n,this.recordUndo=!1},goog.inherits(Blockly.Events.Ui,Blockly.Events.Abstract),Blockly.Events.Ui.prototype.type=Blockly.Events.UI,Blockly.Events.Ui.prototype.toJson=function(){var e=Blockly.Events.Ui.superClass_.toJson.call(this);return e.element=this.element,void 0!==this.newValue&&(e.newValue=this.newValue),e},Blockly.Events.Ui.prototype.fromJson=function(e){Blockly.Events.Ui.superClass_.fromJson.call(this,e),this.element=e.element,this.newValue=e.newValue},Blockly.Events.disableOrphans=function(e){if(e.type==Blockly.Events.MOVE||e.type==Blockly.Events.CREATE){if(Blockly.Events.disable(),e=Blockly.Workspace.getById(e.workspaceId).getBlockById(e.blockId))if(e.getParent()&&!e.getParent().disabled){e=e.getDescendants();for(var o,t=0;o=e[t];t++)o.setDisabled(!1)}else if((e.outputConnection||e.previousConnection)&&Blockly.dragMode_==Blockly.DRAG_NONE)do e.setDisabled(!0),e=e.getNextBlock();while(e);Blockly.Events.enable()}},Blockly.Msg={},goog.getMsgOrig=goog.getMsg,goog.getMsg=function(e,o){var t=goog.getMsg.blocklyMsgMap[e];return t&&(e=Blockly.Msg[t]),goog.getMsgOrig(e,o)},goog.getMsg.blocklyMsgMap={Today:"TODAY"},Blockly.FieldTextInput=function(e,o){Blockly.FieldTextInput.superClass_.constructor.call(this,e,o)},goog.inherits(Blockly.FieldTextInput,Blockly.Field),Blockly.FieldTextInput.FONTSIZE=11,Blockly.FieldTextInput.prototype.CURSOR="text",Blockly.FieldTextInput.prototype.spellcheck_=!0,Blockly.FieldTextInput.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this),Blockly.FieldTextInput.superClass_.dispose.call(this)},Blockly.FieldTextInput.prototype.setValue=function(e){if(null!==e){if(this.sourceBlock_){var o=this.callValidator(e);null!==o&&(e=o)}Blockly.Field.prototype.setValue.call(this,e)}},Blockly.FieldTextInput.prototype.setSpellcheck=function(e){this.spellcheck_=e},Blockly.FieldTextInput.prototype.showEditor_=function(e){if(this.workspace_=this.sourceBlock_.workspace,e=e||!1,!e&&(goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD)){var o=this;Blockly.prompt(Blockly.Msg.CHANGE_VALUE_TITLE,this.text_,function(e){o.sourceBlock_&&(e=o.callValidator(e)),o.setValue(e)})}else{Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,this.widgetDispose_());var t=Blockly.WidgetDiv.DIV,n=goog.dom.createDom("INPUT","blocklyHtmlInput");n.setAttribute("spellcheck",this.spellcheck_);var r=Blockly.FieldTextInput.FONTSIZE*this.workspace_.scale+"pt";t.style.fontSize=r,n.style.fontSize=r,Blockly.FieldTextInput.htmlInput_=n,t.appendChild(n),n.value=n.defaultValue=this.text_,n.oldValue_=null,this.validate_(),this.resizeEditor_(),e||(n.focus(),n.select()),n.onKeyDownWrapper_=Blockly.bindEventWithChecks_(n,"keydown",this,this.onHtmlInputKeyDown_),n.onKeyUpWrapper_=Blockly.bindEventWithChecks_(n,"keyup",this,this.onHtmlInputChange_),n.onKeyPressWrapper_=Blockly.bindEventWithChecks_(n,"keypress",this,this.onHtmlInputChange_),n.onWorkspaceChangeWrapper_=this.resizeEditor_.bind(this),this.workspace_.addChangeListener(n.onWorkspaceChangeWrapper_)}},Blockly.FieldTextInput.prototype.onHtmlInputKeyDown_=function(e){var o=Blockly.FieldTextInput.htmlInput_;13==e.keyCode?Blockly.WidgetDiv.hide():27==e.keyCode?(o.value=o.defaultValue,Blockly.WidgetDiv.hide()):9==e.keyCode&&(Blockly.WidgetDiv.hide(),this.sourceBlock_.tab(this,!e.shiftKey),e.preventDefault())},Blockly.FieldTextInput.prototype.onHtmlInputChange_=function(e){e=Blockly.FieldTextInput.htmlInput_;var o=e.value;o!==e.oldValue_?(e.oldValue_=o,this.setValue(o),this.validate_()):goog.userAgent.WEBKIT&&this.sourceBlock_.render(),this.resizeEditor_(),Blockly.svgResize(this.sourceBlock_.workspace)},Blockly.FieldTextInput.prototype.validate_=function(){var e=!0;goog.asserts.assertObject(Blockly.FieldTextInput.htmlInput_);var o=Blockly.FieldTextInput.htmlInput_;this.sourceBlock_&&(e=this.callValidator(o.value)),null===e?Blockly.addClass_(o,"blocklyInvalidInput"):Blockly.removeClass_(o,"blocklyInvalidInput")},Blockly.FieldTextInput.prototype.resizeEditor_=function(){var e=Blockly.WidgetDiv.DIV,o=this.fieldGroup_.getBBox();if(e.style.width=o.width*this.workspace_.scale+"px",e.style.height=o.height*this.workspace_.scale+"px",o=this.getAbsoluteXY_(),this.sourceBlock_.RTL){var t=this.getScaledBBox_();o.x+=t.width,o.x-=e.offsetWidth}o.y+=1,goog.userAgent.GECKO&&Blockly.WidgetDiv.DIV.style.top&&(--o.x,--o.y),goog.userAgent.WEBKIT&&(o.y-=3),e.style.left=o.x+"px",e.style.top=o.y+"px"},Blockly.FieldTextInput.prototype.widgetDispose_=function(){var e=this;return function(){var o=Blockly.FieldTextInput.htmlInput_,t=o.value;e.sourceBlock_&&(t=e.callValidator(t),null===t?t=o.defaultValue:e.onFinishEditing_&&e.onFinishEditing_(t)),e.setValue(t),e.sourceBlock_.rendered&&e.sourceBlock_.render(),Blockly.unbindEvent_(o.onKeyDownWrapper_),Blockly.unbindEvent_(o.onKeyUpWrapper_),Blockly.unbindEvent_(o.onKeyPressWrapper_),e.workspace_.removeChangeListener(o.onWorkspaceChangeWrapper_),Blockly.FieldTextInput.htmlInput_=null,o=Blockly.WidgetDiv.DIV.style,o.width="auto",o.height="auto",o.fontSize=""}},Blockly.FieldTextInput.numberValidator=function(e){return console.warn("Blockly.FieldTextInput.numberValidator is deprecated. Use Blockly.FieldNumber instead."),null===e?null:(e=String(e),e=e.replace(/O/gi,"0"),e=e.replace(/,/g,""),e=parseFloat(e||0),isNaN(e)?null:String(e))},Blockly.FieldTextInput.nonnegativeIntegerValidator=function(e){return(e=Blockly.FieldTextInput.numberValidator(e))&&(e=String(Math.max(0,Math.floor(e)))),e},Blockly.FieldAngle=function(e,o){this.symbol_=Blockly.createSvgElement("tspan",{},null),this.symbol_.appendChild(document.createTextNode("°")),Blockly.FieldAngle.superClass_.constructor.call(this,e,o)},goog.inherits(Blockly.FieldAngle,Blockly.FieldTextInput),Blockly.FieldAngle.ROUND=15,Blockly.FieldAngle.HALF=50,Blockly.FieldAngle.CLOCKWISE=!1,Blockly.FieldAngle.OFFSET=0,Blockly.FieldAngle.WRAP=360,Blockly.FieldAngle.RADIUS=Blockly.FieldAngle.HALF-1,Blockly.FieldAngle.prototype.dispose_=function(){var e=this;return function(){Blockly.FieldAngle.superClass_.dispose_.call(e)(),e.gauge_=null,e.clickWrapper_&&Blockly.unbindEvent_(e.clickWrapper_),e.moveWrapper1_&&Blockly.unbindEvent_(e.moveWrapper1_),e.moveWrapper2_&&Blockly.unbindEvent_(e.moveWrapper2_)}},Blockly.FieldAngle.prototype.showEditor_=function(){Blockly.FieldAngle.superClass_.showEditor_.call(this,goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD);var e=Blockly.WidgetDiv.DIV;if(e.firstChild){var e=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml",
+"xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1",height:2*Blockly.FieldAngle.HALF+"px",width:2*Blockly.FieldAngle.HALF+"px"},e),o=Blockly.createSvgElement("circle",{cx:Blockly.FieldAngle.HALF,cy:Blockly.FieldAngle.HALF,r:Blockly.FieldAngle.RADIUS,"class":"blocklyAngleCircle"},e);this.gauge_=Blockly.createSvgElement("path",{"class":"blocklyAngleGauge"},e),this.line_=Blockly.createSvgElement("line",{x1:Blockly.FieldAngle.HALF,y1:Blockly.FieldAngle.HALF,"class":"blocklyAngleLine"},e);for(var t=0;360>t;t+=15)Blockly.createSvgElement("line",{x1:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS,y1:Blockly.FieldAngle.HALF,x2:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS-(0==t%45?10:5),y2:Blockly.FieldAngle.HALF,"class":"blocklyAngleMarks",transform:"rotate("+t+","+Blockly.FieldAngle.HALF+","+Blockly.FieldAngle.HALF+")"},e);e.style.marginLeft=15-Blockly.FieldAngle.RADIUS+"px",this.clickWrapper_=Blockly.bindEvent_(e,"click",this,Blockly.WidgetDiv.hide),this.moveWrapper1_=Blockly.bindEvent_(o,"mousemove",this,this.onMouseMove),this.moveWrapper2_=Blockly.bindEvent_(this.gauge_,"mousemove",this,this.onMouseMove),this.updateGraph_()}},Blockly.FieldAngle.prototype.onMouseMove=function(e){var o=this.gauge_.ownerSVGElement.getBoundingClientRect(),t=e.clientX-o.left-Blockly.FieldAngle.HALF;e=e.clientY-o.top-Blockly.FieldAngle.HALF,o=Math.atan(-e/t),isNaN(o)||(o=goog.math.toDegrees(o),0>t?o+=180:e>0&&(o+=360),o=Blockly.FieldAngle.CLOCKWISE?Blockly.FieldAngle.OFFSET+360-o:o-Blockly.FieldAngle.OFFSET,Blockly.FieldAngle.ROUND&&(o=Math.round(o/Blockly.FieldAngle.ROUND)*Blockly.FieldAngle.ROUND),o=this.callValidator(o),Blockly.FieldTextInput.htmlInput_.value=o,this.setValue(o),this.validate_(),this.resizeEditor_())},Blockly.FieldAngle.prototype.setText=function(e){Blockly.FieldAngle.superClass_.setText.call(this,e),this.textElement_&&(this.updateGraph_(),this.sourceBlock_.RTL?this.textElement_.insertBefore(this.symbol_,this.textElement_.firstChild):this.textElement_.appendChild(this.symbol_),this.size_.width=0)},Blockly.FieldAngle.prototype.updateGraph_=function(){if(this.gauge_){var e=Number(this.getText())+Blockly.FieldAngle.OFFSET,o=goog.math.toRadians(e),e=["M ",Blockly.FieldAngle.HALF,",",Blockly.FieldAngle.HALF],t=Blockly.FieldAngle.HALF,n=Blockly.FieldAngle.HALF;if(!isNaN(o)){var r=goog.math.toRadians(Blockly.FieldAngle.OFFSET),i=Math.cos(r)*Blockly.FieldAngle.RADIUS,s=Math.sin(r)*-Blockly.FieldAngle.RADIUS;Blockly.FieldAngle.CLOCKWISE&&(o=2*r-o),t+=Math.cos(o)*Blockly.FieldAngle.RADIUS,n-=Math.sin(o)*Blockly.FieldAngle.RADIUS,o=Math.abs(Math.floor((o-r)/Math.PI)%2),Blockly.FieldAngle.CLOCKWISE&&(o=1-o),e.push(" l ",i,",",s," A ",Blockly.FieldAngle.RADIUS,",",Blockly.FieldAngle.RADIUS," 0 ",o," ",Number(Blockly.FieldAngle.CLOCKWISE)," ",t,",",n," z")}this.gauge_.setAttribute("d",e.join("")),this.line_.setAttribute("x2",t),this.line_.setAttribute("y2",n)}},Blockly.FieldAngle.prototype.classValidator=function(e){return null===e?null:(e=parseFloat(e||0),isNaN(e)?null:(e%=360,0>e&&(e+=360),e>Blockly.FieldAngle.WRAP&&(e-=360),String(e)))},Blockly.FieldCheckbox=function(e,o){Blockly.FieldCheckbox.superClass_.constructor.call(this,"",o),this.setValue(e)},goog.inherits(Blockly.FieldCheckbox,Blockly.Field),Blockly.FieldCheckbox.CHECK_CHAR="✓",Blockly.FieldCheckbox.prototype.CURSOR="default",Blockly.FieldCheckbox.prototype.init=function(){if(!this.fieldGroup_){Blockly.FieldCheckbox.superClass_.init.call(this),this.checkElement_=Blockly.createSvgElement("text",{"class":"blocklyText blocklyCheckbox",x:-3,y:14},this.fieldGroup_);var e=document.createTextNode(Blockly.FieldCheckbox.CHECK_CHAR);this.checkElement_.appendChild(e),this.checkElement_.style.display=this.state_?"block":"none"}},Blockly.FieldCheckbox.prototype.getValue=function(){return String(this.state_).toUpperCase()},Blockly.FieldCheckbox.prototype.setValue=function(e){e="TRUE"==e.toUpperCase(),this.state_!==e&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.state_,e)),this.state_=e,this.checkElement_&&(this.checkElement_.style.display=e?"block":"none"))},Blockly.FieldCheckbox.prototype.showEditor_=function(){var e=!this.state_;this.sourceBlock_&&(e=this.callValidator(e)),null!==e&&this.setValue(String(e).toUpperCase())},Blockly.FieldColour=function(e,o){Blockly.FieldColour.superClass_.constructor.call(this,e,o),this.setText(Blockly.Field.NBSP+Blockly.Field.NBSP+Blockly.Field.NBSP)},goog.inherits(Blockly.FieldColour,Blockly.Field),Blockly.FieldColour.prototype.colours_=null,Blockly.FieldColour.prototype.columns_=0,Blockly.FieldColour.prototype.init=function(){Blockly.FieldColour.superClass_.init.call(this),this.borderRect_.style.fillOpacity=1,this.setValue(this.getValue())},Blockly.FieldColour.prototype.CURSOR="default",Blockly.FieldColour.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this),Blockly.FieldColour.superClass_.dispose.call(this)},Blockly.FieldColour.prototype.getValue=function(){return this.colour_},Blockly.FieldColour.prototype.setValue=function(e){this.sourceBlock_&&Blockly.Events.isEnabled()&&this.colour_!=e&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.colour_,e)),this.colour_=e,this.borderRect_&&(this.borderRect_.style.fill=e)},Blockly.FieldColour.prototype.getText=function(){var e=this.colour_,o=e.match(/^#(.)\1(.)\2(.)\3$/);return o&&(e="#"+o[1]+o[2]+o[3]),e},Blockly.FieldColour.COLOURS=goog.ui.ColorPicker.SIMPLE_GRID_COLORS,Blockly.FieldColour.COLUMNS=7,Blockly.FieldColour.prototype.setColours=function(e){return this.colours_=e,this},Blockly.FieldColour.prototype.setColumns=function(e){return this.columns_=e,this},Blockly.FieldColour.prototype.showEditor_=function(){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,Blockly.FieldColour.widgetDispose_);var e=new goog.ui.ColorPicker;e.setSize(this.columns_||Blockly.FieldColour.COLUMNS),e.setColors(this.colours_||Blockly.FieldColour.COLOURS);var o=goog.dom.getViewportSize(),t=goog.style.getViewportPageOffset(document),n=this.getAbsoluteXY_(),r=this.getScaledBBox_();e.render(Blockly.WidgetDiv.DIV),e.setSelectedColor(this.getValue());var i=goog.style.getSize(e.getElement());n.y=n.y+i.height+r.height>=o.height+t.y?n.y-(i.height-1):n.y+(r.height-1),this.sourceBlock_.RTL?(n.x+=r.width,n.x-=i.width,n.x<t.x&&(n.x=t.x)):n.x>o.width+t.x-i.width&&(n.x=o.width+t.x-i.width),Blockly.WidgetDiv.position(n.x,n.y,o,t,this.sourceBlock_.RTL);var s=this;Blockly.FieldColour.changeEventKey_=goog.events.listen(e,goog.ui.ColorPicker.EventType.CHANGE,function(e){e=e.target.getSelectedColor()||"#000000",Blockly.WidgetDiv.hide(),s.sourceBlock_&&(e=s.callValidator(e)),null!==e&&s.setValue(e)})},Blockly.FieldColour.widgetDispose_=function(){Blockly.FieldColour.changeEventKey_&&goog.events.unlistenByKey(Blockly.FieldColour.changeEventKey_)},Blockly.FieldDropdown=function(e,o){this.menuGenerator_=e,this.trimOptions_();var t=this.getOptions_()[0];Blockly.FieldDropdown.superClass_.constructor.call(this,t[1],o)},goog.inherits(Blockly.FieldDropdown,Blockly.Field),Blockly.FieldDropdown.CHECKMARK_OVERHANG=25,Blockly.FieldDropdown.ARROW_CHAR=goog.userAgent.ANDROID?"▼":"▾",Blockly.FieldDropdown.prototype.CURSOR="default",Blockly.FieldDropdown.prototype.value_="",Blockly.FieldDropdown.prototype.init=function(){if(!this.fieldGroup_){this.arrow_=Blockly.createSvgElement("tspan",{},null),this.arrow_.appendChild(document.createTextNode(this.sourceBlock_.RTL?Blockly.FieldDropdown.ARROW_CHAR+" ":" "+Blockly.FieldDropdown.ARROW_CHAR)),Blockly.FieldDropdown.superClass_.init.call(this);var e=this.text_;this.text_=null,this.setText(e)}},Blockly.FieldDropdown.prototype.showEditor_=function(){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,null);var e=this,o=new goog.ui.Menu;o.setRightToLeft(this.sourceBlock_.RTL);for(var t=this.getOptions_(),n=0;n<t.length;n++){var r=t[n][1],i=new goog.ui.MenuItem(t[n][0]);i.setRightToLeft(this.sourceBlock_.RTL),i.setValue(r),i.setCheckable(!0),o.addChild(i,!0),i.setChecked(r==this.value_)}goog.events.listen(o,goog.ui.Component.EventType.ACTION,function(o){(o=o.target)&&e.onItemSelected(this,o),Blockly.WidgetDiv.hideIfOwner(e)}),o.getHandler().listen(o.getElement(),goog.events.EventType.TOUCHSTART,function(e){this.getOwnerControl(e.target).handleMouseDown(e)}),o.getHandler().listen(o.getElement(),goog.events.EventType.TOUCHEND,function(e){this.getOwnerControl(e.target).performActionInternal(e)}),t=goog.dom.getViewportSize(),n=goog.style.getViewportPageOffset(document),r=this.getAbsoluteXY_(),i=this.getScaledBBox_(),o.render(Blockly.WidgetDiv.DIV);var s=o.getElement();Blockly.addClass_(s,"blocklyDropdownMenu");var l=goog.style.getSize(s);l.height=s.scrollHeight,r.y=r.y+l.height+i.height>=t.height+n.y?r.y-(l.height+2):r.y+i.height,this.sourceBlock_.RTL?(r.x+=i.width,r.x+=Blockly.FieldDropdown.CHECKMARK_OVERHANG,r.x<n.x+l.width&&(r.x=n.x+l.width)):(r.x-=Blockly.FieldDropdown.CHECKMARK_OVERHANG,r.x>t.width+n.x-l.width&&(r.x=t.width+n.x-l.width)),Blockly.WidgetDiv.position(r.x,r.y,t,n,this.sourceBlock_.RTL),o.setAllowAutoFocus(!0),s.focus()},Blockly.FieldDropdown.prototype.onItemSelected=function(e,o){var t=o.getValue();this.sourceBlock_&&(t=this.callValidator(t)),null!==t&&this.setValue(t)},Blockly.FieldDropdown.prototype.trimOptions_=function(){this.suffixField=this.prefixField=null;var e=this.menuGenerator_;if(goog.isArray(e)&&!(2>e.length)){var o=e.map(function(e){return e[0]}),t=Blockly.shortestStringLength(o),n=Blockly.commonWordPrefix(o,t),r=Blockly.commonWordSuffix(o,t);if((n||r)&&!(n+r>=t)){for(n&&(this.prefixField=o[0].substring(0,n-1)),r&&(this.suffixField=o[0].substr(1-r)),o=[],t=0;t<e.length;t++){var i=e[t][0],s=e[t][1],i=i.substring(n,i.length-r);o[t]=[i,s]}this.menuGenerator_=o}}},Blockly.FieldDropdown.prototype.getOptions_=function(){return goog.isFunction(this.menuGenerator_)?this.menuGenerator_.call(this):this.menuGenerator_},Blockly.FieldDropdown.prototype.getValue=function(){return this.value_},Blockly.FieldDropdown.prototype.setValue=function(e){if(null!==e&&e!==this.value_){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,e)),this.value_=e;for(var o=this.getOptions_(),t=0;t<o.length;t++)if(o[t][1]==e)return void this.setText(o[t][0]);this.setText(e)}},Blockly.FieldDropdown.prototype.setText=function(e){this.sourceBlock_&&this.arrow_&&(this.arrow_.style.fill=this.sourceBlock_.getColour()),null!==e&&e!==this.text_&&(this.text_=e,this.updateTextNode_(),this.textElement_&&(this.sourceBlock_.RTL?this.textElement_.insertBefore(this.arrow_,this.textElement_.firstChild):this.textElement_.appendChild(this.arrow_)),this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_()))},Blockly.FieldDropdown.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this),Blockly.FieldDropdown.superClass_.dispose.call(this)},Blockly.FieldImage=function(e,o,t,n){this.sourceBlock_=null,this.height_=Number(t),this.width_=Number(o),this.size_=new goog.math.Size(this.width_,this.height_+2*Blockly.BlockSvg.INLINE_PADDING_Y),this.text_=n||"",this.setValue(e)},goog.inherits(Blockly.FieldImage,Blockly.Field),Blockly.FieldImage.prototype.rectElement_=null,Blockly.FieldImage.prototype.EDITABLE=!1,Blockly.FieldImage.prototype.init=function(){if(!this.fieldGroup_){this.fieldGroup_=Blockly.createSvgElement("g",{},null),this.visible_||(this.fieldGroup_.style.display="none"),this.imageElement_=Blockly.createSvgElement("image",{height:this.height_+"px",width:this.width_+"px"},this.fieldGroup_),this.setValue(this.src_),goog.userAgent.GECKO&&(this.rectElement_=Blockly.createSvgElement("rect",{height:this.height_+"px",width:this.width_+"px","fill-opacity":0},this.fieldGroup_)),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);var e=this.rectElement_||this.imageElement_;e.tooltip=this.sourceBlock_,Blockly.Tooltip.bindMouseEvents(e)}},Blockly.FieldImage.prototype.dispose=function(){goog.dom.removeNode(this.fieldGroup_),this.rectElement_=this.imageElement_=this.fieldGroup_=null},Blockly.FieldImage.prototype.setTooltip=function(e){(this.rectElement_||this.imageElement_).tooltip=e},Blockly.FieldImage.prototype.getValue=function(){return this.src_},Blockly.FieldImage.prototype.setValue=function(e){null!==e&&(this.src_=e,this.imageElement_&&this.imageElement_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",goog.isString(e)?e:""))},Blockly.FieldImage.prototype.setText=function(e){null!==e&&(this.text_=e)},Blockly.FieldImage.prototype.render_=function(){},Blockly.FieldNumber=function(e,o,t,n,r){e=String(e),Blockly.FieldNumber.superClass_.constructor.call(this,e,r),this.setConstraints(o,t,n)},goog.inherits(Blockly.FieldNumber,Blockly.FieldTextInput),Blockly.FieldNumber.prototype.setConstraints=function(e,o,t){t=parseFloat(t),this.precision_=isNaN(t)?0:t,e=parseFloat(e),this.min_=isNaN(e)?-(1/0):e,o=parseFloat(o),this.max_=isNaN(o)?1/0:o,this.setValue(this.callValidator(this.getValue()))},Blockly.FieldNumber.prototype.classValidator=function(e){return null===e?null:(e=String(e),e=e.replace(/O/gi,"0"),e=e.replace(/,/g,""),e=parseFloat(e||0),isNaN(e)?null:(this.precision_&&isFinite(e)&&(e=Math.round(e/this.precision_)*this.precision_),e=goog.math.clamp(e,this.min_,this.max_),String(e)))},Blockly.FieldVariable=function(e,o){Blockly.FieldVariable.superClass_.constructor.call(this,Blockly.FieldVariable.dropdownCreate,o),this.setValue(e||"")},goog.inherits(Blockly.FieldVariable,Blockly.FieldDropdown),Blockly.FieldVariable.prototype.renameVarItemIndex_=-1,Blockly.FieldVariable.prototype.deleteVarItemIndex_=-1,Blockly.FieldVariable.prototype.init=function(){this.fieldGroup_||(Blockly.FieldVariable.superClass_.init.call(this),this.getValue()||this.setValue(Blockly.Variables.generateUniqueName(this.sourceBlock_.isInFlyout?this.sourceBlock_.workspace.targetWorkspace:this.sourceBlock_.workspace)),this.sourceBlock_.isInFlyout||this.sourceBlock_.workspace.createVariable(this.getValue()))},Blockly.FieldVariable.prototype.setSourceBlock=function(e){goog.asserts.assert(!e.isShadow(),"Variable fields are not allowed to exist on shadow blocks."),Blockly.FieldVariable.superClass_.setSourceBlock.call(this,e)},Blockly.FieldVariable.prototype.getValue=function(){return this.getText()},Blockly.FieldVariable.prototype.setValue=function(e){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,e)),this.value_=e,this.setText(e)},Blockly.FieldVariable.dropdownCreate=function(){var e=this.sourceBlock_&&this.sourceBlock_.workspace?this.sourceBlock_.workspace.variableList.slice(0):[],o=this.getText();o&&-1==e.indexOf(o)&&e.push(o),e.sort(goog.string.caseInsensitiveCompare),this.renameVarItemIndex_=e.length,e.push(Blockly.Msg.RENAME_VARIABLE),this.deleteVarItemIndex_=e.length,e.push(Blockly.Msg.DELETE_VARIABLE.replace("%1",o));for(var o=[],t=0;t<e.length;t++)o[t]=[e[t],e[t]];return o},Blockly.FieldVariable.prototype.onItemSelected=function(e,o){e.getChildCount();var t=o.getValue();if(this.sourceBlock_){var n=this.sourceBlock_.workspace;if(0<=this.renameVarItemIndex_&&e.getChildAt(this.renameVarItemIndex_)===o){var r=this.getText();return Blockly.hideChaff(),void Blockly.Variables.promptName(Blockly.Msg.RENAME_VARIABLE_TITLE.replace("%1",r),r,function(e){e&&n.renameVariable(r,e)})}if(0<=this.deleteVarItemIndex_&&e.getChildAt(this.deleteVarItemIndex_)===o)return void n.deleteVariable(this.getText());t=this.callValidator(t)}null!==t&&this.setValue(t)},Blockly.FlyoutButton=function(e,o,t,n,r){this.workspace_=e,this.targetWorkspace_=o,this.text_=t,this.position_=new goog.math.Coordinate(0,0),this.callback_=Blockly.flyoutButtonCallbacks_[n],this.isLabel_=r},Blockly.FlyoutButton.MARGIN=5,Blockly.FlyoutButton.prototype.width=0,Blockly.FlyoutButton.prototype.height=0,Blockly.FlyoutButton.prototype.createDom=function(){if(this.svgGroup_=Blockly.createSvgElement("g",{"class":this.isLabel_?"blocklyFlyoutLabel":"blocklyFlyoutButton"},this.workspace_.getCanvas()),!this.isLabel_)var e=Blockly.createSvgElement("rect",{"class":"blocklyFlyoutButtonShadow",rx:4,ry:4,x:1,y:1},this.svgGroup_);var o=Blockly.createSvgElement("rect",{"class":this.isLabel_?"blocklyFlyoutLabelBackground":"blocklyFlyoutButtonBackground",rx:4,ry:4},this.svgGroup_),t=Blockly.createSvgElement("text",{"class":this.isLabel_?"blocklyFlyoutLabelText":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup_);return t.textContent=this.text_,this.width=t.getComputedTextLength()+2*Blockly.FlyoutButton.MARGIN,this.height=20,this.isLabel_||(e.setAttribute("width",this.width),e.setAttribute("height",this.height)),o.setAttribute("width",this.width),o.setAttribute("height",this.height),t.setAttribute("x",this.width/2),t.setAttribute("y",this.height-Blockly.FlyoutButton.MARGIN),this.updateTransform_(),this.svgGroup_},Blockly.FlyoutButton.prototype.show=function(){this.updateTransform_(),this.svgGroup_.setAttribute("display","block")},Blockly.FlyoutButton.prototype.updateTransform_=function(){this.svgGroup_.setAttribute("transform","translate("+this.position_.x+","+this.position_.y+")")},Blockly.FlyoutButton.prototype.moveTo=function(e,o){this.position_.x=e,this.position_.y=o,this.updateTransform_()},Blockly.FlyoutButton.prototype.getTargetWorkspace=function(){return this.targetWorkspace_},Blockly.FlyoutButton.prototype.dispose=function(){this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null),this.targetWorkspace_=this.workspace_=null},Blockly.FlyoutButton.prototype.onMouseUp=function(e){e.preventDefault(),e.stopPropagation(),Blockly.Flyout.terminateDrag_(),this.callback_&&this.callback_(this)},Blockly.Flyout=function(e){e.getMetrics=this.getMetrics_.bind(this),e.setMetrics=this.setMetrics_.bind(this),this.workspace_=new Blockly.WorkspaceSvg(e),this.workspace_.isFlyout=!0,this.RTL=!!e.RTL,this.horizontalLayout_=e.horizontalLayout,this.toolboxPosition_=e.toolboxPosition,this.eventWrappers_=[],this.backgroundButtons_=[],this.buttons_=[],this.listeners_=[],this.permanentlyDisabled_=[],this.startDragMouseX_=this.startDragMouseY_=0},Blockly.Flyout.startFlyout_=null,Blockly.Flyout.startDownEvent_=null,Blockly.Flyout.startBlock_=null,Blockly.Flyout.onMouseUpWrapper_=null,Blockly.Flyout.onMouseMoveWrapper_=null,Blockly.Flyout.onMouseMoveBlockWrapper_=null,Blockly.Flyout.prototype.autoClose=!0,Blockly.Flyout.prototype.CORNER_RADIUS=8,Blockly.Flyout.prototype.DRAG_RADIUS=10,Blockly.Flyout.prototype.MARGIN=Blockly.Flyout.prototype.CORNER_RADIUS,Blockly.Flyout.prototype.GAP_X=3*Blockly.Flyout.prototype.MARGIN,Blockly.Flyout.prototype.GAP_Y=3*Blockly.Flyout.prototype.MARGIN,Blockly.Flyout.prototype.SCROLLBAR_PADDING=2,Blockly.Flyout.prototype.width_=0,Blockly.Flyout.prototype.height_=0,Blockly.Flyout.prototype.dragMode_=Blockly.DRAG_NONE,Blockly.Flyout.prototype.dragAngleRange_=70,Blockly.Flyout.prototype.createDom=function(){return this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyFlyout"},null),this.svgBackground_=Blockly.createSvgElement("path",{"class":"blocklyFlyoutBackground"},this.svgGroup_),this.svgGroup_.appendChild(this.workspace_.createDom()),this.svgGroup_},Blockly.Flyout.prototype.init=function(e){this.targetWorkspace_=e,this.workspace_.targetWorkspace=e,this.scrollbar_=new Blockly.Scrollbar(this.workspace_,this.horizontalLayout_,!1),this.hide(),Array.prototype.push.apply(this.eventWrappers_,Blockly.bindEventWithChecks_(this.svgGroup_,"wheel",this,this.wheel_)),this.autoClose||(this.filterWrapper_=this.filterForCapacity_.bind(this),this.targetWorkspace_.addChangeListener(this.filterWrapper_)),Array.prototype.push.apply(this.eventWrappers_,Blockly.bindEventWithChecks_(this.svgGroup_,"mousedown",this,this.onMouseDown_))},Blockly.Flyout.prototype.dispose=function(){this.hide(),Blockly.unbindEvent_(this.eventWrappers_),this.filterWrapper_&&(this.targetWorkspace_.removeChangeListener(this.filterWrapper_),this.filterWrapper_=null),this.scrollbar_&&(this.scrollbar_.dispose(),this.scrollbar_=null),this.workspace_&&(this.workspace_.targetWorkspace=null,this.workspace_.dispose(),this.workspace_=null),this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null),this.targetWorkspace_=this.svgBackground_=null},Blockly.Flyout.prototype.getWidth=function(){return this.width_},Blockly.Flyout.prototype.getHeight=function(){return this.height_},Blockly.Flyout.prototype.getMetrics_=function(){if(!this.isVisible())return null;try{var e=this.workspace_.getCanvas().getBBox()}catch(o){e={height:0,y:0,width:0,x:0}}var t=this.SCROLLBAR_PADDING,n=this.SCROLLBAR_PADDING;if(this.horizontalLayout_){this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM&&(t=0);var r=this.height_;this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP&&(r-=this.SCROLLBAR_PADDING);var i=this.width_-2*this.SCROLLBAR_PADDING}else n=0,r=this.height_-2*this.SCROLLBAR_PADDING,i=this.width_,this.RTL||(i-=this.SCROLLBAR_PADDING);return{viewHeight:r,viewWidth:i,contentHeight:(e.height+2*this.MARGIN)*this.workspace_.scale,contentWidth:(e.width+2*this.MARGIN)*this.workspace_.scale,viewTop:-this.workspace_.scrollY,viewLeft:-this.workspace_.scrollX,contentTop:e.y,contentLeft:e.x,absoluteTop:t,absoluteLeft:n}},Blockly.Flyout.prototype.setMetrics_=function(e){var o=this.getMetrics_();o&&(!this.horizontalLayout_&&goog.isNumber(e.y)?this.workspace_.scrollY=-o.contentHeight*e.y:this.horizontalLayout_&&goog.isNumber(e.x)&&(this.workspace_.scrollX=-o.contentWidth*e.x),this.workspace_.translate(this.workspace_.scrollX+o.absoluteLeft,this.workspace_.scrollY+o.absoluteTop))},Blockly.Flyout.prototype.position=function(){if(this.isVisible()){var e=this.targetWorkspace_.getMetrics();if(e){this.setBackgroundPath_(this.horizontalLayout_?e.viewWidth-2*this.CORNER_RADIUS:this.width_-this.CORNER_RADIUS,this.horizontalLayout_?this.height_-this.CORNER_RADIUS:e.viewHeight-2*this.CORNER_RADIUS);var o=e.absoluteLeft;this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT&&(o+=e.viewWidth,o-=this.width_);var t=e.absoluteTop;this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM&&(t+=e.viewHeight,t-=this.height_),this.svgGroup_.setAttribute("transform","translate("+o+","+t+")"),this.horizontalLayout_?this.width_=e.viewWidth:this.height_=e.viewHeight,this.scrollbar_&&this.scrollbar_.resize()}}},Blockly.Flyout.prototype.setBackgroundPath_=function(e,o){this.horizontalLayout_?this.setBackgroundPathHorizontal_(e,o):this.setBackgroundPathVertical_(e,o)},Blockly.Flyout.prototype.setBackgroundPathVertical_=function(e,o){var t=this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT,n=e+this.CORNER_RADIUS,n=["M "+(t?n:0)+",0"];n.push("h",t?-e:e),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,t?0:1,t?-this.CORNER_RADIUS:this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("v",Math.max(0,o)),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,t?0:1,t?this.CORNER_RADIUS:-this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("h",t?e:-e),n.push("z"),this.svgBackground_.setAttribute("d",n.join(" "))},Blockly.Flyout.prototype.setBackgroundPathHorizontal_=function(e,o){var t=this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP,n=["M 0,"+(t?0:this.CORNER_RADIUS)];t?(n.push("h",e+2*this.CORNER_RADIUS),n.push("v",o),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("h",-1*e),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,-this.CORNER_RADIUS)):(n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,-this.CORNER_RADIUS),n.push("h",e),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("v",o),n.push("h",-e-2*this.CORNER_RADIUS)),n.push("z"),this.svgBackground_.setAttribute("d",n.join(" "))},Blockly.Flyout.prototype.scrollToStart=function(){this.scrollbar_.set(this.horizontalLayout_&&this.RTL?1/0:0)},Blockly.Flyout.prototype.wheel_=function(e){var o=this.horizontalLayout_?e.deltaX:e.deltaY;if(o){goog.userAgent.GECKO&&(o*=10);var t=this.getMetrics_(),o=this.horizontalLayout_?t.viewLeft+o:t.viewTop+o,o=Math.min(o,this.horizontalLayout_?t.contentWidth-t.viewWidth:t.contentHeight-t.viewHeight),o=Math.max(o,0);this.scrollbar_.set(o)}e.preventDefault(),e.stopPropagation()},Blockly.Flyout.prototype.isVisible=function(){return this.svgGroup_&&"block"==this.svgGroup_.style.display},Blockly.Flyout.prototype.hide=function(){if(this.isVisible()){this.svgGroup_.style.display="none";for(var e,o=0;e=this.listeners_[o];o++)Blockly.unbindEvent_(e);this.listeners_.length=0,this.reflowWrapper_&&(this.workspace_.removeChangeListener(this.reflowWrapper_),this.reflowWrapper_=null)}},Blockly.Flyout.prototype.flyoutCategory=function(e,o){return e},Blockly.Flyout.prototype.show=function(e){this.hide(),this.clearOldBlocks_(),e=this.flyoutCategory(e,this.workspace_.targetWorkspace),this.svgGroup_.style.display="block";for(var o,t=[],n=[],r=this.permanentlyDisabled_.length=0;o=e[r];r++)if(o.tagName){var i=o.tagName.toUpperCase(),s=this.horizontalLayout_?this.GAP_X:this.GAP_Y;if("BLOCK"==i)i=Blockly.Xml.domToBlock(o,this.workspace_),i.disabled&&this.permanentlyDisabled_.push(i),t.push({type:"block",block:i}),o=parseInt(o.getAttribute("gap"),10),n.push(isNaN(o)?s:o);else if("SEP"==o.tagName.toUpperCase())o=parseInt(o.getAttribute("gap"),10),!isNaN(o)&&0<n.length?n[n.length-1]=o:n.push(s);else if("BUTTON"==i||"LABEL"==i){var i="LABEL"==i,l=o.getAttribute("text");o=o.getAttribute("callbackKey"),o=new Blockly.FlyoutButton(this.workspace_,this.targetWorkspace_,l,o,i),t.push({type:"button",button:o}),n.push(s)}}this.layout_(t,n),this.listeners_.push(Blockly.bindEventWithChecks_(this.svgBackground_,"mouseover",this,function(){for(var e,o=this.workspace_.getTopBlocks(!1),t=0;e=o[t];t++)e.removeSelect()})),this.horizontalLayout_?this.height_=0:this.width_=0,this.reflow(),this.filterForCapacity_(),this.position(),this.reflowWrapper_=this.reflow.bind(this),this.workspace_.addChangeListener(this.reflowWrapper_)},Blockly.Flyout.prototype.layout_=function(e,o){this.workspace_.scale=this.targetWorkspace_.scale;var t=this.MARGIN,n=this.RTL?t:t+Blockly.BlockSvg.TAB_WIDTH;this.horizontalLayout_&&this.RTL&&(e=e.reverse());for(var r,i=0;r=e[i];i++)if("block"==r.type){r=r.block;for(var s,l=r.getDescendants(),g=0;s=l[g];g++)s.isInFlyout=!0;r.render(),l=r.getSvgRoot(),g=r.getHeightWidth(),s=r.outputConnection?Blockly.BlockSvg.TAB_WIDTH:0,this.horizontalLayout_&&(n+=s),r.moveBy(this.horizontalLayout_&&this.RTL?n+g.width-s:n,t),this.horizontalLayout_?n+=g.width+o[i]-s:t+=g.height+o[i],g=Blockly.createSvgElement("rect",{"fill-opacity":0},null),g.tooltip=r,Blockly.Tooltip.bindMouseEvents(g),this.workspace_.getCanvas().insertBefore(g,r.getSvgRoot()),r.flyoutRect_=g,this.backgroundButtons_[i]=g,this.addBlockListeners_(l,r,g)}else"button"==r.type&&(r=r.button,l=r.createDom(),r.moveTo(n,t),r.show(),Blockly.bindEventWithChecks_(l,"mouseup",r,r.onMouseUp),this.buttons_.push(r),this.horizontalLayout_?n+=r.width+o[i]:t+=r.height+o[i])},Blockly.Flyout.prototype.clearOldBlocks_=function(){for(var e,o=this.workspace_.getTopBlocks(!1),t=0;e=o[t];t++)e.workspace==this.workspace_&&e.dispose(!1,!1);for(t=0;o=this.backgroundButtons_[t];t++)goog.dom.removeNode(o);for(t=this.backgroundButtons_.length=0;o=this.buttons_[t];t++)o.dispose();this.buttons_.length=0},Blockly.Flyout.prototype.addBlockListeners_=function(e,o,t){this.listeners_.push(Blockly.bindEventWithChecks_(e,"mousedown",null,this.blockMouseDown_(o))),this.listeners_.push(Blockly.bindEventWithChecks_(t,"mousedown",null,this.blockMouseDown_(o))),this.listeners_.push(Blockly.bindEvent_(e,"mouseover",o,o.addSelect)),this.listeners_.push(Blockly.bindEvent_(e,"mouseout",o,o.removeSelect)),this.listeners_.push(Blockly.bindEvent_(t,"mouseover",o,o.addSelect)),this.listeners_.push(Blockly.bindEvent_(t,"mouseout",o,o.removeSelect))},Blockly.Flyout.blockRightClick_=function(e,o){Blockly.terminateDrag_(),Blockly.hideChaff(!0),o.showContextMenu_(e),Blockly.Touch.clearTouchIdentifier()},Blockly.Flyout.prototype.blockMouseDown_=function(e){var o=this;return function(t){Blockly.isRightButton(t)?Blockly.Flyout.blockRightClick_(t,e):(Blockly.terminateDrag_(),Blockly.hideChaff(!0),Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED),o.startDragMouseY_=t.clientY,o.startDragMouseX_=t.clientX,Blockly.Flyout.startDownEvent_=t,Blockly.Flyout.startBlock_=e,Blockly.Flyout.startFlyout_=o,Blockly.Flyout.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",o,o.onMouseUp_),Blockly.Flyout.onMouseMoveBlockWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",o,o.onMouseMoveBlock_)),t.stopPropagation(),t.preventDefault()}},Blockly.Flyout.prototype.onMouseDown_=function(e){Blockly.isRightButton(e)?Blockly.Touch.clearTouchIdentifier():(Blockly.hideChaff(!0),this.dragMode_=Blockly.DRAG_FREE,this.startDragMouseY_=e.clientY,this.startDragMouseX_=e.clientX,Blockly.Flyout.startFlyout_=this,Blockly.Flyout.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.onMouseMove_),Blockly.Flyout.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,Blockly.Flyout.terminateDrag_),e.preventDefault(),e.stopPropagation())},Blockly.Flyout.prototype.onMouseUp_=function(e){this.workspace_.isDragging()||(Blockly.Touch.clearTouchIdentifier(),this.autoClose?this.createBlockFunc_(Blockly.Flyout.startBlock_)(Blockly.Flyout.startDownEvent_):Blockly.WidgetDiv.isVisible()||Blockly.Events.fire(new Blockly.Events.Ui(Blockly.Flyout.startBlock_,"click",void 0,void 0))),Blockly.terminateDrag_()},Blockly.Flyout.prototype.onMouseMove_=function(e){var o=this.getMetrics_();if(this.horizontalLayout_){if(!(0>o.contentWidth-o.viewWidth)){var t=e.clientX-this.startDragMouseX_;this.startDragMouseX_=e.clientX,e=o.viewLeft-t,e=goog.math.clamp(e,0,o.contentWidth-o.viewWidth),this.scrollbar_.set(e)}}else 0>o.contentHeight-o.viewHeight||(t=e.clientY-this.startDragMouseY_,this.startDragMouseY_=e.clientY,e=o.viewTop-t,e=goog.math.clamp(e,0,o.contentHeight-o.viewHeight),this.scrollbar_.set(e))},Blockly.Flyout.prototype.onMouseMoveBlock_=function(e){"mousemove"==e.type&&1>=e.clientX&&0==e.clientY&&0==e.button||(this.determineDragIntention_(e.clientX-Blockly.Flyout.startDownEvent_.clientX,e.clientY-Blockly.Flyout.startDownEvent_.clientY)?(Blockly.longStop_(),this.createBlockFunc_(Blockly.Flyout.startBlock_)(Blockly.Flyout.startDownEvent_)):this.dragMode_==Blockly.DRAG_FREE&&(Blockly.longStop_(),this.onMouseMove_(e))),e.stopPropagation()},Blockly.Flyout.prototype.determineDragIntention_=function(e,o){return this.dragMode_==Blockly.DRAG_FREE?!1:Math.sqrt(e*e+o*o)<this.DRAG_RADIUS?(this.dragMode_=Blockly.DRAG_STICKY,!1):this.isDragTowardWorkspace_(e,o)||!this.scrollbar_.isVisible()?!0:(this.dragMode_=Blockly.DRAG_FREE,!1)},Blockly.Flyout.prototype.isDragTowardWorkspace_=function(e,o){var t=Math.atan2(o,e)/Math.PI*180,n=this.dragAngleRange_;if(this.horizontalLayout_){if(90+n>t&&t>90-n||t>-90-n&&-90+n>t)return!0}else if(n>t&&t>-n||-180+n>t||t>180-n)return!0;return!1},Blockly.Flyout.prototype.createBlockFunc_=function(e){var o=this;return function(t){if(!Blockly.isRightButton(t)&&!e.disabled){Blockly.Events.disable();try{var n=o.placeNewBlock_(e)}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&(Blockly.Events.setGroup(!0),Blockly.Events.fire(new Blockly.Events.Create(n))),o.autoClose?o.hide():o.filterForCapacity_(),n.onMouseDown_(t),Blockly.dragMode_=Blockly.DRAG_FREE,n.setDragging_(!0),o.targetWorkspace_.setResizesEnabled(!1)}}},Blockly.Flyout.prototype.placeNewBlock_=function(e){var o=this.targetWorkspace_,t=e.getSvgRoot();if(!t)throw"originBlock is not rendered.";var t=Blockly.getSvgXY_(t,o),n=this.workspace_.scrollX,r=this.workspace_.scale;if(t.x+=n/r-n,this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT&&(n=o.getMetrics().viewWidth-this.width_,r=o.scale,t.x+=n/r-n),n=this.workspace_.scrollY,r=this.workspace_.scale,t.y+=n/r-n,
 this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM&&(n=o.getMetrics().viewHeight-this.height_,r=o.scale,t.y+=n/r-n),e=Blockly.Xml.blockToDom(e),e=Blockly.Xml.domToBlock(e,o),r=e.getSvgRoot(),!r)throw"block is not rendered.";return r=Blockly.getSvgXY_(r,o),r.x+=o.scrollX/o.scale-o.scrollX,r.y+=o.scrollY/o.scale-o.scrollY,o.toolbox_&&!o.scrollbar&&(r.x+=o.toolbox_.getWidth()/o.scale,r.y+=o.toolbox_.getHeight()/o.scale),e.moveBy(t.x-r.x,t.y-r.y),e},Blockly.Flyout.prototype.filterForCapacity_=function(){for(var e,o=this.targetWorkspace_.remainingCapacity(),t=this.workspace_.getTopBlocks(!1),n=0;e=t[n];n++)if(-1==this.permanentlyDisabled_.indexOf(e)){var r=e.getDescendants();e.setDisabled(r.length>o)}},Blockly.Flyout.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var e=this.svgGroup_.getBoundingClientRect(),o=e.left,t=e.top,n=e.width,e=e.height;return this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP?new goog.math.Rect(-1e9,t-1e9,2e9,1e9+e):this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM?new goog.math.Rect(-1e9,t,2e9,1e9+e):this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT?new goog.math.Rect(o-1e9,-1e9,1e9+n,2e9):new goog.math.Rect(o,-1e9,1e9+n,2e9)},Blockly.Flyout.terminateDrag_=function(){Blockly.Flyout.startFlyout_&&(Blockly.Flyout.startFlyout_.dragMode_==Blockly.DRAG_FREE&&Blockly.Touch.clearTouchIdentifier(),Blockly.Flyout.startFlyout_.dragMode_=Blockly.DRAG_NONE,Blockly.Flyout.startFlyout_=null),Blockly.Flyout.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.Flyout.onMouseUpWrapper_),Blockly.Flyout.onMouseUpWrapper_=null),Blockly.Flyout.onMouseMoveBlockWrapper_&&(Blockly.unbindEvent_(Blockly.Flyout.onMouseMoveBlockWrapper_),Blockly.Flyout.onMouseMoveBlockWrapper_=null),Blockly.Flyout.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.Flyout.onMouseMoveWrapper_),Blockly.Flyout.onMouseMoveWrapper_=null),Blockly.Flyout.startDownEvent_=null,Blockly.Flyout.startBlock_=null},Blockly.Flyout.prototype.reflowHorizontal=function(e){this.workspace_.scale=this.targetWorkspace_.scale;for(var o,t=0,n=0;o=e[n];n++)t=Math.max(t,o.getHeightWidth().height);if(t+=1.5*this.MARGIN,t*=this.workspace_.scale,t+=Blockly.Scrollbar.scrollbarThickness,this.height_!=t){for(n=0;o=e[n];n++){var r=o.getHeightWidth();if(o.flyoutRect_){o.flyoutRect_.setAttribute("width",r.width),o.flyoutRect_.setAttribute("height",r.height);var i=o.outputConnection?Blockly.BlockSvg.TAB_WIDTH:0,s=o.getRelativeToSurfaceXY();o.flyoutRect_.setAttribute("y",s.y),o.flyoutRect_.setAttribute("x",this.RTL?s.x-r.width+i:s.x-i),(r=o.startHat_?Blockly.BlockSvg.START_HAT_HEIGHT:0)&&o.moveBy(0,r),o.flyoutRect_.setAttribute("y",s.y)}}this.height_=t,this.targetWorkspace_.resize()}},Blockly.Flyout.prototype.reflowVertical=function(e){this.workspace_.scale=this.targetWorkspace_.scale;for(var o,t=0,n=0;o=e[n];n++){var r=o.getHeightWidth().width;o.outputConnection&&(r-=Blockly.BlockSvg.TAB_WIDTH),t=Math.max(t,r)}for(n=0;o=this.buttons_[n];n++)t=Math.max(t,o.width);if(t+=1.5*this.MARGIN+Blockly.BlockSvg.TAB_WIDTH,t*=this.workspace_.scale,t+=Blockly.Scrollbar.scrollbarThickness,this.width_!=t){for(n=0;o=e[n];n++){if(r=o.getHeightWidth(),this.RTL){var i=o.getRelativeToSurfaceXY().x,s=t/this.workspace_.scale-this.MARGIN,s=s-Blockly.BlockSvg.TAB_WIDTH;o.moveBy(s-i,0)}o.flyoutRect_&&(o.flyoutRect_.setAttribute("width",r.width),o.flyoutRect_.setAttribute("height",r.height),s=o.outputConnection?Blockly.BlockSvg.TAB_WIDTH:0,i=o.getRelativeToSurfaceXY(),o.flyoutRect_.setAttribute("x",this.RTL?i.x-r.width+s:i.x-s),(r=o.startHat_?Blockly.BlockSvg.START_HAT_HEIGHT:0)&&o.moveBy(0,r),o.flyoutRect_.setAttribute("y",i.y))}this.width_=t,this.targetWorkspace_.resize()}},Blockly.Flyout.prototype.reflow=function(){this.reflowWrapper_&&this.workspace_.removeChangeListener(this.reflowWrapper_);var e=this.workspace_.getTopBlocks(!1);this.horizontalLayout_?this.reflowHorizontal(e):this.reflowVertical(e),this.reflowWrapper_&&this.workspace_.addChangeListener(this.reflowWrapper_)},Blockly.Toolbox=function(e){this.workspace_=e,this.RTL=e.options.RTL,this.horizontalLayout_=e.options.horizontalLayout,this.toolboxPosition=e.options.toolboxPosition,this.config_={indentWidth:19,cssRoot:"blocklyTreeRoot",cssHideRoot:"blocklyHidden",cssItem:"",cssTreeRow:"blocklyTreeRow",cssItemLabel:"blocklyTreeLabel",cssTreeIcon:"blocklyTreeIcon",cssExpandedFolderIcon:"blocklyTreeIconOpen",cssFileIcon:"blocklyTreeIconNone",cssSelectedRow:"blocklyTreeSelected"},this.treeSeparatorConfig_={cssTreeRow:"blocklyTreeSeparator"},this.horizontalLayout_&&(this.config_.cssTreeRow+=e.RTL?" blocklyHorizontalTreeRtl":" blocklyHorizontalTree",this.treeSeparatorConfig_.cssTreeRow="blocklyTreeSeparatorHorizontal "+(e.RTL?"blocklyHorizontalTreeRtl":"blocklyHorizontalTree"),this.config_.cssTreeIcon="")},Blockly.Toolbox.prototype.width=0,Blockly.Toolbox.prototype.height=0,Blockly.Toolbox.prototype.selectedOption_=null,Blockly.Toolbox.prototype.lastCategory_=null,Blockly.Toolbox.prototype.init=function(){var e=this.workspace_,o=this.workspace_.getParentSvg();this.HtmlDiv=goog.dom.createDom("DIV","blocklyToolboxDiv"),this.HtmlDiv.setAttribute("dir",e.RTL?"RTL":"LTR"),o.parentNode.insertBefore(this.HtmlDiv,o),Blockly.bindEventWithChecks_(this.HtmlDiv,"mousedown",this,function(e){Blockly.isRightButton(e)||e.target==this.HtmlDiv?Blockly.hideChaff(!1):Blockly.hideChaff(!0),Blockly.Touch.clearTouchIdentifier()}),this.flyout_=new Blockly.Flyout({disabledPatternId:e.options.disabledPatternId,parentWorkspace:e,RTL:e.RTL,oneBasedIndex:e.options.oneBasedIndex,horizontalLayout:e.horizontalLayout,toolboxPosition:e.options.toolboxPosition}),goog.dom.insertSiblingAfter(this.flyout_.createDom(),e.svgGroup_),this.flyout_.init(e),this.config_.cleardotPath=e.options.pathToMedia+"1x1.gif",this.config_.cssCollapsedFolderIcon="blocklyTreeIconClosed"+(e.RTL?"Rtl":"Ltr"),this.tree_=o=new Blockly.Toolbox.TreeControl(this,this.config_),o.setShowRootNode(!1),o.setShowLines(!1),o.setShowExpandIcons(!1),o.setSelectedItem(null),e=this.populate_(e.options.languageTree),o.render(this.HtmlDiv),e&&o.setSelectedItem(e),this.addColour_(),this.position()},Blockly.Toolbox.prototype.dispose=function(){this.flyout_.dispose(),this.tree_.dispose(),goog.dom.removeNode(this.HtmlDiv),this.lastCategory_=this.workspace_=null},Blockly.Toolbox.prototype.getWidth=function(){return this.width},Blockly.Toolbox.prototype.getHeight=function(){return this.height},Blockly.Toolbox.prototype.position=function(){var e=this.HtmlDiv;if(e){var o=this.workspace_.getParentSvg();goog.style.getPageOffset(o),o=Blockly.svgSize(o),this.horizontalLayout_?(e.style.left="0",e.style.height="auto",e.style.width=o.width+"px",this.height=e.offsetHeight,this.toolboxPosition==Blockly.TOOLBOX_AT_TOP?e.style.top="0":e.style.bottom="0"):(this.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT?e.style.right="0":e.style.left="0",e.style.height=o.height+"px",this.width=e.offsetWidth),this.flyout_.position()}},Blockly.Toolbox.prototype.populate_=function(e){if(this.tree_.removeChildren(),this.tree_.blocks=[],this.hasColours_=!1,e=this.syncTrees_(e,this.tree_,this.workspace_.options.pathToMedia),this.tree_.blocks.length)throw"Toolbox cannot have both blocks and categories in the root level.";return this.workspace_.resizeContents(),e},Blockly.Toolbox.prototype.syncTrees_=function(e,o,t){for(var n,r=null,i=null,s=0;n=e.childNodes[s];s++)if(n.tagName)switch(n.tagName.toUpperCase()){case"CATEGORY":i=this.tree_.createNode(n.getAttribute("name")),i.blocks=[],o.add(i);var l=n.getAttribute("custom");l?i.blocks=l:(l=this.syncTrees_(n,i,t))&&(r=l),l=n.getAttribute("colour"),goog.isString(l)?(l.match(/^#[0-9a-fA-F]{6}$/)?i.hexColour=l:i.hexColour=Blockly.hueToRgb(l),this.hasColours_=!0):i.hexColour="","true"==n.getAttribute("expanded")?(i.blocks.length&&(r=i),i.setExpanded(!0)):i.setExpanded(!1),i=n;break;case"SEP":i&&("CATEGORY"==i.tagName.toUpperCase()?o.add(new Blockly.Toolbox.TreeSeparator(this.treeSeparatorConfig_)):(n=parseFloat(n.getAttribute("gap")),!isNaN(n)&&i&&i.setAttribute("gap",n)));break;case"BLOCK":case"SHADOW":case"LABEL":case"BUTTON":o.blocks.push(n),i=n}return r},Blockly.Toolbox.prototype.addColour_=function(e){e=(e||this.tree_).getChildren();for(var o,t=0;o=e[t];t++){var n=o.getRowElement();if(n){var r=this.hasColours_?"8px solid "+(o.hexColour||"#ddd"):"none";this.workspace_.RTL?n.style.borderRight=r:n.style.borderLeft=r}this.addColour_(o)}},Blockly.Toolbox.prototype.clearSelection=function(){this.tree_.setSelectedItem(null)},Blockly.Toolbox.prototype.getClientRect=function(){if(!this.HtmlDiv)return null;var e=this.HtmlDiv.getBoundingClientRect(),o=e.left,t=e.top,n=e.width,e=e.height;return this.toolboxPosition==Blockly.TOOLBOX_AT_LEFT?new goog.math.Rect(-1e7,-1e7,1e7+o+n,2e7):this.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT?new goog.math.Rect(o,-1e7,1e7+n,2e7):this.toolboxPosition==Blockly.TOOLBOX_AT_TOP?new goog.math.Rect(-1e7,-1e7,2e7,1e7+t+e):new goog.math.Rect(0,t,2e7,1e7+n)},Blockly.Toolbox.prototype.refreshSelection=function(){var e=this.tree_.getSelectedItem();e&&e.blocks&&this.flyout_.show(e.blocks)},Blockly.Toolbox.TreeControl=function(e,o){this.toolbox_=e,goog.ui.tree.TreeControl.call(this,goog.html.SafeHtml.EMPTY,o)},goog.inherits(Blockly.Toolbox.TreeControl,goog.ui.tree.TreeControl),Blockly.Toolbox.TreeControl.prototype.enterDocument=function(){Blockly.Toolbox.TreeControl.superClass_.enterDocument.call(this);var e=this.getElement();goog.events.BrowserFeature.TOUCH_ENABLED&&Blockly.bindEventWithChecks_(e,goog.events.EventType.TOUCHSTART,this,this.handleTouchEvent_)},Blockly.Toolbox.TreeControl.prototype.handleTouchEvent_=function(e){e.preventDefault();var o=this.getNodeFromEvent_(e);o&&e.type===goog.events.EventType.TOUCHSTART&&setTimeout(function(){o.onMouseDown(e)},1)},Blockly.Toolbox.TreeControl.prototype.createNode=function(e){return new Blockly.Toolbox.TreeNode(this.toolbox_,e?goog.html.SafeHtml.htmlEscape(e):goog.html.SafeHtml.EMPTY,this.getConfig(),this.getDomHelper())},Blockly.Toolbox.TreeControl.prototype.setSelectedItem=function(e){var o=this.toolbox_;if(e!=this.selectedItem_&&e!=o.tree_){if(o.lastCategory_&&(o.lastCategory_.getRowElement().style.backgroundColor=""),e){var t=e.hexColour||"#57e";e.getRowElement().style.backgroundColor=t,o.addColour_(e)}t=this.getSelectedItem(),goog.ui.tree.TreeControl.prototype.setSelectedItem.call(this,e),e&&e.blocks&&e.blocks.length?(o.flyout_.show(e.blocks),o.lastCategory_!=e&&o.flyout_.scrollToStart()):o.flyout_.hide(),t!=e&&t!=this&&(t=new Blockly.Events.Ui(null,"category",t&&t.getHtml(),e&&e.getHtml()),t.workspaceId=o.workspace_.id,Blockly.Events.fire(t)),e&&(o.lastCategory_=e)}},Blockly.Toolbox.TreeNode=function(e,o,t,n){goog.ui.tree.TreeNode.call(this,o,t,n),e&&(o=function(){Blockly.svgResize(e.workspace_)},goog.events.listen(e.tree_,goog.ui.tree.BaseNode.EventType.EXPAND,o),goog.events.listen(e.tree_,goog.ui.tree.BaseNode.EventType.COLLAPSE,o))},goog.inherits(Blockly.Toolbox.TreeNode,goog.ui.tree.TreeNode),Blockly.Toolbox.TreeNode.prototype.getExpandIconSafeHtml=function(){return goog.html.SafeHtml.create("span")},Blockly.Toolbox.TreeNode.prototype.onMouseDown=function(e){this.hasChildren()&&this.isUserCollapsible_?(this.toggle(),this.select()):this.isSelected()?this.getTree().setSelectedItem(null):this.select(),this.updateRow()},Blockly.Toolbox.TreeNode.prototype.onDoubleClick_=function(e){},Blockly.Toolbox.TreeNode.prototype.onKeyDown=function(e){if(this.tree.toolbox_.horizontalLayout_){var o={},t=goog.events.KeyCodes.DOWN,n=goog.events.KeyCodes.UP;o[goog.events.KeyCodes.RIGHT]=this.rightToLeft_?n:t,o[goog.events.KeyCodes.LEFT]=this.rightToLeft_?t:n,o[goog.events.KeyCodes.UP]=goog.events.KeyCodes.LEFT,o[goog.events.KeyCodes.DOWN]=goog.events.KeyCodes.RIGHT,e.keyCode=o[e.keyCode]||e.keyCode}return Blockly.Toolbox.TreeNode.superClass_.onKeyDown.call(this,e)},Blockly.Toolbox.TreeSeparator=function(e){Blockly.Toolbox.TreeNode.call(this,null,"",e)},goog.inherits(Blockly.Toolbox.TreeSeparator,Blockly.Toolbox.TreeNode),Blockly.Css={},Blockly.Css.Cursor={OPEN:"handopen",CLOSED:"handclosed",DELETE:"handdelete"},Blockly.Css.currentCursor_="",Blockly.Css.styleSheet_=null,Blockly.Css.mediaPath_="",Blockly.Css.inject=function(e,o){if(!Blockly.Css.styleSheet_){var t=".blocklyDraggable {}\n";e&&(t+=Blockly.Css.CONTENT.join("\n"),Blockly.FieldDate&&(t+=Blockly.FieldDate.CSS.join("\n"))),Blockly.Css.mediaPath_=o.replace(/[\\\/]$/,"");var t=t.replace(/<<<PATH>>>/g,Blockly.Css.mediaPath_),n=document.createElement("style");document.head.insertBefore(n,document.head.firstChild),t=document.createTextNode(t),n.appendChild(t),Blockly.Css.styleSheet_=n.sheet,Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN)}},Blockly.Css.setCursor=function(e){if(Blockly.Css.currentCursor_!=e){Blockly.Css.currentCursor_=e;var o="url("+Blockly.Css.mediaPath_+"/"+e+".cur), auto",t=".blocklyDraggable {\n  cursor: "+o+";\n}\n";Blockly.Css.styleSheet_.deleteRule(0),Blockly.Css.styleSheet_.insertRule(t,0);for(var n,t=document.getElementsByClassName("blocklyToolboxDiv"),r=0;n=t[r];r++)n.style.cursor=e==Blockly.Css.Cursor.DELETE?o:"";document.body.parentNode.style.cursor=e==Blockly.Css.Cursor.OPEN?"":o}},Blockly.Css.CONTENT=[".blocklySvg {","background-color: #fff;","outline: none;","overflow: hidden;","display: block;","}",".blocklyWidgetDiv {","display: none;","position: absolute;","z-index: 99999;","}",".injectionDiv {","height: 100%;","position: relative;","}",".blocklyNonSelectable {","user-select: none;","-moz-user-select: none;","-webkit-user-select: none;","-ms-user-select: none;","}",".blocklyTooltipDiv {","background-color: #ffffc7;","border: 1px solid #ddc;","box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15);","color: #000;","display: none;","font-family: sans-serif;","font-size: 9pt;","opacity: 0.9;","padding: 2px;","position: absolute;","z-index: 100000;","}",".blocklyResizeSE {","cursor: se-resize;","fill: #aaa;","}",".blocklyResizeSW {","cursor: sw-resize;","fill: #aaa;","}",".blocklyResizeLine {","stroke: #888;","stroke-width: 1;","}",".blocklyHighlightedConnectionPath {","fill: none;","stroke: #fc3;","stroke-width: 4px;","}",".blocklyPathLight {","fill: none;","stroke-linecap: round;","stroke-width: 1;","}",".blocklySelected>.blocklyPath {","stroke: #fc3;","stroke-width: 3px;","}",".blocklySelected>.blocklyPathLight {","display: none;","}",".blocklyDragging>.blocklyPath,",".blocklyDragging>.blocklyPathLight {","fill-opacity: .8;","stroke-opacity: .8;","}",".blocklyDragging>.blocklyPathDark {","display: none;","}",".blocklyDisabled>.blocklyPath {","fill-opacity: .5;","stroke-opacity: .5;","}",".blocklyDisabled>.blocklyPathLight,",".blocklyDisabled>.blocklyPathDark {","display: none;","}",".blocklyText {","cursor: default;","fill: #fff;","font-family: sans-serif;","font-size: 11pt;","}",".blocklyNonEditableText>text {","pointer-events: none;","}",".blocklyNonEditableText>rect,",".blocklyEditableText>rect {","fill: #fff;","fill-opacity: .6;","}",".blocklyNonEditableText>text,",".blocklyEditableText>text {","fill: #000;","}",".blocklyEditableText:hover>rect {","stroke: #fff;","stroke-width: 2;","}",".blocklyBubbleText {","fill: #000;","}",".blocklyFlyoutButton {","fill: #888;","cursor: default;","}",".blocklyFlyoutButtonShadow {","fill: #666;","}",".blocklyFlyoutButton:hover {","fill: #aaa;","}",".blocklyFlyoutLabel {","cursor: default;","}",".blocklyFlyoutLabelBackground {","opacity: 0;","}",".blocklyFlyoutLabelText {","fill: #000;","}",".blocklyFlyoutLabelText:hover {","fill: #aaa;","}",".blocklySvg text {","user-select: none;","-moz-user-select: none;","-webkit-user-select: none;","cursor: inherit;","}",".blocklyHidden {","display: none;","}",".blocklyFieldDropdown:not(.blocklyHidden) {","display: block;","}",".blocklyIconGroup {","cursor: default;","}",".blocklyIconGroup:not(:hover),",".blocklyIconGroupReadonly {","opacity: .6;","}",".blocklyIconShape {","fill: #00f;","stroke: #fff;","stroke-width: 1px;","}",".blocklyIconSymbol {","fill: #fff;","}",".blocklyMinimalBody {","margin: 0;","padding: 0;","}",".blocklyCommentTextarea {","background-color: #ffc;","border: 0;","margin: 0;","padding: 2px;","resize: none;","}",".blocklyHtmlInput {","border: none;","border-radius: 4px;","font-family: sans-serif;","height: 100%;","margin: 0;","outline: none;","padding: 0 1px;","width: 100%","}",".blocklyMainBackground {","stroke-width: 1;","stroke: #c6c6c6;","}",".blocklyMutatorBackground {","fill: #fff;","stroke: #ddd;","stroke-width: 1;","}",".blocklyFlyoutBackground {","fill: #ddd;","fill-opacity: .8;","}",".blocklyScrollbarBackground {","opacity: 0;","}",".blocklyScrollbarHandle {","fill: #ccc;","}",".blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,",".blocklyScrollbarHandle:hover {","fill: #bbb;","}",".blocklyZoom>image {","opacity: .4;","}",".blocklyZoom>image:hover {","opacity: .6;","}",".blocklyZoom>image:active {","opacity: .8;","}",".blocklyFlyout .blocklyScrollbarHandle {","fill: #bbb;","}",".blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,",".blocklyFlyout .blocklyScrollbarHandle:hover {","fill: #aaa;","}",".blocklyInvalidInput {","background: #faa;","}",".blocklyAngleCircle {","stroke: #444;","stroke-width: 1;","fill: #ddd;","fill-opacity: .8;","}",".blocklyAngleMarks {","stroke: #444;","stroke-width: 1;","}",".blocklyAngleGauge {","fill: #f88;","fill-opacity: .8;","}",".blocklyAngleLine {","stroke: #f00;","stroke-width: 2;","stroke-linecap: round;","}",".blocklyContextMenu {","border-radius: 4px;","}",".blocklyDropdownMenu {","padding: 0 !important;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {","background: url(<<<PATH>>>/sprites.png) no-repeat -48px -16px !important;","}",".blocklyToolboxDiv {","background-color: #ddd;","overflow-x: visible;","overflow-y: auto;","position: absolute;","}",".blocklyTreeRoot {","padding: 4px 0;","}",".blocklyTreeRoot:focus {","outline: none;","}",".blocklyTreeRow {","height: 22px;","line-height: 22px;","margin-bottom: 3px;","padding-right: 8px;","white-space: nowrap;","}",".blocklyHorizontalTree {","float: left;","margin: 1px 5px 8px 0;","}",".blocklyHorizontalTreeRtl {","float: right;","margin: 1px 0 8px 5px;","}",'.blocklyToolboxDiv[dir="RTL"] .blocklyTreeRow {',"margin-left: 8px;","}",".blocklyTreeRow:not(.blocklyTreeSelected):hover {","background-color: #e4e4e4;","}",".blocklyTreeSeparator {","border-bottom: solid #e5e5e5 1px;","height: 0;","margin: 5px 0;","}",".blocklyTreeSeparatorHorizontal {","border-right: solid #e5e5e5 1px;","width: 0;","padding: 5px 0;","margin: 0 5px;","}",".blocklyTreeIcon {","background-image: url(<<<PATH>>>/sprites.png);","height: 16px;","vertical-align: middle;","width: 16px;","}",".blocklyTreeIconClosedLtr {","background-position: -32px -1px;","}",".blocklyTreeIconClosedRtl {","background-position: 0px -1px;","}",".blocklyTreeIconOpen {","background-position: -16px -1px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedLtr {","background-position: -32px -17px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedRtl {","background-position: 0px -17px;","}",".blocklyTreeSelected>.blocklyTreeIconOpen {","background-position: -16px -17px;","}",".blocklyTreeIconNone,",".blocklyTreeSelected>.blocklyTreeIconNone {","background-position: -48px -1px;","}",".blocklyTreeLabel {","cursor: default;","font-family: sans-serif;","font-size: 16px;","padding: 0 3px;","vertical-align: middle;","}",".blocklyTreeSelected .blocklyTreeLabel {","color: #fff;","}",".blocklyWidgetDiv .goog-palette {","outline: none;","cursor: default;","}",".blocklyWidgetDiv .goog-palette-table {","border: 1px solid #666;","border-collapse: collapse;","}",".blocklyWidgetDiv .goog-palette-cell {","height: 13px;","width: 15px;","margin: 0;","border: 0;","text-align: center;","vertical-align: middle;","border-right: 1px solid #666;","font-size: 1px;","}",".blocklyWidgetDiv .goog-palette-colorswatch {","position: relative;","height: 13px;","width: 15px;","border: 1px solid #666;","}",".blocklyWidgetDiv .goog-palette-cell-hover .goog-palette-colorswatch {","border: 1px solid #FFF;","}",".blocklyWidgetDiv .goog-palette-cell-selected .goog-palette-colorswatch {","border: 1px solid #000;","color: #fff;","}",".blocklyWidgetDiv .goog-menu {","background: #fff;","border-color: #ccc #666 #666 #ccc;","border-style: solid;","border-width: 1px;","cursor: default;","font: normal 13px Arial, sans-serif;","margin: 0;","outline: none;","padding: 4px 0;","position: absolute;","overflow-y: auto;","overflow-x: hidden;","max-height: 100%;","z-index: 20000;","}",".blocklyWidgetDiv .goog-menuitem {","color: #000;","font: normal 13px Arial, sans-serif;","list-style: none;","margin: 0;","padding: 4px 7em 4px 28px;","white-space: nowrap;","}",".blocklyWidgetDiv .goog-menuitem.goog-menuitem-rtl {","padding-left: 7em;","padding-right: 28px;","}",".blocklyWidgetDiv .goog-menu-nocheckbox .goog-menuitem,",".blocklyWidgetDiv .goog-menu-noicon .goog-menuitem {","padding-left: 12px;","}",".blocklyWidgetDiv .goog-menu-noaccel .goog-menuitem {","padding-right: 20px;","}",".blocklyWidgetDiv .goog-menuitem-content {","color: #000;","font: normal 13px Arial, sans-serif;","}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-accel,",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-content {","color: #ccc !important;","}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-icon {","opacity: 0.3;","-moz-opacity: 0.3;","filter: alpha(opacity=30);","}",".blocklyWidgetDiv .goog-menuitem-highlight,",".blocklyWidgetDiv .goog-menuitem-hover {","background-color: #d6e9f8;","border-color: #d6e9f8;","border-style: dotted;","border-width: 1px 0;","padding-bottom: 3px;","padding-top: 3px;","}",".blocklyWidgetDiv .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-icon {","background-repeat: no-repeat;","height: 16px;","left: 6px;","position: absolute;","right: auto;","vertical-align: middle;","width: 16px;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon {","left: auto;","right: 6px;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {","background: url(//ssl.gstatic.com/editor/editortoolbar.png) no-repeat -512px 0;","}",".blocklyWidgetDiv .goog-menuitem-accel {","color: #999;","direction: ltr;","left: auto;","padding: 0 6px;","position: absolute;","right: 0;","text-align: right;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-accel {","left: 0;","right: auto;","text-align: left;","}",".blocklyWidgetDiv .goog-menuitem-mnemonic-hint {","text-decoration: underline;","}",".blocklyWidgetDiv .goog-menuitem-mnemonic-separator {","color: #999;","font-size: 12px;","padding-left: 4px;","}",".blocklyWidgetDiv .goog-menuseparator {","border-top: 1px solid #ccc;","margin: 4px 0;","padding: 0;","}",""],Blockly.WidgetDiv={},Blockly.WidgetDiv.DIV=null,Blockly.WidgetDiv.owner_=null,Blockly.WidgetDiv.dispose_=null,Blockly.WidgetDiv.createDom=function(){Blockly.WidgetDiv.DIV||(Blockly.WidgetDiv.DIV=goog.dom.createDom("DIV","blocklyWidgetDiv"),document.body.appendChild(Blockly.WidgetDiv.DIV))},Blockly.WidgetDiv.show=function(e,o,t){Blockly.WidgetDiv.hide(),Blockly.WidgetDiv.owner_=e,Blockly.WidgetDiv.dispose_=t,e=goog.style.getViewportPageOffset(document),Blockly.WidgetDiv.DIV.style.top=e.y+"px",Blockly.WidgetDiv.DIV.style.direction=o?"rtl":"ltr",Blockly.WidgetDiv.DIV.style.display="block"},Blockly.WidgetDiv.hide=function(){Blockly.WidgetDiv.owner_&&(Blockly.WidgetDiv.owner_=null,Blockly.WidgetDiv.DIV.style.display="none",Blockly.WidgetDiv.DIV.style.left="",Blockly.WidgetDiv.DIV.style.top="",Blockly.WidgetDiv.dispose_&&Blockly.WidgetDiv.dispose_(),Blockly.WidgetDiv.dispose_=null,goog.dom.removeChildren(Blockly.WidgetDiv.DIV))},Blockly.WidgetDiv.isVisible=function(){return!!Blockly.WidgetDiv.owner_},Blockly.WidgetDiv.hideIfOwner=function(e){Blockly.WidgetDiv.owner_==e&&Blockly.WidgetDiv.hide()},Blockly.WidgetDiv.position=function(e,o,t,n,r){o<n.y&&(o=n.y),r?e>t.width+n.x&&(e=t.width+n.x):e<n.x&&(e=n.x),Blockly.WidgetDiv.DIV.style.left=e+"px",Blockly.WidgetDiv.DIV.style.top=o+"px",Blockly.WidgetDiv.DIV.style.height=t.height+"px"},Blockly.inject=function(e,o){if(goog.isString(e)&&(e=document.getElementById(e)||document.querySelector(e)),!goog.dom.contains(document,e))throw"Error: container is not in current document.";var t=new Blockly.Options(o||{}),n=goog.dom.createDom("div","injectionDiv");return e.appendChild(n),n=Blockly.createDom_(n,t),t=Blockly.createMainWorkspace_(n,t),Blockly.init_(t),t.markFocused(),Blockly.bindEventWithChecks_(n,"focus",t,t.markFocused),Blockly.svgResize(t),t},Blockly.createDom_=function(e,o){e.setAttribute("dir","LTR"),goog.ui.Component.setDefaultRightToLeft(o.RTL),Blockly.Css.inject(o.hasCss,o.pathToMedia);var t=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1","class":"blocklySvg"},e),n=Blockly.createSvgElement("defs",{},t),r=String(Math.random()).substring(2),i=Blockly.createSvgElement("filter",{id:"blocklyEmbossFilter"+r},n);Blockly.createSvgElement("feGaussianBlur",{"in":"SourceAlpha",stdDeviation:1,result:"blur"},i);var s=Blockly.createSvgElement("feSpecularLighting",{"in":"blur",surfaceScale:1,specularConstant:.5,specularExponent:10,"lighting-color":"white",result:"specOut"},i);return Blockly.createSvgElement("fePointLight",{x:-5e3,y:-1e4,z:2e4},s),Blockly.createSvgElement("feComposite",{"in":"specOut",in2:"SourceAlpha",operator:"in",result:"specOut"},i),Blockly.createSvgElement("feComposite",{"in":"SourceGraphic",in2:"specOut",operator:"arithmetic",k1:0,k2:1,k3:1,k4:0},i),o.embossFilterId=i.id,i=Blockly.createSvgElement("pattern",{id:"blocklyDisabledPattern"+r,patternUnits:"userSpaceOnUse",width:10,height:10},n),Blockly.createSvgElement("rect",{width:10,height:10,fill:"#aaa"},i),Blockly.createSvgElement("path",{d:"M 0 0 L 10 10 M 10 0 L 0 10",stroke:"#cc0"},i),o.disabledPatternId=i.id,n=Blockly.createSvgElement("pattern",{id:"blocklyGridPattern"+r,patternUnits:"userSpaceOnUse"},n),0<o.gridOptions.length&&0<o.gridOptions.spacing&&(Blockly.createSvgElement("line",{stroke:o.gridOptions.colour},n),1<o.gridOptions.length&&Blockly.createSvgElement("line",{stroke:o.gridOptions.colour},n)),o.gridPattern=n,t},Blockly.createMainWorkspace_=function(e,o){o.parentWorkspace=null;var t=new Blockly.WorkspaceSvg(o);return t.scale=o.zoomOptions.startScale,e.appendChild(t.createDom("blocklyMainBackground")),t.translate(0,0),t.markFocused(),o.readOnly||o.hasScrollbars||t.addChangeListener(function(){if(Blockly.dragMode_==Blockly.DRAG_NONE){var e=t.getMetrics(),n=e.viewLeft+e.absoluteLeft,r=e.viewTop+e.absoluteTop;if(e.contentTop<r||e.contentTop+e.contentHeight>e.viewHeight+r||e.contentLeft<(o.RTL?e.viewLeft:n)||e.contentLeft+e.contentWidth>(o.RTL?e.viewWidth:e.viewWidth+n))for(var i,s=t.getTopBlocks(!1),l=0;i=s[l];l++){var g=i.getRelativeToSurfaceXY(),a=i.getHeightWidth(),c=r+25-a.height-g.y;c>0&&i.moveBy(0,c),c=r+e.viewHeight-25-g.y,0>c&&i.moveBy(0,c),c=25+n-g.x-(o.RTL?0:a.width),c>0&&i.moveBy(c,0),g=n+e.viewWidth-25-g.x+(o.RTL?a.width:0),0>g&&i.moveBy(g,0)}}}),Blockly.svgResize(t),Blockly.WidgetDiv.createDom(),Blockly.Tooltip.createDom(),t},Blockly.init_=function(e){var o=e.options,t=e.getParentSvg();Blockly.bindEventWithChecks_(t,"contextmenu",null,function(e){Blockly.isTargetInput_(e)||e.preventDefault()}),t=Blockly.bindEventWithChecks_(window,"resize",null,function(){Blockly.hideChaff(!0),Blockly.svgResize(e)}),e.setResizeHandlerWrapper(t),Blockly.inject.bindDocumentEvents_(),o.languageTree&&(e.toolbox_?e.toolbox_.init(e):e.flyout_&&(e.flyout_.init(e),e.flyout_.show(o.languageTree.childNodes),e.flyout_.scrollToStart(),e.scrollX=e.flyout_.width_,o.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT&&(e.scrollX*=-1),e.translate(e.scrollX,0))),o.hasScrollbars&&(e.scrollbar=new Blockly.ScrollbarPair(e),e.scrollbar.resize()),o.hasSounds&&Blockly.inject.loadSounds_(o.pathToMedia,e)},Blockly.inject.bindDocumentEvents_=function(){Blockly.documentEventsBound_||(Blockly.bindEventWithChecks_(document,"keydown",null,Blockly.onKeyDown_),Blockly.bindEventWithChecks_(document,"touchend",null,Blockly.longStop_),Blockly.bindEventWithChecks_(document,"touchcancel",null,Blockly.longStop_),document.addEventListener("mouseup",Blockly.onMouseUp_,!1),goog.userAgent.IPAD&&Blockly.bindEventWithChecks_(window,"orientationchange",document,function(){Blockly.svgResize(Blockly.getMainWorkspace())})),Blockly.documentEventsBound_=!0},Blockly.inject.loadSounds_=function(e,o){o.loadAudio_([e+"click.mp3",e+"click.wav",e+"click.ogg"],"click"),o.loadAudio_([e+"disconnect.wav",e+"disconnect.mp3",e+"disconnect.ogg"],"disconnect"),o.loadAudio_([e+"delete.mp3",e+"delete.ogg",e+"delete.wav"],"delete");var t=[],n=function(){for(;t.length;)Blockly.unbindEvent_(t.pop());o.preloadAudio_()};t.push(Blockly.bindEventWithChecks_(document,"mousemove",null,n,!0)),t.push(Blockly.bindEventWithChecks_(document,"touchstart",null,n,!0))},Blockly.updateToolbox=function(e){console.warn("Deprecated call to Blockly.updateToolbox, use workspace.updateToolbox instead."),Blockly.getMainWorkspace().updateToolbox(e)},Blockly.utils={},Blockly.addClass_=function(e,o){var t=e.getAttribute("class")||"";-1==(" "+t+" ").indexOf(" "+o+" ")&&(t&&(t+=" "),e.setAttribute("class",t+o))},Blockly.removeClass_=function(e,o){var t=e.getAttribute("class");if(-1!=(" "+t+" ").indexOf(" "+o+" ")){for(var t=t.split(/\s+/),n=0;n<t.length;n++)t[n]&&t[n]!=o||(t.splice(n,1),n--);t.length?e.setAttribute("class",t.join(" ")):e.removeAttribute("class")}},Blockly.hasClass_=function(e,o){return-1!=(" "+e.getAttribute("class")+" ").indexOf(" "+o+" ")},Blockly.bindEventWithChecks_=function(e,o,t,n,r){var i=!1,s=function(e){var o=!r;e=Blockly.Touch.splitEventByTouches(e);for(var s,l=0;s=e[l];l++)(!o||Blockly.Touch.shouldHandleEvent(s))&&(Blockly.Touch.setClientFromTouch(s),t?n.call(t,s):n(s),i=!0)};e.addEventListener(o,s,!1);var l=[[e,o,s]];if(o in Blockly.Touch.TOUCH_MAP)for(var g,a=function(e){s(e),i&&e.preventDefault()},c=0;g=Blockly.Touch.TOUCH_MAP[o][c];c++)e.addEventListener(g,a,!1),l.push([e,g,a]);return l},Blockly.bindEvent_=function(e,o,t,n){var r=function(e){t?n.call(t,e):n(e)};e.addEventListener(o,r,!1);var i=[[e,o,r]];if(o in Blockly.Touch.TOUCH_MAP)for(var s,l=function(e){if(1==e.changedTouches.length){var o=e.changedTouches[0];e.clientX=o.clientX,e.clientY=o.clientY}r(e),e.preventDefault()},g=0;s=Blockly.Touch.TOUCH_MAP[o][g];g++)e.addEventListener(s,l,!1),i.push([e,s,l]);return i},Blockly.unbindEvent_=function(e){for(;e.length;){var o=e.pop(),t=o[2];o[0].removeEventListener(o[1],t,!1)}return t},Blockly.noEvent=function(e){e.preventDefault(),e.stopPropagation()},Blockly.isTargetInput_=function(e){return"textarea"==e.target.type||"text"==e.target.type||"number"==e.target.type||"email"==e.target.type||"password"==e.target.type||"search"==e.target.type||"tel"==e.target.type||"url"==e.target.type||e.target.isContentEditable},Blockly.getRelativeXY_=function(e){var o=new goog.math.Coordinate(0,0),t=e.getAttribute("x");return t&&(o.x=parseInt(t,10)),(t=e.getAttribute("y"))&&(o.y=parseInt(t,10)),(e=(e=e.getAttribute("transform"))&&e.match(Blockly.getRelativeXY_.XY_REGEXP_))&&(o.x+=parseFloat(e[1]),e[3]&&(o.y+=parseFloat(e[3]))),o},Blockly.getRelativeXY_.XY_REGEXP_=/translate\(\s*([-+\d.e]+)([ ,]\s*([-+\d.e]+)\s*\))?/,Blockly.getSvgXY_=function(e,o){var t=0,n=0,r=1;(goog.dom.contains(o.getCanvas(),e)||goog.dom.contains(o.getBubbleCanvas(),e))&&(r=o.scale);do{var i=Blockly.getRelativeXY_(e);(e==o.getCanvas()||e==o.getBubbleCanvas())&&(r=1),t+=i.x*r,n+=i.y*r,e=e.parentNode}while(e&&e!=o.getParentSvg());return new goog.math.Coordinate(t,n)},Blockly.createSvgElement=function(e,o,t,n){e=document.createElementNS(Blockly.SVG_NS,e);for(var r in o)e.setAttribute(r,o[r]);return document.body.runtimeStyle&&(e.runtimeStyle=e.currentStyle=e.style),
 t&&t.appendChild(e),e},Blockly.isRightButton=function(e){return e.ctrlKey&&goog.userAgent.MAC?!0:2==e.button},Blockly.mouseToSvg=function(e,o,t){var n=o.createSVGPoint();return n.x=e.clientX,n.y=e.clientY,t||(t=o.getScreenCTM().inverse()),n.matrixTransform(t)},Blockly.shortestStringLength=function(e){if(!e.length)return 0;for(var o=e[0].length,t=1;t<e.length;t++)o=Math.min(o,e[t].length);return o},Blockly.commonWordPrefix=function(e,o){if(!e.length)return 0;if(1==e.length)return e[0].length;for(var t=0,n=o||Blockly.shortestStringLength(e),r=0;n>r;r++){for(var i=e[0][r],s=1;s<e.length;s++)if(i!=e[s][r])return t;" "==i&&(t=r+1)}for(s=1;s<e.length;s++)if((i=e[s][r])&&" "!=i)return t;return n},Blockly.commonWordSuffix=function(e,o){if(!e.length)return 0;if(1==e.length)return e[0].length;for(var t=0,n=o||Blockly.shortestStringLength(e),r=0;n>r;r++){for(var i=e[0].substr(-r-1,1),s=1;s<e.length;s++)if(i!=e[s].substr(-r-1,1))return t;" "==i&&(t=r+1)}for(s=1;s<e.length;s++)if((i=e[s].charAt(e[s].length-r-1))&&" "!=i)return t;return n},Blockly.isNumber=function(e){return!!e.match(/^\s*-?\d+(\.\d+)?\s*$/)},Blockly.utils.tokenizeInterpolation=function(e){var o=[];e=e.split(""),e.push("");for(var t=0,n=[],r=null,i=0;i<e.length;i++){var s=e[i];0==t?"%"==s?t=1:n.push(s):1==t?"%"==s?(n.push(s),t=0):s>="0"&&"9">=s?(t=2,r=s,(s=n.join(""))&&o.push(s),n.length=0):(n.push("%",s),t=0):2==t&&(s>="0"&&"9">=s?r+=s:(o.push(parseInt(r,10)),i--,t=0))}return(s=n.join(""))&&o.push(s),o},Blockly.genUid=function(){for(var e=Blockly.genUid.soup_.length,o=[],t=0;20>t;t++)o[t]=Blockly.genUid.soup_.charAt(Math.random()*e);return o.join("")},Blockly.genUid.soup_="!#$%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Blockly.utils.wrap=function(e,o){for(var t=e.split("\n"),n=0;n<t.length;n++)t[n]=Blockly.utils.wrap_line_(t[n],o);return t.join("\n")},Blockly.utils.wrap_line_=function(e,o){if(e.length<=o)return e;for(var t=e.trim().split(/\s+/),n=0;n<t.length;n++)t[n].length>o&&(o=t[n].length);var r,i,n=-(1/0),s=1;do{r=n,i=e;for(var l=[],g=t.length/s,a=1,n=0;n<t.length-1;n++)(n+1.5)/g>a?(a++,l[n]=!0):l[n]=!1;l=Blockly.utils.wrapMutate_(t,l,o),n=Blockly.utils.wrapScore_(t,l,o),e=Blockly.utils.wrapToText_(t,l),s++}while(n>r);return i},Blockly.utils.wrapScore_=function(e,o,t){for(var n=[0],r=[],i=0;i<e.length;i++)n[n.length-1]+=e[i].length,!0===o[i]?(n.push(0),r.push(e[i].charAt(e[i].length-1))):!1===o[i]&&n[n.length-1]++;for(e=Math.max.apply(Math,n),i=o=0;i<n.length;i++)o-=2*Math.pow(Math.abs(t-n[i]),1.5),o-=Math.pow(e-n[i],1.5),-1!=".?!".indexOf(r[i])?o+=t/3:-1!=",;)]}".indexOf(r[i])&&(o+=t/4);return 1<n.length&&n[n.length-1]<=n[n.length-2]&&(o+=.5),o},Blockly.utils.wrapMutate_=function(e,o,t){for(var n,r=Blockly.utils.wrapScore_(e,o,t),i=0;i<o.length-1;i++)if(o[i]!=o[i+1]){var s=[].concat(o);s[i]=!s[i],s[i+1]=!s[i+1];var l=Blockly.utils.wrapScore_(e,s,t);l>r&&(r=l,n=s)}return n?Blockly.utils.wrapMutate_(e,n,t):o},Blockly.utils.wrapToText_=function(e,o){for(var t=[],n=0;n<e.length;n++)t.push(e[n]),void 0!==o[n]&&t.push(o[n]?"\n":" ");return t.join("")};var CLOSURE_DEFINES={"goog.DEBUG":!1};Blockly.mainWorkspace=null,Blockly.selected=null,Blockly.highlightedConnection_=null,Blockly.localConnection_=null,Blockly.draggingConnections_=[],Blockly.clipboardXml_=null,Blockly.clipboardSource_=null,Blockly.dragMode_=Blockly.DRAG_NONE,Blockly.flyoutButtonCallbacks_={},Blockly.registerButtonCallback=function(e,o){Blockly.flyoutButtonCallbacks_[e]=o},Blockly.hueToRgb=function(e){return goog.color.hsvToHex(e,Blockly.HSV_SATURATION,255*Blockly.HSV_VALUE)},Blockly.svgSize=function(e){return{width:e.cachedWidth_,height:e.cachedHeight_}},Blockly.resizeSvgContents=function(e){e.resizeContents()},Blockly.svgResize=function(e){for(;e.options.parentWorkspace;)e=e.options.parentWorkspace;var o=e.getParentSvg(),t=o.parentNode;if(t){var n=t.offsetWidth,t=t.offsetHeight;o.cachedWidth_!=n&&(o.setAttribute("width",n+"px"),o.cachedWidth_=n),o.cachedHeight_!=t&&(o.setAttribute("height",t+"px"),o.cachedHeight_=t),e.resize()}},Blockly.onKeyDown_=function(e){if(!Blockly.mainWorkspace.options.readOnly&&!Blockly.isTargetInput_(e)){var o=!1;27==e.keyCode?Blockly.hideChaff():8==e.keyCode||46==e.keyCode?(e.preventDefault(),Blockly.selected&&Blockly.selected.isDeletable()&&(o=!0)):(e.altKey||e.ctrlKey||e.metaKey)&&(Blockly.selected&&Blockly.selected.isDeletable()&&Blockly.selected.isMovable()&&(67==e.keyCode?(Blockly.hideChaff(),Blockly.copy_(Blockly.selected)):88==e.keyCode&&(Blockly.copy_(Blockly.selected),o=!0)),86==e.keyCode?Blockly.clipboardXml_&&(Blockly.Events.setGroup(!0),Blockly.clipboardSource_.paste(Blockly.clipboardXml_),Blockly.Events.setGroup(!1)):90==e.keyCode&&(Blockly.hideChaff(),Blockly.mainWorkspace.undo(e.shiftKey))),o&&(Blockly.Events.setGroup(!0),Blockly.hideChaff(),Blockly.selected.dispose(Blockly.dragMode_!=Blockly.DRAG_FREE,!0),Blockly.highlightedConnection_&&(Blockly.highlightedConnection_.unhighlight(),Blockly.highlightedConnection_=null),Blockly.Events.setGroup(!1))}},Blockly.terminateDrag_=function(){Blockly.BlockSvg.terminateDrag(),Blockly.Flyout.terminateDrag_()},Blockly.copy_=function(e){var o=Blockly.Xml.blockToDom(e);Blockly.dragMode_!=Blockly.DRAG_FREE&&Blockly.Xml.deleteNext(o);var t=e.getRelativeToSurfaceXY();o.setAttribute("x",e.RTL?-t.x:t.x),o.setAttribute("y",t.y),Blockly.clipboardXml_=o,Blockly.clipboardSource_=e.workspace},Blockly.duplicate_=function(e){var o=Blockly.clipboardXml_,t=Blockly.clipboardSource_;Blockly.copy_(e),e.workspace.paste(Blockly.clipboardXml_),Blockly.clipboardXml_=o,Blockly.clipboardSource_=t},Blockly.onContextMenu_=function(e){Blockly.isTargetInput_(e)||e.preventDefault()},Blockly.hideChaff=function(e){Blockly.Tooltip.hide(),Blockly.WidgetDiv.hide(),e||(e=Blockly.getMainWorkspace(),e.toolbox_&&e.toolbox_.flyout_&&e.toolbox_.flyout_.autoClose&&e.toolbox_.clearSelection())},Blockly.addChangeListener=function(e){return console.warn("Deprecated call to Blockly.addChangeListener, use workspace.addChangeListener instead."),Blockly.getMainWorkspace().addChangeListener(e)},Blockly.getMainWorkspace=function(){return Blockly.mainWorkspace},Blockly.alert=function(e,o){window.alert(e),o&&o()},Blockly.confirm=function(e,o){o(window.confirm(e))},Blockly.prompt=function(e,o,t){t(window.prompt(e,o))},Blockly.jsonInitFactory_=function(e){return function(){this.jsonInit(e)}},Blockly.defineBlocksWithJsonArray=function(e){for(var o,t=0;o=e[t];t++)Blockly.Blocks[o.type]={init:Blockly.jsonInitFactory_(o)}},goog.global.console||(goog.global.console={log:function(){},warn:function(){}}),goog.global.Blockly||(goog.global.Blockly={}),goog.global.Blockly.getMainWorkspace=Blockly.getMainWorkspace,goog.global.Blockly.addChangeListener=Blockly.addChangeListener;
Index: EcnlProtoTool/trunk/webapp/webmrbc/js/jszip.js
===================================================================
--- EcnlProtoTool/trunk/webapp/webmrbc/js/jszip.js	(revision 299)
+++ EcnlProtoTool/trunk/webapp/webmrbc/js/jszip.js	(revision 321)
@@ -497,5 +497,5 @@
  */
 function JSZip(data, options) {
-    // if this constructor isÂ used withoutÂ `new`, itÂ adds `new` beforeÂ itself:
+    // if this constructor is used without `new`, it adds `new` before itself:
     if(!(this instanceof JSZip)) return new JSZip(data, options);
 
Index: EcnlProtoTool/trunk/webapp/webmrbc/mrb_parse.jay
===================================================================
--- EcnlProtoTool/trunk/webapp/webmrbc/mrb_parse.jay	(revision 299)
+++ EcnlProtoTool/trunk/webapp/webmrbc/mrb_parse.jay	(revision 321)
Index: EcnlProtoTool/trunk/webapp/webmrbc/src/main.rb
===================================================================
--- EcnlProtoTool/trunk/webapp/webmrbc/src/main.rb	(revision 299)
+++ EcnlProtoTool/trunk/webapp/webmrbc/src/main.rb	(revision 321)
@@ -1,44 +1,40 @@
-# TOPPERSãã­ã¸ã§ã¯ã
+# TOPPERSプロジェクト
 $MAKER_CODE = "\x00\x00\xB3"
 
-# ãã¼ããã­ãã¡ã¤ã«ãªãã¸ã§ã¯ã
+# ノードプロファイルオブジェクト
 class LocalNode < ECNL::ENode
 	def initialize(eojx3)
-		# åä½ç¶æ
-
+		# 動作状態
 		@operation_status = "\x30"
-		# ï¼¶ï½
-ï½ï½ï½ï½ï½æ
-å ±
+		# Ｖｅｒｓｉｏｎ情報
 		@version_information = "\x01\x0A\x01\x00"
-		# è­å¥çªå·
+		# 識別番号
 		@identification_number = 
-			# ä¸ä½éä¿¡å±¤IDãã£ã¼ã«ã
+			# 下位通信層IDフィールド
 			"\xFE" +
-			# ã¡ã¼ã«ã¼ã³ã¼ã
+			# メーカーコード
 			$MAKER_CODE +
-			# ã¦ãã¼ã¯IDé¨(ã¡ã¼ã«ã¼ç¬èª)
+			# ユニークID部(メーカー独自)
 			"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		# ç°å¸¸å
-å®¹
+		# 異常内容
 		@fault_content = "\x00\x00"
-		# ã¡ã¼ã«ã¼ã³ã¼ã
+		# メーカーコード
 		@manufacturer_code = $MAKER_CODE
 
-		# ã¤ã³ã¹ã¿ã³ã¹æ°
+		# インスタンス数
 		@inst_count = "\x00\x00\x01"
-		# ã¯ã©ã¹æ°
+		# クラス数
 		@class_count = "\x00\x02"
-		# ã¤ã³ã¹ã¿ã³ã¹ãªã¹ã
+		# インスタンスリスト
 		@inst_list = "\x01\x05\xff\x01"
-		# ã¯ã©ã¹ãªã¹ã
+		# クラスリスト
 		@class_list = "\x01\x05\xff"
-		# ã¢ãã¦ã³ã¹ãã­ããã£ããã
+		# アナウンスプロパティマップ
 		@anno_prpmap = "\x01\xd5"
-		# SETãã­ããã£ããã
+		# SETプロパティマップ
 		@set_prpmap = "\x01\x80"
-		# GETãã­ããã£ããã
+		# GETプロパティマップ
 		@get_prpmap = "\x0c\x80\x82\x83\x89\x8a\x9d\x9e\x9f\xd3\xd4\xd6\xd7"
-		# ãã­ããã£å®ç¾©
+		# プロパティ定義
 		eprpinib_table = [
 			ECNL::EProperty.new(0x80, (ECNL::EPC_RULE_SET | ECNL::EPC_RULE_GET), @operation_status.length, :@operation_status, :onoff_prop_set, :data_prop_get),
@@ -60,8 +56,7 @@
 	end
 
-	# ç°å¸¸å
-å®¹è¨­å®é¢æ°
+	# 異常内容設定関数
 	def node_profile_object_fault_content_set(prop, src)
-		# ãµã¤ãºã2ä»¥å¤ã¯åãä»ããªã
+		# サイズが2以外は受け付けない
 		if (src.bytesize != 2) then
 			return 0
@@ -76,6 +71,6 @@
 		if ((val >= 0x0) && (val <= 0x3ec)) then
 			prop.set_exinf(val)
-			# TODO: ãã®ã®å ´åã®å¦ç
-		# ä¸è¨ä»¥å¤ã¯åãä»ããªã
+			# TODO: このの場合の処理
+		# 上記以外は受け付けない
 		else
 			return 0
@@ -85,6 +80,5 @@
 	end
 
-	# åä½ç¶æ
-ON/OFFè¨­å®é¢æ°ï¼0x30, 0x31ã®ã¿åãä»ãï¼
+	# 動作状態ON/OFF設定関数（0x30, 0x31のみ受け付け）
 	def onoff_prop_set(prop, src)
 		return 0
@@ -92,29 +86,25 @@
 end
 
-# ã³ã³ãã­ã¼ã©ã¼ã¯ã©ã¹
+# コントローラークラス
 class ControllerObj < ECNL::EObject
 	def initialize(eojx3, enod)
-		# åä½ç¶æ
-
+		# 動作状態
 		@operation_status = "\x30"
-		# è¨­ç½®å ´æ
+		# 設置場所
 		@installation_location = "\x01\x0A\x01\x00"
-		# è¦æ ¼ï¼¶ï½
-ï½ï½ï½ï½ï½æ
-å ±
+		# 規格Ｖｅｒｓｉｏｎ情報
 		@standard_version_information = "\x00\x00C\x00"
-		# ç°å¸¸çºçç¶æ
-
+		# 異常発生状態
 		@fault_status = "\x41"
-		# ã¡ã¼ã«ã¼ã³ã¼ã
+		# メーカーコード
 		@manufacturer_code = $MAKER_CODE
 
-		# ã¢ãã¦ã³ã¹ãã­ããã£ããã
+		# アナウンスプロパティマップ
 		@anno_prpmap = "\x03\x80\x81\x88"
-		# SETãã­ããã£ããã
+		# SETプロパティマップ
 		@set_prpmap = "\x04\x80\x81\x97\x98"
-		# GETãã­ããã£ããã
+		# GETプロパティマップ
 		@get_prpmap = "\x0a\x80\x81\x82\x88\x8a\x97\x98\x9d\x9e\x9f"
-		# ãã­ããã£å®ç¾©
+		# プロパティ定義
 		eprpinib_table = [
 			ECNL::EProperty.new(0x80, (ECNL::EPC_RULE_SET | ECNL::EPC_RULE_GET | ECNL::EPC_ANNOUNCE), @operation_status.length, :@operation_status, :onoff_prop_set, :data_prop_get),
@@ -133,8 +123,7 @@
 	end
 
-	# åä½ç¶æ
-ON/OFFè¨­å®é¢æ°ï¼0x30, 0x31ã®ã¿åãä»ãï¼
+	# 動作状態ON/OFF設定関数（0x30, 0x31のみ受け付け）
 	def onoff_prop_set(prop, src)
-		# ãµã¤ãºãï¼ä»¥å¤ã¯åãä»ããªã
+		# サイズが１以外は受け付けない
 		if (src.bytesize != 1) then
 			return 0
@@ -146,15 +135,15 @@
 
 		case (src.getbyte(0))
-		# ONã®å ´å
+		# ONの場合
 		when 0x30 then
 			prop.set_exinf(src)
-			# LEDã®"."ãON
+			# LEDの"."をON
 			digitalWrite(1, 1)
-		# OFFã®å ´å
+		# OFFの場合
 		when 0x31 then
 			prop.set_exinf(src)
-			# LEDã®"."ãOFF
+			# LEDの"."をOFF
 			digitalWrite(1, 0)
-		# 0x30ã0x31ä»¥å¤ã¯åãä»ããªã
+		# 0x30か0x31以外は受け付けない
 		else
 			return 0
@@ -164,8 +153,7 @@
 	end
 
-	# ç°å¸¸çºçç¶æ
-è¨­å®é¢æ°ï¼0x41, 0x42ã®ã¿åãä»ãï¼
+	# 異常発生状態設定関数（0x41, 0x42のみ受け付け）
 	def alarm_prop_set(prop, src)
-		# ãµã¤ãºãï¼ä»¥å¤ã¯åãä»ããªã
+		# サイズが１以外は受け付けない
 		if (src.bytesize != 1) then
 			return 0
@@ -177,8 +165,8 @@
 
 		case (src.getbyte(0))
-		# ç°å¸¸çºçãã/ãªãã®å ´å
+		# 異常発生あり/なしの場合
 		when 0x41,0x42 then
 			prop.set_exinf(src)
-		# 0x41ã0x42ä»¥å¤ã¯åãä»ããªã
+		# 0x41か0x42以外は受け付けない
 		else
 			return 0
@@ -188,7 +176,7 @@
 	end
 
-	# ç¾å¨å¹´ææ¥åå¾é¢æ°
+	# 現在年月日取得関数
 	def date_prop_get(prop, size)
-		# ãµã¤ãºãï¼ä»¥å¤ã¯åãä»ããªã
+		# サイズが４以外は受け付けない
 		if (size != 4) then
 			return 0
@@ -200,7 +188,7 @@
 	end
 
-	# ç¾å¨å¹´ææ¥è¨­å®é¢æ°
+	# 現在年月日設定関数
 	def date_prop_set(prop, src)
-		# ãµã¤ãºãï¼ä»¥å¤ã¯åãä»ããªã
+		# サイズが４以外は受け付けない
 		if (src.bytesize != 4) then
 			return 0
@@ -216,7 +204,7 @@
 	end
 
-	# ç¾å¨æå»åå¾é¢æ°
+	# 現在時刻取得関数
 	def time_prop_get(prop, size)
-		# ãµã¤ãºãï¼ä»¥å¤ã¯åãä»ããªã
+		# サイズが２以外は受け付けない
 		if (size != 2) then
 			return 0
@@ -228,7 +216,7 @@
 	end
 
-	# ç¾å¨æå»è¨­å®é¢æ°
+	# 現在時刻設定関数
 	def time_prop_set(prop, src)
-		# ãµã¤ãºãï¼ä»¥å¤ã¯åãä»ããªã
+		# サイズが２以外は受け付けない
 		if (src.bytesize != 2) then
 			return 0
@@ -252,5 +240,5 @@
 		super()
 
-		# LEDãOFF
+		# LEDをOFF
 		digitalWrite(2, 0)
 
@@ -267,5 +255,5 @@
 		until itr.is_eof do
 			if itr.epc == 0xD6 then
-				# LEDãON
+				# LEDをON
 				digitalWrite(2, 1)
 			end
@@ -285,5 +273,5 @@
 
 	def snd_msg(ep, data)
-		# éä¿¡ã¬ã¤ã¤ã¼ã¸éä¿¡
+		# 通信レイヤーへ送信
 		TargetBoard::snd_msg(ep, data)
 	end
@@ -318,5 +306,5 @@
 	end
 
-	# éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ã®åããã®ãæ¤ç´¢
+	# 通信レイヤーアドレスの同じものを検索
 	def get_remote_id(ep)
 		id = ECNL::ENOD_REMOTE_ID - 1
@@ -336,5 +324,5 @@
 	end
 
-	# å¯¾å¿ãããªã¢ã¼ããã¼ããæ¤ç´¢
+	# 対応するリモートノードを検索
 	def set_remote_addr(edata, ep)
 		id = ECNL::ENOD_REMOTE_ID - 1
@@ -348,5 +336,5 @@
 			end
 
-			# å¯¾å¿ãããªã¢ã¼ããã¼ããããã°éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹ãè¨­å®
+			# 対応するリモートノードがあれば通信レイヤーアドレスを設定
 			@enodadrb_table[id - ECNL::ENOD_REMOTE_ID] = ep
 
@@ -357,5 +345,5 @@
 	end
 
-	# ç©ºãé åãæ¢ãã¦èªåç»é²
+	# 空き領域を探して自動登録
 	def add_remote_addr(edata, ep)
 		id = ECNL::ENOD_REMOTE_ID - 1
@@ -384,8 +372,7 @@
 ctrl = Controller.new()
 
-# ã¡ã¤ã³ã«ã¼ã
+# メインループ
 while (true) do
-	# ã¡ãã»ã¼ã¸å¾
-ã¡
+	# メッセージ待ち
 	ret = TargetBoard::wait_msg(ctrl.timer)
 	if !ret then
@@ -393,11 +380,10 @@
 	end
 
-	# çµéæéã®è¨ç®
+	# 経過時間の計算
 	ctrl.progress ret[0]
 
-	# æ»ãå¤ãï¼ã¤ãªã
+	# 戻り値が２つなら
 	if ret.length == 2 then
-		# å
-é¨ã¤ãã³ã
+		# 内部イベント
 		case (ret[1])
 		when 1 then
@@ -406,11 +392,11 @@
 			ctrl.ntf_inl
 		end
-	# æ»ãå¤ãï¼ã¤ãªã
+	# 戻り値が３つなら
 	elsif ret.length == 3 then
-		# éä¿¡ã¬ã¤ã¤ã¼ããã®ã¡ãã»ã¼ã¸ï¼éä¿¡ç«¯ç¹ã¨é»æï¼
+		# 通信レイヤーからのメッセージ（通信端点と電文）
 		ctrl.recv_msg(ret[1], ret[2])
 	end
 
-	# ã¿ã¤ã ã¢ã¦ãã®å¦çãããã°è¡ã
+	# タイムアウトの処理があれば行う
 	ctrl.call_timeout
 end
Index: EcnlProtoTool/trunk/webapp/webmrbc/xterm/src/xterm.js
===================================================================
--- EcnlProtoTool/trunk/webapp/webmrbc/xterm/src/xterm.js	(revision 299)
+++ EcnlProtoTool/trunk/webapp/webmrbc/xterm/src/xterm.js	(revision 321)
@@ -4947,35 +4947,35 @@
     // The table below now uses xterm's output from vttest.
     Terminal.charsets.SCLD = { // (0
-      '`': '\u25c6', // 'â'
-      'a': '\u2592', // 'â'
+      '`': '\u25c6', // '◆'
+      'a': '\u2592', // '▒'
       'b': '\u0009', // '\t'
       'c': '\u000c', // '\f'
       'd': '\u000d', // '\r'
       'e': '\u000a', // '\n'
-      'f': '\u00b0', // 'Â°'
-      'g': '\u00b1', // 'Â±'
+      'f': '\u00b0', // '°'
+      'g': '\u00b1', // '±'
       'h': '\u2424', // '\u2424' (NL)
       'i': '\u000b', // '\v'
-      'j': '\u2518', // 'â'
-      'k': '\u2510', // 'â'
-      'l': '\u250c', // 'â'
-      'm': '\u2514', // 'â'
-      'n': '\u253c', // 'â¼'
-      'o': '\u23ba', // 'âº'
-      'p': '\u23bb', // 'â»'
-      'q': '\u2500', // 'â'
-      'r': '\u23bc', // 'â¼'
-      's': '\u23bd', // 'â½'
-      't': '\u251c', // 'â'
-      'u': '\u2524', // 'â¤'
-      'v': '\u2534', // 'â´'
-      'w': '\u252c', // 'â¬'
-      'x': '\u2502', // 'â'
-      'y': '\u2264', // 'â¤'
-      'z': '\u2265', // 'â¥'
-      '{': '\u03c0', // 'Ï'
-      '|': '\u2260', // 'â '
-      '}': '\u00a3', // 'Â£'
-      '~': '\u00b7'  // 'Â·'
+      'j': '\u2518', // '┘'
+      'k': '\u2510', // '┐'
+      'l': '\u250c', // '┌'
+      'm': '\u2514', // '└'
+      'n': '\u253c', // '┼'
+      'o': '\u23ba', // '⎺'
+      'p': '\u23bb', // '⎻'
+      'q': '\u2500', // '─'
+      'r': '\u23bc', // '⎼'
+      's': '\u23bd', // '⎽'
+      't': '\u251c', // '├'
+      'u': '\u2524', // '┤'
+      'v': '\u2534', // '┴'
+      'w': '\u252c', // '┬'
+      'x': '\u2502', // '│'
+      'y': '\u2264', // '≤'
+      'z': '\u2265', // '≥'
+      '{': '\u03c0', // 'π'
+      '|': '\u2260', // '≠'
+      '}': '\u00a3', // '£'
+      '~': '\u00b7'  // '·'
     };
 
